var jsonData = {command:'', data:''};
var AO_CLIENT_DIALOG_OPENED = 0; // признак отрытого окна у пользвователя
var CLIENT_KEY = '';
var CLIENT_WND = 0;
var WAIT_COMMAND = 0;
var WAIT_COUNTER = 0;
var ASSIST_URL = '';
var SEND_ERROR_JS = '';
var ao_xmlHttp = null;
var AO_SIDE = '';
var AO_MN_KEY = '';

var AO_SUPPORT_WAIT = 0;

var ao_timer_readystate = undefined;
var ao_timer_sup_readystate = undefined;

/*
 * Контроль отправки Чата
 * при нажатии Отправить устанавливается флаг isChatSend:1, дисеблем Строку чата, не очищая ее
 * при получении чата 
 * 		устанавливаем isChatSend:0
 * 		стираем отправленную строку, но только если была отправка чата
 * 		устанавливаем chatLastID
 * каждый ТИК при флаге isChatSend:1, нарасчиваем счетчик chatSendCounter:0. При достижении счетчиком 10 выводим ошибку
 * */
var ao_flags_chat = { isChatSend:0, isChatReqOK:0, chatLastID:0, chatSendCounter:0  };

/* 
 * Контроль открытия окна
 * isSend: запрос на открытие окна, isReqOK: окно открыто, SendCounter: счетчик для отлова ошибок, needRepeat:команда повторить попытку откр. окно
 * */
var ao_OpenWnd = { isSend:0, isReqOK:0, SendCounter:0, needRepeat:0 };

var ao_ChatControl = {
		users: {
			
		},
		userCount: 0,
		isSound: 0		
};

function sendStatus(StatusCode, StatusText) {
	
}

function createRequestObject() {
	try { ao_xmlHttp = new XMLHttpRequest() }
	catch(e) {
		try { ao_xmlHttp = new ActiveXObject('Msxml2.XMLHTTP') }
		catch(e) {
			try { ao_xmlHttp = new ActiveXObject('Microsoft.XMLHTTP') }
			catch(e) { ao_xmlHttp = null; }
		}
	}
	if(!ao_xmlHttp) alert('Critical Error #1');
	return ao_xmlHttp;
}

function createRequestObjectSupport() {
	try { aosup_xmlHttp = new XMLHttpRequest() }
	catch(e) {
		try { aosup_xmlHttp = new ActiveXObject('Msxml2.XMLHTTP') }
		catch(e) {
			try { aosup_xmlHttp = new ActiveXObject('Microsoft.XMLHTTP') }
			catch(e) { aosup_xmlHttp = null; }
		}
	}
	if(!aosup_xmlHttp) alert('Critical Error #aosup_xmlHttp');
	return aosup_xmlHttp;
}

function createXMLHttpRequest() {
	/*
        if (window.ActiveXObject) {
        	try{
        	ao_xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        	}
        	catch (e) {
				// TODO: handle exception
        		alert(e.description);
			}
        }
        else if (window.XMLHttpRequest) {
        	ao_xmlHttp = new XMLHttpRequest();
        }
       */
	createRequestObjectSupport();
	createRequestObject();
}

/**
 * Отменить прошлую передачу данных 
 */
function sendByPOSTAbort() {
	WAIT_COMMAND = 0;
	WAIT_COUNTER = 0;
	try { 
		// ao_xmlHttp.abort(); 
	}
	catch(e) { 
		ao_xmlHttp = null; 
		createRequestObject();
	}
	
}

/**
 * Отправка запроса методом POST. Для отправки параметр WAIT_COMMAND должен быть "0"
 * @param url
 * @param post_data
 * @returns {Boolean}
 */
var AO_LAST_POST = '';
var AO_LAST_URL_P = '';
function sendByPOST(url, post_data) {
	if (ao_xmlHttp && WAIT_COMMAND == 0) {    	
		WAIT_COMMAND = 1;  
		AO_LAST_URL_P = url;
		ao_xmlHttp.open("POST", url, true);
		//ao_xmlHttp.onreadystatechange = UpdateData;            
		ao_xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		ao_xmlHttp.setRequestHeader("Referer", encodeURIComponent(location.href));
		if(CLIENT_KEY != '') {
			if(post_data.indexOf('usk') == -1 && url.indexOf('usk') == -1) post_data = post_data+'&usk='+CLIENT_KEY;
			if(post_data.indexOf('wnd') == -1 && url.indexOf('wnd') == -1) post_data = post_data+'&wnd='+CLIENT_WND;
			//post_data = post_data+'&usk='+CLIENT_KEY+"&wnd="+CLIENT_WND;
		}
		if(CLIENT_WND == 0 && post_data.indexOf('href') == -1 && url.indexOf('href') == -1) post_data = post_data+'&href='+encodeURIComponent(location.href);
		if(post_data.indexOf('ao_sd') == -1 && url.indexOf('ao_sd') == -1) post_data = post_data+'&ao_sd='+AO_SIDE;
		if(AO_MN_KEY != '') post_data = post_data+'&AO_MN_KEY='+encodeURIComponent(AO_MN_KEY);		
		AO_LAST_POST = post_data;
		ao_xmlHttp.send(post_data);
		return true;

	} else {
		return false;
	}
}

