var ie4 = (document.all) ? true : false;
var ns4 = (document.layers) ? true : false;
var ns6 = (document.getElementById && !document.all) ? true : false;


	/*
		ham xac nhan lai hanh dong thuc hien .
		neu chon yes -> thuc hien . 
		nguoc lai khong thuc hien 
	*/
	function confirm_action(script, msg, frm ) 
	{
		if(confirm(msg)) 
		{
			frm = eval(frm); 				
			frm.action = script ;
			frm.submit();
		}
	}

	function openPlayMusic(url, name, width, height)
	{
		PWindow = window.open(url, name,'width=' + width + ',height=' + height+ ',resizable=no,scrollbars=no,toolbar=no,channelmode=no,location=no,left=0,top=0');  
		PWindow.focus();
	}


	/**
		function call popup window
	*/
	function PopUp(url, name, width,height,center,resize,scroll,posleft,postop) 
	{
		if (posleft != 0) { x = posleft }
		if (postop  != 0) { y = postop  }
	
		if (!scroll) { scroll = 1 }
		if (!resize) { resize = 1 }
	
		if ((parseInt (navigator.appVersion) >= 4 ) && (center)) {
		  X = (screen.width  - width ) / 2;
		  Y = (screen.height - height) / 2;
		}
		if (scroll != 0) { scroll = 1 }
	
		var Win = window.open( url, name, 'width='+width+',height='+height+',top='+Y+',left='+X+',resizable='+resize+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no');
		Win.focus();
	 }

/**
	Function check length of Post Object 
	// 32000; //BLOB or TEXT : 65535 

	function CheckLengthMsg(obj1, obj2 , len) 

	obj1  : obj check 
	obj2  : obj show label
	len   : length  
*/
function CheckLengthMsg(obj1, obj2 , len) 
{
	var MessageMaxAdv  = len ; 
	strPost = obj1.value;
	MessageLength = strPost.length ;
	if (MessageLength > MessageMaxAdv) 
	{
		//message = "Post: The maximum allowed length is " + MessageMaxAdv + " characters.\n";
		//alert(message + "      So far, you have used " + MessageLength + " characters.");
		strPost = strPost.substring(0 , MessageMaxAdv ) ;
		obj1.value = strPost ;
	} 
	obj2.value = eval(MessageMaxAdv - MessageLength) ;
}

/**
	Function call print dialog
*/
function PrintIt() 
{
	if(window.print)
		window.print();
	else 
		alert("Your Browser doesn't support this")
}

/**
	function call popup window
*/
function openWindow(url, name, width, height, resize, scroll)
{
	X = 300 ;
	Y = 200 ;

	if (!scroll) { scroll = 1 }
	if (!resize) { resize = 1 }

	if ((parseInt (navigator.appVersion) >= 4 ) ) {
	  X = (screen.width  - width ) / 2;
	  Y = (screen.height - height) / 2;
	}
	var Win = window.open( url, name, 'width='+width+',height='+height+',top='+Y+',left='+X+',resizable='+resize+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no');
	Win.focus();

}

/*
	kiem tra cac ky tu trong "valmark" co ton tai trong "valstr"
	CheckMarkVal("kjhiyu", "ASD")  return false
	CheckMarkVal("kjhiSwAu", "ASD")  return true  //ton tai S va A
*/
function CheckMarkVal(valstr, valmark)
{

	for(i = 0; i< valmark.length;i++)
	{
		if ( valstr.indexOf( valmark.charAt(i))>=0 || valstr.indexOf( valmark.charAt(i))>=0 ) 
		{
			return true;
		} 
	}
	return 	false;
}

/**
	kiem tra cac ky tu trong "mark" co ton tai trong "str"

	CheckMarkVal("kjhiyu", "ASD")  return false
	CheckMarkVal("ASAAAA", "ASD")  return true  //ton tai S va A
*/
function CheckExistVal(str, mark)
{

	for(i = 0; i<str.length; i++)
	{
		if (mark.indexOf(str.charAt(i))<0) 
		{
			return false;
		} 
	}
	return 	true;
}

/**
	dem so ky tu "mark" trong "str"
	CountChar("a&sd&fg&hj", "&")  = 3
*/
function CountChar(str, mark)
{
	var Count = 0;
	for(i = 0; i<str.length;i++)
	{
		if (str.charAt(i) == mark) 
		Count++;
	}
	return 	Count;
}

/**
 	Kiem tra xem ngay co hop le khong
  	neu hop le tra ve true
  	khong hop le tra ve false	
*/
function CheckDateVal(str)
{
	if(!CheckExistVal(str, '1234567890/') || CountChar(str,'/')!=2 )
	{
		return false;
	}

	var strYear, strMonth, strDay;
	var Year, Month, Day;
	
	var i = str.lastIndexOf("/") ;		strYear = str.substring(i+1, str.length) ;
	var j = str.lastIndexOf("/", i-1) ;	strMonth = str.substring(j+1, i);
	var k = str.indexOf("/") ;			strDay = str.substring(0,k);

	Year = StringToInt(strYear);
	Month = StringToInt(strMonth);
	Day = StringToInt(strDay);

	if(!CheckIntVal(strYear,2000,2999))
	{
		return false;	
	}
	if(!CheckIntVal(strMonth,1,12))
	{
		return false;	
	}
	if(!CheckIntVal(strDay,1,31))
	{
		return false;	
	}
	
	if (Month == 4 || Month == 6 || Month == 9 ||	strMonth ==11 )
	{
		if(Day > 30)
		{
			return false;
		}
	}
	if(((Year %4 ==0) && (Year %100 !=0)) || Year%400 ==0) //check nam nhuan
	{
		if((Month == 2 )&&( Day > 29))
		{
			return false;
		}
	}
	else	//nam khong nhuan
	{
		if((Month == 2 )&&( Day > 28))
		{
			return false;
		}
		
	}
	return 	true;
}

/**
	Compare  two date
	if strDate1 < strDate2  return  -1
	if strDate1 = strDate2  return  0
	if strDate1 > strDate2  return  1
*/
function CompaDate(strDate1, strDate2 )
{
	var strYear1, strMonth1, strDay1;
	var Year1, Month1, Day1;
	var strYear2, strMonth2, strDay2;
	var Year2, Month2, Day2;
	var i,j,k;

	i = strDate1.lastIndexOf("/") ;		strYear1 = strDate1.substring(i+1, strDate1.length);
	j = strDate1.lastIndexOf("/", i-1) ;	strMonth1 = strDate1.substring(j+1, i);
	k = strDate1.indexOf("/") ;		strDay1 = strDate1.substring(0,k);

	Year1 	= StringToInt(strYear1);
	Month1 	= StringToInt(strMonth1);
	Day1 	= StringToInt(strDay1);

	i = strDate2.lastIndexOf("/") ;		strYear2 = strDate2.substring(i+1, strDate2.length);
	j = strDate2.lastIndexOf("/", i-1) ;	strMonth2 = strDate2.substring(j+1, i);
	k = strDate2.indexOf("/") ;		strDay2 = strDate2.substring(0,k);

	Year2 	= StringToInt(strYear2);
	Month2 	= StringToInt(strMonth2);
	Day2 	= StringToInt(strDay2);
	if(Year1<Year2)
	{
		return -1;
	}
	else
	{
		if(Year1>Year2)
		{
			return 1;
		}	
		else //if(Year1==Year2)
		{
			if(Month1<Month2)
			{
				return -1;
			}	
			else
			{
				if(Month1>Month2)
				{
					return 1;
				}	
				else //if(Month1==Month2)
				{
					if(Day1<Day2)
					{
						return -1;
					}
					else
					{
						if(Day1>Day2)
						{
							return 1;
						}
						else
							return 0;
					}
				}
			}
		}
	}
}
/**
	if time1 < time2  return  -1
	if time1 = time2  return  0
	if time1 > time2  return  1
*/
function CompaTime(time1, time2)
{

	var strHour1, strMinute1;
	var Hour1, Minute1;
	
	
	var i = time1.indexOf(":") ;		
	strMinute1 = time1.substring(i+1, time1.length) ;
	strHour1 = time1.substring(0,i);

	Hour1 = StringToInt(strHour1);
	Minute1 = StringToInt(strMinute1);

	var strHour2, strMinute2;
	var Hour2, Minute2;
	
	i = time2.indexOf(":") ;		
	strMinute2 = time2.substring(i+1, time2.length) ;
	strHour2 = time2.substring(0,i);

	Hour2 = StringToInt(strHour2);
	Minute2 = StringToInt(strMinute2);

	
	if(Hour1 < Hour2)
	{
		return -1;
	}
	else
	{
		if(Hour1 > Hour2)
		{
			return 1;
		}
		else //Hour1 = Hour2
		{
			if(Minute1<Minute2)
			{
				return -1
			}
			else
			{
				if(Minute1>Minute2)
				{
					return 1;
				}
				else
				{
					return 0;
				}
			}
		}
	}
}

/**
 	Kiem tra gio (times)co hop le khong?
  	neu hop le tra ve true
  	khong hop le tra ve false	
*/
function CheckTimeVal(str)
{
	if(!CheckExistVal(str, '1234567890:') || CountChar(str,':')!=1 )
	{
		return false;
	}

	var strHour, strMinute;
	var Hour, Minute;
	
	var i = str.indexOf(":") ;		
	strMinute = str.substring(i+1, str.length) ;
	strHour = str.substring(0,i);

	Hour = StringToInt(strHour);
	Minute = StringToInt(strMinute);

	if(!CheckIntVal(strHour,0,24))
	{
		return false;	
	}
	
	if(!CheckIntVal(strMinute,0,60))
	{
		return false;	
	}
	return 	true;
}

/**
Ham kiem tra xem  so nhap vao val co thuoc khoang low<=  val <=high khong
neu thoa thi tra ve true
nguoc lai tra ve false
**/
function CheckIntVal(val,low,high) 
{
	if (val!="") 
	{
		if (!StringIsNum(val)) 
		{
			//alert(val + " is not a valid ! value must be a number!");
			return false;
		} else 
		{
			if (StringToInt(val)<=high && StringToInt(val)>=low) 
				return true;
			else 
			{
				//alert(val + " is not a valid ! value must be " + low + "-" + high);
				return false;
			}
		}
	} 
		return false;
}
/**
Ham tra ve so nguyen  tu mot chuoi 
neu chuoi nhap vao khong hop le thi tra ve gia tri 0;
*/
function StringToInt(str) 
{
	//neu khong phai la chuoi so 
	if(!StringIsNum(str))
		return 0 ;
	
	if (str.charAt(0)=='0') 
		return StringToInt(str.substring(1,str.length));
	else 
		if (str.length  > 0 ) 
			return parseInt(str);
		 else 
			return (0);
}
/**
ham kiem tra xem chuoi val co phai la chuoi so khong?
neu dung tra ve true 
nguoc lai tra ve false
*/
function StringIsNum(val) 
{
	var is=true;
	var str=new String(val);
	for (i=0;i<str.length;i++) 
	{
		if (isNaN(parseInt(str.charAt(i)))) 
		{
			is=false;
			break;
		}
	}
	return is;
}
/**
	Ham kiem tra mail co hop le khong
*/
function CheckEmail(email) 
{

	if( email=="" )   // khong nhap -> hop le 
	{
		return true ;
	}
	
	if (!CheckMarkVal(email, "#$\"'/\\")) 
	{
		if (email.indexOf("@")==-1) // || email.indexOf(".")==-1 ) 
		{
			return false;
		}
		else 
		{
			return true;
		}
	}
	else 
	{
		return false;
	}
}
/**
	kiem tra full 
	Ham kiem tra mail co hop le khong
*/
function isEmail(value) {
	/*
		Email Address's Format: username@subdomain.domain
		Email Address must be include 3 part:
			part 1: username
			part 2: @
			part 3: <domainname[.domainname,...]>.<domainname>

			return : true|false 
	*/
	if (value==null || value=="")	return true;
	if (value.indexOf(" ")>=0)		return false;

	var state, code, username, domain, amountOfDot, i;
	state = 1; username=''; domain=''; amountOfDot = 0;
	for (i=0; i<value.length; i++) {
		code = value.charAt(i);
		if (state==1) {
			if (	code == "<" || code == ">" 
					|| code == "(" || code == ")"	) return false;
			else if (	code == "@"	)
				if (username == '') return false;
				else state = 3;
			username += code;
		}
		else if (state==3) {
			if (	(code >= "0" && code <= "9")
					|| (code >= "A" && code <= "Z")
					|| (code >= "a" && code <= "z")
					|| code == "_"
					|| code == "-"
				) ;
			else if (code == ".")
				if (domain == '' || domain.charAt(domain.length-1) == '.') return false;
				else amountOfDot++;
			else return false;
			domain += code;
		}
	}
	if (state != 3) return false;
	if (domain == '' || domain.charAt(domain.length-1) == '.') return false;
	if (amountOfDot <1) return false;
	return true;
}


// function for layer 
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_showHideLayers() 
{ //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
/**
	Tim kiem va active item 
	doSearchComboBox(formName.option, formName.txtSearch.value)
*/
function doSearchComboBox(selChoose, text )
{

	//var listText; // display strings
	//var listValue; // keys

	//store values and keys
	listText = new Array(selChoose.length);
	listValue = new Array(selChoose.length);
	for(var i = 0; i < selChoose.length; i++)
	{
		listText[i] = selChoose.options[i].text;
		listValue[i] = selChoose.options[i].value;
	}

	// remove all list in the select box
	while(selChoose.length != 0)
	{
		selChoose.options[0] = null;
	}

	// add to list the search result
	// add the string that matched the text first
	for(var i = 0; i < listText.length; i ++)
	{
		if(listText[i].toLowerCase().indexOf(text.toLowerCase()) == 0)
		{
			isChosen = false;
			if(!isChosen)
			{
				opt = new Option();
		   		opt.value = listValue[i];
	    		opt.text = listText[i];
				selChoose.options[selChoose.length] = opt;
			}
   		}
   	}
	
	// add remaining search result
	for (var i = 0; i < listText.length; i ++)
	{
		if(listText[i].toLowerCase().indexOf(text.toLowerCase()) >= 0)
		{
			isChosen = false;
			// search in the source list first
			for(var ii = 0; ii < selChoose.length; ii++)
			{
				if(selChoose.options[ii].value == (listValue[i]))
				{
					isChosen = true;
					break;
				}
			}
			if(!isChosen)
			{
				opt = new Option();
		   		opt.value = listValue[i];
	    		opt.text = listText[i];
				selChoose.options[selChoose.length] = opt;
			}
		}
    }

	// add remaining
	for (var i = 0; i < listText.length; i ++)
	{
			isChosen = false;
			// search in the source list first
			for(var ii = 0; ii < selChoose.length; ii++)
			{
				if(selChoose.options[ii].value == (listValue[i]))
				{
					isChosen = true;
					break;
				}
			}
			
			if(!isChosen)
			{
				opt = new Option();
		   		opt.value = listValue[i];
	    		opt.text = listText[i];
				selChoose.options[selChoose.length] = opt;
			}
    }

	// set forcus
	for(var i = 0; i < selChoose.length; i++)
	{
		if(selChoose.options[i].text.toLowerCase().indexOf(text.toLowerCase()) == 0)
		{			
			selChoose.options[i].selected = true;
   			break;
   		}
   	}
}
//end : function doSearchComboBox(selChoose, text )



// Add/Remove cac thanh phan cua List
// add : select can bo dung
// remove : select can xoa
// form : Form
// bt : button tuong ung can Disable khi select rong

function ChooseSelect(add, remove,form,bt) 
{
	lenr = remove.length;	
	lena = add.length;		
	select_ = -1;
	if (lenr != 0) 
	{
		var i = 0;
		while (i < lenr) 
		{
			if (remove.options[i].selected == true) 
			{
				if (select_ != -1) 	
					select_ = i;

				opt = new Option();							
				opt.text = remove.options[i].text;
				opt.value = remove.options[i].value;		
				add.options[lena++] = opt;
				remove.options[i] = null;					
				--lenr;
			} 
			else
				i++;
		}
		if (( lenr > 0) && (select_ != -1)) 
		{
			if (select_ < lenr) 
				remove.options[select].selected = true;
		    else 
				remove.options[0].selected = true;
		}

		if (lenr == 0) 
			bt.disabled=true;
		
	}
}

// Submit form (ton tai select lua chon)
// select : select can submit chung voi Form
// hid : the Hidden chua noi dung cua select
// form : Form
// khong goi method submit 
function SubmitSelect(add,addh,remove,removeh,form) {
	var len = add.length;
	var str = "";	
	
	if(len != 0)
	{
		for(var i = 0; i < len; i++)
		{
			str += add.options[i].value + ';' ;
		}
	}
	else
	{
		str ="" ; 
	}
	addh.value = str;	

	len = remove.length;
	if(len != 0) {
		var str = "";
		for(var i = 0; i < len; i++)
			str += remove.options[i].value + ';' ;
	}
	else
	{
		str ="" ; 
	}
	removeh.value = str;
	
	// form.submit();		
}

// goi ham check all cac checkbox co ten la "listid[]"
/*
	frm : form 
	objcheck : object checkbox  dung de lay thong tin "check" hay "uncheck" 
*/
function CheckAllCheckBox(frm, objcheck )
{
	for (var i=0;i<frm.elements.length;i++)
	{
		var oField = frm.elements[i];
		if ( oField.type=="checkbox" && oField.name == "listid[]" )
		{
			oField.checked = objcheck.checked ;
		}
	}//for (var i=0;i<document.editform.elements.length;i++)
}// end function 


// End script 
