// JavaScript Document

var www_url = '';

//live chat
var should_check_chat = null;
function set_chat_check () {
	//go ahead and do one time when page loads
	check_chat('');
	should_check_chat = setInterval("check_chat('')", 7000);
}

var ischecking_for_chat = false;
function check_chat (newtxt) {
	if ((!ischecking_for_chat) || (newtxt != '')) {
		ischecking_for_chat = true;
		var url = "init_ajax.php";
		var payload = "ajaxpage=" + AjaxTCR.data.encodeValue('CheckChat.php') + "&chat_txt=" + AjaxTCR.data.encodeValue(newtxt);
		var copts = { expires: 0 };
		AjaxTCR.comm.cache.setOptions(copts);
		var options = { method: "POST",
						payload: payload,
						preventCache: true,
						timeout: 5000,
						retries: 3,
						onTimeOut: check_fail,
						//responseContentType: "text/xml",
						onFail: check_fail,
						onSuccess: finish_check_chat
		};
		AjaxTCR.comm.sendRequest(url,options);
	}
}

function check_fail (resp) {
	ischecking_for_chat = false;
	is_getting_image = false;
	//document.getElementById('testplacement').innerHTML = 'fsda';
}

var chat_box_isshowing = false;
var isfirsttime_chat = true;
function finish_check_chat (respXML) {
	//display html to user
	ischecking_for_chat = false;
	var boxdiv = document.getElementById('chat_box_content');
	//document.getElementById('testplacement').innerHTML = '<textarea style="width:100px;height:50px;" name="we">' + respXML['responseText'] + '</textarea>';
	//respXML = AjaxTCR.data.encodeAsHTML(respXML);
	
	//sometimes returns actual xml object, so check that
	var testXML = respXML['responseXML'];
	var testpass = true;
	try {
		if (testXML.getElementsByTagName("warningmsg")[0].hasChildNodes() == true) {
			theresult = testXML.getElementsByTagName("warningmsg")[0].firstChild.data;
		}
	} catch (err) {
		testpass = false;
	}
	if (testpass) {
		respXML = respXML['responseXML'];
	} else {
		respXML = AjaxTCR.data.serializeXMLString(respXML['responseText']);
	}
	
	//document.getElementById('testplacement').innerHTML = respXML[i];
	 //var teststr = '';
	 //for (var i in respXML) {
		 //if (i != 'onSuccess') {
			//teststr = teststr + i + ' = ' + respXML[i] + ' --- ' + '<br><br>'; 
		 //}
	 //}
	 //document.getElementById('testplacement').innerHTML = '"' + teststr + '"';
	 //document.getElementById('testplacement').innerHTML = '"' + teststr + '"';
	 //respXML = AjaxTCR.data.serializeXMLString(respXML['responseText']);
	//alert (AjaxTCR.data.serializeXML(respXML));
	if (respXML) {
		var theresult = '';
		if (respXML.getElementsByTagName("warningmsg")[0].hasChildNodes() == true) {
			theresult = respXML.getElementsByTagName("warningmsg")[0].firstChild.data;
		}
		if (theresult != '') {
			boxdiv.innerHTML = theresult;
		} else {
			//everything looks good, display html
			theresult = 'Error Occurred.';
			var newhtml = '';
			var stopchat = false;
			var ipblocked = false;
			if (respXML.getElementsByTagName("chatshouldshow")[0].hasChildNodes() == true) {
				try {
					stopchat = respXML.getElementsByTagName("chatshouldshow")[0].firstChild.data;
				} catch (err) { }
			}
			if (respXML.getElementsByTagName("ipisblocked")[0].hasChildNodes() == true) {
				try {
					ipblocked = respXML.getElementsByTagName("ipisblocked")[0].firstChild.data;
				} catch (err) { }
			}
			
			var hidechat = false;
			if (respXML.getElementsByTagName("chatishiding")[0].hasChildNodes() == true) {
				try {
					hidechat = respXML.getElementsByTagName("chatishiding")[0].firstChild.data;
					if (hidechat == '1') {
						chat_is_hidden = true;
					} else {
						chat_is_hidden = false;
					}
				} catch (err) { }
			}
			if (!istryingtostop && !ishidingchat) {
				if (stopchat == '1') {
					//customer wants to not be bothered by chat
					if (should_check_chat) {
						clearInterval(should_check_chat);
						should_check_chat = null;			
					}
					getridof_chatbox();	
					chat_box_isshowing = false;
				} else {
					if (ipblocked == '1') {
						//do same thing as stopchat, excpet we dont have to hide box
						if (should_check_chat) {
							clearInterval(should_check_chat);
							should_check_chat = null;			
						}
					}
					var chatisempty = true;
					if (respXML.getElementsByTagName("chatisempty")[0].hasChildNodes() == true) {
						try {
							chatisempty = respXML.getElementsByTagName("chatisempty")[0].firstChild.data;
						} catch (err) {
							chatisempty = true;
						}
					}
					if (respXML.getElementsByTagName("chatcontent")[0].hasChildNodes() == true) {
						try {
							newhtml = respXML.getElementsByTagName("chatcontent")[0].firstChild.data;
						} catch (err) {
							newhtml = theresult;
						}
					} else {
						newhtml = theresult;
					}
					var adminimgexists = '0';
					if (respXML.getElementsByTagName("isimage")[0].hasChildNodes() == true) {
						try {
							adminimgexists = respXML.getElementsByTagName("isimage")[0].firstChild.data;
						} catch (err) { }
					} 
					var adminimg = '';
					if (respXML.getElementsByTagName("adminimg")[0].hasChildNodes() == true) {
						try {
							adminimg = respXML.getElementsByTagName("adminimg")[0].firstChild.data;
						} catch (err) { }
					}
					adminhasimage = adminimgexists;
					imgbox = document.getElementById('chat_box_adminbox');
					if (imgbox.innerHTML != adminimg) {
						if (adminhasimage == '1') {
							imgbox.innerHTML = adminimg;
						} else {
							imgbox.innerHTML = '';
							imgbox.style.display = 'none';
						}
					}
					origH = boxdiv.offsetHeight;
					boxdiv.innerHTML = newhtml;
					if (chatisempty != '1') {
						if (!chat_box_isshowing && !chat_is_hidden) {
							make_chat_box_visible();
							if (isfirsttime_chat) {
								position_chat_box();
								fix_chat_innerdiv('chat_box_contentwrapper', 'chat_box_content');
								isfirsttime_chat = false;
							}
						} else if (chat_is_hidden) {
							if (isfirsttime_chat) {
								//show, but hide chat box
								make_chat_box_visible();
								position_chat_box();
								chat_actual_hide();
								fix_chat_innerdiv('chat_box_contentwrapper', 'chat_box_content');
								isfirsttime_chat = false;
							} else {
								fix_chat_innerdiv_adjust(origH, 'chat_box_contentwrapper', 'chat_box_content');
							}
						} else if (chat_box_isshowing) {
							fix_chat_innerdiv_adjust(origH, 'chat_box_contentwrapper', 'chat_box_content');
						}
					}
				}
			}
		}
	} else {
		boxdiv.innerHTML = 'Unknown Error! Please try your request again later.';
	}
}

