﻿// JScript File
//******************** OBJECTS ********************//
function group(item1,item2,item3,item4,alert){
    // supports only four object groups
    this.item1=item1;
    this.item2=item2;
    this.item3=item3;
    this.item4=item4;
    this.alert=alert;
}
function single(item,alert){
    this.item=item;
    this.alert=alert;
}
function valid(item,name){
    this.item=item;
    this.name=name;
}
function phone(item){
    this.item=item;
}
//******************** OBJECTS ********************//
var whitespace = " \t\n\r";
var defaultRequired = false;

// Required(new Array(new single('item1','alert1'),new single('item2','alert2')))
//******************** FUNCTION ********************//
function Required(singles){
    var obj;
    var alt;
    var valid=new Array();
    var rtn=true;
    // first loop
    for (var i=0; i<singles.length; i++){
        obj = document.getElementById(singles[i].item);
        alt = document.getElementById(singles[i].alert);
        if (obj.value==''){
            alt.style.display='inline';
            valid[i]=false;
        }else{
            alt.style.display='none';
            valid[i]=true;
        }
    }
    // second loop
    for (var ii=0; ii<valid.length; ii++){
        if (valid[ii]==false){
            rtn=false;
        }
    }
    return rtn;
}
//******************** FUNCTION ********************//

// GroupRequired(new Array(new group('item1-1','item2-1','item3-1','item4-1','alert1'),new group('item1-2','item2-2','item3-2','item4-2','alert2')))
//******************** FUNCTION ********************//
function GroupRequired(groups){
    var obj;
    var alt;
    //var valid=new Array();
    var rtn=true;
    var val=true;
    // first loop
    for (var i=0; i<groups.length; i++){
        // Item One
        if (groups[i].item1!='' && val==true){
           obj = document.getElementById(groups[i].item1);
           if (obj.value==''){
                val=false;
           }
        }
        // Item Two
        if (groups[i].item2!='' && val==true){
           obj = document.getElementById(groups[i].item2);
           if (obj.value==''){
                val=false;
           }
        }
        // Item Three
        if (groups[i].item3!='' && val==true){
            obj = document.getElementById(groups[i].item3);
           if (obj.value==''){
                val=false;
           }
        }
        // Item Four
        if (groups[i].item4!='' && val==true){
            obj = document.getElementById(groups[i].item4);
           if (obj.value==''){
                val=false;
           }
        }
        // Alert Item
        if (groups[i].alert!=''){
            alt = document.getElementById(groups[i].alert);
            if (val==false){
                alt.style.display = 'inline';
                rtn=false;
            }else{
                alt.style.display = 'none';
            }
        }
        val=true;
    }
    return rtn;
}
//******************** FUNCTION ********************//

// RequiredFieldsValidation(new Array(new single('item1','alert1'),new single('item2','alert2')),new Array(new group('item1-1','item2-1','item3-1','item4-1','alert1-1'),new group('item1-2','item2-2','item3-2','item4-2','alert2')));
//******************** FUNCTION ********************//
function RequiredFieldsValidation(items,groups){
    var valid=true;
    var valg;
    var vals;
    if (groups.length>0){
        valg = GroupRequired(groups);
    }
    if (items.length>0){
        vals = Required(items);
    }
    if (valg!=true || vals!=true){
        valid=false;
    }
    return valid;
}
//******************** FUNCTION ********************//

//******************** FUNCTION ********************//
function setfocus(curobj,maxlen,newobj){
    var obj1=document.getElementById(curobj);
    var obj2=document.getElementById(newobj);
    var len=obj1.value.length;
    if (maxlen==len){
        obj2.focus();
    }    
}
//******************** FUNCTION ********************//