function sendByPOST_sup(url, post_data) {
	if (aosup_xmlHttp && AO_SUPPORT_WAIT == 0) {    			  
		AO_SUPPORT_WAIT = 1;
		aosup_xmlHttp.open("POST", url, true);
            
		aosup_xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		aosup_xmlHttp.setRequestHeader("Referer", encodeURIComponent(location.href));
		if(CLIENT_KEY != '') {
			if(post_data.indexOf('usk') == -1 && url.indexOf('usk') == -1) post_data = post_data+'&usk='+CLIENT_KEY;
			if(post_data.indexOf('wnd') == -1 && url.indexOf('wnd') == -1) post_data = post_data+'&wnd='+CLIENT_WND;

		}
		if(CLIENT_WND == 0 && post_data.indexOf('href') == -1 && url.indexOf('href') == -1) post_data = post_data+'&href='+encodeURIComponent(location.href);
		if(post_data.indexOf('ao_sd') == -1 && url.indexOf('ao_sd') == -1) post_data = post_data+'&ao_sd='+AO_SIDE;
		if(AO_MN_KEY != '') post_data = post_data+'&AO_MN_KEY='+encodeURIComponent(AO_MN_KEY);		

		aosup_xmlHttp.send(post_data);
		return true;

	} else {
		alert('Системя занята...');
		return false;
	}
}

function ao_check_readystate() {
	// ao_timer_readystate
	WAIT_COUNTER++;
	
	

	
	//ao_sys_isNA
	var sysNA = document.getElementById('ao_sys_isNA');
	if(sysNA) {
		
		var ao_HTTPColor = document.getElementById('whttp');
		if(ao_HTTPColor) {
		if(WAIT_COMMAND == 1) {
			ao_HTTPColor.className = 'ao_whttp_wait';
		}
		if(WAIT_COMMAND == 0) {
			ao_HTTPColor.className = 'ao_whttp_free';
		}
		}
		
		// 3 сек
		if(WAIT_COUNTER * 100 <= 1000) {
			sysNA.innerHTML = '100%';
		}
		if(WAIT_COUNTER * 100 > 1500) {
			sysNA.innerHTML = '80%';
		}
		if(WAIT_COUNTER * 100 > 3000) {
			sysNA.innerHTML = '70%';
		}
		if(WAIT_COUNTER * 100 > 4000) {
			sysNA.innerHTML = '50%';
		}
		if(WAIT_COUNTER * 100 > 5000) {
			sysNA.innerHTML = '30%';
		}
		if(WAIT_COUNTER * 100 > 6000) {
			sysNA.innerHTML = '5%';
		}
		if(WAIT_COUNTER * 100 > 10000) {
			sysNA.innerHTML = '1%';
		}
	}
	if (ao_xmlHttp.readyState == 4 && ao_xmlHttp.status == 200 && WAIT_COMMAND == 1) {
		WAIT_COMMAND = 0;
		WAIT_COUNTER = 0;
		jsonData = {command:'', data:''};
		// Ошибка на сервере (связи с сервером)

		// Данные страницы дисплея успешно загружены
		if (ao_xmlHttp.readyState == 4 && ao_xmlHttp.status == 200) {
			a = ao_xmlHttp.responseText;
			try{
				jsonData = JSON.parse(a);
			} catch(e) {
				// alert(e.description);
			}
		}	 
		if (ao_xmlHttp.readyState == 4 && ao_xmlHttp.status != 200) {
			sendByPOST(AO_LAST_URL_P, AO_LAST_POST);
		}
		ParseData();
	}	

	var debug_top = document.getElementById('debug_top');
	if(ao_xmlHttp) {

	}
	if(debug_top) {
		//debug_top.innerHTML = WAIT_COUNTER + "  " + WAIT_COMMAND;
	}
	ao_timer_readystate = setTimeout("ao_check_readystate()", 100);
}