var adminhasimage = '0';
function position_chat_box () {
	var H = document.getElementById('chat_box_contentwrapper').offsetHeight;
	d2 = document.getElementById('chat_box_content');
	var H2 = d2.offsetHeight;
	//alert (H + ' / ' + H2);
	var v = parseInt(H) - parseInt(H2);
	if (v < 0) {
		var newY = d2.offsetTop + v;
		d2.style.top = newY + 'px';
	}
}

var is_stopping_chat = false;
var istryingtostop = false;
function chat_leavemealone () {
	//send message to server to stop
	istryingtostop = true;
	if (confirm("This will disable the chat feature. It will no longer appear as you browse our site. Continue?")) {
		if (should_check_chat) {
			clearInterval(should_check_chat);
			should_check_chat = null;
		}
		getridof_chatbox();
		if (!is_stopping_chat) {
			is_stopping_chat = true;
			
			var url = "init_ajax.php";
			var payload = "ajaxpage=" + AjaxTCR.data.encodeValue('StopChat.php');
			var copts = { expires: 0 };
			AjaxTCR.comm.cache.setOptions(copts);
			var options = { method: "POST",
							payload: payload,
							preventCache: true,
							timeout: 5000,
							retries: 3,
							onTimeOut: check_fail,
							//responseContentType: "text/xml",
							onFail: check_fail,
							onSuccess: finish_chat_leavemealone
			};
			AjaxTCR.comm.sendRequest(url,options);
		}
	}
	istryingtostop = false;
}

