///////////////////// AJAX /////////////////////////
var SENDER_TIMER=null;
var bad="<img src='images/invalid.gif' border='0' alt='Error' align='absmiddle' /> ";
var good="<img src='images/validate.gif' border='0' alt='Valid' align='absmiddle' /> ";	
var req=new Array();
var The_ID=new Array();
function sR(url,params,HttpMethod,anyID){
	if($(anyID))
	{
		var wids=$(anyID).offsetWidth;
		var hei=$(anyID).offsetHeight;		
		var lef=$(anyID).offsetLeft;
		var rig=$(anyID).offsetTop;
	}
	if($("admin_loading") && $(anyID)){
		var ww=parseInt($("admin_loading").style.width);
		var hh=parseInt($("admin_loading").style.height);	
		$("admin_loading").style.left=(parseInt(lef)+(parseInt(wids)/2)-(ww/2))+"px";
		$("admin_loading").style.top=(parseInt(rig)+(parseInt(hei)/2)-(hh/2))+"px";			
	}						
	if (!HttpMethod)
	{
		HttpMethod="POST";
	}
	req.push(initXMLHTTPRequest());
	The_ID.push(anyID);
	i=parseInt(req.length)-1;
		if (req[i]){
			req[i].open(HttpMethod,url,true);
			req[i].onreadystatechange=onReadyState;
			req[i].setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
			req[i].send(params);
		}
}
function initXMLHTTPRequest(){
	var xRequest=null;
	if (window.XMLHttpRequest)
	{
		xRequest=new XMLHttpRequest();
	} 
	else if (window.ActiveXObject)
	{
		xRequest=new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
	}
return xRequest;
}
function onReadyState(){
	for (i=0;i<req.length;i++)
	{
		if (req[i]) {
			var ready=req[i].readyState;
			var data=null;			
			if (ready==4) {	
				data=req[i].responseText;
				pass_ID=The_ID[i];
				The_ID.splice(i,1);
				req.splice(i,1);													
				if($("admin_loading"))
				{
					$("admin_loading").style.visibility="hidden";
				}
				if(data.indexOf("[DESIGN]")>-1)
				{
					data=data.replace("[DESIGN]","");
					toConsole(data,pass_ID,"R");
				}
				else if(data.indexOf("[VALIDATE]")>-1)
				{
					data=data.replace("[VALIDATE]","");
					var splitted=data.split(":");
					if(splitted[0]=="good"){
						set("good",splitted[1]);
						$(splitted[1]).innerHTML=good+splitted[2];
					}else{
						set("bad",splitted[1]);
						$(splitted[1]).innerHTML=bad+splitted[2];
					}

				}
				else if(data.indexOf("[MSGBOX]")>-1)
				{
					alert(data.replace("[MSGBOX]",""));
				}
				else if(data.indexOf("[SIGN_IN]")>-1)
				{
					$("sign_in_form").submit();
				}				
				else if(data.indexOf("[URL]")>-1)
				{
					date=data.replace("[URL]","");
					if(data.length==0){
						window.location.href="index.php?"+data;
					}else {
						window.location.href="index.php";
					}
				}
				else if(data.indexOf("[NULL]")>-1)
				{
				}				
				else if(data.indexOf("[REQUESTCHAT]")>-1)
				{   
					data=data.replace("[REQUESTCHAT]:","");
					var splitted_data=data.split(':');
					if($("my_text")){
						// DO Nothing Chat Is Already There . . . 
					}
					else{
						if($("chat_content")){
							$("chat_content").innerHTML="";		
						}					
						RUN_CHAT_TIMER=setTimeout("run_chat();",1000);				
						put_sender(splitted_data[0],"msg_to",splitted_data[2],splitted_data[1]);
						get_messages('support/');				
					}					
				}
				else if(data.indexOf("[GETSCART]")>-1) // Get Shopping Cart Contents
				{   
					data=data.replace("[GETSCART]:","");
					var splitted_data=data.split(':');					
					send_messages("support/","[SCART]"+getCookie("LC_CART"));
				}				
				else if(data.indexOf("[SENDURL]")>-1)
				{
					data=data.replace("[MSG]","");
					var datas=data.split("[SENDURL]");
					var splits=datas[1].split("*");
					var the_final=datas[0]+"<a target='_blank' href="+splits[0]+">"+splits[1]+"</a>";
					toConsole(the_final,pass_ID,"A");
					last_message=time_counter;
				}
				else if(data.indexOf("[FORCEURL]")>-1)
				{
					data=data.replace("[MSG]","");
					datas=data.split("[FORCEURL]");
					datas[1]=datas[1].replace("<BR>","");
					datas[1]=datas[1].replace("<br />","");					
					datas[1]=datas[1].replace("<BR>/","");					
					datas[1]=datas[1].replace("<br />/","");					
					datas[1]=datas[1].replace("<br />/","");				
					window.open(datas[1],"_blank");					
					last_message=time_counter;
				}
				else if(data.indexOf("<!--CHAT-->")>-1){
					toConsole(data,pass_ID,"R");
				}
				else if(data.indexOf("[ANSWEREDBY]")>-1)
				{
					data=data.replace("[ANSWEREDBY]","");
					data=data.replace("[MSG]","");
					var parts=data.split(":");
					$("msg_to").value=parts[1];
					$("my_text").readOnly=false;
					$("my_text").value="";
					clearTimeout(xtime);
					toConsole("You Are Now Talking To "+parts[2]+"<br />",pass_ID,"A");
					if($("on_off"))$("on_off").src="images/on.gif";
					if($("chat_holder")){
						$("chat_holder").innerHTML='<span class=chat_on>Talking To : '+parts[2]+'</span>';
					}
				}
				else if(data.indexOf("[PING]")>-1)
				{
					last_response=time_counter; // Setting Last Response Time
					test_time=0;  // Setting The test Time to Zero
					last_message=time_counter					
//					toConsole(data,pass_ID,"A");					
					send_messages("support/","[PONG]");
				}
				else if(data.indexOf("[PONG]")>-1)
				{
//					toConsole(data,pass_ID,"A");
					last_message=time_counter
					last_response=time_counter; // Setting Last Response Time					
					test_time=0;  // Setting The test Time to Zero
				}
				else if(data.indexOf("[NOMSGS]")>-1)
				{
					last_response=time_counter; // Setting Last Response Time
				}
				else if(data.indexOf("[MSG]")>-1)
				{									
					//----> Setting Timers To Current Event <-----//
					last_message=time_counter; // Setting Last Message Receiving Time
					last_response=time_counter; // Setting Last Response Time
					test_time=0;  // Setting The test Time to Zero
					//----> Handling The Message Data
					data=data.replace("[MSG]","");
					toConsole(data,pass_ID,"A");
					if(focused==false)blink_chat(1);
					else blink_chat(2);
					document.focus;						
				}
				else if(data.indexOf("[1STMSG]")>-1){
					data=data.replace("[1STMSG]","");
					if($(pass_ID).innerHTML==""){
						toConsole(data,pass_ID,"A");
						document.focus;
						$("my_text").focus;						
					}		
				}
				else if(data.indexOf("[NULL]")>-1)
				{
					
				}			
				else if(data.indexOf("<!--BUNDLE-->")>-1)
				{	data2=data.split("[:::]");
					$(pass_ID).innerHTML="<div id='"+pass_ID+"T2'></div>";
				//	$(pass_ID).style.display="block"
					$(pass_ID+"T2").style.display="none";
					$(pass_ID+"T2").style.height="0px";
					$(pass_ID+"T2").style.overflow="hidden";					
					$(pass_ID+"T2").innerHTML=data2[0];
					if(data2[1])eval(data2[1]);
					toggle(pass_ID+"T2");
				}				
				else{
					toConsole(data,pass_ID,"R");
				}
			}		
			else
			{
				if($("admin_loading"))
				{
					$("admin_loading").style.visibility="visible";
				}				
			}
		}	
	}
}
function toConsole(data,pass_ID,methods)
{	
	if(!methods)var methods="R";
	switch(methods.toUpperCase())
	{		
		case "C":
			
		break;
		case "R":	
			if (data && $(pass_ID)) 
			{
				if(typeof $(pass_ID).value != "undefined"){
					$(pass_ID).value=data;
				}else{
					$(pass_ID).innerHTML=data;
				}
			}
		break;
		case "A":
			if (data) 
			{
				var max_width=parseInt($(pass_ID).style.width);
				data=wrapText(data,max_width);					
				if($(pass_ID))$(pass_ID).innerHTML=$(pass_ID).innerHTML+data;
				scrollToBottom($(pass_ID),true);									
			}	
		break;
	 }
}
////////////////////////// CHAT ////////////////////////////////////////
var time_counter=0;
var msg_counter;
var last_message=0;
var last_response=0;
var test_time=0;
var xChat=setTimeout("check_for_chat()",3000);
function check_for_chat(){
	if(document.location.toString().indexOf("admin.php")>-1){
		clearTimeout(xChat);
	}
	else
	{	
		if($('rect')){
			$('rect').style.width="10px";
			$('rect').style.height="10px";
		}
		sR("support/op.php?op=check_for_chat&page_loc="+document.location.toString(),"","","");
		xChat=setTimeout("check_for_chat()",8000);
	}		
}
// Special Commands Exception List
var EXCEPTION_LIST=new Array("[MSG]","[PING]","[PONG]","[SENDURL]","[FORCEURL]","[PING]","[TRANSFER_TO]","[END_CHAT]","[GET_SPECIAL_INFO]");