function ao_check_readystate_sup() {
	var ao_HTTPColor = document.getElementById('whttpsup');
	if(ao_HTTPColor) {
		if(AO_SUPPORT_WAIT == 1) {
			ao_HTTPColor.className = 'ao_whttp_wait';
		}
		if(AO_SUPPORT_WAIT == 0) {
			ao_HTTPColor.className = 'ao_whttp_free';
		}
	}
	
	if (aosup_xmlHttp.readyState == 4 && aosup_xmlHttp.status == 200 && AO_SUPPORT_WAIT == 1) {
		AO_SUPPORT_WAIT = 0;		
		jsonData = {command:'', data:''};
		// Ошибка на сервере (связи с сервером)

		// Данные страницы дисплея успешно загружены
		if (aosup_xmlHttp.readyState == 4 && aosup_xmlHttp.status == 200) {
			a = aosup_xmlHttp.responseText;
			try{
				jsonData = JSON.parse(a);
			} catch(e) {
				// alert(e.description);
			}
		}	 
		if (aosup_xmlHttp.readyState == 4 && aosup_xmlHttp.status != 200) {
			sendByPOST_sup(AO_LAST_URL_P, AO_LAST_POST);
		}
		ParseData();
	}	

	ao_timer_sup_readystate = setTimeout("ao_check_readystate_sup()", 170);
}


function sendClientChat() {
//	alert(line.innerHTML);
	if(CLIENT_KEY == '') return false;

	var line = document.getElementById('assisttext2');
	if(!line) return false;
//	alert(line.innerHTML);
	//data='action=addText&text='+encodeURIComponent(line.value)+'&key='.encodeURIComponent(CLIENT_KEY);
	data='action=addText&text='+encodeURIComponent(line.value);

//  ao_flags_chat = { isChatSend:0, isChatReqOK:0, chatLastID:0, chatSendCounter:0  };
	
	ao_flags_chat.isChatSend = 1;
	ao_flags_chat.isChatReqOK = 0;
	ao_flags_chat.chatSendCounter = 0;
	
	line.readOnly = true;
	 
	sendByPOSTAbort(); // !!! отменяем прошлый запрос и отправляем новый
	if(sendByPOST(ASSIST_URL, data)) {
		
	}
}

function sendManagerChat(number) {
	sendByPOSTAbort(); // !!! отменяем прошлый запрос и отправляем новый
	var line = document.getElementById('assistline'+number);
	if(!line) return false;
	var chatWnd = document.getElementById('chatWnd'+number);
	if(chatWnd) {
		if(chatWnd.style.display == 'block') {
			data='action=addText&text='+encodeURIComponent(line.value)+'&client='+number;	
			line.value = '';
			sendByPOST(ASSIST_URL, data);			
		}
	}
}

function UpdateData() {
	jsonData = {command:'', data:''};
    // Ошибка на сервере (связи с сервером)
    if (ao_xmlHttp.readyState == 4 && ao_xmlHttp.status != 200) {
        // alert(xmlHttp.responseText + "/" + xmlHttp.statusText + "/" + xmlHttp.responseXML);

        // if (ao_xmlHttp.status == 0) debugAdd('State Error');
        return false;
    }
 // Данные страницы дисплея успешно загружены
    if (ao_xmlHttp.readyState == 4 && ao_xmlHttp.status == 200) {
    	a = ao_xmlHttp.responseText;
    	try{
    		jsonData = JSON.parse(a);
    	} catch(e) {
    		// alert(e.description);
    	}
    }	 
	ParseData();
}

