/* (C) 2003-2007 Ðào Trung Kiên (d_t_kien@yahoo.com) edited by San Nguyen
AVIM:
	<script type="text/javascript" src="/libjs/avim20070613.js"></script>
	<script type="text/javascript">KVNCore='AVIM';nVNTypingMode=null;</script>
	<script type="text/javascript" charset="utf-8" src="/libjs/VNTypingIcon.js"></script>
VietUni:
	<script language="JavaScript1.1" src="/libjs/vietuni.js"></script>
	<script language="JavaScript1.1">KVNInitTyper=initTyper;KVNSetTypingMode=setTypingMode;nVNTypingMode=null;</script>
	<script language="JavaScript1.1" charset="utf-8" src="/libjs/VNTypingIcon.js"></script>
*/
var VNTypingIcon = null;
function VNTypingIcon_init(opacity,location){
	VNTypingIcon = document.createElement("div");
	VNTypingIcon.style.backgroundColor='#000000';
	VNTypingIcon.location = location;
	VNTypingIcon.opacity = opacity;
	VNTypingIcon_setOpacity();
	VNTypingIcon_setLocation();
	document.body.appendChild(VNTypingIcon);
	if(VNTypingIcon_isIE()){
		VNTypingIcon.style.position = 'absolute';
		window.attachEvent('onresize',VNTypingIcon_setLocation);
		window.attachEvent('onscroll',VNTypingIcon_updateLocation);
		VNTypingIcon_updateLocation();
	}else{
		VNTypingIcon.style.position = 'fixed';
		window.addEventListener('resize',VNTypingIcon_setLocation,false);
	}
	
	//if (VNTypingIcon_isIE()) setTimeout("VNTypingIcon_updateLocation()",3);

	
}
function VNTypingIcon_isIE()
{
  if (navigator.appName.indexOf("Microsoft")!=-1){
    return true;
  }
  return false;
}
function VNTypingIcon_setOpacity()
{
    VNTypingIcon.style.opacity = (VNTypingIcon.opacity / 100); 
    VNTypingIcon.style.MozOpacity = (VNTypingIcon.opacity / 100); 
    VNTypingIcon.style.KhtmlOpacity = (VNTypingIcon.opacity / 100); 
    VNTypingIcon.style.filter = "alpha(opacity=" + VNTypingIcon.opacity + ")";
}
function VNTypingIcon_setLocation(){
	var winW = 630, winH = 460;
	var x = 0, y=0;
	var w = VNTypingIcon.offsetWidth;
	var h = VNTypingIcon.offsetHeight;

	if (navigator.appName.indexOf("Microsoft")!=-1) {
		winW = document.body.clientWidth;
		winH = document.body.clientHeight;
	}else{
		winW = document.body.offsetWidth;
		winH = window.innerHeight; 
	}
	if((w!=0) || (h!=0)){
		//alert(w+' '+h+' '+winW+' '+winH);
		switch(VNTypingIcon.location){
			case "TL":
				x = 0;
				y = 0;
				break;
			case "TR":
				x=winW-w-5;
				y=0;
				break;
			case "BL":
				x=0;
				y=winH-h;
				break;
			case "BR":
				x=winW-w;
				y=winH-h;
				break;
			default: //TR
				x=winW-w;
				y=0;
		}
	}
	VNTypingIcon.originalX = x;
	VNTypingIcon.originalY = y;
	VNTypingIcon.style.left = x+'px';
	VNTypingIcon.style.top = y+'px';
	//alert(VNTypingIcon.offsetWidth+' '+VNTypingIcon.offsetHeight);
	
}
function VNTypingIcon_updateLocation()
{
	var winW = 630, winH = 460;
	var theLeft = 0, theTop = 0;
	var x = 0, y=0;
	obj =  VNTypingIcon;

	if (navigator.appName.indexOf("Microsoft")!=-1) {
		theLeft = document.body.scrollLeft;
		theTop = document.body.scrollTop;
	}else{
		theLeft = window.pageXOffset;
		theTop = window.pageYOffset;
	}
	//do {
			//x += obj.offsetLeft;
			//y += obj.offsetTop;
	//} while (obj = obj.offsetParent);
	VNTypingIcon.style.left = (VNTypingIcon.originalX+theLeft)+'px';
	VNTypingIcon.style.top = (VNTypingIcon.originalY+theTop)+'px';
	//alert(theLeft+' '+theTop);
	//if (VNTypingIcon_isIE()) setTimeout("VNTypingIcon_updateLocation()",3);
}

