﻿function OpenNew(url)
//Mỏ cửa sổ mới
{
		window.open(url,'','');
}

	function thoat()
	{
		window.close();
		return false;
		
	}

	function txtFind_onpropertychange(obj,divSource,txtCount,txtValue,StartIndex) {
	/*'----------------------------------------------------------------------------------------------
	'   Purpose   : Thủ tục tìm kiếm
	'              
	'   Parameter : obj: Form hiện hành,txtCount số dòng hiển thị,txtValue giá trị tìm kiếm
	'											txtStartFind: vị trí bắt đầu tìm kiếm           
	'			 
	'   Return    : Trả những row tìm thấy
	'   Date      : 24/08/2005
	'   Author    : Nguyễn Đình Thản
	'----------------------------------------------------------------------------------------------*/
	var frm=obj.form.all;
	var divS=frm[divSource];//Source
	var sFind;
	var sT;
	var sRow,sVT;
	var oInput;
	var iVT=0; //vị trí bắt đầu tìm thấy
	document.getElementById(obj.id).style.cursor="Hourglass";
	var iS=document.getElementById(StartIndex).value;//Start of index
	
	iS=parseInt(iS);
	iS+=1;
	
	var iL=document.getElementById(txtCount).value; //Số dòng hiển thị
		
	for (var i = iS; i<=iL; i++)
	{
		sRow="lv_row_"+i;

		oInput = divS.all[sRow];
	
			strText=TrimLeft(oInput.innerText);	//Chuỗi so sánh

			sFind=document.getElementById(txtValue).value; //Chuỗi tìm kiếm.toLowerCase
			sT=strText.substring(0,sFind.length);

			sFind=sFind.toLowerCase(); //Làm thường
			sT=sT.toLowerCase(); //Chữ thường

			if (sFind==sT && sFind!=''){ //Tìm thấy
					
					if (iVT==0)
					{
						iVT=i;
						sVT=sRow;
					}
					document.getElementById(sRow).style.backgroundColor='#ccccff';
					
			}
			else //Nếu không tim thấy
				document.getElementById(sRow).style.backgroundColor='#ffffff';
	}
	if (iVT!=0)
	{
		document.getElementById(sVT).scrollIntoView(i);
	}
 document.getElementById(obj.id).style.cursor="hand";
	return false;
	}

	//=============================================================================
	function HighlightRow(nListID)
	{
		if (document.getElementById("lv_chk_lvi_" + nListID).checked==true)
			document.getElementById("lv_row_" + nListID).style.backgroundColor='#ccccff';
		else
			document.getElementById("lv_row_" + nListID).style.backgroundColor='#ffffff';
	}
	
	//=============================================================================
	function HighlightAll(oCheckBox)
	{
		var theForm = oCheckBox.form;

		for (var i = 0; i < theForm.length; i++)
		{
			var oInput = theForm.elements[i];
			if (oInput.name.indexOf("chkSelect")!=-1)
			{
				if (oCheckBox.checked==true)
				{
					oInput.checked=true;
					//document.getElementById("lv_row_" + oInput.name.substr(11)).style.backgroundColor='#ccccff';
				}
					if (oCheckBox.checked==false)
				{
					oInput.checked=false;
					//document.getElementById("lv_row_" + oInput.name.substr(11)).style.backgroundColor='#ffffff';
				}
			}
		}
		
		
	//return false;
	}
	
	function ChonHet(oCheckBox)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :  Hàm đánh dấu chọn hết trên trang List
	'   Parmeter  :   oCheckBox: là form(this)
	'									
	'
	'   Return    :   
	'                
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'---------------------------------------------------------------------------------*/

	{
		var theForm = oCheckBox.form;
		var colHead;
		
		try
		{
				colHead=theForm.all["chkCheckAll"];
				colHead.checked=true;
		}
		catch(ex)
		{
		
		}

			
		for (var i = 0; i < theForm.length; i++)
		{
			var oInput = theForm.elements[i];
			if (oInput.name.indexOf("chkSelect")!=-1)
			{
				oInput.checked=true;			
			}
		}

	}
	
	function BoChon(oCheckBox)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :  Hàm đánh bỏ dấu chọn hết trên trang List
	'   Parmeter  :   oCheckBox: là form(this)
	'									
	'
	'   Return    :   
	'                
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'---------------------------------------------------------------------------------*/
	{
		var theForm = oCheckBox.form;
		var colHead;
		colHead=theForm.all["chkCheckAll"];
	
			colHead.checked=false;
			
		for (var i = 0; i < theForm.length; i++)
		{
			var oInput = theForm.elements[i];
			if (oInput.name.indexOf("chkSelect")!=-1)
			{
				oInput.checked=false;			
			}
		}

	}
	
	function SetStyle(id,sclass)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm set Style cho button khi mouse over và mouse out
	'   Parmeter  :   id: tên button
	'									sclass: Tên class cần sét
	'
	'   Return    :   
	'                
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		document.getElementById(id).className=sclass;
	}
	function SetStyleButton(obj,sclass)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm set Style cho button khi mouse over và mouse out
	'   Parmeter  :   id: tên button
	'									sclass: Tên class cần sét
	'
	'   Return    :   
	'                
	'   Date      :   10/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{

		document.getElementById(obj.id).className=sclass;
	}
	function SetStyleGridItem(id,sclass)
		/*'---------------------------------------------------------------------------------
		'   Purpose   :   Hàm set Style cho button khi mouse over và mouse out trên Datagrid
		'   Parmeter  :   id: tên button
		'									sclass: Tên class cần sét
		'
		'   Return    :   
		'                
		'   Date      :   02/11/2005
		'   Author    :   Nguyễn Đình Thản
		'-----------------------------------------------------------------------------------*/

		{
			
			id.className="";
			id.className=sclass;
			//tt.style 
		}
	function ChuHoa(txtName)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm làm hoa chữ trên textbox
	'   Parmeter  :   txtName: tên TextBox cần làm hoa chữ
	'									
	'
	'   Return    :   
	'                
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/
	{
		var sValue=document.getElementById(txtName).value;
		document.getElementById(txtName).value=sValue.toUpperCase();
	}
	//=============================================================================
	function netHighlightRow(obj,divSource,nListID)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để đánh dấu khi chọn một dòng trong ListView(visualAsp)
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									nListID : chỉ số dòng 
	'
	'   Return    :   
	'                
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/
	{
		var frm=obj.form.all;
		//For row
		var divS=frm[divSource];//Source
		var sRow="lv_row_" + nListID;
		var row=divS.all[sRow];
		//For checkbox
		var sChk="lv_chk_lvi_" + nListID;
		var chk=divS.all[sChk];

		if (chk.checked==true)
			row.style.backgroundColor='#ccccff';
		else
			row.style.backgroundColor='#ffffff';

	}
	//=============================================================================
	function netHighlightAll(oCheckBox,divSource)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để đánh dấu khi chọn tất cả các dòng trong ListView(visualAsp)
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	  var sRow="lv_row_";
	  
		for (var i = 0; i < divS.all.length; i++)
		{
			
			var oInput = divS.all[i];
			if (oInput.id.indexOf("lv_chk_lvi_")!=-1)
			{
			  sRow="lv_row_"+oInput.id.substr(11);
			  var row=divS.all[sRow];
			  
				if (oCheckBox.checked==true)
				{
					oInput.checked=true;
					row.style.backgroundColor='#ccccff';
					netHighlightAllRow(oCheckBox,divSource,oInput.id.substr(11))
					
				}
				if (oCheckBox.checked==false)
				{
					oInput.checked=false;
					row.style.backgroundColor='#ffffff';
					netHighlightAllRow(oCheckBox,divSource,oInput.id.substr(11))
					
				}
			}
		}
		for(var k=1; k<8; k++)
			{
					//
					if (k!=2)
					{
						var sIDCol="lv_chk_col_"+k;
						var oChk = divS.all[sIDCol];
										
						if (oCheckBox.checked==true)
						{
							oChk.checked=true;		
						}
						
						if (oCheckBox.checked==false)
						{
							oChk.checked=false;		
						}
					}
					
				
			}
			
		//return false;
	}
		//=============================================================================
	function netHighlightAlllCB(oCheckBox,divSource,txtCount)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để đánh dấu khi chọn tất cả các dòng trong ListView(visualAsp)
	'									List chọn cánbộ khi tạo công việc
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	  var row,oInput;
	  var iL=document.getElementById(txtCount).value
	
		for (var i = 1; i <=iL; i++)
		{
				oInput = divS.all["lv_chk_lvi_"+i];
			  row=divS.all["lv_row_"+i];
			  
				if (oCheckBox.checked==true)
				{
					oInput.checked=true;
					row.style.backgroundColor='#ccccff';
				}
				if (oCheckBox.checked==false)
				{
					oInput.checked=false;
					row.style.backgroundColor='#ffffff';
				}
		}
		/*if(oCheckBox.checked==true)
			oCheckBox.checked=true;
		else
			oCheckBox.checked=false;*/
	}
	function netHighlightAllSubCol(oCheckBox,divSource,num)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để đánh dấu khi chọn tất cả các dòng trong ListView(visualAsp)
	'									Của sub column
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	  var sRow="lv_row_";
	  var sSubCol= "_chk_lsi_" + num //Checkbox in subcolumn
	  	 
		for (var i = 0; i < divS.all.length; i++)
		{
			
			var oInput = divS.all[i];
			if (oInput.id.indexOf(sSubCol)!=-1)
			{
			
				if (oCheckBox.checked==true)
				{
					oInput.checked=true;
					//row.style.backgroundColor='#ccccff';
				}
				if (oCheckBox.checked==false)
				{
					oInput.checked=false;
					//row.style.backgroundColor='#ffffff';
				}
			}
			
			
		}
		//return false;
	}
	function netHighlightAllRow(oCheckBox,divSource,nListID)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để đánh dấu khi chọn tất 1 dòng trong ListView(visualAsp)
	'									
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	  var sRow="lv_row_";
	 
		//For row
		var divS=frm[divSource];//Source
		var sRow="lv_row_" + nListID;
		var row=divS.all[sRow];
		//For checkbox
	
		var chk=divS.all[sRow];
			
	  for (var i = 0; i < chk.all.length; i++)
		{
			
			var oInput = chk.all[i];
			if (oInput.id.indexOf("_chk_lsi_")!=-1)
			{	  
				if (oCheckBox.checked==true)
				{
					oInput.checked=true;
				}
				if (oCheckBox.checked==false)
				{
					oInput.checked=false;
				}
			}
		}
		
		if (oCheckBox.checked==true)
			row.style.backgroundColor='#ccccff';
		else
			row.style.backgroundColor='#ffffff';

		//return false;
	}
	
	function AddOrRemove(obj,divSource,divTarget)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm Add và remove giữa 2 list view
	'   Parmeter  :   obj: là form
	'									divSource: Tên div source(bên trái)
	'									divTarget: tên div target(bên phải)
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=obj.form.all;
		var divS=frm[divSource];//Source
		var divT=frm[divTarget];//Target
		
		for(var i=0; i<divS.all.length;i++)
		{
			var chk=divS.all[i];//Checkbox of Source
			var sRow;//Dòng sẽ visble

			if (chk.id.indexOf("lv_chk_lvi_")!=-1)
			{
				if (chk.checked==true)
				{
					chk.checked=false;
					sRow="lv_row_" + chk.id.substr(11); //Lấy id of row
					var rowS=divS.all[sRow];//Lấy dòng cần visible
				
						rowS.style.display="none"; //Biến
						rowS.style.backgroundColor='#ffffff';
						
						var rowT=divT.all[sRow];
						rowT.style.display=""; //Hiện
					
				}
			}
		}
		return false;
	}
	function AddOrRemoveListCanBo(obj,divSource,divTarget,txtCount)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm Add và remove giữa 2 list view
	'   Parmeter  :   obj: là form
	'									divSource: Tên div source(bên trái)
	'									divTarget: tên div target(bên phải)
	'									Count: Số dòng hiển thị
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		
		var frm=obj.form.all;
		var divS=frm[divSource];//Source
		var divT=frm[divTarget];//Target
		var iL=document.getElementById(txtCount).value;//Start of index
	
		//iL=parseInt(iL);
			
		//Reset check header
		var colHead;
		colHead=divS.all["lv_chk_col_1"];
		if (colHead.checked==true)
			colHead.checked=false;
				
		for(var i=1; i<=iL; i++)
		{
			
			var chk=divS.all["lv_chk_lvi_"+i];//Checkbox of Source
			var sRow;//Dòng sẽ visble
			
			if (chk.checked==true)
			{
					chk.checked=false;
					sRow="lv_row_"+i; //Lấy id of row
					var rowS=divS.all[sRow];//Lấy dòng cần visible
				
					//rowS.style.display="none"; //Biến
					rowS.style.backgroundColor='#ffffff';
					
					var rowT=divT.all[sRow];
					rowT.style.display=""; //Hiện
					
			}
		}
		return false;
	}
	
	function LoadDefaultList(obj,divSource,divTarget)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm load defaut trạng thái ban đầu cho trang
	'   Parmeter  :   obj: là form
	'									divSource: Tên div source(bên trái)
	'									divTarget: tên div target(bên phải)
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=obj.form.all;
		var divS=frm[divSource];//Source
		var divT=frm[divTarget];//Target

		for(var i=0; i<divT.all.length;i++)
		{
			var rowT=divT.all[i];
			if (rowT.id.indexOf("lv_row_")!=-1)
			{
				if(rowT.style.display==""){
					var rowS=divS.all[i];
				  rowS.style.display="none";					
				}
			}
		}
	
		return false;
	}
	function LoadDefaultListCB(obj,divSource,divTarget,txtCount)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm load defaut trạng thái ban đầu cho trang
	'   Parmeter  :   obj: là form
	'									divSource: Tên div source(bên trái)
	'									divTarget: tên div target(bên phải)
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		
		var frm=obj.form.all;
		var divS=frm[divSource];//Source
		var divT=frm[divTarget];//Target
		var iL=document.getElementById(txtCount).value;//Start of index
		
		for(var i=1; i<=iL;i++)
		{
			var rowT=divT.all["lv_row_"+i];
			if(rowT.style.display==""){
				var rowS=divS.all["lv_row_"+i];
				rowS.style.display="none";					
			}
		}
	
		return false;
	}
	function GetArray(text,kytu)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm tách chuổi text cách nhau bởi dấu 'kytu' thành array
	'   Parmeter  :   text: chuỗi text
	'							:   kytu: là ký tự cách nhau 
	'									Ví dụ: "Nguyễn,Đình,Thản" 		
	'
	'   Return    :   Trả về một mảng các phần tử sau khi tách
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var sTo=text;
		
		var arrRet=new Array();
		var iPos=0;
		var s1,s2;
		
		if (sTo.length>0)
		{
			sTo=text+kytu;
			for (var k=0; k<sTo.length; k++)//Chạy hết vòng for của sto
			{ 
				s2=sTo.charAt(k);
				if (s2==kytu)
				{
					s1=sTo.substring(iPos,k);
					iPos+=s1.length+1;
					
					arrRet.push(s1);
				}
			}
			
		}
		return arrRet;
	}
	
		function LoadGroup(obj,divTarget,ma)
			/*'---------------------------------------------------------------------------------
			'   Purpose   :   Hàm cập nhật lại danh sách group(role) trên trang canbo_detail
			'   Parmeter  :   obj: là form
			'									divTarget: tên div target trên trang canbo_detail
			'									ma: Chuỗi mã chứa cách nhau bởi dấu ","
			'
			'   Return    :   
			'                 
			'   Date      :   02/11/2005
			'   Author    :   Nguyễn Đình Thản
			'-----------------------------------------------------------------------------------*/

			{
				//Tách mã thành array
				var frm=obj.form.all;
				var divT=frm[divTarget];//Target
				//Cho ẩn hết
				var arrMa=GetArray(ma,',');
				
				for(var i=0; i<divT.all.length;i++)
				{
					var rowT=divT.all[i];
					if (rowT.id.indexOf("lv_row_")!=-1)
					{
						rowT.style.display="none"//Biến
					}	
			 }
					
			//Hiện những Group(Role) của user
			
			for(var j=0; j<arrMa.length; j++)
			{
				for(var i=0; i<divT.all.length;i++)
				{
					var rowT=divT.all[i];
					if (rowT.id.indexOf("lv_row_")!=-1)
					{
						//Kiểm cha các element con của RowT
						var sH=rowT.all.length;
						for (var k=0; k<sH; k++)//Lấy mã
						{
							var img=rowT.all[k];
							if(img.tagName=="IMG")
							{
								if(img.alt==arrMa[j])
									rowT.style.display="" //Hiện
							}	
						}//End for
					}	//End if
				}//End For
			}
			return false;
		}//End function
		function LoadGroupCB(obj,divTarget,ma,txtCount)
			/*'---------------------------------------------------------------------------------
			'   Purpose   :   Hàm cập nhật lại danh sách group(role) trên trang canbo_detail
			'   Parmeter  :   obj: là form
			'									divTarget: tên div target trên trang canbo_detail
			'									ma: Chuỗi mã chứa cách nhau bởi dấu ","
			'									txtCount: là số dòng hiển thị
			'   Return    :   
			'                 
			'   Date      :   02/11/2005
			'   Author    :   Nguyễn Đình Thản
			'-----------------------------------------------------------------------------------*/

			{
				var iL=document.getElementById(txtCount).value;//Start of index
	
				//Tách mã thành array
				var arrMa;
				var frm=obj.form.all;
				var divT=frm[divTarget];//Target
				var rowT;
				var sSel='';
			
				if(ma.length>0)
				{	
					arrMa=GetArray(ma,',');
					for(var j=0; j<arrMa.length; j++)
					{
						sSel+=arrMa[j]+',';
					}
				}
			
				//Cho ẩn hết
				for(var i=1; i<=iL; i++)
				{
					rowT=divT.all["lv_row_"+i];
					rowT.style.display="none";//Biến
					//var sH=rowT.all.length;
					var img=rowT.all[3]; //Mã
					if (sSel.indexOf(img.alt)!=-1)
							rowT.style.display="";//Hiện				
					else
							rowT.style.display="none";//Biến		
				}
				return false;
		}//End function
			
	function VisibleCheckBox(oCheckBox,divSource)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để Visible Các checkbox trên listview(visualAsp)
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	    var sRow="lv_row_";
	  
		for (var i = 0; i < divS.all.length; i++)
		{
			var oInput = divS.all[i];
			if (oInput.id.indexOf("lv_chk_lvi_")!=-1)//Item
			{
			 							
				if (oInput.style.display=="")
						oInput.style.display="none";
			}
			if (oInput.id.indexOf("lv_chk_col_")!=-1)//ColumnHeader
			{
			 							
				if (oInput.style.display=="")
						oInput.style.display="none";
			}
									
		}
		return false;
	}

	function DisabledCheckBox(oCheckBox,divSource)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để Visible Các checkbox trên listview(visualAsp)
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	  var sChk;//lv_1_chk_lsi_2
	 
		for (var i = 0; i < divS.all.length; i++)
		{
			var chkSub = divS.all[i];
			sChk="_chk_lsi_";//Tên các sub Checkbox;
			if (chkSub.id.indexOf("_chk_lsi_")!=-1)
			{
			 	chkSub.disabled=true;
			}	
		}
		return false;
	}
	function DisabledCheckBox1(oCheckBox,divSource,txtCount)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để Visible Các checkbox trên listview(visualAsp)
	'   Parmeter  :   obj: là form
	'									divSource: Tên div
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var iL=document.getElementById(txtCount).value;//Start of index
	
		var frm=oCheckBox.form.all;
		var divS=frm[divSource];//Source
	  var sChk;//lv_1_chk_lsi_2
	 
		for (var i = 1; i <=iL; i++)
		{
			var chkSub = divS.all["_chk_lsi_"+i];
					chkSub.disabled=true;
		}
		return false;
	}
	function IsNumeric(strString)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để kiểm tra Text nhập vào có phải là số hay không
	'   Parmeter  :   strString: Text cần kiểm tra
	'									
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

   {
   var strValidChars = "0123456789.";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      
      if(i==0){//Dấu chấm đầu
				if(strChar=='.')
					blnResult = false;
			}	
      if(i==strString.length-1){//Dấu chấm cuối
				if(strChar=='.')
					blnResult = false;
      }
      if (strValidChars.indexOf(strChar) == -1)
      {
        blnResult = false;
      }
   }
   return blnResult;
   
   }
   
	function KiemTraSo(val,mess)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để kiểm tra Text nhập vào có phải là số hay không
										
	'   Parmeter  :   val: Tên control cần kiểm tra
	'									mess: Nội dung thông báo
	'									
	'
	'   Return    :   Nếu đúng hàm trả về true, sai hàm trả về false
	'                 Đồng thời xuất hiện thông báo và bôi đên text hiện hành
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{	
		var str=document.getElementById(val).value;
		if (str.length==0)
			return true;
			
		var bKT;
		bKT=IsNumeric(str);
		if (bKT==false)
		{
			alert(mess);
			document.getElementById(val).focus();
			document.getElementById(val).select();
			
			return false;
		}
	}
	function IsNumericGio(strString)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để kiểm tra Text nhập vào có phải là số hay không
	'   Parmeter  :   strString: Text cần kiểm tra
	'									
	'									
	'
	'   Return    :   
	'                 
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

   {
   var strValidChars = "0123456789: APM Giờ";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
   {
      strChar = strString.charAt(i);
      
      if(i==0){//Dấu chấm đầu
				if(strChar==':')
					blnResult = false;
			}	
      if(i==strString.length-1){//Dấu chấm cuối
				if(strChar==':')
					blnResult = false;
      }
      if (strValidChars.indexOf(strChar) == -1)
      {
        blnResult = false;
      }
   }
   return blnResult;
   
   }
	function KiemTraNhapGio(val,mess)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để kiểm tra Text nhập vào có phải là số hay không
										
	'   Parmeter  :   val: Tên control cần kiểm tra
	'									mess: Nội dung thông báo
	'									
	'
	'   Return    :   Nếu đúng hàm trả về true, sai hàm trả về false
	'                 Đồng thời xuất hiện thông báo và bôi đên text hiện hành
	'   Date      :   02/11/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{	
		//ChuHoa(val);//Làm hoa chữ
		var str=document.getElementById(val).value;
		if (str.length==0)
			return true;
			
		var bKT;
		
		bKT=IsNumericGio(str);
		if (bKT==false)
		{
			alert(mess);
			document.getElementById(val).focus();
			document.getElementById(val).select();
			
			return false;
		}
	}
	function LoadDefaultFunction(obj,divTarget,ma,txtCount)
			/*'---------------------------------------------------------------------------------
			'   Purpose   :   Hàm load default ban đầu cho các function thuộc role
			'   Parmeter  :   obj: là form
			'									divTarget: tên div target trên trang canbo_detail
			'									ma: Chuỗi mã chứa cách nhau bởi dấu ","
			'									txtCount: Số dòng
			'   Return    :   
			'                 
			'   Date      :   02/11/2005
			'   Author    :   Nguyễn Đình Thản
			'-----------------------------------------------------------------------------------*/

			{
				//Tách mã thành array
				var iChk,iFunc;
				var sFuncID;
				var sItem;
				var iPos;
				var frm=obj.form.all;
				var divT=frm[divTarget];//Target
				var arrMa=GetArray(ma,',');
				var iL=document.getElementById(txtCount).value;//Start of index
				
				//Ẩn hết
				for(var i=1; i<=iL;i++)
				{
					var rowT=divT.all["lv_row_"+i];
						rowT.style.display="none"
			 }
	
			//Hiển mặc định
			for(var j=0; j<arrMa.length; j++)
			{
				//Lấy FunctionID
				var arlChk =new Array();
				sItem=arrMa[j];
			
				iPos=sItem.indexOf("_");
				sFuncID=sItem.substring(0,iPos);
				//Add các giá trị của checkbox
				
				var chkValue=sItem.substring(iPos+1,iPos+2);
				arlChk.push(chkValue);//Add View
				
				chkValue=sItem.substring(iPos+3,iPos+4);
				arlChk.push(chkValue);//Add Insert
				
				chkValue=sItem.substring(iPos+5,iPos+6);
				arlChk.push(chkValue);//Add Update
				
				chkValue=sItem.substring(iPos+7,iPos+8);
				arlChk.push(chkValue);//Add Delete
				
				chkValue=sItem.substring(iPos+9,iPos+10);
				arlChk.push(chkValue);//Add Excecute
				
				//Hiện mặc định các row đã có
				for(var i=1; i<=iL;i++)
				{
					var rowT=divT.all["lv_row_"+i];
									
						//Kiểm cha các element con của RowT
						var sH=rowT.all.length;
						for (var k=0; k<sH; k++)//Lấy mã
						{
							var img=rowT.all[k];
							if((img.tagName=="IMG")&&(img.alt==sFuncID))
							{
								rowT.style.display=""; //Hiện
									// Set checkbox true(false)
									for (var t=0; t<sH; t++)
									{
										var chkItem=rowT.all[t];//sub checkbox Ma_KDCT_TongKet
										if (chkItem.id.indexOf("_chk_lsi_")!=-1)
										{
											iPos=chkItem.id.lastIndexOf("_");
											iChk=chkItem.id.substr(iPos+1);
											iFunc=arlChk[iChk-2];					
											if(iFunc==1)												
												chkItem.checked=true;
											else
												chkItem.checked=false;
										}						
									}	
								
							}
								
						}				
												
					}	
				}
		
			return false;
	}//End function
	

	function TrimLeft(str) {
		var resultStr = "";
		var i = len = 0;
		
		// Return immediately if an invalid value was passed in
		if (str+"" == "undefined" || str == null)	
			return null;

		// Make sure the argument is a string
		str += "";

		if (str.length == 0) 
			resultStr = "";
		else {	
  			// Loop through string starting at the beginning as long as there
  			// are spaces.
			//	  	len = str.length - 1;
			len = str.length;
		
  		while ((i <= len) && (str.charAt(i) == " "))
			i++;

	 	// When the loop is done, we're sitting at the first non-space char,
 			// so return that char plus the remaining chars of the string.
  			resultStr = str.substring(i, len);
	  	}
	  	return resultStr;
	}

	function VietHoaSchedule1(ScheduleName) {
		/*'----------------------------------------------------------------------------------------------
    '   Purpose   : Hàm việt hóa Schedule trong tiện ích văn phòng
    '              
    '   Parameter : Tên schedule muốn việt hóa
    '                 
    '   Return    : Hàm sẽ việt hóa schedule truyền vào
    '   Date      : 12/12/2005
    '   Author    : Nguyễn Đình Thản
    '----------------------------------------------------------------------------------------------*/

		var scd=document.getElementById(ScheduleName);
		
		scd.innerHTML=scd.innerHTML.replace("Mon ","Thứ hai ");
		scd.innerHTML=scd.innerHTML.replace("Tue ","Thứ ba ");
		scd.innerHTML=scd.innerHTML.replace("Wed ","Thứ tư ");
		scd.innerHTML=scd.innerHTML.replace("Thu ","Thứ năm ");
		scd.innerHTML=scd.innerHTML.replace("Fri ","Thứ sáu ");
		scd.innerHTML=scd.innerHTML.replace("Sat ","Thứ bảy ");
		scd.innerHTML=scd.innerHTML.replace("Sun ","Chủ nhật ");
		
		while (scd.innerHTML.indexOf("AM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("AM","Giờ");
		}
		//13 giờ
		while (scd.innerHTML.indexOf("1:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("1:00 PM","13:00 Giờ");
		}
		//23 giờ
		while (scd.innerHTML.indexOf("113:00")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("113:00","23:00");
		}
		//14 giờ
		while (scd.innerHTML.indexOf("2:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("2:00 PM","14:00 Giờ");
		}
		//12 Giờ
		while (scd.innerHTML.indexOf("114:00")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("114:00","12:00");
		}
		//15 giờ
		while (scd.innerHTML.indexOf("3:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("3:00 PM","15:00 Giờ");
		}
		//
		//16 giờ
		while (scd.innerHTML.indexOf("4:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("4:00 PM","16:00 Giờ");
		}
		//17 giờ
		while (scd.innerHTML.indexOf("5:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("5:00 PM","17:00 Giờ");
		}
		//18 giờ
		while (scd.innerHTML.indexOf("6:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("6:00 PM","18:00 Giờ");
		}
		
		//19 giờ
		while (scd.innerHTML.indexOf("7:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("7:00 PM","19:00 Giờ");
		}
		//20 giờ
		while (scd.innerHTML.indexOf("8:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("8:00 PM","20:00 Giờ");
		}
		
		//21 giờ
		while (scd.innerHTML.indexOf("9:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("9:00 PM","21:00 Giờ");
		}
		//22 giờ
		while (scd.innerHTML.indexOf("10:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("10:00 PM","22:00 Giờ");
		}
	}
function VietHoaSchedule(ScheduleName) {
		/*'----------------------------------------------------------------------------------------------
    '   Purpose   : Hàm việt hóa Schedule trong tiện ích văn phòng
    '              
    '   Parameter : Tên schedule muốn việt hóa
    '                 
    '   Return    : Hàm sẽ việt hóa schedule truyền vào
    '   Date      : 12/12/2005
    '   Author    : Nguyễn Đình Thản
    '----------------------------------------------------------------------------------------------*/

		var scd=document.getElementById(ScheduleName);
		
		scd.innerHTML=scd.innerHTML.replace("Mon ","Thứ hai ");
		scd.innerHTML=scd.innerHTML.replace("Tue ","Thứ ba ");
		scd.innerHTML=scd.innerHTML.replace("Wed ","Thứ tư ");
		scd.innerHTML=scd.innerHTML.replace("Thu ","Thứ năm ");
		scd.innerHTML=scd.innerHTML.replace("Fri ","Thứ sáu ");
		scd.innerHTML=scd.innerHTML.replace("Sat ","Thứ bảy ");
		scd.innerHTML=scd.innerHTML.replace("Sun ","Chủ nhật ");
		
		while (scd.innerHTML.indexOf("AM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("AM","Sáng");
		}
		//13 giờ
		while (scd.innerHTML.indexOf("1:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("1:00 PM","13:00 Chiều");
		}
		//23 giờ
		while (scd.innerHTML.indexOf("113:00")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("113:00 Chiều","23:00 Tối");
		}
		//14 giờ
		while (scd.innerHTML.indexOf("2:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("2:00 PM","14:00 Chiều");
		}
		//12 Giờ
		while (scd.innerHTML.indexOf("114:00")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("114:00 Chiều","12:00 Sáng");
		}
		//15 giờ
		while (scd.innerHTML.indexOf("3:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("3:00 PM","15:00 Chiều");
		}
		//
		//16 giờ
		while (scd.innerHTML.indexOf("4:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("4:00 PM","16:00 Chiều");
		}
		//17 giờ
		while (scd.innerHTML.indexOf("5:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("5:00 PM","17:00 Chiều");
		}
		//18 giờ
		while (scd.innerHTML.indexOf("6:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("6:00 PM","18:00 Tối");
		}
		
		//19 giờ
		while (scd.innerHTML.indexOf("7:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("7:00 PM","19:00 Tối");
		}
		//20 giờ
		while (scd.innerHTML.indexOf("8:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("8:00 PM","20:00 Tối");
		}
		
		//21 giờ
		while (scd.innerHTML.indexOf("9:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("9:00 PM","21:00 Tối");
		}
		//22 giờ
		while (scd.innerHTML.indexOf("10:00 PM")!=-1)
		{
			scd.innerHTML=scd.innerHTML.replace("10:00 PM","22:00 Tối");
		}
	}
	function LapLichLamViec(obj,divSource,divTarget,txtID,nLine)
	/*'---------------------------------------------------------------------------------
	'   Purpose   :   Hàm dùng để lập lịch làm việc
	'   Parmeter  :   obj: là form
	'									divSource: Tên div source(bên trái)
	'									divTarget: tên div target(bên phải)
	'									txtID: Text hiển thị nội dung ID đã chọn
	'									nLine: dòng đã chọn
	'   Return    :   
	'                 
	'   Date      :   13/12/2005
	'   Author    :   Nguyễn Đình Thản
	'-----------------------------------------------------------------------------------*/

	{
		var frm=obj.form.all;
		var divS=frm[divSource];//Source
		var divT=frm[divTarget];//Target
		var sRowID="lv_row_"+nLine;
		var rowS,rowT;
		
		rowS=divS.all[sRowID];
		rowT=divT.all[sRowID];
	
		rowS.style.display="none"; //Biến
		rowT.style.display=""; //Hiện
			
		if (obj.checked==true)
			obj.checked=false;
		else
			obj.checked=true;
	
		return false;
	}
	function LapLichLamViecAll(obj,divSource,divTarget,txtID)
	/*'---------------------------------------------------------------------------------
		'   Purpose   :   Hàm dùng để lập lịch làm việc (chọn hết)
		'   Parmeter  :   obj: là form
		'									divSource: Tên div source(bên trái)
		'									divTarget: tên div target(bên phải)
		'									txtID: Text hiển thị nội dung ID đã chọn
		'									nLine: dòng đã chọn
		'   Return    :   
		'                 
		'   Date      :   13/12/2005
		'   Author    :   Nguyễn Đình Thản
		'-----------------------------------------------------------------------------------*/

	{
		var frm=obj.form.all;
		var divS=frm[divSource];//Source
	 	 
		var sRow="lv_row_";
		var divT=frm[divTarget];//Target
				
	  for (var i = 0; i < divS.all.length; i++)
		{
			
			var oInput = divS.all[i];
			if (oInput.id.indexOf(sRow)!=-1)
			{	  
				divS.all[oInput.id].style.display="none"; //Biến
				divT.all[oInput.id].style.display=""; //Hiện
			}
		}
		
		if (obj.checked==true)
			obj.checked=false;
		else
			obj.checked=true;
			
		return false;
	}
	
function ButtonClick(btnName)
	/*'---------------------------------------------------------------------------------
		'   Purpose   :   Hàm dùng để thực thi lệnh của một button khi nhấn phím Enter
		'   Parmeter  :   btnName: Tên button
		'									
		'   Return    :   
		'                 
		'   Date      :   13/12/2005
		'   Author    :   Nguyễn Đình Thản
		'-----------------------------------------------------------------------------------*/
	
{

	if (event.keyCode == 13)//Phím enter
  {
  
     document.getElementById(btnName).click()//.focus();
     return true; 
  }
}

function chuachon(oCheckBox)
{
	var kt=0;

	var theForm = oCheckBox.form;

	for (var i = 0; i < theForm.length; i++)
	{
		var oInput = theForm.elements[i];
		if (oInput.name.indexOf("chkSelect")!=-1)
		{
			if(oInput.checked==true)
			kt+=1; 
		}
		}
		if (kt==0)
		{
			alert('Bạn chưa chọn mẫu tin nào!');
			return false;
	}
	else return true;

}