function ParseData() {
	 
    if(jsonData == undefined) {
    	debugAdd('Json is Empty');
    	return false;
    }   
    
    // проверка ключевых слов
    var key_words = new Array();
    key_words[0] = /Ошибка/i;
    key_words[1] = /Error/i;
    key_words[2] = /Не найдено/i;
    /* 
    for (i = 0; i < key_words.length; i++) {
        if (jsonData.data.search(key_words[i]) >= 0 && jsonData.command != 'viewLog') {
        	debugAdd('Ошибка: ' + key_words[i]);
            return false;
        }
    }
    */
   // if(jsonData.command != 'void') debugAdd(jsonData.command);
    
    if(jsonData.command == 'logout') {
    	window.location.href = 'http://'+window.location.host+'/online.php?logout';
    }
    if(jsonData.command == 'alert') {
    	alert(jsonData.data);
    }
    
    if(jsonData.command == 'openWnd') {
    	
    	
    	if(CLIENT_KEY != '') {
    		ao_OpenWnd.isSend = 0;
    		ao_OpenWnd.isReqOK = 1;
    		ao_OpenWnd.SendCounter = 0;
    	
    		openWnd();
    	} else {
    		sendByPOST(ASSIST_URL, 'action=void');
    	}
    	
    }
    
    if(jsonData.command == 'user_key') {
    	
    	CLIENT_KEY = jsonData.data;
    	
    	var ao_btn_cl_mn = document.getElementById('ao_btn_cl_mn');
    	if(ao_btn_cl_mn) {
    		ao_btn_cl_mn.style.display = "block";
    	}
    	
    	ao_OpenWnd.isSend = 1;
    	ao_OpenWnd.isReqOK = 0;
    	ao_OpenWnd.SendCounter = 0;
    	
    	sendByPOST(ASSIST_URL, 'action=checkWnd');
    }              
    
    //OpOnline
    if(jsonData.command == 'OpOnline') {
    	
    	var tp = document.getElementById('tc3');
    	if(tp) {
    		tp.innerHTML = jsonData.data;
    	}    	    	    	
    }
    
  //archive
    if(jsonData.command == 'archive') {
    	
    	var tp = document.getElementById('tb2content');
    	if(tp) {
    		tp.innerHTML = jsonData.data;
    	}    	    	    	
    }
    
    // fmanager
    if(jsonData.command == 'fmanager') {
    	
    	var tp = document.getElementById('tc5');
    	if(tp) {
    		tp.innerHTML = jsonData.data;
    	}    	    	    	
    }
    
    //addmanager
    if(jsonData.command == 'addmanager') {
    	
    	var tp = document.getElementById('tc5');
    	if(tp) {
    		tp.innerHTML = jsonData.data;
    	}    	    	    	
    }
    
    if(jsonData.command == 'userList') {
    	
    	var tp = document.getElementById('topcontent');
    	if(tp) {
    		tp.innerHTML = jsonData.data;
    	}
    	
    	var ic = 0;
    	var usersc = 0;
    	
    	if(jsonData.cho != undefined) {
    		
    		for (tcho in jsonData.cho)
    		{
    			usersc++;
    			// debugAdd('cho: '+jsonData.cho[tcho]);
    			if(jsonData.cho[tcho] > 0) {
    				ManagerChatReOpen(jsonData.cho[tcho]);
    				ic++;
    			}
    		}
    		var tab6title = document.getElementById('tab6title'); 
    		if(tab6title) {
    			tab6title.innerHTML = 'Переписка ('+ic+')';
    		}
    		
    		if(usersc > ao_ChatControl.userCount ) {    			
    			playSound('nuser2', jsonData.cho[tcho]);
    		}
    		ao_ChatControl.userCount = usersc;
    		
    	} else {
    		
    	}
    	
    }
    
    if(jsonData.command == 'viewLog') {
    	//alert('viewLog');
    	
    	var debugViewLog = document.getElementById('debugViewLog');
    	if(debugViewLog) {
    		
    		//debugViewLog.style.display = 'block';
    		//debugViewLog.innerHTML = jsonData.data;
    	} else {
    		//alert('Erorr debugViewLog');
    	}
    }
    
    if(jsonData.command == 'getChat') {
    	 
    	
    	var chatdata = document.getElementById('chatdata');
    	if(chatdata) {
    		
    		chatdata.style.display = 'block';
    		chatdata.innerHTML = jsonData.data;
    		var em_name = document.getElementById('m_name');
    		if(em_name && jsonData.m_name != undefined) {
    			
    			em_name.innerHTML = ''+jsonData.m_name;
    		}
    		var em_image = document.getElementById('m_image');
    		if(em_image && jsonData.m_image != undefined) {
    			em_image.src = jsonData.m_image;
    		}

    		if(ao_flags_chat.isChatSend==1 && (jsonData.LastChatId != ao_flags_chat.chatLastID && jsonData.LastChatId > 0)) {
    			var line = document.getElementById('assisttext2');
    			if(line) {
    				line.value = '';
    				line.readOnly=false;
    			}
    			ao_flags_chat.isChatReqOK=1;
        		ao_flags_chat.isChatSend=0;
        		ao_flags_chat.chatSendCounter=0;
        		ao_flags_chat.chatLastID = jsonData.LastChatId;
    		}    		
    		
    	} else {
    		// alert('Erorr debugViewLog');
    	}
    }
    
    /*
     * var ao_ChatControl = {
		users: {
			0: { msg_id:0 },
			1: { msg_id:0 }
		},
		userCount: 0,
		isSound: 0		
};
     */
    if(jsonData.command == 'getChatM') {

    	/* Обновляем чаты */
    	if(jsonData.cho != undefined) {
    		var isPlay = false;  		
    		for (tcho in jsonData.cho)
    		{
    			if(jsonData.cho[tcho] > 0) {
    				var chatdata = document.getElementById('chatdata'+jsonData.cho[tcho]);
    				if(chatdata) {
    					chatdata.innerHTML = jsonData.data[jsonData.cho[tcho]];
    				}
    				
    				// ManagerChatReOpen(jsonData.cho[tcho]); ???
    				
    				if(jsonData.choi != undefined) {
    					// alert(typeof(ao_ChatControl.users[jsonData.cho[tcho]]));
    					if(typeof(ao_ChatControl.users[jsonData.cho[tcho]]) != 'undefined') {
    						try {
    							if(ao_ChatControl.users[jsonData.cho[tcho]].msg_id != jsonData.choi[tcho] && ao_ChatControl.users[jsonData.cho[tcho]].msg_id > 0) {
        							isPlay = true;
        						}
    							// alert(jsonData.cho[tcho]+' / '+ao_ChatControl.users[jsonData.cho[tcho]].msg_id+' / '+jsonData.choi[tcho]);
							} catch (e) {
								// alert(typeof(ao_ChatControl.users[jsonData.cho[tcho]]));
							}
    						
    					} else {
    						ao_ChatControl.users[jsonData.cho[tcho]] = { msg_id: 0 };
    					}
    					ao_ChatControl.users[jsonData.cho[tcho]].msg_id = jsonData.choi[tcho];
    				} 
    			}
    			
    		}
    		if(isPlay) {
    		//	alert('play');
    			playSound('nmessage',jsonData.cho[tcho]);
    		}
    	}
    }
    
    if(jsonData.command == 'closeCWnd') {    	
    	ManagerChatClose(jsonData.data);    	
    }
    
    if(jsonData.command == 'sound_callmanager') {    
    	
    	playSound('sound_callmanager',jsonData.data);    	
    }
    
    // sound_stop
    if(jsonData.command == 'sound_stop') {    	    		
    	sound_stop(jsonData.data);    	
    }
/*
    	var chatdata = document.getElementById('chatdata');
    	if(chatdata) {
    		
    		chatdata.style.display = 'block';
    		chatdata.innerHTML = jsonData.data;
    	} else {
    		alert('Erorr debugViewLog');
    	}
    }
  */  
    
    /*
     ************************************************************************************************************
     * Обработка Флагов
     * 
     * */
    
    if(ao_flags_chat.isChatSend==1) {
    	ao_flags_chat.chatSendCounter++;
    }
    if(ao_flags_chat.chatSendCounter>=20) {
    	alert('Ошибка отправки сообщения');
    	var line = document.getElementById('assistline');
		if(line) {
			//line.value = '';
			line.readOnly=false;
		}
		
		ao_flags_chat.isChatReqOK=0;
		ao_flags_chat.isChatSend=0;
		ao_flags_chat.chatSendCounter=0;
		return 0;
    }
    
    if(ao_OpenWnd.isSend == 1 && ao_OpenWnd.isReqOK == 0) {
    	ao_OpenWnd.SendCounter++;
    }
    
    if(ao_OpenWnd.SendCounter > 5) {
    	ao_OpenWnd.isSend = 1;
    	ao_OpenWnd.isReqOK = 0;
    	ao_OpenWnd.SendCounter = 0;    
    	ao_OpenWnd.needRepeat = 1;    
    	
    	
    	 
    	
    }    
}


