function trim(sString) 
{
	while (sString.substring(0,1) == ' ')
	{
	sString = sString.substring(1, sString.length);
	}
	while (sString.substring(sString.length-1, sString.length) == ' ')
	{
	sString = sString.substring(0,sString.length-1);
	}
	return sString;
}

function isEmail(emailstr)
{
	dotchar = emailstr.indexOf(".");
	atchar = emailstr.indexOf("@");
	dotlast = emailstr.lastIndexOf(".");
	spacechar = emailstr.indexOf(" ");
	len = emailstr.length;
	if( (dotchar == -1) || (atchar == -1) || (spacechar != -1) || (dotlast < atchar) || (dotlast == len - 1) )
	{
		return false;
	}
	else
	{
		return true;
	}
}

function isInteger(inputVal) {
	inputStr = inputVal.toString();
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if (i == 0 && oneChar == "-") { continue; }
		if (oneChar < "0" || oneChar > "9") { return false; }
	}
	return true;
}

function KTSo(obj) {

	if (!isInteger(obj.value))
	obj.value = "";
}


function isBlank(s){
	if ((s.length > 0) && (s != null) && (s != "")){
		return false;
	}
	return true;
}

function checkMonthLength(mm,dd) {
	var months = new Array("","Tháng 1","Tháng 2","Tháng 3","Tháng 4","Tháng 5","Tháng 6","Tháng 7","Tháng 8","Tháng 9","Tháng 10","Tháng 11","Tháng 12")
	if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30) {
		alert(months[mm] + " Chỉ có 30 ngày")
		return false
	} 
	else if (dd > 31) {
		alert(months[mm] + " Chỉ có  31 Ngày.")
		return false
	}
	return true
}

function checkLeapMonth(mm,dd,yyyy) {
	if (yyyy % 4 > 0 && dd > 28) {
		alert("Tháng 2 của năm " + yyyy + " chỉ có 28 ngày.")
		return false
	} 
	else if (dd > 29) {
		alert("Tháng 2 của năm " + yyyy + " Chỉ có  29 ngày.")
		return false
	}
	return true
}

function replaceString(inputVal,s,r) {
	var outputstr=""
	var inputStr = inputVal.toString()
	for (var i = 0; i < inputStr.length; i++){
		var oneChar = inputStr.charAt(i)
		if (oneChar ==s) oneChar=r
		outputstr=outputstr+oneChar
	}
	return outputstr
}

function isDate(gField) {
	var inputStr = gField.value
	if(inputStr.indexOf("-") != -1) {
		inputStr = replaceString(inputStr,"-","/")
	}
	var delim1 = inputStr.indexOf("/")
	var delim2 = inputStr.lastIndexOf("/")
	if((delim1 == -1) || (delim1 == delim2)){
		alert("Kiểu ngày bị sai : dd/mm/yyyy hoặc dd-mm-yyyy.")
		return false;
	}
	var dd = parseInt(inputStr.substring(0,delim1),10)
	var mm = parseInt(inputStr.substring(delim1 + 1,delim2),10)
	var yyyy = parseInt(inputStr.substring(delim2 + 1,inputStr.length),10)
	if (isNaN(dd) || isNaN(mm) || isNaN(yyyy)) {
		alert("Kiểu ngày bị sai. Kiểu ngày đúng là : dd/mm/yyyy hoặc dd-mm-yyyy.")
		return false;
	}
	if (mm < 1 || mm > 12) {
		alert("Tháng phải thuộc khoảng 01..12")
		return false;
	}
	if (dd < 1 || dd > 31) {
		alert("Ngày phải thuộc khoảng 01..31(phụ thuộc tháng)")
		return false;
	}
	if (yyyy < 100) {
		if (yyyy >= 30) yyyy += 1900;
		else yyyy += 2000;
	}
	if(yyyy > 2100)
	{
		alert("Năm không được lớn hơn năm 2100 ")
		return false;
	}
	if (!checkMonthLength(mm,dd)) { return false;	}
	if (mm == 2) {
		if (!checkLeapMonth(mm,dd,yyyy)) { return false; }
	}
	if (dd.length==1) dd="0"+dd;
	if (mm.length==1) mm="0"+mm;
	gField.value =dd + "/" + mm +"/" + yyyy;
	return true;
}

