/*
------------------------------------------
|    Script by Cybersystems GmbH 2003    |
| technical contact sott@cybersystems.ch |
------------------------------------------
*/

/* BROWSER CHECK START */
var IE = new Boolean();
var DOMVer = new Boolean();
if (document.all && document.getElementById && (navigator.userAgent.search(/MSIE/) != -1) && (navigator.userAgent.search(/Opera/) == -1)) { IE = true; DOMVer = true; }
/*  BROWSER CHECK END  */

if (IE && DOMVer)
{
	/*object check begin*/
	var xmlhttp; var xmldoc;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
		try {
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		xmldoc=new ActiveXObject("Msxml2.DOMDocument");
	} catch (e) {
		try {
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
		xmlhttp=false;
		}
	}
	@else
	xmlhttp=false;
	@end @*/
	if (!xmlhttp) {
	try {
		xmlhttp = new XMLHttpRequest();
	} catch (e) {
		xmlhttp=false;
	}
	}
	/*object check end*/
}

var strxml = ''; var resultarray = new Array();
var clear = false;
var firstcall = true;

function setCookie(VarName,VarValue)
{
	if (navigator.cookieEnabled)
	{
		//time expires
		var expTime = new Date()
		var ms			= expTime.getTime() + (365 * 24 * 60 * 60 * 1000); //365 * 24 * 60 * 60 * 1000 = 1 Jahr
		expTime.setTime(ms);
		if (VarValue.length > 0)
		{
			document.cookie = VarName + '=' + VarValue + '; expires=' + expTime.toGMTString();
		}
		else 
		{
		  var delTime = new Date();
			document.cookie = VarName + '=' + VarValue + '; expires=' + delTime.toGMTString();
		}
	}
}

function getCookie(VarName)
{
	if (navigator.cookieEnabled)
	{
		if (document.cookie.indexOf(VarName) > -1)
		{	
			var strcookie = document.cookie.substring(document.cookie.indexOf(VarName),document.cookie.length);
			if (strcookie.indexOf(';') > -1) { strcookie = document.cookie.substring(0,document.cookie.indexOf(';'));	}
			return strcookie.substring(strcookie.indexOf('=')+1,strcookie.length);
		}
		else
		{
			return '';
		}
	}
}

function addDebugMsg(strMsg)
{
	//document.getElementById('wnddebug').innerHTML = strMsg + '<br>' + document.getElementById('wnddebug').innerHTML;
}

function addMsg(strName,strMsg,TX)
{
	/* show chat wnd */
	document.getElementById('MsgWnd').style.visibility = 'visible';	
	document.getElementById('txtTX').focus();
	/* start adding */
  var actDate = new Date();
  var strHours = new String(actDate.getHours());
  var strMinutes = new String(actDate.getMinutes());
  var strSeconds = new String(actDate.getSeconds());

  if (strHours.length < 2) { strHours = '0' + strHours; }
  if (strMinutes.length < 2) { strMinutes = '0' + strMinutes; }
  if (strSeconds.length < 2) { strSeconds = '0' + strSeconds; }
  var strDate = strHours + ':' + strMinutes + ':' + strSeconds;

  if (TX)
  {
		document.getElementById('txtRX').innerHTML += '<b>' + strName + '</b><span style="font:8pt Verdana;"> (' + strDate + ')</span><br>' + strMsg + '<br>';
	}
	else
	{
		document.getElementById('txtRX').innerHTML += '<span style="color:#7A96DF;"><b>' + strName + '</b><span style="font:8pt Verdana;"> (' + strDate + ')</span><br>' + strMsg + '</span><br>';
	}
	//scroll to bottom
	scroll2bottom();
}

//Event onReadyStateChange
function parseXML(obj)
{
	if (obj.hasChildNodes())
	{
		strxml += '<b>' + obj.tagName + '</b>' + '<br>';
		for(var i=0;i<obj.childNodes.length;i++)
		{
			parseXML(obj.childNodes[i]);
		}
	}
	else
	{
		strxml += obj.text + '<br>';
	}
}

function XMLReceive()
{
	if (xmlhttp.readyState==4) 
	{
		//alert(xmlhttp.responseText); //DEBUGGING
		xmldoc.load(xmlhttp.responseXML);
		resultarray = null;
		resultarray = xmldoc.getElementsByTagName('ReceiveMessagesResult')[0].childNodes;
		for(var i=0;i<resultarray.length;i++)
		{
			if (resultarray[i].text.substr(0,9) == '<SetName>')
			{
				var SetName = resultarray[i].text.substring(9,resultarray[i].text.lastIndexOf('</'));
				setCookie('Name',SetName);
				addDebugMsg('[cmd] New Name received: "' + SetName + '"');
			}
			else
			{
				addDebugMsg(resultarray[i].text);
				//einkommende nachricht
				addMsg('Support',resultarray[i].text,false);
			}
		}
		if (firstcall)
		{
			firstcall = false;
			sendURL(document.URL);   //new
			
		}
		//parseXML(xmldoc.documentElement);
	}
}