function CheckCommand() {
	if(CLIENT_KEY == '' && CLIENT_WND == 0) {
		// sendByPOSTAbort();
		sendByPOST(ASSIST_URL, 'action=void&href='+encodeURIComponent(location.href)+'&ref='+encodeURIComponent(document.referrer));
	//	sendByPOST(ASSIST_URL, 'action=void');

	}
	if(CLIENT_KEY != '' && WAIT_COMMAND == 0) {


		if(ao_OpenWnd.needRepeat == 0)	sendByPOST(ASSIST_URL, 'action=command');
		if(ao_OpenWnd.needRepeat == 1)	{
			sendByPOST(ASSIST_URL, 'action=checkWnd');
			ao_OpenWnd.needRepeat = 0;
		}

	}
	aoTimer = setTimeout("CheckCommand()", 700);
	debug_status();
}

var ao_isFirstCommand = 1;
function CheckCommandManager() {
	if(ao_isFirstCommand == 1) {
// userList
		sendByPOST(ASSIST_URL, 'action=userList');
		ao_isFirstCommand = 0;
	}
    if (WAIT_COMMAND == 0) {
    	sendByPOST(ASSIST_URL, 'action=command');
	}
	aoTimer = setTimeout("CheckCommandManager()", 330);
}

function openWnd() {
	//var wnd = document.getElementById('assistonlinewrap');
/*
	var wnd = document.getElementById('chatWnd');
	var dbody = '';
	if(!wnd) {		 
		return false;
	}
	//wnd.innerHTML = '<div id="chatWnd" class="chatWnd"><div class="assistwnd" ><p class="chatCaption">X</p><div class="chatdata">Загрузка...</div><div class="buttons"><form action="" method="post" onsubmit="return false"><p><input id="assistline" type="text" name="line" size="30" /><input type="button" value=">>>" onclick="sendClientChat();" /></p></form></div></div></div>';
	wnd.style.top = '15px';
	wnd.style.position = 'absolute';
	wnd.style.display = "block";
	$(function() {
		//alert('ok');
		$( '#chatWnd').draggable( );
	});
	//wnd.style.backgroundColor = "#cacaca";
	*/
	//window.open("http://www.javascript-coder.com", "mywindow","location=1,status=1,scrollbars=1,width=100,height=100"); 
	// window.open("http://www.assist.p-site.ru/client.php?ao_sd=ao_cl&usk="+CLIENT_KEY+"&wnd=1", "glbooking","location=0,status=0,scrollbars=1,width=450,height=550");
	// window.open("http://assist.loc/client.php?ao_sd=ao_cl&usk="+CLIENT_KEY+"&wnd=1", "glbooking","location=0,status=0,scrollbars=1,width=450,height=550");
	
	openNewWindow();
}

