<!--



function ltrim(str) {
//	for (i=0; i<str.length; i++)
//		if (str.charAt(i)!=" ") break;
//	return str.substr(i);
	var LTRIMrgExp = /^\s */;
	return str.replace(LTRIMrgExp, '');
}

function rtrim(str) {
	var RTRIMrgExp = /\s *$/;
	return str.replace(RTRIMrgExp, '');
}

function trim(str) {
	return ltrim(rtrim(str));
}

function errorAlert(obj, tagErr) {
	//document.location.replace('#top');
	objErr = document.getElementById('err_top');
	if (objErr!=null) objErr.style.display = '';
	if(tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = '';
	//if(obj.disabled==false) obj.focus();
	//if(obj.type=="text" || obj.type=="password") obj.select();
	return false;
}

function errorAlertOff(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	//return false;
}

function checkRequired(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = obj.value;
	if (trim(s)=="")
		return errorAlert(obj, tagErr);
	return true;
}

function _checkTime(st) {
	var s = trim(st);
	var i = s.indexOf(":");
	if (i<0) return false;
	var hh = s.substr(0, i);
	var mm = s.substr(i+1);

	if (!_checkInt(hh)) return false;
	if (!_checkInt(mm)) return false;

	h = hh.valueOf();
	m = mm.valueOf();

	if ((h<0) || (h>23)) return false;
	if ((m<0) || (m>59)) return false;

	return true;
}

function checkTime(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkTime(s))
		return errorAlert(obj, tagErr);
	return true;
}

// date format: mm/dd/yyyy
function _checkDate(st) {
	var s = trim(st);
	var i1 = s.indexOf("/");
	if(i1<0) return false;

	var i2 = s.indexOf("/",i1+1);
	if (i2<0) return false;
	var mm = s.substr(0, i1);
	var dd = s.substr(i1+1, i2-(i1+1));
	var yy = s.substr(i2+1);

	if (!_checkInt(dd)) return false;
	if (!_checkInt(mm)) return false;
	if (!_checkInt(yy)) return false;

	d = dd.valueOf();
	m = mm.valueOf();
	y = yy.valueOf();

	if ((m<1) || (m>12)) return false;
	if (y<1) return false;
	var leapyear=( ((y % 4)==0 && (y % 100)!=0) || (y % 400)==0 );
	var maxday=0;

	maxday=31;
	if ((m==4) || (m==6) || (m==9) || (m==11))
		maxday=30;
	if (m==2)
		maxday=(leapyear)?29:28;

	if ((dd.valueOf()<1) || (dd.valueOf()>maxday)) return false;
	return true;
}

function checkDate(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkDate(s))
		return errorAlert(obj, tagErr);
	return true;
}

function dateUTC(st) {
	// st co dang: mm/dd/yyyy
	s = trim(st);
	var i1 = s.indexOf("/");
	var i2 = s.indexOf("/",i1+1);
	var mm = s.substr(0, i1);
	var dd = s.substr(i1+1, i2-(i1+1));
	var yy = s.substr(i2+1);
	return Date.UTC(yy, mm-1, dd);
}

function lessDate(s1, s2) {
	return (dateUTC(s1) < dateUTC(s2));
}

function _checkInt(st) {
// st must > 0
	var checkStr = trim(st);
	if(checkStr.length < 1 || checkStr == "") return false;
	var checkOK = "0123456789";
	for (i=0; i<checkStr.length; i++) {
		ch = checkStr.charAt(i);
		if (checkOK.indexOf(ch) < 0)
			return false;
	}
	if (checkStr.valueOf()<=0) return false;
	return true;
}

function checkInt(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkInt(s))
		return errorAlert(obj, tagErr);
	return true;
}

function _checkRange(st, minR, maxR) {
	var checkStr = trim(st);
	if (!_checkInt(checkStr)) return false;
	var v = checkStr.valueOf();
	return ((v>=minR) && (v<=maxR));
}

