var returnedVariable = true;

function validate(frm) {

    var msg = "";
    var frmname = "frm";
    var formArray = eval('' + frm.name + 'Array');
    
    for(bb = 0; bb < formArray.length; bb ++ ) {
        name = formArray[bb][2];
        var o = document.getElementById(name);
        if (o) o.className = o.className.replace(' error_field','');
    }
    
    for(i = 0; i < formArray.length; i ++ ) {
        if(formArray[i].length >= 4)
            
        var val1 = eval("frm." + formArray[i][3] + ".value");
        if(formArray[i].length >= 5)
            
        var val2 = eval("frm." + formArray[i][4] + ".value");
        var val = eval("frm." + formArray[i][2] + ".value");
        
        eval("" + formArray[i][0] + ";");
        
        name = formArray[i][2];
        var o = document.getElementById(name);
        
        if( ! returnedVariable) {
            msg = msg + formArray[i][1] + "\n";
            if(o) o.className += ' error_field';
        }
        
        returnedVariable = true;
    }
    if(msg == "")
        return true;
    
    alert("The form can not be submitted because it is not properly filled.\n" + msg);
    return false;
}
function isHTTP(val) {
    if(trim(val).length > 0) {
        var matchArr = val.match(/^(http|https):\/\/[\w\W]+$/);
        if(matchArr == null)
            returnedVariable = false;
    }
}
function isEmail(val) {
    if (trim(val) != "") {

        reg = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
        var regExpress2 = val.match(reg);
        if (regExpress2==null)
            returnedVariable = false;
    }    
    //if(val.indexOf('@') < 0 || val.indexOf('.') < 0)
      //  returnedVariable = false;
}

function isRegularPassword(val) {
	var valid = true;
	var flen = trim(val).length;
	if(flen<6) valid=false;
	return valid;
}

function isNotEmpty(val) {
    if(trim(val) == "") {
        returnedVariable = false;
        return false;
    }
    return true;
}

function isSelected(val) {
    if(val == "" || val==null) {
        returnedVariable = false;
        return false;
    }
    return true;
}
function isNumber(val) {
    if(trim(val) != '') {
        if(isNaN(trim(val)))
            returnedVariable = false;
    }
    
}
function isMoney(val) {
    if(trim(val).length > 0) {
        allowed = "0123456789()-,.$ ";
        digits = "0123456789";
        numCount = 0;
        for(j = 0; j < val.length; j ++ ) {
            if(allowed.indexOf(val.charAt(j)) < 0)
                returnedVariable = false;
            if(digits.indexOf(val.charAt(j)) >- 1)
                numCount ++ ;
        }
        if(returnedVariable && numCount == 0)
            returnedVariable = false;
    }
}
function isUSPhone(val) {
    var regExpress2 = val.match(/^\d{10}$/);
    var regExpress3 = val.match(/^(\d{3})\-\d{3}-\d{4}$/);
    if(trim(val) != "")
        
    if(regExpress2 == null && regExpress3 == null)
        returnedVariable = false;
}

function isAUPhone(val) {
    var regExpress2 = val.match(/^\d{10}$/);
   
    if (trim(val) != "")

        if (regExpress2 == null)
        returnedVariable = false;
}

function isZipCode(val) {
    if(trim(val) != "") {
        var matchArr1 = val.match(/^\d{5}$/);
        var matchArr2 = val.match(/^\d{9}$/);
        var matchArr3 = val.match(/^(\d{5})\-\d{4}$/);
        
        if(matchArr1 == null && matchArr2 == null && matchArr3 == null)
            returnedVariable = false;
    }
}
function isPercent(val) {
    if(trim(val).length > 0) {
        allowed = "0123456789()-,.% ";
        digits = "0123456789";
        numCount = 0;
        for(j = 0; j < val.length; j ++ ) {
            if(allowed.indexOf(val.charAt(j)) < 0)
                returnedVariable = false;
            
            if(digits.indexOf(val.charAt(j)) >- 1)
                numCount ++ ;
        }
        if(returnedVariable && numCount == 0)
            returnedVariable = false;
    }
}
function trim(str) {
    return str.replace(/^\s+/g, '').replace(/\s+$/g, '');
}

