	function thisMovie(movieName)
	{
  		if (navigator.appName.indexOf("Microsoft") != -1)
		{
			return window[movieName];
  		} else {
	  		return document[movieName];
		}
	}
	
	function getAjax()
	{
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
		{
			try
			{
				xmlhttp = new XMLHttpRequest();
			} catch (e)
			{
				xmlhttp = false;
			}
		}
		return xmlhttp;
	}

	function SocketConnected()
	{
		// Get new auth key
		xmlhttp = getAjax();
		xmlhttp.open("GET", "/cp.ashx?" + Math.random(), false);
		xmlhttp.send("");
		authkey = "~" + xmlhttp.responseText + "|0|0000000000000000000000000000000000000000|0";
		thisMovie("XMLSocket").SocketSendData(authkey);
		addMessage("SERVER", "<b>Authorizing...</b>"); 
		debug("Connecting to server");
	}

	function SocketReady()
	{
		if(document.getElementById("message").disabled || document.getElementById("ScrollDiv").style.display != "")
		{
			addMessage("SERVER", "<b>Connecting to server...</b>");
			thisMovie("XMLSocket").LoadSecurity("xmlsocket://" + ServerHost + ":" + ServerPort);
			thisMovie("XMLSocket").SocketConnect(ServerHost, ServerPort);
		}
		if(document.getElementById("ScrollDiv").style.display!="")
			setTimeout("SocketReady()", 40000);
	}

	function SocketError(value)
	{

		debug("Connection unsuccessful");
		//alert("Could not open connection to server: " + value);
		document.getElementById("message").disabled = true;
		document.getElementById("Submit").disabled = true;
		document.getElementById("rpc").disabled=true;

		var di = document.getElementById("vidContainer");
		di.style.border="solid black 1px";
			
		var di = document.getElementById("vidContainer").innerHTML = "<h2><br /><br /><br />Session Closed</h2>";
	}


	function SocketDataReceived(Packet)
	{
		//var d=document.createElement("div");
		//d.innerHTML=Packet; 
		//Packet = document.all ? d.innerText : d.textContent;
		
		if(Packet.indexOf(";connected=true;") > 0)
		{
			document.getElementById("message").disabled = false;
			document.getElementById("Submit").disabled = false;
			document.getElementById("rpc").disabled = false;
		}

		eval(Packet);
	};
	
	function SocketDisconnected()
	{
		debug("Connection to server lost");
		connected = false;
		document.getElementById("message").disabled = true;
		document.getElementById("Submit").disabled = true;
		document.getElementById("rpc").disabled=true;

		var di = document.getElementById("vidContainer");
		di.style.border="solid black 1px";

		var di = document.getElementById("vidContainer").innerHTML = "<h2><br /><br /><br />Session Closed</h2>";
		
	};

	function close()
	{
		SocketDisconnected();
	}

	function SendMessage()
	{
		var message = escape(document.getElementById("message").value);
		if(message.replace(" ", "") == "") return false;
		document.getElementById("message").value = "";

		thisMovie("XMLSocket").SocketSendData("P" + message);
		return false;
	}
	function DetectButtonPress(e) 
	{
		window.setTimeout("document.getElementById('message').focus()", 20);
		document.getElementById("Submit").disabled=false;

		var charCode;
		if(e && e.which)
			charCode = e.which
		else
		{
			e = window.event;
			charCode = e.keyCode;
		}
		if (charCode == 13)
		{
			SendMessage();
			return false;
		}
		else
		{
			return true;
		}
	}


	function cReload()
	{
		//window.location.href="/fw.php?id=" + cid;
		close();
	}

	function debug(str)
	{
		/*a = document.getElementById("debugd");
		a.value += str + "\n";*/
	}


	function reqPriv()
	{
		/*xmls.send("z\0");

		addMessage("SERVER", "<b>Private chat request sent.</b>");
		document.getElementById("rpc").disabled=true;*/
	}


	function memberChatPrompt(rate)
	{
		
	}

	function voyeurChatPrompt(rate)
	{
		
	}
	

	if (document.layers) {
	    document.captureEvents(Event.MOUSEMOVE);
	    document.onmousemove = captureMousePosition;
	} else if (document.all) {
	    document.onmousemove = captureMousePosition;
	} else if (document.getElementById) {
	    document.onmousemove = captureMousePosition;
	}

	xMousePos = 0;
	yMousePos = 0;
	xMousePosMax = 0;
	yMousePosMax = 0;

	function captureMousePosition(e) {
	    if (document.layers) {
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;
	    } else if (document.all) {
		xMousePos = window.event.x+document.body.scrollLeft;
		yMousePos = window.event.y+document.body.scrollTop;
		xMousePosMax = document.body.clientWidth+document.body.scrollLeft;
		yMousePosMax = document.body.clientHeight+document.body.scrollTop;
	    } else if (document.getElementById) {
		xMousePos = e.pageX;
		yMousePos = e.pageY;
		xMousePosMax = window.innerWidth+window.pageXOffset;
		yMousePosMax = window.innerHeight+window.pageYOffset;
	    }
	}

	function displayEmoticons()
	{
		if(document.getElementById("emoticons").style.display == "block") return hideEmoticons();
		var x = document.getElementById("emoticons");
		x.style.display = "block";
		x.style.left = xMousePos;
		x.style.top  = yMousePos - cascadedstyle(x, "height", "height").replace("px", "") - 5;
	}
	function cascadedstyle(el, cssproperty, csspropertyNS){
		if (el.currentStyle) //if IE5+
			return el.currentStyle[cssproperty]
		else if (window.getComputedStyle)
		{ //if NS6+
			var elstyle=window.getComputedStyle(el, "")
			return elstyle.getPropertyValue(csspropertyNS)
		}
	}

	function hideEmoticons()
	{
		document.getElementById("emoticons").style.display = "none";
	}

	function addEmote(o)
	{
		document.getElementById("message").value = document.getElementById("message").value + o;
		hideEmoticons();
	}