//<script language="JavaScript" type="text/javascript"> // for faking Zend syntax coloring system :-))

var backg_error = "1px solid #F00";
var backg_ok = '1px solid #ccc';

var color_error = "gray";
var color_ok = "black";

function find_obj(objname){
    var obj = document.getElementsByName(objname)[0];
    if (obj == undefined) var obj = document.getElementById(objname);
    return obj;
}
function check_empty(objname){
    var obj = find_obj(objname);
    var retest = /^\s*$/
    if (retest.test(obj.value) ) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

/*
function check_dateDDMMYYYY(objname, required){
var RegString = '^(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)[0-9][0-9]$';
var RegEmpty = '|^$';
if (required != undefined) RegString = RegString + RegEmpty;
var retest = new RegExp(RegString);

var obj = find_obj(objname);
if (!retest.test(obj.value)) {
obj.style.border = backg_error;
return false;
} else {
obj.style.border = backg_ok;
return true;
}
}
*/

function check_number(objname, required, numlen){
    var RegString = '^[0-9]{1,}$';
    var RegEmpty = '|^$';

    if (numlen != undefined) var RegString = '^[0-9]{' + numlen + ',' + numlen + '}$';
    if (required != undefined) if (!required) RegString = RegString + RegEmpty;
    //alert(RegString);
    var retest = new RegExp(RegString);

    var obj = find_obj(objname);
    if (!retest.test(obj.value)) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}
function check_email(objname){
    var obj = find_obj(objname);
    var retest = /^([A-Za-z0-9\.\-_]+)@([A-Za-z0-9\.\-]+)\.[a-z]{2,3}$/
    if (!retest.test(obj.value)   ) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_day(objname){
    var obj = find_obj(objname);
    var retest = /(^[1-9]$)|(^[12][0-9]$)|(^3[01]$)/
    if (!retest.test(obj.value)) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_mon(objname){
    var obj = find_obj(objname);
    var retest = /(^[1-9]$)|(^[1][012]$)/
    if (!retest.test(obj.value)) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_yea(objname){
    var obj = find_obj(objname);
    var retest = /(^20[0-9][0-9]$)/
    if (!retest.test(obj.value)) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_combo(objname){
    var obj = find_obj(objname);
    if (obj.options[0].selected) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_combo_multiple(objname){
    var obj = find_obj(objname);
    var objOk = false;
    for (var i=0; i<obj.options.length; i++) {
        if (obj.options[i].selected == true) {
            objOk = true;
        }
    }
    if (objOk) obj.style.border = backg_ok;
    else obj.style.border = backg_error;

    return objOk;
}

function check_custom(objname,regularex, required) {
    var obj = find_obj(objname);
    var retest = new RegExp(regularex);
    var req = true;

    if (required != undefined) if (!required) {req = false;} else {req = true;}

    if ((!retest.test(obj.value) || (!obj.value.length) && req ) ) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_regular(objname,regularex, required) {
    var obj = find_obj(objname);
    var retest = regularex;
    var req = true;

    if (required != undefined) if (!required) {req = false;} else {req = true;}

    if ((!retest.test(obj.value) || (!obj.value.length) && req ) ) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_dateDDMMYYYY(objname, required){
    var RegString = '^(0[1-9]|[12][0-9]|3[01])[.](0[1-9]|1[012])[.](19|20)[0-9][0-9]$';
    var RegEmpty = '|^$';
    if (required != undefined) RegString = RegString + RegEmpty;
    var retest = new RegExp(RegString);

    var obj = find_obj(objname);
    if (!retest.test(obj.value)) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}

function check_time_value(objname) {
    var obj = find_obj(objname);
    var retimestr = /^(?:(?:0?[1-9]|1[012]):(?:[0-5]\d)(?:\x20[aApP][mM]))$/

    if (!retimestr.test(obj.value)) {
        obj.style.border = backg_error;
        return false;
    } else {
        obj.style.border = backg_ok;
        return true;
    }
}




function check_date(objname){
    var obj = find_obj(objname);
    var retest = /^[+*]*$/

    var elems = obj.value.split("/");

    result = (elems.length == 3); // should be three components

    if (result)
    {
        var month = parseInt(elems[1],10);
        var day = parseInt(elems[0],10);
        var year = parseInt(elems[2],10);
        result = !isNaN(month) && (month > 0) && (month < 13) &&
        !isNaN(day) && (day > 0) && (day < 32) &&
        !isNaN(year) && (elems[2].length == 4);
    }

    if (!result)
    {
        obj.style.border = backg_error;
        return false;

    } else {
        obj.style.border = backg_ok;
        return true;
    }
}


function check_two_same(objname1,objname2, required, swaplogic){
    if (typeof swaplogic == 'undefined') swaplogic = false;
    var obj1 = find_obj(objname1);
    var obj2 = find_obj(objname2);

    if(swaplogic) {
        var bg_b = backg_ok;
        var bg_a = backg_error;
    } else {
        var bg_a = backg_ok;
        var bg_b = backg_error;
    }

    var RegString = '';
    if (required != undefined) if (required) {RegString = "^.{1,}$";} else {RegString = "^.*$";}
    var req_retest = new RegExp(RegString);


    if (obj1.value != obj2.value || !req_retest.test(obj1.value)) {
        obj1.style.border = bg_b;
        obj2.style.border = bg_b;
        return false;
    } else {
        obj1.style.border = bg_a;
        obj2.style.border = bg_a;
        return true;
    }
}

function check_pass_complexity(objname) {
    var obj = find_obj(objname);
    var retest = new RegExp("^(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])\\S{6,}$");

    if ( !retest.test(obj.value) && obj.value.length) {
        //obj.style.border = backg_error;
        return false;
    } else {
        //obj.style.border = backg_ok;
        return true;
    }
}


function check_two_diff(objname1,objname2){
    var obj1 = find_obj(objname1);
    var obj2 = find_obj(objname2);
    if (obj1.value == obj2.value ) {
        obj1.style.border = backg_error;
        obj2.style.border = backg_error;
        return false;
    } else {
        obj1.style.border = backg_ok;
        obj2.style.border = backg_ok;
        return true;
    }
}





function setStatus(objname,setstatus) {
    var obj = find_obj(objname);

    if(setstatus=="active"){
        //document.images[idi].src=eval(ion+".src");
        try {
            //obj.style.opacity = "1";
            //obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=100)";
            //obj.style.filter = 'alpha(opacity=100)';
            obj.style.visibility = 'visible';
            obj.style.MozOpacity = "1";
            obj.style.cursor = 'pointer';
        } catch (e) {}
        obj.disabled = false;
        obj.style.color = color_ok;
        return true;

    }
    if(setstatus=="inactive"){
        //document.images[idi].src=eval(ion+".src");
        try {
            //obj.style.opacity = "0.4";
            //obj.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=50)";
            //obj.style.filter = 'alpha(opacity=50)';
            obj.style.visibility = 'hidden';
            obj.style.MozOpacity = "0.4";
            obj.style.cursor = 'default';
        } catch (e) {}

        obj.disabled = true;
        obj.style.color = color_error;
        return false;
    }
}

function check_nothing (objname) {
    var obj = find_obj(objname);
    obj.style.border = backg_ok;
    return true;
}
//</script>  // for faking Zend syntax coloring system :-))