// InvalidCharacters(new Array(new valid('txtname','User Name'),new valid('txtpassword','Password'));
//******************** FUNCTION ********************//
function InvalidCharacters(validate){
    var obj;
    var nme;
    var rtn=true;
    var inval=false;
    var msg='';
    var invalidchar = '\`~!@#$%^&*()_+=[]{}:;"<>,./?|'+String.fromCharCode(39);
    for(var i=0; i<validate.length; i++){
        obj=document.getElementById(validate[i].item);
        for(var ii=0; ii<obj.value.length; ii++){
            if(invalidchar.indexOf(obj.value.charAt(ii))!=-1){
                inval=true;
            }
        }
        if(inval==true){
            msg+=validate[i].name + '\n '
            rtn=false;
        }
        inval=false;
    }
    if(rtn==false){
        alert('Please remove any invalid characters from the following input(s): \n \n '+msg+' \n Invalid Characters: \`~!@#$%^&*()_+=[]{}:;"<>,./?|'+String.fromCharCode(39));
    }
    return rtn;
}
//******************** FUNCTION ********************//

//******************** FUNCTION ********************//
function InvalidCharactersLvlThree(validate){
    var obj;
    var nme;
    var rtn=true;
    var inval=false;
    var msg='';
    var invalidchar = '\`~@%^*+={}"<>/|'+String.fromCharCode(39);
    for(var i=0; i<validate.length; i++){
        obj=document.getElementById(validate[i].item);
        for(var ii=0; ii<obj.value.length; ii++){
            if(invalidchar.indexOf(obj.value.charAt(ii))!=-1){
                inval=true;
            }
        }
        if(inval==true){
            msg+=validate[i].name + '\n '
            rtn=false;
        }
        inval=false;
    }
    if(rtn==false){
        alert('Please remove any invalid characters from the following input(s): \n \n '+msg+' \n Invalid Characters: \`~@%^*+={}"<>/|'+String.fromCharCode(39));
    }
    return rtn;
}
//******************** FUNCTION ********************//

// isPhoneNumber(new phone(''));
//******************** FUNCTION ********************//
function isPhoneNumber(ph) 
{
    var obj = document.getElementById(ph.item);
    if (obj.value!=''){
        // Check for correct phone number
        rePhoneNumber = new RegExp(/^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/);
        if (!rePhoneNumber.test(obj.value)) {
             alert("Phone Number Must Be Entered As: (555) 555-1234");
             return false;
        }
        return true;
    }
}
//******************** FUNCTION ********************//

// isEmail('');
//******************** FUNCTION ********************//
function isEmail(input){
    var obj = document.getElementById(input);
    if (obj.value!=''){
        // check for correct email address
        reEmail = new RegExp(/^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i);
        if (!reEmail.test(obj.value)){
            alert('Invalid Email Address format. Please re-enter Email Address.');
            return false;
        }
    }
    return true;
}
//******************** FUNCTION ********************//

// isNumeric('','')
//******************** FUNCTION ********************//
function isNumeric(input,name){
    var obj = document.getElementById(input);
    if (obj.value!=''){
        reNumber = new RegExp(/^ *[0-9]+ *$/);
        if (!reNumber.test(obj.value)){
            alert(name + ' must be a number.');
            return false;
        }
    }
    return true;
}
//******************** FUNCTION ********************//

//******************** FUNCTION ********************//
function valiDate(inputMon,inputDay,inputYr,name){
    var mon = document.getElementById(inputMon);
    var day = document.getElementById(inputDay);
    var yr = document.getElementById(inputYr);
    if (mon.value!='' && day.value!='' && yr.value!=''){
        var dt = mon.value + '/' + day.value + '/' + yr.value
        //reDate = new RegExp(/^(\d{1,2})[./-](\d{1,2})[./-](\d{4})$/)
        reDate = new RegExp(/^(\d{2})[./-](\d{2})[./-](\d{4})$/)
        if (!reDate.test(dt)){
            alert('Invalid ' + name + '.');
            return false;
        }
    }
    return true;
}
//******************** FUNCTION ********************//

// stair_way_to_heaven('');
//******************** FUNCTION ********************//
function stair_way_to_heaven(Case){
    // sets the value of the input to upper case.
    var obj = document.getElementById(Case);
    if (obj.value!=''){
        obj.value = obj.value.toUpperCase();
    }
}
//******************** FUNCTION ********************//