//All/None select all  checkbox
function check(frmObj, curCheckObj) {
	for(var i=0; i<frmObj.elements.length; i++) {
	    var e = frmObj.elements[i];
	    if(e != curCheckObj && e.type == 'checkbox') {
			if(!e.disabled) {
				e.checked = curCheckObj.checked;
			}
	    }
	}
}

function selectAll(obj, currObj) {
	if(obj) {
		if(obj.length){
			for(var i = 0; i < obj.length; i++){
				obj[i].checked = currObj.checked;
			}
		} else {
			obj.checked = currObj.checked;
		}
	}
}

function getCheckBoxState(obj){
	var checkState = "false";
	if(obj.length){
		for(var i = 0; i < obj.length; i++){
		    if(obj[i].checked == true){
				checkState = "true";
		    }
		}
	}else{
		if(obj.checked == true){
	    	checkState = "true";
		}
	}
	if(checkState == "true"){
		return true;
	}else{
		return false;
	}
}

function isOnlyOneSelectByCheckBox(obj){
	var selectCount = 0;
	if(obj.length){
		for(var i = 0; i < obj.length; i++){
		    if(obj[i].checked == true){
				selectCount++;
		    }
		}
	}else{
		if(obj.checked == true){
			selectCount++;
		}
	}
    return selectCount;
}

String.prototype.trim = function() {
  return this.replace(/(^\s*)|(\s*$)/g, "");
}

/**
 * compare date
 */
function compareDate(date1,date2)
{
  if(date2.trim()=='' || date1.trim() =='' )
    return false;
  var temp_date1=new Date(date1.replace(/-/gi, "/"));
  var temp_date2=new Date(date2.replace(/-/gi, "/"));
  if(temp_date1.getTime()>temp_date2.getTime())
    return true;
  else
    return false;
}

function CheckEmpty( str )
{
	return ( str == "" );
}

function Check( reg, str )
{
	if( reg.test( str ) )
	{
		return true;
	}
	return false;
}

function CheckNumber( str )
{
	var reg = /^\d*(\?:$|\.\d*$)/;
	return Check( reg, str );
}

function CompareNum( num1, num2 )
{
	if( num1 > num2 )
	{
		return 1;
	}
	if( num1 == num2 )
	{
		return 0;
	}
	return -1;
}

function CheckZip( str )
{
	var reg = /^\d{6}$/;
	return Check( reg, str );
}

function CheckMobile( str )
{
	var regMobile = /^\d{11,12}$/;
	return Check( regMobile, str );
}

function Check_Phone(strPhone)
{
    strPhone = TrimString(strPhone);
    if (strPhone.length == 0)
        return (true);

    var reVal = /(^[0-9]{3,4}\-[0-9]{3,4}\-[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
    return reVal.test(strPhone);
}

function CheckNum15( str )
{
	var reg = /^\d{15}$/;
	return Check( reg, str );
}

function CheckNum18( str )
{
	var reg = /^\d{17}(\?:\d|x)$/;
	return Check( reg, str );
}

function CheckCharOrNum( str )
{
	var reg = /^\w+$/;
	return Check( reg, str );
}

function CheckEmail( str )
{
	var reg = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
	return Check( reg, str );
}

function checkDate(obj) {
  if (obj.value.trim() == ""){
    return true;
  }
  var datestr = obj.value.replace(/-/gi, "/");
  var dt = new Date(datestr);
  if (isNaN(dt)){
    alert(obj.value + " is not a right date");
    obj.focus();
    obj.select();
    return false;
  }
  
  var yearStr = dt.getYear();
  if(yearStr < 500) yearStr = yearStr + 1900;
  var monthStr = dt.getMonth() + 1;
  if(monthStr < 10) monthStr = "0" + monthStr;
  var dayStr = dt.getDate();
  if(dayStr < 10) dayStr = "0" + dayStr;

  obj.value = yearStr + "-" + monthStr + "-" + dayStr;
  return true;
}

// isCorrectDate :
// Format yyyy-mm-dd
function isCorrectDate(dateStr)
{
	if ( dateStr.length != 10 )
		return false;
		
	var yearStr = dateStr.substring(0,4);
	var monthStr = dateStr.substring(5,7);
	if (monthStr.charAt(0) == '0' )
		monthStr = monthStr.substring(1);
	var dayStr = dateStr.substring(8,10);
	if ( dayStr.charAt(0) == '0' )
		dayStr = dayStr.substring(1);
		
	var year = parseInt(yearStr);
	var month = parseInt(monthStr);
	var day = parseInt(dayStr);
	
	if ( isNaN(year) || isNaN(month) || isNaN(day) )
		return false;
	if ( year<1990 || year>2037 )
		return false;	
	if ( month<1 || month>12 )
		return false;
	if ( day < 1 || day > 31 )
		return false;
	return true;
}

function isCorrectDateOrEmpty(dateStr)
{
	if ( dateStr==null || dateStr=="" || isCorrectDate(dateStr) )
		return true;
	else
		return false;
}

function isInteger(str)
{
	var result = parseInt(str);
	if ( isNaN(result) )
		return false;
	else
		return true;
}

function isFloat(str)
{
	var result = parseFloat(str);
	if ( isNaN(result) )
		return false;
	else
		return true;
}

function isEmptyValue(ctrlid)
{
	var ctrl = document.getElementById(ctrlid);
	if ( ctrl == null )
	{
		alert( "Could not found control of " + ctrlid );
		return false;
	}
	if ( ctrl.value == null || ctrl.value == "" )
		return true;
	else
		return false;
}

function selectRow(object)
{
	object.style.backgroundColor="#E3F1D1";
}

function leaveRow(object)
{
	object.style.backgroundColor="#FFFFFF";
}


function openWin(wid, hei, url, styleStr){

	var style = "toolbar=no, menubar=no, scrollbars=no, resizable=yes, location=yes, status=yes";
	if(styleStr){
		style = styleStr;
	}

	var left = (screen.width - wid)/2;
	var top =(screen.height - hei)/4;
    var shape = "height="+hei+",width="+wid+",top="+top+",left="+left+","+style;
    window.open(url, "_blank", shape);
}

function openWindow(wid, hei, url){
	var left = (screen.width - wid)/2;
	var top =(screen.height - hei)/4;
    var shape = "height="+hei+",width="+wid+",top="+top+",left="+left+",toolbar=no, menubar=no, scrollbars=yes,resizable=yes,location=yes, status=yes";
    window.open(url, "_blank", shape);
}

function openSpecifyWindow(wid, hei, url, winName){
	var left = (screen.width - wid)/2;
	var top =(screen.height - hei)/4;
    var shape = "height="+hei+",width="+wid+",top="+top+",left="+left+",toolbar=no, menubar=no, scrollbars=no,resizable=yes,location=yes, status=yes";
    var obj = window.open(url, winName, shape);
    obj.focus();
}


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];}
}