    /* form validation functions

    function list:
         1. isEmptyStr(testStr)
         2. isPhoneNumber(testStr)
         3. isMobilePhone(testStr)
         4. isADT(testStr)
         5. areAllDigitsSame(testStr)
         6. areAllCharsNumbers(testStr)
         7. isZipCode(testStr)
         8. isAFM(testStr)
         9. isEmail(testStr)
         10. isValidUsername(testStr)
         11. isValidPassword2(testStr)
         12. isValidPassword(testStr)
         13. isDate(testStr)
         14. formatDate(oTxt)
         15. isMoney(testStr)
         16. formatMoney(oTxt)
         17. checkLinkForHttp(oTxt)
         18. isSignedInt(testStr)
		 19. stripHTML()
    */

    function isEmptyStr(testStr) {
        var reg1;
        var outVal=true;

        reg1= "^ *$";
        re = new RegExp(reg1);
        if( !re.test(testStr) )
            outVal = false;
        return(outVal);
    }

    function isPhoneNumber(testStr) {
        // matches 210-9999999, 2990-999999, 29990-99999
        var reg1;
        var outVal=true;

        reg1= "^210-[0-9]{7}$";
        re = new RegExp(reg1);
        if( !re.test(testStr) ) {
            reg1= "^2[0-9]{2}0-[0-9]{6}$";
            re = new RegExp(reg1);
            if( !re.test(testStr) ) {
                reg1= "^2[0-9]{3}0-[0-9]{5}$";
                re = new RegExp(reg1);
                if( !re.test(testStr) ) {
                    outVal = false;
                }
            }
        }
        return(outVal);
    }

    function isMobilePhone(testStr) {
        // matches 69X999999 where X is 3 (tim), 4 (vodaphon), 7 (cosmote), 9 (q-telecom)
        var reg1;
        var outVal=true;

        reg1= "^697|4|3|9[0-9]{7}$";
        re = new RegExp(reg1);
        if( !re.test(testStr) )
            outVal = false;
        return(outVal);
    }

    function isADT(testStr) {
        // matches X-999999, where X any greek capital letter
        var reg1;
        var outVal=true;

        reg1= "^[Á-Ù]-[0-9]{6}$";
        re = new RegExp(reg1);
        if( !re.test(testStr) )
            outVal = false;
        return(outVal);
    }

    function areAllDigitsSame(testStr) {
        var outVal = true;
        var reg1;

        reg1 = "(^[1]+$)|(^[2]+$)"
        re = new RegExp(reg1);
        if( !re.test(testStr) )
            outVal = false;
        return(outVal);
    }

    function areAllCharsNumbers(testStr) {
        var reg1;
        var outVal=false;

        reg1= "^[0-9]+$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal=true;
        return(outVal);
    }

    function isZipCode(testStr) {
        // matches 99999
        var reg1;
        var outVal=false;

        reg1= "^[1-9][0-9]{4}$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            if( !areAllDigitsSame(testStr) )
                outVal = true;
        return(outVal);
    }

    function isAFM(testStr) {
        var reg1;
        var outVal=false;
        var re;
        var dsum;
        var divFact;
        var i;

        reg1= "^[0-9]{9}$";
        re = new RegExp(reg1);
        if( re.test(testStr) ) {
            dsum = 0;
            divFact = 256;
            for( i = 0; i<(testStr.length - 1); i++) {
              dsum = dsum + parseInt(testStr.substr(i,1)) * divFact;
              divFact = divFact / 2;
            }
            dsum = dsum % 11;
            if( dsum==10 && parseInt(testStr.substr(testStr.length-1,1))==0 )
                outVal=true;
            else
                if( dsum==parseInt(testStr.substr(testStr.length-1,1)) )
                    outVal=true;
                else
                    outVal=false;
        }
        return(outVal);

    }

	function isValidEmail(email, required) {
	    if (required==undefined) {   // if not specified, assume it's required
	        required=true;
	    }
	    if (email==null) {
	        if (required) {
	            return false;
	        }
	        return true;
	    }
	    if (email.length==0) {  
	        if (required) {
	            return false;
	        }
	        return true;
	    }
	    if (! allValidChars(email)) {  // check to make sure all characters are valid
	        return false;
	    }
	    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
	        return false;
	    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
	        return false;
	    } else if (email.indexOf("@") == email.length) {  // @ must not be the last character
	        return false;
	    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
		return false;
	    } else if (email.indexOf(".") == email.length) {  // . must not be the last character
		return false;
	    }
	    return true;
	}
	
	function allValidChars(email) {
	  var parsed = true;
	  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
	  for (var i=0; i < email.length; i++) {
	    var letter = email.charAt(i).toLowerCase();
	    if (validchars.indexOf(letter) != -1)
	      continue;
	    parsed = false;
	    break;
	  }
	  return parsed;
	}

    function isEmail(testStr) {
        // matches xxxx@xxxx.xxx
        var objRegExp =
         /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{2,3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;

        //check for valid email
        outVal= objRegExp.test(testStr);
        return(outVal);
    }

    function isValidUsername(testStr) {
        var reg1;
        var outVal=false;

        reg1= "^[a-zA-Z]{1}([a-zA-Z0-9\-_\.]{4,29})$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal = true;
        return(outVal);
    }

    function isValidPassword2(testStr) {
        var reg1;
        var outVal=false;

        reg1= "^[a-zA-Z]{1}([a-zA-Z0-9\-_\.]{4,29})$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal = true;
        return(outVal);
    }

    function isValidPassword(testStr) {
        var reg1;
        var outVal=false;

        reg1= "[a-zA-Z0-9\-_\.]{4,29}$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal = true;
        return(outVal);
    }

    function isDate(testStr) {
        var reg1;
        var outVal=true;

        reg1= "^([0-9]{1,2})\-|/([0-9]{1,2})\-|/[0-9]{2}|[0-9]{4}$";
        re = new RegExp(reg1,"g");

        if( !re.test(testStr) ) {
            return( false );
        }
        else {
            dts = (testStr.replace(/-/g,"/")).split("/");
            if( dts[2].length==2 )
                dts[2]='20'+dts[2];
            if( dts[2].length==3 )
                dts[2]='2'+dts[2];
            dti= new Array();
            dti[0] = parseInt(dts[0],10);
            dti[1] = parseInt(dts[1],10);
            dti[2] = parseInt(dts[2],10);
            if( dti[1]==2 && dti[0]>29 )
                return( false );
            if( !(dti[0]>=1 && dti[0]<=31) ||
                !(dts[1]>=1 && dts[1]<=12) )
                return(false);
            if( dti[2]<1980 || dti[2]>2020 )
                return(false);
            return( true );
        }
    }

    function formatDate(oTxt) {
        var testStr = oTxt.value;

        if( isDate(testStr) ) {
            dts = (testStr.replace(/-/g,"/")).split("/");
            if( dts[2].length==2 )
                dts[2]='20'+dts[2];
            if( dts[2].length==3 )
                dts[2]='2'+dts[2];
            if( dts[0].length==1 )
                dts[0]='0'+dts[0];
            if( dts[1].length==1 )
                dts[1]='0'+dts[1];
            oTxt.value= dts[0]+"/"+dts[1]+"/"+dts[2];
        }
        else {
            oTxt.value="";
        }
    }

    function isMoney(testStr) {
        var reg1;
        var outVal=false;

        reg1= "^(([0-9]*)|([0-9]*(\.|\,)[0-9]{0,2}))$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal = true;
        return(outVal);
    }

    function formatMoney(oTxt) {
        var oldVal = oTxt.value;

        if( !isMoney(oldVal) ) {
            oTxt.value="";
            oTxt.focus();
            return(false);
        }
        if( oldVal.length==0 )
            oldVal="0,00";
        oldVal = oldVal.replace(/\./,",");
        ms = oldVal.split(",");
        if(ms[0].length==0 )
            ms[0]="0";
        while( ms[0].substr(0,1)=='0' && ms[0].length>1 )
            ms[0] = ms[0].substr(1,ms[0].length-1);
        if( ms.length==2 ) {
            if(ms[1].length==0 )
                ms[1]="00";
            if(ms[1].length==1 )
                ms[1]=ms[1]+"0";
        }
        else
            ms[1]="00";
        oTxt.value= ms[0]+","+ms[1];
    }

    function checkLinkForHttp(oTxt) {
        var sVal = oTxt.value;
        if( sVal!='' ) {
            if( sVal.substring(0,7).toUpperCase()!='HTTP://' ) {
                sVal="http://"+sVal;
                oTxt.value = sVal;
            }
        }
    }

    function isSignedInt(testStr) {
        var reg1;
        var outVal=false;

        reg1= "^-?[0-9][0-9]*$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal = true;
        return(outVal);
    }


	// Strip HTML Tags (form) script- By JavaScriptKit.com (http://www.javascriptkit.com)
	// For this and over 400+ free scripts, visit JavaScript Kit- http://www.javascriptkit.com/
	// This notice must stay intact for use
	
	function stripHTML(){
		var re= /<\S[^><]*>/g
		for (i=0; i<arguments.length; i++)
		arguments[i].value=arguments[i].value.replace(re, "")
	}

    function isValidDnlFileName(testStr) {
        var reg1;
        var outVal=false;

        reg1= "^[a-zA-Z0-9_\.\-]*$";
        re = new RegExp(reg1);
        if( re.test(testStr) )
            outVal = true;
        return(outVal);
    }