function checkRange(obj, tagErr, minR, maxR) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkRange(s, minR, maxR))
		return errorAlert(obj, tagErr);
	return true;
}

function _checkDouble(st) {
	var checkStr = trim(st);
	if (checkStr.length < 1) return false;
	var checkOK = "0123456789.";
	for (i=0; i<checkStr.length; i++) {
		ch = checkStr.charAt(i);
		if (checkOK.indexOf(ch) < 0)
			return false;
	}
	if (checkStr.indexOf(".")!=checkStr.lastIndexOf("."))
		return false;
	return true;
}

function checkDouble(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkDouble(s))
		return errorAlert(obj, tagErr);
	return true;
}

function _checkPhone(st){
	var checkOK = "0123456789-+() ";
	var checkStr = trim(st);
	if (checkStr.length < 7) return false;
	if (checkStr.length > 10) return false;
	for (i=0; i<checkStr.length; i++) {
		ch = checkStr.charAt(i);
		if (checkOK.indexOf(ch) < 0)
			return false;
	}
	return true;
}

function checkPhone(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkPhone(s))
		return errorAlert(obj, tagErr);
	return true;
}

function _checkEmail(st){
	//var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var emailReg = "^[_a-zA-Z0-9-]+(\\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\\.[a-zA-Z0-9-]+)*(\\.[a-zA-Z]{2,3})$";
	var regex = new RegExp(emailReg);
	return regex.exec(st);
}

function checkEmail(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkEmail(s))
		return errorAlert(obj, tagErr);
	return true;
}

function _checkEmailArray(st) {
	var s = trim(st);
	if (s.indexOf(";")<0 && s.indexOf(",")<0) {// single email address
		return _checkEmail(s);
	}
	// multiple email address use ; or , as separate character
	var arr
	var s1='';
	if (s.indexOf(";")>-1)
		arr = s.split(";");
	else
		arr = s.split(",");
	for(var i=0;i<arr.length;i++) {
		s1 = trim(arr[i]);
		if (!_checkEmailArray(s1)) return false;
	}
	return true;
}

function checkEmailArray(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	var last_character = s.charAt(s.length-1);
	if (last_character==";" || last_character==",")
		s = s.substr(0, s.length-1);
	if (!_checkEmailArray(s))
		return errorAlert(obj, tagErr);
	return true;
}

function _checkUpFile(Upfile_Object)
{
	var array_morong=new Array('doc','html','htm','pdf','txt','ppt','dat','avi','mp3');
	var mo_rong=Upfile_Object.value.substr(Upfile_Object.value.lastIndexOf(".")+1,Upfile_Object.value.length);
	var is_submit=false;
	for(i=0;i<array_morong.length;i++) if(mo_rong.toUpperCase()==array_morong[i].toUpperCase()) var is_submit=true;
	if(is_submit==false)
	{
		alert('Invalid file extension '+'.'+mo_rong+'!');
		return false;
	}
	return true;
}

function checkUpFile(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkUpFile(s))
		return errorAlert(obj, tagErr);
	return true;
}

function getCheckBoxIDs(frm, chkName) {
	var sID = "";
	for(i=0; i<frm.elements.length; i++) {
		if (frm.elements[i].name==chkName) {
			if (frm.elements[i].checked)
				sID += ',' + frm.elements[i].value;
		}
	}
	if (sID.length>0) sID = sID.substr(1);
	return sID;
}

function getListBoxIDs(lbx) {
	var sID = "";
	for(i=0; i<lbx.length; i++) {
		if (lbx.options[i].selected)
			sID += ',' + lbx.options[i].value;
	}
	if (sID.length>0) sID = sID.substr(1);
	return sID;
}

function setListBoxIDs(lbx, sIDs) {
	var arIDs = "," + sIDs + ",";
	var sID;
	for(i=0; i<lbx.length; i++) {
		sID = ',' + lbx.options[i].value + ',';
		if (arIDs.indexOf(sID)>-1)
			lbx.options[i].selected = true;
	}
}