/**
 * Для работы тербуется скрипт с IFRAME
 * */
function openNewWindow(isCallManager)
{
	if(typeof(isCallManager) == 'undefined') isCallManager = 0;
	
	var _this = document.getElementById('callManager');
	if(!_this) return false;
	
	if(isCallManager == 1) {
		WAIT_COMMAND = 0; 
		sendByPOST(ASSIST_URL, 'action=callManager');
		return true;
	}
		
	if(ao_OpenWnd.isReqOK == 0 && ao_OpenWnd.isSend == 0) {
		// WAIT_COMMAND = 0; 
		ao_OpenWnd.isReqOK = 0;
		ao_OpenWnd.isSend = 1;
		ao_OpenWnd.SendCounter = 0;
		sendByPOST(ASSIST_URL, 'action=callManager');
	}
	
	// _this.href = 'http://'+window.location.host+'/client.php?ao_sd=ao_cl&usk='+CLIENT_KEY;
	// _this.href = "http://assist.loc/client.php?ao_sd=ao_cl&usk="+CLIENT_KEY+"&wnd=1&mn_call="+isCallManager;
	_this.href = "http://"+AO_ASSIST_AOCL_URL+"/client.php?ao_sd=ao_cl&usk="+CLIENT_KEY+"&wnd=1&mn_call="+isCallManager+'&AO_MN_KEY='+AO_MN_KEY;
	
	//alert(hs.anchors.all[1]);
	//this.src = 'http://assist.loc/client.php?usk='+CLIENT_KEY;
	//alert(this.href);
	var w = 310;
	var h = 480;
	hs.minWidth = w;
	hs.minHeight = h;
	hs.lang.creditsText = ""; //_this.title;
	hs.creditsHref = '#';
	
    var result = hs.htmlExpand(_this, { objectType: 'iframe' } );
    
    return result;
}

function closeCWnd() {
	/*
	var wnd = document.getElementById('chatWnd');
		if(!wnd) return false;
	$(function() {		
		$( '#chatWnd').hide();	
	});
	*/
	ao_OpenWnd.SendCounter = 0;
	ao_OpenWnd.isReqOK = 0;
	ao_OpenWnd.isSend = 0;

	WAIT_COMMAND = 0;
	ao_timer_readystate = undefined;
	sendByPOST(ASSIST_URL, 'action=closeCWnd');
	WAIT_COMMAND = 1;
}

function debug_status() {
	var debug = document.getElementById('debug');
	if(!debug) return false;
//	debug.innerHTML = debug.innerHTML + '<p>'+xmlHttp.readyState+' / '+xmlHttp.status+'</p>';
}
function debugAdd(text) {
	var debug = document.getElementById('debug');
	if(!debug) return false;
	debug.innerHTML = debug.innerHTML + '<p>'+text+'</p>';
}

function CommandClientHello(user_id) {
	/* Создать окно чата */
	/*
	sendByPOSTAbort();
	sendByPOST(ASSIST_URL, 'action=clientHello&client_id='+user_id);	 	 	 
	ManagerChatReOpen(user_id);
	*/
	sendByPOST_sup(ASSIST_URL, 'action=clientHello&client_id='+user_id);	 	 	 
	ManagerChatReOpen(user_id);
}