function IsSmaller(inputStr1, inputStr2)
{
	var delim1 = inputStr1.indexOf("/")
	var delim2 = inputStr1.lastIndexOf("/")
	
	// lay ngay, thang, nam cua ngay1
	var dd1 = parseInt(inputStr1.substring(0,delim1),10)
	var mm1 = parseInt(inputStr1.substring(delim1 + 1,delim2),10)
	var yyyy1 = parseInt(inputStr1.substring(delim2 + 1,inputStr1.length),10)

	delim1 = inputStr2.indexOf("/")
	delim2 = inputStr2.lastIndexOf("/")

	// lay ngay, thang, nam cua ngay2
	dd2 = parseInt(inputStr2.substring(0,delim1),10)
	mm2 = parseInt(inputStr2.substring(delim1 + 1,delim2),10)
	yyyy2 = parseInt(inputStr2.substring(delim2 + 1,inputStr2.length),10)

	// ngay1 nho hon ngay 2 ?
	if (yyyy2 >= yyyy1)
	{
		if (mm2 == mm1) 
			if (dd2 >= dd1) return true;
			else return false;
		else
			if (mm2 > mm1) return true;
			else return false;
	}
	else
		return false;
}

function kt2ngay(ngay1,ngay2) {
	if (!isBlank(ngay1.value)) {
		if (!isDate(ngay1)){ 
			ngay1.focus();
		    ngay1.select();
		    return false;
	   }
	 }
 
	if (!isBlank(ngay2.value)) { 
		if (!isDate(ngay2)){ 
			ngay2.focus();
	       ngay2.select();
	       return false;
    	 }
    }
    
	if ((!isBlank(ngay1.value)) && (!isBlank(ngay2.value))){ 
		if  (!IsSmaller(ngay1.value, ngay2.value)) {
			alert("Nhập sai giá trị ngày cấp GPKD !");
			ngay2.focus();
			ngay2.select();
			return false;
	  }
	}
	return true;
}

function Kiemtratimkiem(frmsearch)
{	
	var tu = trim(frmsearch.tungay.value);
	var den= trim(frmsearch.denngay.value);
	
	if(tu != "" && den != "")
		if(!kt2ngay(frmsearch.tungay,frmsearch.denngay))			
			return false;		
	tu = trim(frmsearch.vontu.value);
	den= trim(frmsearch.vonden.value);
	if(tu != "" && den != "")
		if(frmsearch.vontu.value >= frmsearch.vonden.value)
		{
			alert("Nhập sai giá trị vốn KD !");		
			return false;
		}
	return true;
}

function DoOpenNewWindow(urlAddress)
{
	//Khong duoc sua chu 'new'
    var edit = window.open(urlAddress,"new","menubar=No,location=No,toolbar=No,directories=No,scrollbars=No,resizable=No,height=200,width=410");
    edit.focus();
}

function Kiemtratentk(frmName,elementName,url)
{	
	var tk = document.forms[frmName].elements[elementName].value;
	tk = trim(tk);
	if(tk == "")
	{
		alert("Bạn chưa nhập tên tài khoản .");		
		document.forms[frmName].elements[elementName].focus();
		return;	
	}
	DoOpenNewWindow(url + "&tk=" + tk);	
}

function Kiemtradangky(frmAccount)
{
	var tk = frmAccount.username.value;
	tk = trim(tk);
	if(tk == "")
	{
		alert("Bạn chưa nhập tên tài khoản .");		
		frmAccount.username.focus();
		return false;
	}
	tk = frmAccount.password.value;
	tk = trim(tk);
	if(tk == "")
	{
		alert("Bạn chưa nhập mật khẩu cho tài khoản .");		
		frmAccount.password.focus();
		return false;
	}
	tk = frmAccount.txt_hoten.value;
	tk = trim(tk);
	if(tk == "")
	{
		alert("Bạn chưa nhập h? tên của bạn .");		
		frmAccount.txt_hoten.focus();
		return false;
	}
	tk = frmAccount.txt_diachi.value;
	tk = trim(tk);
	if(tk == "")
	{
		alert("Bạn chưa nhập địa chỉ liên lạc .");		
		frmAccount.txt_diachi.focus();
		return false;
	}
	tk = frmAccount.txt_ngaysinh.value;
	tk = trim(tk);
	if((tk != "") && !isDate(frmAccount.txt_ngaysinh))
		return false;
				
	tk = frmAccount.txt_email.value;
	tk = trim(tk);
	if(tk != "")
	{
		var e = isEmail(tk);
		if(!e)
		{
			alert("Email không đúng .");		
			frmAccount.txt_email.focus();
			return false;
		}
	}	
	return true;
}