function isSeoUrl(val) {
    var reg = val.match(/[^a-z\ \,\-\_A-Z0-9\&\.\"\']{1,}/);
    returnedVariable = reg == null;
}

function isValidDate(val) {

    var vcTempMsg = true;
    if (trim(val) != "") {
        var valArray = new Array();
        valArray = val.split("/");
        if (valArray.length != 3) {
            returnedVariable = false;
            vcTempMsg = false;
        }
        val = valArray[0];
        val1 = valArray[1];
        val2 = valArray[2];
        if (isNaN(val) || val.length > 2 || val.length < 1 || val < 1) {
            returnedVariable = false;
            vcTempMsg = false;
        }
        if (isNaN(val1) || val1.length > 2 || val1.length < 1 || val1 < 1 || val1 > 12) {
            returnedVariable = false;
            vcTempMsg = false;
        }
        if (isNaN(val2) || val2.length != 4 || val2 < 1) {
            returnedVariable = false;
            vcTempMsg = false;
        }

        error = 0;
        day = parseInt(val);
        mnth = parseInt(val1);
        yr = parseInt(val2);

        // mnthArray[0] is january, mnthArray[11] is december
        if (yr % 4 == 0)
            mnthArray = new Array(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        else
            mnthArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

        // netscape/IE number months starting with january = 0
        mnth = mnth - 1;
        if (day > parseInt(mnthArray[parseInt(mnth)])) {
            returnedVariable = false;
            vcTempMsg = false;
        }
    }
    return vcTempMsg;
}

function date_compare(date1, date2) {
    var returnedVariable = true;
    var date1Array;
    var date2Array;

    date1Array = date1.split("/");
    date1 = mktime(0, 0, 0, date1Array[1], date1Array[0], date1Array[2]);

    date2Array = date2.split("/")
    date2 = mktime(0, 0, 0, date2Array[1], date2Array[0], date2Array[2]);

    if (date1 > date2)
        returnedVariable = false;

    return returnedVariable;

}


//FUNCTION COMPATIBLE WITH MKDTIME IN PHP INCLUDED ID THE FUNCTION date_compare
function mktime() {
    var no = 0, i = 0, ma = 0, mb = 0, d = new Date(), dn = new Date(), argv = arguments, argc = argv.length;

    var dateManip = {
        0: function(tt) { return d.setHours(tt); },
        1: function(tt) { return d.setMinutes(tt); },
        2: function(tt) { var set = d.setSeconds(tt); mb = d.getDate() - dn.getDate(); d.setDate(1); return set; },
        3: function(tt) { var set = d.setMonth(parseInt(tt, 10) - 1); ma = d.getFullYear() - dn.getFullYear(); return set; },
        4: function(tt) { return d.setDate(tt + mb); },
        5: function(tt) {
            if (tt >= 0 && tt <= 69) {
                tt += 2000;
            }
            else if (tt >= 70 && tt <= 100) {
                tt += 1900;
            }
            return d.setFullYear(tt + ma);
        }
        // 7th argument (for DST) is deprecated
    };

    for (i = 0; i < argc; i++) {
        no = parseInt(argv[i] * 1, 10);
        if (isNaN(no)) {
            return false;
        } else {
            // arg is number, let's manipulate date object
            if (!dateManip[i](no)) {
                // failed
                return false;
            }
        }
    }
    for (i = argc; i < 6; i++) {
        switch (i) {
            case 0:
                no = dn.getHours();
                break;
            case 1:
                no = dn.getMinutes();
                break;
            case 2:
                no = dn.getSeconds();
                break;
            case 3:
                no = dn.getMonth() + 1;
                break;
            case 4:
                no = dn.getDate();
                break;
            case 5:
                no = dn.getFullYear();
                break;
        }
        dateManip[i](no);
    }

    return Math.floor(d.getTime() / 1000);
}

function isPostCode(val) {
    if(trim(val) != "") {
        var matchArr1 = val.match(/^\d{4}$/);
        if(matchArr1 == null)
            returnedVariable = false;
    }
}