function ManagerChatReOpen(user_id) {
	var Hwind = document.getElementById('chatWnd'+user_id);
	if(!Hwind) {
		// wind = '<div id="chatWnd'+user_id+'" style="display: none;"><div id="assistwnd'+user_id+'" style="display: none; width: 300px; height: 400px;"><div id="chatdata'+user_id+'"><h1>Чат пуст</h1></div><div class="buttons"><form action="" method="post" onsubmit="return false"><p><input id="assistline'+user_id+'" type="text" name="line" size="30" /><input type="button" value=">>>" onclick="sendManagerChat('+user_id+');" /></p></form></div></div></div>';
		wind = '<div class="assistwnd" id="assistwnd'+user_id+'" ><p class="chatCaption">#'+user_id+'</p><div class="chatdata" id="chatdata'+user_id+'"></div><div class="buttons"><form action="" method="post" onsubmit="return false"><p><textarea id="assistline'+user_id+'" type="text" name="line" rows="3" style="width:100%" ></textarea><input type="button" value="отправить" onclick="sendManagerChat('+user_id+');" /><input align="right" type="button" value="приветствие" onclick="btnPastHello('+user_id+');" /></p></form></div></div>';

		var TabPref = 'tc6';
		
		var tc1 = document.getElementById(TabPref);
		if(tc1) {
			var adElement = document.createElement('div');
			adElement.setAttribute("id", 'chatWnd'+user_id);	
			adElement.setAttribute("class", 'chatWnd');	
			adElement.innerHTML = wind;
			tc1.appendChild(adElement);			
			
			/* проверка */
			var nElement = document.getElementById('chatWnd'+user_id);
			if(nElement) {
				nElement.style.display = 'block';
			} else {
				alert('nElement не найден');
			}
			
			$(function() {
				$( 'chatWnd'+user_id ).draggable({ containment: "#"+TabPref, scroll: false });
			});
		}
	}
	if(Hwind) {
		// if(Hwind.style.display == 'none') 
			Hwind.style.display = 'block';
	}
	
	sound_stop(user_id);
	
	$(function() {
		$( '#chatWnd'+user_id).draggable({ containment: "#"+TabPref, scroll: true });
	});
}

function ManagerChatClose(user_id) {
	var Hwind = document.getElementById('chatWnd'+user_id);
	if(!Hwind) {
		return false;
	}
	if(Hwind) {
		Hwind.style.display = 'none';
	}		
}

function Run() {
	ASSIST_URL = 'http://'+window.location.host+'/ao_client.php';
	//ASSIST_URL = 'http://'+window.location.host+'/ao_commander.php';
	//ASSIST_URL = 'http://assist.p-site.ru/ao_commander.php';
	AO_SIDE = 'ao_cl';
	// ASSIST_URL = 'http://test.p-site.ru/assist/client.php';
	
	debugAdd('Begin');
	createXMLHttpRequest();
	CheckCommand();
	ao_check_readystate();
}

function ManagerRun() {
	ASSIST_URL = 'http://'+window.location.host+'/ao_commander.php';
	//ASSIST_URL = 'http://assist.p-site.ru/ao_commander.php';
	AO_SIDE = 'ao_mn';
	// ASSIST_URL = 'http://assist.p-site.ru/assist/manager.php';
	debugAdd('Begin');
	createXMLHttpRequest();
	CheckCommandManager();
	ao_check_readystate();
	ao_check_readystate_sup();
//	EnableDrag();
}

function ClientRun(_usk) {
	ASSIST_URL = 'http://'+window.location.host+'/ao_client.php';
	ASSIST_URL = 'http://'+window.location.host+'/ao_commander.php';
	ASSIST_URL = 'http://'+window.location.host+'/ao_commander.php';
	// alert()
	//ASSIST_URL = 'http://assist.p-site.ru/ao_commander.php';
	AO_SIDE = 'ao_cl';
	CLIENT_WND = 1;
	CLIENT_KEY = _usk;
	// ASSIST_URL = 'http://test.p-site.ru/assist/client.php';
	
	debugAdd('Begin');
	createXMLHttpRequest();
	CheckCommand();
	ao_check_readystate();
}


var tabold = 1;

function SwTab(tabno) {
  var t1 = document.getElementById('tc'+tabno);
  var t2 = document.getElementById('tc'+tabold);
  var tt1 = document.getElementById('tab'+tabno);
  var tt2 = document.getElementById('tab'+tabold);
  if((tabno != tabold) && (t1 && t2)) {
    t2.style.display = "none";
    // t2.innerHTML = "";
    t1.style.display = "block";
    tt2.className = 'tab';
    tt1.className = 'tab active';
    tabold = tabno;
  }
  
  // Операторы онлайн
  if(tabno == 3) {
	  t1.innerHTML = "";
	 sendByPOST_sup(ASSIST_URL, 'action=op_online'); 
  }
  
  // Архив
  if(tabno == 2) {
	 t1.innerHTML = "";
     var df = document.getElementById('tb2df');
	 var dt = document.getElementById('tb2dt');
	 if(df && dt) {
		 sendByPOST_sup(ASSIST_URL, 'action=archive'+'&df='+df.value+'&dt='+dt.value);
	 } else {
		 //alert('');
	 }
	  
  }
  
//Манагер
  if(tabno == 5) {
	  t1.innerHTML = "";
	 sendByPOST_sup(ASSIST_URL, 'action=newmanager'); 
  }
}
function getArchive() {
	var df = document.getElementById('tb2df');
	 var dt = document.getElementById('tb2dt');
	 if(df && dt) {
		 sendByPOST(ASSIST_URL, 'action=archive'+'&df='+df.value+'&dt='+dt.value);
	 } else {
		 alert('Период не задан');
	 }
}