//*********************************************************************************
function AddTo(osource, odes){
	for(k=0; k<osource.length; k++){
		IsExisted = false;
		if(osource.options[k].selected == true){
			stext = osource.options[k].text;
			svalue = osource.options[k].value;
			for(i=0; i<odes.length; i++){
				if(svalue == odes.options[i].value){
					IsExisted = true;
					break;
				}//end if
			}//for
			if(IsExisted == false){
				var oOption = new Option(stext, svalue);
				j = odes.length;
				odes.options[j] = oOption;
			}//end if
		}//end if
	}//for
}

//*********************************************************************************
function RemoveFrom(osource){
	for(k=osource.length-1; k>-1; k--){
		if(osource.options[k].selected){
			osource.options[k]= null;
		}
	}
}

//*********************************************************************************
function maxLength(oText, len) {
	if (oText.value.length>len) oText.value = oText.value.substr(0,len);
}

//*********************************************************************************
function selectAll(ocombo){
	for(i=0; i<ocombo.length; i++){
		ocombo.options[i].selected = true;
	}
}

//*********************************************************************************
function inputFloat(oText, allowNeg) {
	if (oText.value == "") return true;
	var i, c, state, value;
	state	= 'H';
	value	= '';
	for (i=0; i<oText.value.length; i++) {
		c	= oText.value.charAt(i);
		if (c == '-') {
			if (i==0 && allowNeg==true) value += c;
		}
		else if (c == '.') {
			if (state == 'H') {
				value	+= c;
				state	= 'T';
			}
		}
		else if (c >= '0' && c <= '9') {
			value += c;
		}
	}
	if (value.length>0 && value.charAt(0) == '.') value = '0' + value;
	if (oText.value != value) oText.value	= value;
}

//*********************************************************************************
function inputInt(oText, allowNeg) {
	if (oText.value == "") return true;
	var i, c, value;
	value	= '';
	for (i=0; i<oText.value.length; i++) {
		c	= oText.value.charAt(i);
		if (c == '-') {
			if (i==0 && allowNeg==true) value += c;
		}
		else if (c >= '0' && c <= '9') {
			value += c;
		}
	}
	if (oText.value != value) oText.value	= value;
}

function openWin(url,title,width,height) {
	window.open(url,title,'width='+width+',height='+height+',scrollbars=yes,toolbar=no,menubar=no,status=no,resizable=no');
}


function _checkText(st) {
// st must > 0(\\.[_-&,])*
	//var pattern = "^[_a-zA-Z-]+$";
	var pattern = "[^0-9]+$";
	var regex = new RegExp(pattern);
	return regex.exec(st);
}

function checkText(obj, tagErr) {
	if (tagErr==null) tagErr = 'err_' + obj.name;
	objErr = document.getElementById(tagErr);
	objErr.style.display = 'none';
	var s = trim(obj.value);
	if (!_checkText(s))
		return errorAlert(obj, tagErr);
	return true;
}

/* Huy  20-02-2006*/
function checkAllBoxes(parentinputid, inputid, total){
	var objparentinput = document.getElementById(parentinputid);
	if(objparentinput.checked==true){
		for(i=0; i<total; i++){
			var objinput = document.getElementById(inputid + i);
			if(objinput.disabled==false){					
				objinput.checked = true;
			}	
		}	
	}
	else{
		for(i=0; i<total; i++){
			var objinput = document.getElementById(inputid + i);
			if(objinput.disabled==false){					
				objinput.checked = false;
			}	
		}
	}	
}

function checkBoxes(parentinputid, inputid, total){
	var number = 0;
	for(i=0; i<total; i++){
		var objinput = document.getElementById(inputid + i);
		if(objinput.checked==true){					
			number++;
		}				
	}
	var objparentinput = document.getElementById(parentinputid);
	if(number==total)
		objparentinput.checked=true;
	else objparentinput.checked=false;
}
//-->
