	function validateFileType(imagePath)
	{
		imagePath=trim(imagePath);
		if(imagePath==null || imagePath=="")
			return true;
		var ext = imagePath;
		ext = ext.substring(ext.length-3,ext.length);
  		ext = ext.toLowerCase();
  		if(ext != 'jpg' && ext!='png' && ext!='gif' && ext!='bmp') {
    		return false;
  		} else {
    		return true;
  		}
	}

	function trim(s) {
		return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
 	}

 	function checkEmail(emailStr) {
 		if (emailStr.length == 0) {
        	return true;
        }
        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 validateEmail(object){
    	if(checkEmail(object.value)==false){
	        return false;
    	}
	    return true;
	}

	function validateEmailNoMsg(object){
    	if(checkEmail(object.value)==false){
        	return false;
	    }
    	return true;
	}

	function validateRequired(object){
    	if(object.value==null || trim(object.value)==""){
	        return false;
    	}
	    return true;
	}
	function validateRequiredNoMsg(object){
    	if(object.value==null || trim(object.value)==""){
        	return false;
	    }
    	return true;
	}

	//validate zip code
	function isZip(s)
	{
     	// Check for correct zip code
     	reZip = new RegExp(/(^\d{5}$)|(^\d{5}-\d{4}$)/);

     	if (!reZip.test(s)) {
          	return false;
     	}

		return true;
	}

	function isAllDigits(argvalue) {
		argvalue = argvalue.toString();
        var validChars = "0123456789";
        var startFrom = 0;
        if (argvalue.substring(0, 2) == "0x") {
        	validChars = "0123456789abcdefABCDEF";
                   startFrom = 2;
        } else if (argvalue.charAt(0) == "-") {
        	startFrom = 1;
        }
        for (var n = startFrom; n < argvalue.length; n++) {
        	if (validChars.indexOf(argvalue.substring(n, n+1)) == -1)
        		return false;
        }
        return true;
	}

	function isAllPositiveDigits(argvalue) {
		argvalue = argvalue.toString();
        var validChars = "0123456789";
        var startFrom = 0;
        if (argvalue.substring(0, 2) == "0x") {
        	validChars = "0123456789abcdefABCDEF";
                   startFrom = 2;
        } else if (argvalue.charAt(0) == "0") {
        	validChars = "01234567";
                startFrom = 1;
        }
        for (var n = startFrom; n < argvalue.length; n++) {
        	if (validChars.indexOf(argvalue.substring(n, n+1)) == -1)
        	return false;
        }
        return true;
	}

	function validateInteger(object){
    	var value=trim(object.value);
	    var bValid=true;
    	if (value.length > 0) {
    		if (!isAllDigits(value)) {
        		bValid=false;
	        } else {
    	    	var iValue = parseInt(value);
        	  	if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                   	bValid = false;
           		}
	        }
	    }
    	return bValid;
	}

	function validatePositiveInteger(object){
    	var value=trim(object.value);
	    var bValid=true;
    	if (value.length > 0) {
    		if (!isAllDigits(value)) {
        		bValid=false;
	        } else {
    	    	var iValue = parseInt(value);
        	   	if (isNaN(iValue) || (iValue > 2147483647) || (iValue<=0)) {
                	bValid = false;
           		}
        	}
    	}
        return bValid;
	}

	function validatePositiveIntegerAllowZero(object){
    	var value=trim(object.value);
	    var bValid=true;
		if (value.length > 0) {
    		if (!isAllDigits(value)) {
        		bValid=false;
	        } else {
    	    	var iValue = parseInt(value);
                if (isNaN(iValue) || (iValue > 2147483647) || (iValue<0)) {
                  	bValid = false;
                }
        	}
    	}
	   	return bValid;
	}

	function validatePositiveNumber(object){
    	var value=trim(object.value);
	    var bValid=true;
    	if (value.length > 0) {
    		if (!isAllPositiveDigits(value)) {
        		bValid=false;
	        }
	    }
    	return bValid;
	}

	function validatePositiveInt(value){
	    var bValid=true;
    	if (value.length > 0) {
    		if (!isAllPositiveDigits(value)) {
        		bValid=false;
	        }
	    }
    	return bValid;
	}

	function validateRealNumber(object){
    	var value=trim(object.value);
	    var bValid=true;
    	if (value.length > 0) {
    		if (!isAllPositiveDigits(value)) {
        		bValid=false;
	        } else {
                if (isNaN(value)) {
                	bValid = false;
                }
    	    }
	    }
   		return bValid;
	}

	function validateFloat(argValue) {
    	var value = argValue.value;
	    var bValid = true;

    	if (value.length > 0) {
		// remove '.' before checking digits
    	    var tempArray = value.split('.');
        	var joinedString= tempArray.join('');
	        if (!isAllDigits(joinedString)) {
    	        bValid = false;
        	} else {
            	var iValue = parseFloat(value);
	            if (isNaN(iValue)) {
					bValid = false;
	            }
    	    }
	    }
	    return bValid;
	}

	function validateFloatNoMsg(argValue) {
    	var bValid = true;

	    if (argValue.length > 0) {
    	    var tempArray = argValue.split('.');
        	var joinedString= tempArray.join('');
	        if (!isAllDigits(joinedString)) {
    	        bValid = false;
        	} else {
            	var iValue = parseFloat(argValue);
	            if (isNaN(iValue)) {
					bValid = false;
	            }
    	    }
	    }
    	return bValid;
	}

	function encodeText(input) {
  		if (input == "") {
            return input;
        }

        input = input.replace(/&/g, "&amp;");
		input = input.replace(/</g, "&lt;");
		input = input.replace(/>/g, "&gt;");
		input = input.replace(/\"/g, "&quot;");
		input = input.replace(/\'/g, "&#039;");

		return input
	} // encodeText(input)


	function decodeText(input) {
  		if (input == "") {
            return input;
        }

        input = input.replace(/&amp;/g, "&");
		input = input.replace(/&#038;/g, "&");
		input = input.replace(/&lt;/g, "<");
		input = input.replace(/&#060;/g, "<");
		input = input.replace(/&gt;/g, ">");
		input = input.replace(/&#062;/g, ">");
		input = input.replace(/&quot;/g, "\"");
		input = input.replace(/&#034;/g, "\"");
		input = input.replace(/&#039;/g, "\'");

		return input
	} // decodeText(input)

	//compare 2 days
  	function compareLessDateTime(strDate1,strDate2, strHour1, strMinute1, strHour2, strMinute2)
   	{
		var arrDate1=strDate1.split("/");
		var arrDate2=strDate2.split("/");
		var fromYear=Number(arrDate1[2]);
		var toYear=Number(arrDate2[2]);
		var fromMonth=Number(arrDate1[0]);
		var toMonth=Number(arrDate2[0]);
		var fromDay=Number(arrDate1[1]);
		var toDay=Number(arrDate2[1]);

        if(fromYear>toYear){//from year > to year => wrong
        	return false;
        }
        if(fromYear<toYear ){//from year < to year => wrong
        	return true;
        }
        if(fromYear==toYear){//from year = to year
        	if(fromMonth>toMonth ){//from month > to month => wrong
        		return false;
        	}
        	if(fromMonth<toMonth ){//from month < to month => true
        		return true;
        	}
        	if(fromMonth==toMonth){//from month = to month =>
        		if(fromDay==toDay){//day1=day2
        			if(strHour1>strHour2)
        				return false;
        			if(strHour1==strHour2){
        				if(strMinute1<strMinute2)
        					return true;
        				else
        					return false;
        			}
        			if(strHour1<strHour2){
        				return true;
        			}
        		}
        		if(fromDay<toDay){//from date > to date
        			return true;
	        	}else{
                	return false;
              	}
        	}
        }
	}

	//compare 2 days
  	function compareLessDate(strDate1,strDate2)
   	{
		var arrDate1=strDate1.split("/");
		var arrDate2=strDate2.split("/");
		var fromYear=Number(arrDate1[2]);
		var toYear=Number(arrDate2[2]);
		var fromMonth=Number(arrDate1[0]);
		var toMonth=Number(arrDate2[0]);
		var fromDay=Number(arrDate1[1]);
		var toDay=Number(arrDate2[1]);

        if(fromYear>toYear){//from year > to year => wrong
        	return false;
        }
        if(fromYear<toYear ){//from year < to year => wrong
        	return true;
        }
        if(fromYear==toYear){//from year = to year
        	if(fromMonth>toMonth ){//from month > to month => wrong
        		return false;
        	}
        	if(fromMonth<toMonth ){//from month < to month => true
        		return true;
        	}
        	if(fromMonth==toMonth){//from month = to month =>
        		if(fromDay<=toDay){//from date > to date
        			return true;
	        	}else{
                	return false;
              	}
        	}
        }
	}

	function isDecimalNumber(argValue) {
    	var value = trim(argValue.value);
	    var bValid = true;

    	for (i = 0; i < value.length; i++) {
        	if (value.charAt(i) < '0' || value.charAt(i) > '9') {
            	bValid = false;
	            break;
    	    }
	    }

	    return bValid;
	}

	function isHidden(argValue) {
    	var value = trim(argValue.value);
	    var bValid = true;

    	for (i = 0; i < value.length; i++) {
        	if (value.charAt(i) != 'x' && value.charAt(i) != 'X') {
            	bValid = false;
	            break;
    	    }
	    }

    	return bValid;
	}

	function isInteger(s)
	{   var i;
    	for (i = 0; i < s.length; i++)
	    {
    	    // Check that current character is number.
        	var c = s.charAt(i);
	        if (((c < "0") || (c > "9"))) return false;
	    }
    	// All characters are numbers.
	    return true;
	}

	function stripCharsInBag(s, bag)
	{
		var i;
	    var returnString = "";
    	// Search through string's characters one by one.
	    // If character is not in bag, append to returnString.
    	for (i = 0; i < s.length; i++)
	    {
    	    // Check that current character isn't whitespace.
        	var c = s.charAt(i);
	        if (bag.indexOf(c) == -1) returnString += c;
    	}
	    return returnString;
	}

	/* /Script for check valid phone number */
	function digitValidation(entered, digit)
	{
    	with (entered)
	    {
         	var value = trim(entered.value);
            var bValid = true;
           	for (i = 0; i < value.length; i++) {
              	if (value.charAt(i) < '0' || value.charAt(i) > '9') {
                	bValid = false;
                   	break;
               	}
          	}
           	if ((parseFloat(digit)<=digit && value.length<digit) || (parseFloat(digit)<=digit && value.length>digit) || bValid==false)
	        {
    	       	return false;
        	}
        	else {
        		return true;
        	}
	    }
	}

	function verifyIP (IPvalue) {
    	errorString = "";
	    theName = "IPaddress";

    	var ipPattern = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/;
	    var ipArray = IPvalue.match(ipPattern);

    	if (IPvalue == "0.0.0.0")
    		errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	    else if (IPvalue == "255.255.255.255")
			errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
	    if (ipArray == null)
		errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
	    else {
			for (i = 0; i < 4; i++) {
			    thisSegment = ipArray[i];
        	    if (thisSegment > 255) {
					errorString = errorString + theName + ': '+IPvalue+' is not a valid IP address.';
					i = 4;
            	}
	            if ((i == 0) && (thisSegment > 255)) {
					errorString = errorString + theName + ': '+IPvalue+' is a special IP address and cannot be used here.';
					i = 4;
            	}
			}
	    }
    	extensionLength = 3;

	    if (errorString == "")
    		return true;
	    else {
			alert (errorString);
	        return false;
    	}
	}