function finish_chat_leavemealone (resp) {
	is_stopping_chat = false;
}

function getridof_chatbox () {
	//hide completely the chat box
	document.getElementById('chat_box_customer').style.display = 'none';
	chat_box_isshowing = false;
	chat_is_hidden = false;
	document.getElementById('chat_box_adminbox').style.display = 'none';
}

function make_chat_box_visible2 () {
	if (chat_is_hidden) {
		make_chat_box_visible();
	} else {
		chat_hide();
	}
}

function make_chat_box_visible () {
	//show box
	chatbox = document.getElementById('chat_box_customer');
	chatbox.style.display = 'block';
	var thewidth = chatbox.offsetWidth;
	var theheight = chatbox.offsetHeight;
	var arWinSize = getWindowDims();
	var newX = 0;
	var newY = 0;
	newY = (parseInt(arWinSize[1]) / 2) - (parseInt(theheight) / 2);
	if (newY + theheight > arWinSize[1]) {
		//off page!
		newY = newY - theheight;
		if (newY < 0) {
			newY = 0;
		}
	}
	chatbox.style.left = newX + 'px';
	chatbox.style.top = newY + 'px';
	chat_box_isshowing = true;
	if (adminhasimage == '1') {
		imgbox = document.getElementById('chat_box_adminbox');
		imgbox.style.display = 'block';
		imgbox.style.left = chatbox.style.left;
		theheight = imgbox.offsetHeight;
		if (theheight < 76) {
			theheight = 76;
		}
		newY = newY - theheight;
		imgbox.style.top = newY + 'px';
	}
	if (chat_is_hidden && !isfirsttime_chat) {
		//switch back to showing status
		var url = "init_ajax.php";
		var payload = "ajaxpage=" + AjaxTCR.data.encodeValue('StopChat.php') + "&ishiding=0";
		var copts = { expires: 0 };
		AjaxTCR.comm.cache.setOptions(copts);
		var options = { method: "POST",
						payload: payload,
						preventCache: true,
						timeout: 5000,
						retries: 3,
						onTimeOut: check_fail,
						onFail: check_fail
		};
		AjaxTCR.comm.sendRequest(url,options);
		chat_is_hidden = false;
	}
}

var chat_is_hidden = false;
var ishidingchat = false;
function chat_hide () {
	//hide, but show part of box
	ishidingchat = true;
	chat_actual_hide();
	chat_is_hidden = true;
	//switch back to hiding status
	var url = "init_ajax.php";
	var payload = "ajaxpage=" + AjaxTCR.data.encodeValue('StopChat.php') + "&ishiding=1";
	var copts = { expires: 0 };
	AjaxTCR.comm.cache.setOptions(copts);
	var options = { method: "POST",
					payload: payload,
					preventCache: true,
					timeout: 5000,
					retries: 3,
					onTimeOut: check_fail,
					onFail: check_fail
	};
	AjaxTCR.comm.sendRequest(url,options);
	ishidingchat = false;
}

function chat_actual_hide () {
	chatbox = document.getElementById('chat_box_customer');
	var thewidth = chatbox.offsetWidth;
	var moveamt = (parseInt(thewidth) - 35) * -1;
	//chatbox.style.left = moveamt + 'px';
	chatbox.style.left = moveamt + 'px';
	chat_box_isshowing = false;
	if (adminhasimage == '1') {
		imgbox = document.getElementById('chat_box_adminbox');
		imgbox.style.left = chatbox.style.left;
	}
}

function submit_chat(e) {
	var characterCode;
	
	if(e && e.which){ //if which property of event object is supported (NN4)
		e = e;
		characterCode = e.which; //character code is contained in NN4's which property
	} else{
		e = event;
		characterCode = e.keyCode; //character code is contained in IE's keyCode property
	}
	
	if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
		//submitted chat
		var txt = document.getElementById('txt_chat').value;
		if (txt != '') {
			check_chat(txt);
			document.getElementById('txt_chat').value = '';
		}
		return false; 
	} else{
		return true ;
	}

}

function submit_chat2() {
	var txt = document.getElementById('txt_chat').value;
	if (txt != '') {
		check_chat(txt);
		document.getElementById('txt_chat').value = '';
	}
}