function EnableDrag() {

	$(function() {
		$( "#chatWnd1" ).draggable({ containment: "#tc1", scroll: false });
		$( "#chatWnd2" ).draggable({ containment: "#tc1", scroll: false });
		$( "#chatWnd3" ).draggable({ containment: "#tc1", scroll: false });
	});
}


var AIM = {
		frame : function(c) {

			var n = 'f' + Math.floor(Math.random() * 99999);
			var d = document.createElement('DIV');
			d.innerHTML = '<iframe style="display:none" src="about:blank" id="'+n+'" name="'+n+'" onload="AIM.loaded(\''+n+'\')"></iframe>';
			document.body.appendChild(d);

			var i = document.getElementById(n);
			if (c && typeof(c.onComplete) == 'function') {
				i.onComplete = c.onComplete;
			}

			return n;
		},

		form : function(f, name) {
			f.setAttribute('target', name);
		},

		submit : function(f, c) {
			AIM.form(f, AIM.frame(c));
			if (c && typeof(c.onStart) == 'function') {
				return c.onStart();
			} else {
				return true;
			}
		},

		loaded : function(id) {
			var i = document.getElementById(id);
			if (i.contentDocument) {
				var d = i.contentDocument;
			} else if (i.contentWindow) {
				var d = i.contentWindow.document;
			} else {
				var d = window.frames[id].document;
			}
			if (d.location.href == "about:blank") {
				return;
			}

			if (typeof(i.onComplete) == 'function') {
				i.onComplete(d.body.innerHTML);
			}
		}
	}

function newmanagerStart() {
	var tp = document.getElementById('tc5');
	if(tp) {
		//tp.innerHTML = '<h1>Отправка данных...</h1>';
	}
}
function newmanagerComplite(d) {
	var tp = document.getElementById('tc5');
	if(tp) {
	//	tp.innerHTML = '<h1>Готово</h1>';
		tp.innerHTML = d;
	}
}

function ManagerBan(id) {
	data='action=managerban&id='+encodeURIComponent(id);	
	sendByPOST(ASSIST_URL, data);
}

function ManagerEdit(m_login) {
	data='action=manageredit&m_login='+encodeURIComponent(m_login);	
	sendByPOST(ASSIST_URL, data);
	
}

/**
 * Type: {new user, new msg}
 * @param type
 */
var sound_is_ring = 0; // статус игры в данный момент
var sound_counter = 0; // счетчик
var sound_repeat_wav = '';
var sound_user_id = 0;
var sound_repeater = undefined;
function playSound(type, user_id) {
	
	var player = document.getElementById('pl'+type);
	if(!player) {
		return false;
	}
	
	var wav_file = 'sounds/'+type+'.wav';
	  
	  var agt = navigator.userAgent.toLowerCase();
	  if(agt.indexOf('opera') != -1) {
	  	player.style = "position: absolute; left: 0px; top: -200px;";
	  }
	  var isRepeat = 'false';
	  if(type == 'sound_callmanager' && sound_is_ring == 0) {
		  var isRepeat = 'true';
		  sound_repeat_wav = 'sound_callmanager';
		  sound_counter++;
		  sound_user_id = user_id;
		  // sound_repeater = setTimeout('sound_repeat()', 5000);
		  sound_is_ring = 1;
		  // sound_repeat();
		  sound_is_ring = 0;
	  }
	  
	  if(sound_is_ring == 0 || isRepeat == 'true') {
		  try {
			  var snd = document.getElementById('sound_'+user_id);
			  if(snd) {
				snd.innerHTML = '<embed id src="'+wav_file+'" hidden="true" autostart="true" loop="'+isRepeat+'">';  
			  } else {
				 // player.innerHTML = '<div id="sound_'+user_id+'"><embed id src="'+wav_file+'" hidden="true" autostart="true" loop="'+isRepeat+'"></div>';
			  }
			  sound_is_ring = 1;
		} catch (e) {
			sound_is_ring = 0;			
		}		  		  
	  } 
	  
}

function sound_repeat() {
	// sound_is_ring = 0;
	if(sound_repeat_wav != '' && sound_user_id > 0) {
		playSound(sound_repeat_wav, sound_user_id);
		// sound_repeater = setTimeout('sound_repeat()', 5000);
	}
}

function sound_stop(id) {
	// sound_counter
	sound_is_ring = 0;
	sound_repeat_wav = '';
	sound_user_id = 0;
	sound_repeater = undefined;
	var snd = document.getElementById('sound_'+sound_counter);
	if(snd) snd.innerHTML = '';
}


function btnPastHello(user_id) {
	var text = 'Здравствуйте. Чем могу помочь?';
	var as = document.getElementById('assistline'+user_id);
	if(as) {
		as.value = text;
		sendManagerChat(user_id);
	}
}