function VNTypingIcon_setHTML(html){
	VNTypingIcon.innerHTML = html;
	VNTypingIcon_setLocation();
	if(VNTypingIcon_isIE())  VNTypingIcon_updateLocation();
}

if (typeof KVNCore!='undefined' && KVNCore=='AVIM') {
	KVNSetTypingMode=function(m) {
		switch(m) {
		case 0:	setMethod(-1);	break;
		case 1:	setMethod(1);	break;
		case 2:	setMethod(2);	break;
		case 3:	setMethod(3);	break;
		case 4:	setMethod(4);	break;
		case 5:	setMethod(0);	break;
		}
	}
	dauCu=0;
}

function OnVNTypingModeChange(obj)	{KVNSetTypingMode(parseInt(obj.options[obj.selectedIndex].value));}
function VNTypingModeSelectionString(idx)	{return idx==nVNTypingMode ? "selected":"";}


function loadVNTyping(){
	if (typeof nVNTypingMode=='undefined' || nVNTypingMode==null) nVNTypingMode=1;
	KVNSetTypingMode(nVNTypingMode);
	VNTypingIcon_init(70,'BR');
	
	if (typeof KVNCore!='undefined' && KVNCore=='AVIM') {
		VNTypingIcon_setHTML('<b>\
		<a href="http://sourceforge.net/projects/rhos/" style="font-family: Tahoma; font-size: 10px; text-decoration:none; color:red" target="_blank" title="Powered by AVIM">\
		Kiá»ƒu gÃµ:&nbsp;</a></b>\
		<select size="1" align="absmiddle" style="font-family: Tahoma; font-size: 10px; color:red" onchange="OnVNTypingModeChange(this)">\
		<option value=0 '+VNTypingModeSelectionString(0)+'>Táº¯t</option>\
		<option value=1 '+VNTypingModeSelectionString(1)+'>TELEX</option>\
		<option value=2 '+VNTypingModeSelectionString(2)+'>VNI</option>\
		<option value=3 '+VNTypingModeSelectionString(3)+'>VIQR</option>\
		<option value=4 '+VNTypingModeSelectionString(3)+'>VIQR*</option>\
		<option value=5 '+VNTypingModeSelectionString(4)+'>Loáº¡n</option>\
		</select>');
	} else {
		VNTypingIcon_setHTML('<b>\
		<a href="http://www.avys.de/" style="font-family: Tahoma; font-size: 10px; text-decoration:none; color:red" target="_blank" title="Powered by VietUni">\
		Kiá»ƒu gÃµ:&nbsp;</a></acronym></b>\
		<select size="1" align="absmiddle" style="font-family: Tahoma; font-size: 10px; color:red" onchange="OnVNTypingModeChange(this)">\
		<option value=0 '+VNTypingModeSelectionString(0)+'>Táº¯t</option>\
		<option value=1 '+VNTypingModeSelectionString(1)+'>TELEX</option>\
		<option value=2 '+VNTypingModeSelectionString(2)+'>VNI</option>\
		<option value=3 '+VNTypingModeSelectionString(3)+'>VIQR</option>\
		<option value=4 '+VNTypingModeSelectionString(4)+'>Loáº¡n</option>\
		</select>');
	
	
		function KVNAssignOnkeyup(obj) {
			obj.KVNOldonkeyup=obj.onkeyup;
			obj.onkeyup=function() {
				KVNInitTyper(this);
				if (this.KVNOldonkeyup!=null) this.KVNOldonkeyup();
	
				// VietUni may set onkeyup to null, this is a workaround
				// to the problem of losing pointer to the old callback
				if (this.onkeyup==null) this.onkeyup=this.KVNOldonkeyup;
			}
		}
	
		KVNOldOnload=window.onload;
		window.onload=function() {
			if (KVNOldOnload!=null) KVNOldOnload();
	
			var list=document.getElementsByTagName("TEXTAREA");
			if (list!=null)
				for (var i=0; i<list.length; i++) KVNAssignOnkeyup(list[i]);
	
			list=document.getElementsByTagName("INPUT");
			if (list!=null)
				for (var i=0; i<list.length; i++)
					if (list[i].type.toLowerCase()=="text") KVNAssignOnkeyup(list[i]);
		}
	}
}