function getMessages()
{
  if (xmlhttp)
  {
		//addDebugMsg('[cmd] Check Messages');
		xmlhttp.open("POST", "http://www.funfoxentertainment.com/websitedlg/index.asmx",true);
		xmlhttp.onreadystatechange = XMLReceive;
		
		xmlhttp.setRequestHeader("Man", "POST http://www.funfoxentertainment.com/websitedlg/index.asmx HTTP/1.1");
		xmlhttp.setRequestHeader("MessageType", "CALL");
		xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
		xmlhttp.setRequestHeader("SOAPAction", "http://www.cybersystems.ch/websitedlg/ReceiveMessages");

		xmlhttp.send('<?xml version="1.0" encoding="utf-8"?>'+
									'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
									'<soap:Body>'+
									'<ReceiveMessages xmlns="http://www.cybersystems.ch/websitedlg">'+
									'<Name>' + getCookie('Name') + '</Name>'+
									'</ReceiveMessages>'+
									'</soap:Body>'+
									'</soap:Envelope>');
	}
}

function sendMessage(strMsg)
{
  if (xmlhttp)
  {
		xmlhttp.open("POST", "http://www.funfoxentertainment.com/websitedlg/index.asmx",true);
		//onreadystatechange Event
		xmlhttp.onreadystatechange = function()
		{
			if (xmlhttp.readyState==4)
			{
				xmldoc.load(xmlhttp.responseXML);
				if (xmldoc.getElementsByTagName('SendMessageResult')[0].text.substr(0,9) == 'delivered')
				{
					document.getElementById('txtTX').value = ''; //sender feld clearen
					var resMsg = xmldoc.getElementsByTagName('SendMessageResult')[0].text;
					addDebugMsg('message delivered! [' + resMsg.substr(11,resMsg.length) + ']');
					if (resMsg.substr(11,5) != 'cmd: ')
					{
						addMsg('Besucher',resMsg.substr(11,resMsg.length),true);
					}
				}
				else
				{
					addDebugMsg('an error occured!');
				}
			}
		}
		
		xmlhttp.setRequestHeader("Man", "POST http://www.funfoxentertainment.com/websitedlg/index.asmx HTTP/1.1");
		xmlhttp.setRequestHeader("MessageType", "CALL");
		xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
		xmlhttp.setRequestHeader("SOAPAction", "http://www.cybersystems.ch/websitedlg/SendMessage");

		xmlhttp.send('<?xml version="1.0" encoding="utf-8"?>'+
									'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
									'<soap:Body>'+
									'<SendMessage xmlns="http://www.cybersystems.ch/websitedlg">'+
									'<strMsg>' + strMsg + '</strMsg>'+
									'</SendMessage>'+
									'</soap:Body>'+
									'</soap:Envelope>');
	}
}

function sendURL(strURL)
{
  if (xmlhttp)
  {
		xmlhttp.open("POST", "http://www.funfoxentertainment.com/websitedlg/index.asmx",true);		
		
		xmlhttp.setRequestHeader("Man", "POST http://www.funfoxentertainment.com/websitedlg/index.asmx HTTP/1.1");
		xmlhttp.setRequestHeader("MessageType", "CALL");
		xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
		xmlhttp.setRequestHeader("SOAPAction", "http://www.cybersystems.ch/websitedlg/SendURL");

		xmlhttp.send('<?xml version="1.0" encoding="utf-8"?>'+
									'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
									'<soap:Body>'+
									'<SendURL xmlns="http://www.cybersystems.ch/websitedlg">'+
									'<strURL>' + strURL + '</strURL>'+
									'</SendURL>'+
									'</soap:Body>'+
									'</soap:Envelope>');
	}
}

function startInterval(timeInterval)
{
	if (IE && DOMVer)
	{
		//init begin
		document.getElementById('txtTX').onkeydown = txtTXonkeydown;
		document.getElementById('txtTX').onkeyup   = txtTXonkeyup;
		//init end
		getMessages();
		window.setInterval('getMessages()',timeInterval);
	}
}

function txtTXonkeydown()
{
  var code = event.keyCode;
  if (code == 13)
  {
		sendMessage(document.getElementById('txtTX').value);
		clear = true;
  }
}

function txtTXonkeyup()
{
	if (clear)
	{
		clear = false;
		document.getElementById('txtTX').value = '';
	}
}

function scroll2bottom()
{
	/*var scrollPosY = document.body.scrollTop;
	var scrollPosX = document.body.scrollLeft;*/
	document.getElementById('txtRX').lastChild.scrollIntoView('false');
	/*window.scrollTo(scrollPosX,scrollPosY);*/
}
