function MM_preloadImages() 
{ //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() 
{ //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) 
{ //v4.01
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() 
{ //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


/*********************************************************
	* Function  : Enter focus sang control khac
	* Return    : None
	* Parameter :
	*		field	: ID of control
	*		event	: Object event
	*********************************************************/		
	function handleEnter (field, event) 
	{
		var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
		if (keyCode == 13) {
			var i;
			for (i = 0; i < field.form.elements.length; i++)
				if (field == field.form.elements[i])
					break;
			i = (i + 1) % field.form.elements.length;
			field.form.elements[i].focus();
			return false;
		} 
		else
			return true;
	}   
	
	/*********************************************************
	* Function  : Event user press Enter key
	* Return    : None
	* Parameter :
	*		event	: Object event
	*		flagSearch	: ID of hidden field flagSearch
	*		valSearch	: ID of hidden field valSearch
	*		valSearch	: ID of textbox quick search
	*		messCompare : Message into textbox quick search
	*********************************************************/	
	function enterSearch(ev, flagSearch, valSearch, txtSearch, messCompare)
	{
		//ev.which : firefox
		//ev.keyCode : IE
		var intKey = ev.which || ev.keyCode;
		if(intKey==13)
		{
			searchClick(flagSearch, valSearch, txtSearch, messCompare)
		}
	}
	
	/*********************************************************
	* Function  : Set Focus
	* Return    : None
	* Parameter :
	*		idControl	: ID of Control
	*********************************************************/	
	function setFocus(idControl)
	{
		document.getElementById(idControl).focus();
	}
	
	/*********************************************************
	* Function  : Change background of Row when User Hover on Row
	* Return    : None
	* Parameter :
	*		rowID			: Index of Row
	*********************************************************/	
	function mouseOverRow(rowID)
	{
		document.getElementById("row"+rowID).style.background = "#f8e788";
	}

	/*********************************************************
	* Function  : Change background of Row when User Out off Row
	* Return    : None
	* Parameter :
	*		rowID			: Index of Row
	*********************************************************/	
	function mouseOutRow(rowID)
	{
		document.getElementById("row"+rowID).style.background = "";
	}
	
	/*********************************************************
	* Function  : Check or Uncheck all checkbox of Datagrid
	* Return    : None
	* Parameter :
	*********************************************************/	
	function checkAll()
	{
		var status = document.frm.chkAll.checked;
		if(document.frm.chkID)
		{
			var n=document.frm.chkID.length;
			if (n>0)
			{
				for(var i=0;i<n;i++)
				{
					document.frm.chkID[i].checked=status;
				}
			}
			else
			{
				document.frm.chkID.checked=status;
			}
		}
	}
	
	/*********************************************************
	* Function  : Check or Uncheck 1 checkbox of Datagrid
	* Return    : None
	* Parameter :
	*********************************************************/	
	function checkOne()
	{
		var n=document.frm.chkID.length;
		var isCheckedAll=true;
		if (n>0)
		{
			for(var i=0;i<n;i++)
				if(document.frm.chkID[i].checked==false)
					isCheckedAll=false;
		}
		else
		{
			if(document.frm.chkID.checked==false)
				isCheckedAll=false;
		}			
		document.frm.chkAll.checked=isCheckedAll;
	}

	/*********************************************************
	* Function  : Get ID of all checkbox checked
	* Return    : None
	* Parameter :
	*		listChk : Hidden field store list of value of checkbox which checked
	*********************************************************/	
	function getChkChecked(listChk)
	{
		var listVal = "";
		if(document.frm.chkID)
		{
			var n=document.frm.chkID.length;
			if (n>0)
			{
				for(var i=0;i<n;i++)
					if(document.frm.chkID[i].checked==true)
						listVal += document.frm.chkID[i].value + ",";
			}
			else
			{
				if(document.frm.chkID.checked==true)
					listVal = document.frm.chkID.value;
			}
			document.getElementById(listChk).value = listVal;
		}
		return listVal;
	}
	
	/*********************************************************
	* Function  : Event when User blur on textbox quick search
	* Return    : None
	* Parameter :
	*		idSearch : ID of textbox search
	*		mess	 : Message into textbox quick search
	*********************************************************/	
	function searchOnBlur(idSearch, mess)
	{
		str = Trim(document.getElementById(idSearch).value," ");
		if (str == "")	
		{
			document.getElementById(idSearch).value = mess;
		}
	}

	/*********************************************************
	* Function  : Event when User focus on textbox quick search
	* Return    : None
	* Parameter :
	*		idSearch : ID of textbox search
	*		mess	 : Message into textbox quick search
	*********************************************************/	
	function searchOnFocus(idSearch, mess)
	{
		strOrg = Trim(document.getElementById(idSearch).value," ");
		strCompare = mess;	
		if (strOrg == strCompare)
			document.getElementById(idSearch).value = "";
	}

	/*********************************************************
	* Function  : Event when User click icon quick search 
	* Return    : None
	* Parameter :
	*		flagSearch	: ID of hidden field flagSearch
	*		valSearch	: ID of hidden field valSearch
	*		valSearch	: ID of textbox quick search
	*		messCompare : Message into textbox quick search
	*********************************************************/
	function searchClick(flagSearch, valSearch, txtSearch, messCompare)
	{
		strSearch = document.getElementById(txtSearch).value;
		if(strSearch!=messCompare)
			document.getElementById(valSearch).value = strSearch;
		else
			document.getElementById(valSearch).value = "";
		document.getElementById(flagSearch).value = 1;
		document.frm.submit();
	}

	/*********************************************************
	* Function  : Check checkbox when user click on title of checkbox
	* Return    : None
	* Parameter :
	*		idChk	: ID of checkbox
	*********************************************************/
	function titleClick(idChk)
	{
		var status = document.getElementById(idChk).checked;
		document.getElementById(idChk).checked = (status==true)?false:true;
	}

	/*********************************************************
	* Function  : Events of User when Click Icon Search Information
	* Return    : None
	* Parameter :
	*	flagSearch	: Flag Search
	*	valSearch	: Value Search
	*	txtSearch	: Value textbox Search 
	*********************************************************/
	function searchInforClick(flagSearch, valSearch, txtSearch)
	{
		document.getElementById(valSearch).value = document.getElementById(txtSearch).value;
		document.getElementById(flagSearch).value = 1;
		document.frm.submit();
	}

	/*********************************************************
	* Function  : Event when User focus on textbox search info
	* Return    : None
	* Parameter :
	*	ev			: Object Event
	*	flagSearch	: Flag Search
	*	valSearch	: Value Search
	*	txtSearch	: Value textbox Search 
	*********************************************************/	
	function enterSearchInfor(ev, flagSearch, valSearch, txtSearch)
	{
		//ev.which : firefox
		//ev.keyCode : IE
		var intKey = ev.which || ev.keyCode;
		if(intKey==13)
		{
			searchInforClick(flagSearch, valSearch, txtSearch)
		}
	}

	/*********************************************************
	* Function  : Event when User focus on textbox search info
	* Return    : None
	* Parameter :
	*	ev			: Object Event
	*	flagSearch	: Flag Search
	*	valSearch	: Value Search
	*	txtSearch	: Value textbox Search 
	*********************************************************/	
	function enterSearchClass(ev)
	{
		//ev.which : firefox
		//ev.keyCode : IE
		var intKey = ev.which || ev.keyCode;
		if(intKey==13)
		{
			document.getElementById("valSearch").value = document.getElementById("txtSearch").value;
			cboCourseChange(); //Refer to information/infor_process.js
		}
	}

	/*********************************************************
	* Function  : Clear Date - Apply for control select date
	* Return    : None
	* Parameter :
	*	idDisplay		: ID of Control which display on layout
	*	idValue			: ID of Control which store value of date
	*********************************************************/	
	function clearDate(idDisplay, idValue)
	{
		document.getElementById(idDisplay).value = "";
		document.getElementById(idValue).value = "";
	}

	/*********************************************************
	* Function  : Hide and Show 1 control
	* Return    : None
	* Parameter :
	*	idControl			: ID of Control
	*********************************************************/	
	function hideControl(idControl)
	{
		var status = document.getElementById(idControl).style.display;
		status = (status=="none")?"block":"none";
		document.getElementById(idControl).style.display = status;
	}

	/*********************************************************
	* Function  : Events of User when Click on ID of Datagrid to get data for updating
	* Return    : None
	* Parameter :
	*		id	: ID of record updated
	*********************************************************/
	function clickIDUpdate(idOfID, valID)
	{
		document.getElementById(idOfID).value = valID;
		document.frm.submit();
	}

	/*********************************************************
	* Function  : Check account YM online
	* Return    : Image of online status
	* Parameter :
	*		yahooID	: YM ID
	*********************************************************/
	function checkYahooOnline(yahooID)
	{ 
		var status;
		if (yahooID !='')
			status = '<p align="center"><img border="0" src="http://opi.yahoo.com/online?u='+yahooID+'&m=g&t=2"/>';
		document.write(status);
	}