function isEmpty(obj) {
    obj.value = trim(obj.value);
    if (obj.value.length <= 0)  return(true);
    return(false);
}

function errmsg(str) {
	alert(str);
	return (false);
}

function trim(str) {
	var i=0;
	var j=str.length;
	for (i=0; i<str.length; i++) if (str.charAt(i)!=' ')  break;
	for (j=str.length-1; j>=0; j--) if (str.charAt(j)!=' ')  break;
	if (i>j)  return "";
	return str.substring(i, j+1);
}

function isNumber(num) {
	var charset="0123456789";
	for (var i=0;i<num.length;i++) {
		if (charset.indexOf(num.charAt(i)) == -1)
			return(false);
	}
	return(true);
}

function isHkPhoneNo(number) {
	var role = /^\d{8}$/;
	//alert("vaildPhoneNum:"+role.test(number));
	return role.test(number);
  }

function isValid(year,month,day) {
	var mDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var mDaysPlus = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var mdays = mDays;
	
	if ((year < 1999)|| (year > 2100)) return(false);
	if (month.length == 1) month ="0" + month;
	if (day.length ==1) day = "0" + day;
	if ((month < "01")|| (month > "12")) return(false);
	if ((day < "01")|| (month > "31")) return(false);
	if ((year % 400) == 0 || (year % 100)!=0 && (year % 4)==0)	mdays = mDaysPlus;	
	if (day <=0 || day > mdays[month-1]) {
		errmsg("日期錯誤!! "+ month +" 月並沒有 "+day+" 這一天");
		return(false);
	}
	return(true);
}

function isEmail(emailStr) {
	   var emailPat=/^(.+)@(.+)$/;
       var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
       var validChars="\[^\\s" + specialChars + "\]";
       var quotedUser="(\"[^\"]*\")";
       var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
       var atom=validChars + '+';
       var word="(" + atom + "|" + quotedUser + ")";
       var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
       var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
       var matchArray=emailStr.match(emailPat);
       if (matchArray == null) {
           return false;
       }
       var user=matchArray[1];
       var domain=matchArray[2];
       if (user.match(userPat) == null) {
           return false;
       }
       var IPArray = domain.match(ipDomainPat);
       if (IPArray != null) {
           for (var i = 1; i <= 4; i++) {
              if (IPArray[i] > 255) {
                 return false;
              }
           }
           return true;
       }
       var domainArray=domain.match(domainPat);
       if (domainArray == null) {
           return false;
       }
       var atomPat=new RegExp(atom,"g");
       var domArr=domain.match(atomPat);
       var len=domArr.length;
       if ((domArr[domArr.length-1].length < 2) ||
           (domArr[domArr.length-1].length > 3)) {
           return false;
       }
       if (len < 2) {
           return false;
       }
       return true;
}

function isLargerThan(end, start) { // if end > start then true
	if (!isDate(start)) return false;
	if (!isDate(end)) return false;
	var s = start.value;
	var e = end.value;

	var separator = "";
	if (s.indexOf("/") >= 0) {
		separator = "/";
	} else if (s.indexOf(".") >= 0) {
		separator = ".";
	} else if (s.indexOf("-") >= 0) {
		separator = "-";
	} else {
		return(false);
	}
	var as = s.split(separator);

	if (e.indexOf("/") >= 0) {
		separator = "/";
	} else if (e.indexOf(".") >= 0) {
		separator = ".";
	} else if (e.indexOf("-") >= 0) {
		separator = "-";
	} else {
		return(false);
	}
        var ae = e.split(separator);

        if( (as.length != 3) || (ae.length != 3)) return(false);

        var sYear = parseInt(as[0],10);
        var sMonth = parseInt(as[1],10);
        var sDay = parseInt(as[2],10);
        
        var eYear = parseInt(ae[0],10);
        var eMonth = parseInt(ae[1],10);
        var eDay = parseInt(ae[2],10);
        
	if(eYear > sYear) {
		 return(true);
	} else if(eYear == sYear && eMonth > sMonth) { 
		return(true);
	} else if((eYear == sYear) && (eMonth == sMonth) && (eDay > sDay)) {
		return(true);
	}
	return(false);
}	

function isNotLargerThan(start, end) { // if end >= start return  true
	if (!isDate(start)) return (false);
	if (!isDate(end)) return (false);
	var s = start.value;
	var e = end.value;

	var separator = "";
	if (s.indexOf("/") >= 0) {
		separator = "/";
	} else if (s.indexOf(".") >= 0) {
		separator = ".";
	} else if (s.indexOf("-") >= 0) {
		separator = "-";
	} else {
		return(false);
	}
	var as = s.split(separator);

	if (e.indexOf("/") >= 0) {
		separator = "/";
	} else if (e.indexOf(".") >= 0) {
		separator = ".";
	} else if (e.indexOf("-") >= 0) {
		separator = "-";
	} else {
		return(false);
	}
        var ae = e.split(separator);

        if((as.length != 3) || (ae.length != 3)) return(false);
        if (as[1].length ==1) as[1] = "0" + as[1];
        if (ae[1].length ==1) ae[1] = "0" + ae[1];
        if (as[2].length ==1) as[2] = "0" + as[2];
        if (ae[2].length ==1) ae[2] = "0" + ae[2];
	if(as[0] < ae[0]) {
		return(true);
	} else if(as[0] == ae[0] && as[1] < ae[1]) { 
		return(true);
	} else if((as[0] == ae[0]) && (as[1] == ae[1]) && (as[2] <= ae[2])) {
		return(true);
	}
	return(false);
}

function isNotLargerThanByValue(start, end) {
	var s = start;
	var e = end;

	var separator = "";
	if (s.indexOf("/") >= 0) {
		separator = "/";
	} else if (s.indexOf(".") >= 0) {
		separator = ".";
	} else if (s.indexOf("-") >= 0) {
		separator = "-";
	} else {
		return(false);
	}
	var as = s.split(separator);

	if (e.indexOf("/") >= 0) {
		separator = "/";
	} else if (e.indexOf(".") >= 0) {
		separator = ".";
	} else if (e.indexOf("-") >= 0) {
		separator = "-";
	} else {
		return(false);
	}
        var ae = e.split(separator);

        if((as.length != 3) || (ae.length != 3)) return(false);
        if (as[1].length ==1) as[1] = "0" + as[1];
        if (ae[1].length ==1) ae[1] = "0" + ae[1];
        if (as[2].length ==1) as[2] = "0" + as[2];
        if (ae[2].length ==1) ae[2] = "0" + ae[2];
	if(as[0] < ae[0]) {
		return(true);
	} else if(as[0] == ae[0] && as[1] < ae[1]) { 
		return(true);
	} else if((as[0] == ae[0]) && (as[1] == ae[1]) && (as[2] <= ae[2])) {
		return(true);
	}
	return(false);
}


function CountDays(year, month, day) {
	var mDays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var mDaysPlus = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var mdays = mDays;
	var i=0;
	var Totaldays=0;
	
	if ((year % 400) == 0 || (year % 100)!=0 && (year % 4)==0) mdays = mDaysPlus;
	for(i=1;i<=month;i++) Totaldays += mdays[i-1];
	Totaldays += day;
	return (Totaldays);				    
}


function openURL(url, name) {
    window.open( url, name );
}

