	// Realtime Chat for PHPProbid v6.05 (c)2009 Binarywebs Developments, LLC.
	// http://www.probidv6mods.com - http://www.probidscripts.com

base_url = "http://www.alsoshop.com/";

window.onDomReady = DomReady;
function DomReady(fn)
{
	if(document.addEventListener){ //W3C
		document.addEventListener("DOMContentLoaded", fn, false);
	}else{ // IE
		document.onreadystatechange = function(){readyState(fn)}
	}
}
window.onDomReady(onReady); //execute as soon as DOM is loaded
function onReady(){
	initChat();
}
function readyState(fn)
{
	if(document.readyState == "interactive" || document.readyState == "complete")
	{
		initChat();
	}
}
function getHTTPobject(){
	var http = null;
	//Creating object of XMLHTTP in IE
	try{
		http = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e){
		try{
			http = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(oc){
			http = null;
	  	}
	}
	//Creating object of XMLHTTP in Mozilla and Safari 
	if(!http && typeof XMLHttpRequest != "undefined"){
		http = new XMLHttpRequest();
	}
	return http;
}

function send_message(sendVal){
	message_id = document.getElementById('txt_send_message');
	if (message_id.value != '' && sendVal){
		messageQueue.push(message_id.value);
		message_id.value = '';
	}
	if (httpSend.readyState == 0 || httpSend.readyState == 4){
		if (messageQueue.length !=0){
			get_query ='chatRoomId='+CRI+'&message=';
			for (i=0;i<messageQueue.length-1;i++){
				get_query += encodeURIComponent(messageQueue[i]) + messageDelimiter;
			}
				get_query += encodeURIComponent(messageQueue[i]) + messageDelimiter;
			messageQueue.length = 0;
			messageQueue = Array(0);
			httpSend.open('POST',base_url+'chat_add_message.php',true);
			httpSend.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			httpSend.setRequestHeader("Content-length", get_query.length);
			httpSend.setRequestHeader("Connection", "close");
			httpSend.send(get_query); //Send POST data
		}
	}else{
		setTimeout(send_message,500);
	}
}

function check_messages(messages){
	if (httpReceive.readyState == 4 || httpReceive.readyState == 0) {
		get_query = '?last_message_id=' + lastMessageId+'&pastMessages='+past_messages_time+'&chatRoomId='+CRI;
		httpReceive.open('GET',base_url+'chat_check_messages.php'+get_query,true);
		httpReceive.onreadystatechange = get_messages; 
		httpReceive.send(null);
	}
}

function get_messages(){
	if (httpReceive.readyState == 4){
		if (httpReceive.responseText !=''){
			var temp = httpReceive.responseText.split('<>');
			if (temp[0]){
				lastMessageId = temp[0];
			}
			if(temp[0]){
				var messages = document.getElementById('txt_messages');
				if (temp[1] !=''){
					if (messages.scrollTop == messages.scrollHeight || messages.scrollTop == currentScroll){
						canscroll = 1;
					}else{
						canscroll = 0;
					}
					messages.innerHTML += temp[1];
					if (canscroll){
						messages.scrollTop = messages.scrollHeight;
						currentScroll = messages.scrollTop;
					}
				}
			}
		}
		if (lastMessageId != 0){
			setTimeout("check_messages()",message_poll_time*1000);
		}else{
			setTimeout("check_messages()",500);
		}
	}
}

function whos_here(){
	if (httpUsers.readyState == 0 || httpUsers.readyState == 4){
		httpUsers.onreadystatechange=function(){
			if(httpUsers.readyState==4){
				if (httpUsers.responseText !=''){
					var temp = httpUsers.responseText.split('<>');
					var ulist = '';
					if (temp.length !=0){
						for (i=0;i<temp.length;i++){
							ulist += "<span style='float:left;clear:both;'>"+temp[i]+"</span>";
						}
						users = document.getElementById('txt_whos_here');
						users.innerHTML = ulist;
					}
				}
				httpUsers.abort();
	        	}
      		}
		httpUsers.open('GET',base_url+'chat_check_users.php?chatRoomId='+CRI,true);
		httpUsers.send(null);
	}
	setTimeout("whos_here()",5000);
}


function check_key(e){
	if (!e){
		e = window.event;
	}
	// Add control check later
	if (e.keyCode == 13){
		if (!e.ctrlKey){
			send_message(1);	
			return false;
		}else{
			message_id = 'txt_add_message';
			//insertAtCursor(message_id,"<br />");
		}
	}
}

function initChat(){
	CRI = chatRoomId;
	/* Configurable Variables */
		// All times are in seconds
		message_poll_time = 3; // Check for new messages every x seconds
		user_poll_time  = 10; // Check Who's Online every x seconds
		past_messages_time = 24*60*60 // Upon loading, get all messages that are up to x seconds old (currently set at 72 hours)
	/* End Configurable Variables */
	sent = 0;
	httpReceive = getHTTPobject();
	httpUsers = getHTTPobject();
	httpSend = getHTTPobject();
	messageQueue = new Array(0);
	messageDelimiter = String.fromCharCode(01);
	lastMessageId = 0;
	var messages, message_id, users;
	messages = document.getElementById('txt_messages');
	message_id = document.getElementById('txt_send_message');
	toggle_id = document.getElementById('toggle_chat');
	users = document.getElementById('txt_whos_online');
	document.getElementById('chat_visibility').toggle=1;
	startTime = new Date();
	currentScroll = 0;
	messages.innerHTML = "<i>Ready!</i>";
	if (message_id){
		message_id.focus();
	}
	whos_here();
	check_messages();
}

function toggleChat(id){
	if (chat_visibility.toggle == 1){
		chat_visibility.toggle = 0;
		chat_visibility.style.display = 'none';
		document.getElementById('toggle_chat').innerHTML = '[Show Chat]';
	}else{
		chat_visibility.toggle = 1;
		chat_visibility.style.display = '';
		document.getElementById('toggle_chat').innerHTML = '[Show Chat]';
	}
}