/***************************************************************************
*
* IMPORTANT: This is a commercial product made by AntonLV and cannot be modified for other than personal usage. 
* This product cannot be redistributed for free or a fee without written permission from AntonLV. 
* This notice may not be removed from the source code.
*
***************************************************************************/

function com_executeRequest(sAction, sParams) {
	var rRequest = false;		

	if (window.XMLHttpRequest) 
		rRequest = new XMLHttpRequest();
	else if (window.ActiveXObject)
		rRequest = new ActiveXObject("Microsoft.XMLHTTP");

	if(rRequest) {		
		rRequest.open("POST", sComUrl +'actions/'+ sAction + ".php", true);
		rRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		rRequest.onreadystatechange = function() {
			if(rRequest.readyState == 4 && rRequest.status == 200) {
				com_parseXML(sAction, rRequest.responseXML);
				
				if(sAction == 'inf_move' || sAction == 'inf_save' || sAction == 'inf_status')
					document.getElementById('processId').innerHTML = '';
			}
		}
		var date = new Date();
		rRequest.send(sParams + "&_s=" + date.getTime());
	}	
}

function com_parseXML(sAction, oXML) {
	switch(sAction)
	{
		//--- Informer actions ---//
		case 'inf_move':
			com_inf_processMove(oXML)
		case 'inf_save':
		case 'inf_status':
			document.getElementById('processId').innerHTML = '';			
			break;
		case 'inf_info':
			com_inf_processInfo(oXML);
			break;
		
		//--- Messenger actions ---//
		case 'msg_getUser':
			if(oXML.getElementsByTagName('user').length <= 0) {
				document.getElementById('com_srch_nick').innerHTML = 'Kein Treffer';
				break;
			}
			aNode = oXML.getElementsByTagName('user')[0];
			document.getElementById('com_srch_id').innerHTML = aNode.getAttribute('id');
			oNick = document.getElementById('com_srch_nick');
			oNick.innerHTML = aNode.getAttribute('nick');
			if(aNode.getAttribute('online') == 'true') { 
				oNick.style.color = 'green'; 
				oNick.style.fontWeight = 'bold';
			}
			else {
				oNick.style.color = 'red'; 
				oNick.style.fontWeight = 'normal';
			}
			break;
		case 'msg_getUsersList':
			if(oXML.getElementsByTagName('user').length <= 0) break;
		
			for(var i=0; i<oXML.getElementsByTagName('user').length; i++) {
				aNode = oXML.getElementsByTagName('user')[i];
				com_msg_addUser(aNode.getAttribute('id'), aNode.getAttribute('nick'), false);
			}
			break;
		case 'msg_getMsg':
			var sAction = oXML.getElementsByTagName('msgs')[0].getAttribute('action');
			for(var i=0; i<oXML.getElementsByTagName('msg').length; i++) {
				aNode = oXML.getElementsByTagName('msg')[i];				
				com_msg_displayMessage(sAction, aNode);
			}
			break;
		case 'msg_getConfig':
			var oMessenger = document.getElementById('com_msg');
			aNode = oXML.getElementsByTagName('conf')[0];
			if(aNode.attributes.length == 4){						
				oMessenger.name = aNode.getAttribute('nick');
				oMessenger.style.top = aNode.getAttribute('top') + 'px';
				oMessenger.style.left = aNode.getAttribute('left') + 'px';
				oMessenger.style.display = aNode.getAttribute('closed') == 0 ? 'inline' : 'none';				
			}
			break;
	}
}