function check_key(e){
	if(typeof(e.which)!="undefined"){
		if(e.which==13 && !e.shiftKey)
		{
			send_messages("support/");
		}			
	}
	else{
		if(e.keyCode==13 && !e.shiftKey)
		{
			send_messages("support/");
		}
	}
}
function IN_EXCEPTIONS(MSG_TEXT){
	for(var i=0;i<EXCEPTION_LIST.length;i++){
		if(MSG_TEXT.indexOf(EXCEPTION_LIST[i])>-1){
//			alert("'"+MSG_TEXT+"' !=  '"+EXCEPTION_LIST[i]+"'");
				return true;
		}
	}
	return false;
}
function send_messages(XTRApath,msg_here)
{
	if($("my_text").value=="" && !msg_here)return;
	var max_WIDTH=parseInt($("chat_area").style.width);
	if($("serial"))var SERIAL=$("serial").value;
	else SERIAL="";
	if(!msg_here)var msg_content=$("my_text").value;
	else msg_content=msg_here;
	var msg_to=$("msg_to").value;
	sR(XTRApath+"op.php?op=send_messages","&serial="+SERIAL+"&msg_content="+msg_content+"&msg_to="+msg_to,"","chat_area");
	var IN_LIST=IN_EXCEPTIONS(msg_content);
	$("my_text").value="";
	msg_content="<b>Me: </b>"+msg_content+"";
	var final_msg=wrapText(msg_content,max_WIDTH);
	if(!IN_LIST)
	{
		$("chat_area").innerHTML=$("chat_area").innerHTML+"<span class='me'>"+final_msg+"</span><br />";
		scrollToBottom($("chat_area"),true);		
	}
	$("my_text").value='';	
}
function get_messages(XTRApath)
{
if(document.getElementById("my_text"))
if(document.getElementById("my_text").readOnly!=true)
{	
//////// Checking For Disconnection Of The Other Side In Chat
	if(last_message<(time_counter-15) && test_time==0)
	{
		send_messages("support/","[PING]");
		test_time=time_counter;
	}else if(last_message<(time_counter-15) && test_time<(time_counter-10)){
		clearTimeout(msg_counter);
		clearTimeout(xtime);
		time_counter=0;
		msg_counter;
		last_message=0;
		last_response=0;
		test_time=0;	
		alert("!The Other Side Was Disconnected\n Chat Will End Now . .");		
		$("chat_place").style.visibility="hidden";
		$("chat_content").innerHTML="";
		$("chat_box").innerHTML="";
		xChat=setTimeout("check_for_chat()",8000);
	}
//////// Checking For Connectivity Of Client To The Server 
	if(last_response<(time_counter-10)){
		if(confirm("Your Connection Seems To Be Disconnected Or Very Slow\n"
				   +"Chat Will Be Closed Now Click OK To Confirm"))
		{
			clearTimeout(msg_counter);
			clearTimeout(xtime);
			$("chat_place").style.visibility="hidden";
			$("chat_content").innerHTML="";
			$("chat_box").innerHTML="";
			xChat=setTimeout("check_for_chat()",8000);
		}
	}
}
	if(!XTRApath)XTRApath="";
	if ($("msg_to"))
	{
		var msg_to=$("msg_to").value;	
		time_counter=time_counter+2;
		sR(XTRApath+"op.php?op=get_messages&messages=new&msg_from="+msg_to,"","","chat_area");
	}
	msg_counter=setTimeout("get_messages('"+XTRApath+"')",4000);	
}
function scrollToBottom(el, force) {
	var bottom = el.scrollHeight - el.clientHeight;
	if (el.scrollTop == arguments.callee.scrollAtBottom || force === true) {
		el.scrollTop = bottom;
		arguments.callee.scrollAtBottom = bottom;
	}
}
function end_chat(with2){
	if(!with2)with2="";
	if($('msg_to')){	
		var msg_to=$('msg_to').value+"";		
		decrease("chat_place",z.length,1);
//		$("chat_box").innerHTML="";		
		clearTimeout(msg_counter);
		clearTimeout(xtime);
		xChat=setTimeout("check_for_chat()",8000);
//		$("chat_content").innerHTML="";		
		sR("support/op.php?op=end_chat&with="+msg_to,"","","");		
	}else if(with2!=""){	
		var msg_to=with2;		
		if($("chat_place"))$("chat_place").style.visibility="hidden";
		if($("chat_content"))$("chat_content").innerHTML="";
		if($("chat_box"))$("chat_box").innerHTML="";		
		clearTimeout(msg_counter);
		clearTimeout(xtime);
		xChat=setTimeout("check_for_chat()",8000);	
		sR("support/op.php?op=end_chat&with="+msg_to,"","","");		
	}
}
function minimize_chat(){
	if($('chat_place'))
	{
		if($('chat_box')){
			$('chat_box').innerHTML=
			"<span class=handed onclick=maximize_chat();>[Pop Out]</span><br />"+
			"<span class=handed onclick=pop_chat();>[Pop Up]</span><br />"+
			$('chat_content').innerHTML.replace("'","\'");
		}
		if($('chat_content')){
			$('chat_content').innerHTML="";
		}
		if($('chat_place')){
			$("chat_place").style.visibility='hidden';
		}
	}
}
function maximize_chat(){
	if($('chat_place'))
	{
		var XXCHAT=$('chat_box').innerHTML;
		XXCHAT=XXCHAT.replace("<SPAN class=handed onclick=maximize_chat();>[Pop Out]</SPAN><BR>","");
		XXCHAT=XXCHAT.replace('<span class="handed" onclick="maximize_chat();">[Pop Out]</span><br />',"");
		XXCHAT=XXCHAT.replace("<SPAN class=handed onclick=pop_chat();>[Pop Up]</SPAN><BR>","");
		XXCHAT=XXCHAT.replace('<span class="handed" onclick="pop_chat();">[Pop Up]</span><br />',"");				
		$('chat_content').innerHTML=XXCHAT;
		$('chat_box').innerHTML="";	
		$("chat_place").style.visibility='visible';		
	}
}
var mychat=null;
var XXCHAT=null;
function pop_chat(){
	if($('chat_place'))
	{
		XXCHAT=$('chat_box').innerHTML+$('chat_content').innerHTML;
		XXCHAT=XXCHAT.replace("<SPAN class=handed onclick=maximize_chat();>[Pop Out]</SPAN><BR>","");
		XXCHAT=XXCHAT.replace('<span class="handed" onclick="maximize_chat();">[Pop Out]</span><br />',"");		
		XXCHAT=XXCHAT.replace("<SPAN class=handed onclick=pop_chat();>[Pop Up]</SPAN><BR>","");
		XXCHAT=XXCHAT.replace('<span class="handed" onclick="pop_chat();">[Pop Up]</span><br />',"");				
		mychat=window.open("support/chat3.php","popup_chat","height=170,width=235,resizable=no,status=no,scrollbars=no");
		fill_chat();
		$('chat_box').innerHTML="";	
		$('chat_content').innerHTML="";	
		$("chat_place").style.visibility='hidden';
	}
}
var POP_TIMER;
function fill_chat(){
	if(mychat) {
		if(mychat.document.getElementById("chat_place"))
		{
			mychat.document.title="chat\t\t";
			mychat.document.getElementById("chat_place").innerHTML=XXCHAT;
			clearTimeout(POP_TIMER);
			mychat.focus();
		}
		else
		{
			POP_TIMER=setTimeout("fill_chat()",1000);
		}
	}
	else
	{
		POP_TIMER=setTimeout("fill_chat()",1000);
	}
}
var RUN_CHAT_TIMER=null;
function run_chat(session_here){
	sR('support/chat2.php','nick=Me&customer_session='+session_here+'','POST','chat_content');
	clearTimeout(RUN_CHAT_TIMER);
}
function wrapText(msg_content,MAX_WIDTH)
{
	var final_msg="";
	var this_line="";
	for(i=0;i<msg_content.length;i++){
		$("text_TD").innerHTML=$("text_TD").innerHTML+msg_content.charAt(i);
		if(parseInt( $("text_TABLE").offsetWidth ) < MAX_WIDTH)
		{
			this_line=this_line+msg_content.charAt(i);
		}else{
			final_msg=final_msg+this_line+" ";
			this_line=msg_content.charAt(i);
			$("text_TD").innerHTML=msg_content.charAt(i);
		}
	}
	if(this_line!="")final_msg=final_msg+this_line+" ";
	final_msg=final_msg.replace("< b>","<b>");
	final_msg=final_msg.replace("< b>","</b>");	
	final_msg=final_msg.replace("< br>","<br />");
	final_msg=final_msg.replace("< br/>","<br />");
	final_msg=final_msg.replace("< B>","<B>");
	final_msg=final_msg.replace("< B>","</B>");	
	final_msg=final_msg.replace("< BR>","<BR />");
	final_msg=final_msg.replace("< BR/>","<BR />");	
	return final_msg;
}
var blink_timer;
function blink_chat(chat_state,bgon,bgoff,chatID){
	if($('chat_top')){
		if(!bgon)bgon="URL(design/bogzy_design_images/top_bg_02.gif)";
		if(!bgoff)bgoff="#CC0000";
		if(!chatID)chatID="chat_top";
		switch(chat_state)
		{
			case 0:
				$(chatID).style.background=bgon;
				blink_timer=setTimeout("blink_chat(1,'"+bgon+"','"+bgoff+"','"+chatID+"')",750);			
			break;	
			case 1:
				$(chatID).style.background=bgoff;
				blink_timer=setTimeout("blink_chat(0,'"+bgon+"','"+bgoff+"','"+chatID+"')",750);
			break;
			case 2:
				$(chatID).style.background=bgon;
				clearTimeout(blink_timer);
			break;		
		}
	}
	else{
		clearTimeout(blink_timer);
	}
}
var focused=false;
function put_sender(sender_ID,sender_INPUT,SERIAL,nickname){
	clearTimeout(SENDER_TIMER);
	if(!nickname)nickname="";
	if($('chat_area')){
		if($(sender_INPUT)){		
		$(sender_INPUT).value=sender_ID;
		$("serial").value=SERIAL;		
		alertSize();
		getScrollXY();
		if($("chat_hider"))$("chat_hider").overflow="hidden";
		$("chat_place").style.left=(parseInt(myWidth)+parseInt(scrOfX)-285)+"px";
		$("chat_place").style.top=(parseInt(myHeight)+parseInt(scrOfY)-3)+"px";
		$("chat_place").style.visibility="visible";		
		show_now("chat_place",1);
		clearTimeout(SENDER_TIMER);
		if($('chat_place'))$('chat_place').onmousedown=function(){
			blink_chat(2);
		}
		if($('my_text'))$('my_text').onfocus=function()
		{
			focused=true;
			clearTimeout(blink_timer);
			this.style.marginTop="0px";						
			this.style.border="#006799 2px solid";
			blink_chat(2);			
		}			
		if($('chat_area'))
		$('chat_area').innerHTML="You're Now Talking To "+nickname+ "<br />";	
		blink_timer=setTimeout("blink_chat(1)",1000);
	}else{
		SENDER_TIMER=setTimeout("put_sender('"+sender_ID+"','"+sender_INPUT+"','"+SERIAL+"','"+nickname+"')",1000);		
	}
	}else{
		SENDER_TIMER=setTimeout("put_sender('"+sender_ID+"','"+sender_INPUT+"','"+SERIAL+"','"+nickname+"')",2000);
	}
}
