﻿var ScrollPos = 0;

function OnLoad(){
	setInterval("postDataChat('get_msg.asp','','msg')", 500);
	ScrollTurn();
}

function ScrollTurn(){
	if (document.getElementById("turn").title == "Đóng khóa lại" || document.getElementById("turn").title == ""){
		document.getElementById("turn").title = "Bấm mở khóa thanh trượt";
		document.getElementById("turn").src = "css_styles/chatbox/lock.gif";
		ScrollIntervalId = setInterval("Scroll()", 1);
		
  	}else{
  		document.getElementById("turn").title = "Đóng khóa lại";
		document.getElementById("turn").src = "css_styles/chatbox/unlock.gif";
		clearInterval(ScrollIntervalId);
		document.getElementById("msg").scrollTop = 0;
		ScrollPos = 0;
	}
}
function Scroll(){
	ScrollPos = ScrollPos + document.getElementById("msg").scrollHeight/40;
	document.getElementById("msg").scrollTop = ScrollPos;
}

function removeTags(strInputEntry){
	strInputEntry = strInputEntry.replace(/ |~|`|!|@|#|\$|%|\^|\&|\*|\(|\)|\+|=|{|\[|}|\]|\||\\|:|;|\"|\'|\<|\,|\>|\.|\?|\//g, "")
	return strInputEntry;
}


function convertTags(strInputEntry){
	strInputEntry = strInputEntry.replace(/%/g, "%25");
	strInputEntry = strInputEntry.replace(/\+/g, "%2B");
	strInputEntry = strInputEntry.replace(/ /g, "%20");
	strInputEntry = strInputEntry.replace(/&/g, "%26");
	
	return strInputEntry;
}

var kcode = null;
function NoEnter(evt){
	evt = (evt) ? evt : event;
	var charCode = (evt.charCode) ? evt.charCode : ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
	if (charCode == kcode){
		alert('TỪ TỪ BẠN ƠI!');
		return false;
	}
}

function SendMsg(){
	var strInputText = document.getElementById("message").value;
	var strToUser = "";
	var PosS_ToUser = strInputText.indexOf("@") + 1;
	if (PosS_ToUser == 1){
		var PosE_ToUser = strInputText.substring(PosS_ToUser).indexOf(":") + 1;
	}
	if (PosE_ToUser - PosS_ToUser > 2){
		strToUser = removeTags(strInputText.substring(PosS_ToUser,PosE_ToUser));
		var strMessage = convertTags(strInputText.substring(PosE_ToUser+1));
	}else{
		var strMessage = convertTags(strInputText);
	}
	
	var strColor = document.getElementById("color").value;
	var strFormat = document.getElementById("format").value;
	var strSize = document.getElementById("size").value;
	if (strMessage != ""){
		postDataChat('post_msg.asp','touser=' + strToUser + '&message=' + strMessage + '&color=' + strColor + '&format=' + strFormat + '&size=' + strSize,'msg');
		if (strToUser != ""){
			document.frmMessage.message.value = '@' + strToUser + ': ';
		}else{
			document.frmMessage.message.value = '';
		}
	
		document.frmMessage.smit.disabled = true;
		kcode = 13;
		setTimeout('EnableMsgForm()', 500);
	}
}

function EnableMsgForm(){
	document.frmMessage.message.focus();
	document.frmMessage.smit.disabled = false;
	kcode = null;
	
}


//########## EMOTION #############
function getOffsetTop(elm){
	var mOffsetTop = elm.offsetTop;
	var mOffsetParent = elm.offsetParent;
	while(mOffsetParent){
		mOffsetTop += mOffsetParent.offsetTop;
		mOffsetParent = mOffsetParent.offsetParent;
	}
	return mOffsetTop;
}

function getOffsetLeft(elm){
	var mOffsetLeft = elm.offsetLeft;
	var mOffsetParent = elm.offsetParent;
	while(mOffsetParent){
		mOffsetLeft += mOffsetParent.offsetLeft;
		mOffsetParent = mOffsetParent.offsetParent;
	}
	return mOffsetLeft;
}

function toggleEmo(objLoca,objDiv){
	var objBox = document.getElementById(objDiv);
	var objLocation = document.getElementById(objLoca)
	
	objBox.style.left = (getOffsetLeft(objLocation) - 250) + 'px';
	objBox.style.top = (getOffsetTop(objLocation) - 160) + 'px';
	
	if (objBox.style.display == "none")
		objBox.style.display = "";
	else
		objBox.style.display = "none";
}

function AddChar(iconCode){
 	var txtarea = document.frmMessage.message;
	txtarea.focus();

	if (txtarea.value.length + iconCode.length <= 100){
	txtarea.value  += iconCode;
	}
	
	document.getElementById('emoticons').style.display = "none";
}


//AJAX

var XMLHttpChatResponseID;

function postDataChat(url, parameters, elementID){
	//############## SHOW & HIDE TURN SCROLL IMAGE ##############
	var ScrollH = document.getElementById("msg").scrollHeight;
	if (ScrollH > 245){
		document.getElementById("turn").style.display = "inline";
	}else{
		document.getElementById("turn").style.display = "none";
	}
	//########################################################
	
	XMLHttpChatResponseID = document.getElementById(elementID);
	
	if (window.XMLHttpRequest){
		XmlHttpChat = new XMLHttpRequest();
		if (XmlHttpChat.overrideMimeType){
			XmlHttpChat.overrideMimeType('text/html');
		}
	} else if (window.ActiveXObject) { // IE
		try {
			XmlHttpChat = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				XmlHttpChat = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
		}
	}
	if (!XmlHttpChat) {
		alert('Ko thể chạy được ứng dụng này!');
		return false;
	}

	XmlHttpChat.onreadystatechange = function()
	{
		if (XmlHttpChat.readyState == 4 || XmlHttpChat.readyState=='complete'){
			if (XmlHttpChat.status == 200){
				if (XmlHttpChat.responseText != ""){
					var posS_Alert = XmlHttpChat.responseText.indexOf("Alert:")
					if (posS_Alert > -1){
						alert(XmlHttpChat.responseText.substr(posS_Alert + 6));
					}else{
						XMLHttpChatResponseID.innerHTML = XmlHttpChat.responseText;
					}
				}
				document.getElementById("loading").style.dis_Play = "none";
			}else{
				XMLHttpChatResponseID.innerHTML = '<strong>Lỗi trong quá trình tải! Vui lòng thử lại.</strong>';
			}
		}
	}


	XmlHttpChat.open('POST', url, true);
	XmlHttpChat.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	XmlHttpChat.setRequestHeader("Content-length", parameters.length);
	XmlHttpChat.setRequestHeader("Connection", "close");
	XmlHttpChat.send(parameters);
}
