/* This file was created by C. Sean Hall.
** For this function to work (getNseperate)
** You need to call it from the submit button
** or the form tag.  What this does is gathers
** all of the input, select, and textarea tags
** on a page so that it can test them.  The 
** fields must have a title, id, name, alt and a class property, 
** that is part of what drives this 
** file / function.  In this file
** there is an ability to change the class of a
** field on the fly.  I have also now added number
** checks to this.  I have put these all in one file
** because they seem to be the most widely used.
** requiredOpt is a flag for this script, there is no class by that name in the external css file or a hard coded style.  
** If you run into problems with this just change the names in the script as well as the html.  
** requiredinput is a class in the 'mainstyle_external.css' for this client it looks like this :
**
** .requiredinput {
**  background-color:#D60010; 
**  }
** This is a nice change for this script and will be kept, remember to add the 'requiredinput' class to a css file that is called or add it to the html as 
** needed.  If you want the background of the required fields that were missed to change colors.
*/

function test() {
    alert('test');
getRadios = document.getElementsByTagName("input")
for (x=0; x < getRadios.length; x++) {
if ( getRadios[x].type == "radio")
alert(getRadios[x].type)
}
}


function trim_fields()
{
    var I = document.getElementsByTagName("INPUT");
    for (x = 0; x< I.length; x++)
    {
        if (I[x])
        {
            I[x].value = I[x].value.replace(/^\s+|\s+$/g, '');
        }
    }
}

function getNseperate(){
   
    //Trim leading and trailing spaces.  Thank You Chris Clary.   
    trim_fields();

    //Get the elements on the page.
    elem = document.getElementsByTagName('input');
    areaElem = document.getElementsByTagName('textarea');
    selElem = document.getElementsByTagName('select');
    selDiv = document.getElementsByTagName('div');

    //Variables
    var error_msg = '';

        for(var aE = 0; aE < areaElem.length; aE++){
        //alert(areaElem[aE].type+' '+areaElem[aE].name);
            if(((areaElem[aE].className=='requiredOpt') || (areaElem[aE].className=='requiredinput')) && (areaElem[aE].value=='')){
                error_msg += 'Error: ' + areaElem[aE].title + ' is a required field.\n';
                areaElem[aE].className='requiredinput';
                //alert(areaElem[aE].className);
            }else if(((areaElem[aE].className=='requiredOpt') || (areaElem[aE].className=='requiredinput')) && (areaElem[aE].value!='')){
                areaElem[aE].className='';
            }
        }

        for(var sD = 0; sD < selDiv.length; sD++){
        //alert(selDiv[sD].type+' '+selDiv[sD].name);
            if(((selDiv[sD].className=='requiredOpt') || (selDiv[sD].className=='requiredinput')) && (selDiv[sD].innerHTML=='' || selDiv[sD].innerHTML == 'undefined')){
                error_msg += 'Error: ' + selDiv[sD].title + ' is a required field.\n';
                selDiv[sD].className='requiredinput';
                //alert(selDiv[sD].className);
            }
        }

        for(var sE = 0; sE < selElem.length; sE++){
        //alert(selElem[sE].type+' '+selElem[sE].name);
            if(((selElem[sE].className=='requiredOpt') || (selElem[sE].className=='requiredinput')) && (selElem[sE].options[selElem[sE].options.selectedIndex].text=='--' || selElem[sE].options[selElem[sE].options.selectedIndex].text=='')){
                error_msg += 'Error: ' + selElem[sE].title + ' is a required field.\n';
                selElem[sE].className='requiredinput';
                //alert(selElem[sE].className);
            }else if(((selElem[sE].className=='requiredOpt') || (selElem[sE].className=='requiredinput')) && (selElem[sE].value!='')){
                selElem[sE].className='';
            }
        }

        for(var i = 0; i < elem.length; i++){
        //alert(elem[i].type+' '+elem[i].name);
            if((elem[i].className=='requiredOpt') || (elem[i].className=='requiredinput') || (elem[i].alt=='requiredOpt') || (elem[i].alt=='requiredinput')){
                if(((elem[i].type=='text')|| elem[i].type=='password') && elem[i].value=='') {
                    error_msg += 'Error: ' + elem[i].title + ' is a required field.\n';
                    elem[i].className='requiredinput';
                    //alert(elem[i].alt);
                }else if(((elem[i].type=='text')|| elem[i].type=='password') && elem[i].value!='') {
                    elem[i].className='';
                }
                
                if(elem[i].type=='radio' || elem[i].type=='checkbox'){
                    var curRadioelem = document.getElementsByName(elem[i].name);
                    var trackRadio = 0;
                    for(var rE = 0; rE < curRadioelem.length; rE++){
                        if(curRadioelem[rE].checked == 0){
                            //alert(curRadioelem[rE].name);
                            //alert(trackRadio);
                            trackRadio++;
                        }
                    }

                    if(trackRadio == curRadioelem.length){
                        //alert(elem[i].title);
                        elem[i].alt='requiredinput';
                        if(error_msg.search(elem[i].title)==-1){
                            error_msg += 'Error: ' + elem[i].title + ' is a required field.\n';
                        }else{continue;}
                    }
                }
            }
        }

        if(error_msg > ''){
            alert(error_msg);
            return false;
        }
}


/* This will change the class and color of the objects passed to this function
This function and the above work in tandom, in the html file set up where and how you want this to
happen. If you don't have as many values as listed the put in '' for the remainder.  There are 17.
An example of this would be a radio button.  <input type="radio" name="somename" id="somename" onClick="chgClass(this.id, 'prevemployeetxt', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '');">. Then the text filed or what ever:  <tr>
                <td class='tdcolor' colspan="2"><span id="prevemployeetxtspan" class="">If yes, When?</span></td>
         </tr>
         <tr>
                <td class='tdcolor2' colspan="2">
                    <input type='text' name='prevemployeetxt' id='prevemployeetxt' class="If yes, When?" title="If yes, When?" value='~%prevemployeetxt%~' size='25' maxlength='150'>
                </td>
        </tr> Notice that the ID of the span is the same as the ID of the field only it has the word 'span' on the end?  That is important.*/



function chgClass(name, position, startMM, startYYYY, endMM, endYYYY, startWage, endWage, address, city, state, zip, phone, contact, supName, duties, reason){

    //alert('hello');
    var assocFields = new Array(name, position, startMM, startYYYY, endMM, endYYYY, startWage, endWage, address, city, state, zip, phone, contact, supName, duties, reason);


    var empName = document.getElementById(name);
    //alert(empName.type);

    switch(empName.type){
        case "text":
            var i;
        //alert(empName.type);
        if(empName.value == ''){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = '';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = '';
                        document.getElementById(assocFields[i]).className = '';
                        document.getElementById(assocFields[i]).alt = '';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = '';
                    }
                                rBName[j].className = '';
                                rBName[j].alt = '';
                            }
                        }
                    }
                }
            }
        }else if(empName.value != ''){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = 'required';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = 'required';
                        document.getElementById(assocFields[i]).className = 'requiredOpt';
                        document.getElementById(assocFields[i]).alt = 'requiredOpt';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = 'required';
                    }
                                rBName[j].className = 'requiredOpt';
                                rBName[j].alt = 'requiredOpt';
                            }
                        }
                    }
                }
            }
        }
        break;
      
      case "checkbox":
        case "radio":
            var i;
        //alert(empName.type);
        empName = document.getElementsByName(name);
        //alert('test');
        if(empName[0].checked == '1'){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = 'required';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = 'required';
                        document.getElementById(assocFields[i]).className = 'requiredOpt';
                        document.getElementById(assocFields[i]).alt = 'requiredOpt';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = 'required';
                    }
                                rBName[j].className = 'requiredOpt';
                                rBName[j].alt = 'requiredOpt';
                            }
                        }
                    }
                }
            }
        }
        if(empName[1].checked == '1'){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = '';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = '';
                        document.getElementById(assocFields[i]).className = '';
                        document.getElementById(assocFields[i]).alt = '';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = '';
                    }
                                rBName[j].className = '';
                                rBName[j].alt = '';
                            }
                        }
                    }
                }
            }
        }
        break;

        case "select-one":
            var i;
        //alert(empName.type);
        if(empName.options[empName.selectedIndex].text.indexOf('*') == '-1'){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = '';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = '';
                        document.getElementById(assocFields[i]).className = '';
                        document.getElementById(assocFields[i]).alt = '';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = '';
                    }
                                rBName[j].className = '';
                                rBName[j].alt = '';
                            }
                        }
                    }
                }
            }
        }else if(empName.options[empName.selectedIndex].text.indexOf('*') > '-1'){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = 'required';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = 'required';
                        document.getElementById(assocFields[i]).className = 'requiredOpt';
                        document.getElementById(assocFields[i]).alt = 'requiredOpt';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = 'required';
                    }
                                rBName[j].className = 'requiredOpt';
                                rBName[j].alt = 'requiredOpt';
                            }
                        }
                    }
                }
            }
        }
        break;

        case "select-multiple":
            //alert(empName.type);
        if(empName.options[empName.selectedIndex].text.indexOf('*') == '-1'){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = '';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = '';
                        document.getElementById(assocFields[i]).className = '';
                        document.getElementById(assocFields[i]).alt = '';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                           //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = '';
                    }
                                rBName[j].className = '';
                                rBName[j].alt = '';
                            }
                        }
                    }
                }
            }
        }else if(empName.options[empName.selectedIndex].text.indexOf('*') > '-1'){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = 'required';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = 'required';
                        document.getElementById(assocFields[i]).className = 'requiredOpt';
                        document.getElementById(assocFields[i]).alt = 'requiredOpt';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = 'required';
                    }
                                rBName[j].className = 'requiredOpt';
                                rBName[j].alt = 'requiredOpt';
                            }
                        }
                    }
                }
            }
        }
        break;

        case "textarea":
            var i;
        //alert(empName.type);
        if(empName.value == ''){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = '';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = '';
                        document.getElementById(assocFields[i]).className = '';
                        document.getElementById(assocFields[i]).alt = '';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = '';
                    }
                                rBName[j].className = '';
                                rBName[j].alt = '';
                            }
                        }
                    }
                }
            }
        }else if(empName.value != ''){
            for(var i = 0; i < assocFields.length; i++){
                if(assocFields[i] != ''){
                    //alert(assocFields[i]);
                    //alert(empName.type);
                    if(document.getElementById(assocFields[i]+'span') != null){
                        document.getElementById(assocFields[i]+'span').className = 'required';
                    }
                    if(document.getElementById(assocFields[i]) == null){
                        continue;
                    }else{
                        //document.getElementById(assocFields[i]+'span').className = 'required';
                        document.getElementById(assocFields[i]).className = 'requiredOpt';
                        document.getElementById(assocFields[i]).alt = 'requiredOpt';

                        if(document.getElementById(assocFields[i]).type == 'radio' || document.getElementById(assocFields[i]).type == 'checkbox'){
                            //alert('hello');
                            var rBName = document.getElementsByName(assocFields[i]);
                            if(document.getElementsByName(assocFields[i]+'lbl') != null){
                                var rBNamelbl = document.getElementsByName(assocFields[i]+'lbl');
                          }
                            for(var j = 0; j < rBName.length; j++){
                    if(rBNamelbl[j] != null){
                                rBNamelbl[j].className = 'required';
                    }
                                rBName[j].className = 'requiredOpt';
                                rBName[j].alt = 'requiredOpt';
                            }
                        }
                    }
                }
            }
        }
        break;
    }
}

/* 
** The 'chkNumber' function will check a regular expression that is passed to it. 
** Thank You to Christopher Tijerina with the logic on this part. 
** 
** phone or phonef1 is for the phone number formated like ###-###-####
** phonef2 is for the phone number formated like (###) ###-####
** phonef3 is for the phone number formated like (###) ###-#### but not required
** phone1Euro is for the phone number formated like #-###-###-####
** phone2Euro is for the phone number formated like #-###-###-#### but not required
** dateDD is a little miss named it is for the date formated like MM-DD-YYYY
** dateYYYY is for the date formated like YYYY-DD-MM
** email is for the email format
** ssn is for the US ssn format
** sin is for the Canada sin format
** the default is for a regular expression that is entered by the developer.
*/

function chkNumber(id, regXP){
    //alert(regXP);
    if(regXP == 'email'){
        var field = document.getElementById(id).value; //Get the field that the function was called from
        var fldVal = new Array;
    }else{
        var field = document.getElementById(id).value; //Get the field that the function was called from
        field = field.replace(/\D/g, '');
        var fldVal = new Array;
    }

    for(var j = 0; j < field.length; j++){
        fldVal[j] = field.charAt(j);
        //alert('j'+j+ ' '+fldVal[j]);
    }

    switch(regXP){
      case "phone":
        case "phonef1":
            if(field.length != 10){
                alert(document.getElementById(id).title+' is not valid.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                for(var i = 0; i < field.length; i++){
                    if(i == 3){
                        fldVal[i] = '-'+ field.charAt(i);
                        //alert(fldVal[i]);
                    }else if(i == 6){
                        fldVal[i] = '-'+field.charAt(i);
                        //alert(fldVal[i]);
                    }
                    document.getElementById(id).value += fldVal[i];
                }
            }
        return true;
        break;

        case "phonef2":
            if(field.length != 10){
                alert(document.getElementById(id).title+' is not valid.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                for(var i = 0; i < field.length; i++){
                    if(i == 0){
                        fldVal[i] = '('+ field.charAt(i);
                        //alert(fldVal[i]);
                    }else if(i == 2){
                        fldVal[i] = field.charAt(i)+ ') ';
                        //alert(fldVal[i]);
                    }else if(i == 6){
                        fldVal[i] = '-'+field.charAt(i);
                        //alert(fldVal[i]);
                    }
                    document.getElementById(id).value += fldVal[i];
                }
            }
        return true;
        break;

        case "phonef3":
            if((field.length != 10) && (field.length != 0)){
                alert(document.getElementById(id).title+' is not valid.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                for(var i = 0; i < field.length; i++){
                    if(i == 3){
                        fldVal[i] = '-'+ field.charAt(i);
                        //alert(fldVal[i]);
                    }else if(i == 6){
                        fldVal[i] = '-'+field.charAt(i);
                        //alert(fldVal[i]);
                    }
                    document.getElementById(id).value += fldVal[i];
                }
            }
        return true;
        break;

        case "phone1Euro":
            if (!((field.length == 11) || (field.length == 10))){
                alert(document.getElementById(id).title+' is not valid.\nPlease enter in a valid phone number.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                if (field.length == 11){
                    for(var i = 0; i < field.length; i++){
                        if(i == 1){
                            fldVal[i] = '-'+ field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 4){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 7){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);  
                        }
                        document.getElementById(id).value += fldVal[i];
                    }
                }
                if (field.length == 10){
                    for(var i = 0; i < field.length; i++){
                        if(i == 3){
                            fldVal[i] = '-'+ field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 6){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);
                        }
                        document.getElementById(id).value += fldVal[i];
                    }
                }
            }
        return true;
        break;

        case "phone2Euro":
            if(!((field.length == 11) ||(field.length == 10))  && (field.length != 0)){
                alert(document.getElementById(id).title+' is not valid.\nPlease enter in a valid phone number.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                if (field.length == 11){
                    for(var i = 0; i < field.length; i++){
                        if(i == 1){
                            fldVal[i] = '-'+ field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 4){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 7){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);  
                        }
                        document.getElementById(id).value += fldVal[i];
                    }
                }
                if (field.length == 10){
                    for(var i = 0; i < field.length; i++){
                        if(i == 3){
                            fldVal[i] = '-'+ field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 6){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);
                        }
                        document.getElementById(id).value += fldVal[i];
                    }
                }
            }
        return true;
        break;

        case "dateDD":
            if(field.length != 8){
                alert(document.getElementById(id).title+' is not valid.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                for(var i = 0; i < field.length; i++){
                    if(i == 1){
                        fldVal[i] = field.charAt(i) + '-';
                        //alert(fldVal[i]);
                    }else if(i == 3){
                        fldVal[i] = field.charAt(i) + '-';
                        //alert(fldVal[i]);
                    }
                    document.getElementById(id).value += fldVal[i];
                }
            }
        var regex = new RegExp('(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))-[0-9]{4}');
        var match = regex.exec(document.getElementById(id).value);
        if(match == null){
            alert('The field ' + document.getElementById(id).title + ' is in the wrong format.');
            document.getElementById(id).value ='';
            return false;
        }

        return true;
        break;

        case "dateYYYY":
            if(field.length != 8){
                alert(document.getElementById(id).title+' is not valid.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                for(var i = 0; i < field.length; i++){
                    if(i == 3){
                        fldVal[i] = field.charAt(i) + '-';
                        //alert(fldVal[i]);
                    }else if(i == 5){
                        fldVal[i] = field.charAt(i) + '-';
                        //alert(fldVal[i]);
                    }
                    document.getElementById(id).value += fldVal[i];
                }
            }
        var regex = new RegExp('[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))');
        var match = regex.exec(document.getElementById(id).value);
        if(match == null){
            alert('The field ' + document.getElementById(id).title + ' is in the wrong format.');
            document.getElementById(id).value ='';
            return false;
        }

        return true;
        break;

        case "email":
        var regex = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"); //Set the variable for the new regular expression
        var match = regex.exec(document.getElementById(id).value); //Set the variable to see if the field value passes the regular expression
        if(match == null){//Error handaling for the false.
            alert('The field ' + document.getElementById(id).title + ' is in the wrong format.');
            document.getElementById(id).value ='';
            return false;
        }
        return true;
        break;


        case "sin": //Canada Social Insurance Number
        case "ssn": //USA Social Security Number
            if(field.length != 9){
                alert(document.getElementById(id).title+' is not valid.');
                document.getElementById(id).value = '';
                return false;
            }else{
                document.getElementById(id).value = '';
                if(regXP == "sin"){
                    for(var i = 0; i < field.length; i++){
                        if(i == 3){
                            fldVal[i] = '-'+ field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 6){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);
                        }
                        document.getElementById(id).value += fldVal[i];
                    }
                }else{
                    for(var i = 0; i < field.length; i++){
                        if(i == 3){
                            fldVal[i] = '-'+ field.charAt(i);
                            //alert(fldVal[i]);
                        }else if(i == 5){
                            fldVal[i] = '-'+field.charAt(i);
                            //alert(fldVal[i]);
                        }
                        document.getElementById(id).value += fldVal[i];
                    }

                }
            }
        return true;
        break;
        

        default:
        var regex = new RegExp(regXP); //Set the variable for the new regular expression
        var match = regex.exec(document.getElementById(id).value); //Set the variable to see if the field value passes the regular expression
        if(match == null){//Error handaling for the false.
            alert('The field ' + document.getElementById(id).title + ' is in the wrong format.');
            document.getElementById(id).value ='';
            return false;
        }
        return true;
        break;
    }
}

/*
** Example of the chkNumber call 
** chkNumber(this.id,'(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))-[0-9]{4}');" 
** this checks for a full date. 
*/


/* Added this to round this script out, this checks the email that is passed to it. Again use the ID of the object. */

function trimLeft(str){
    // remove all spaces on left 
    var newstr = str.replace(/^[ ]*/, "");
    return (newstr);
}
function trimRight(str){
    // remove all spaces on right 
    var newstr = str.replace(/[ ]*$/, "");
    return (newstr);
}
function stringTrim(str){
    // reomve all spaces on both side 
    var newstr = trimRight(trimLeft(str));
    return (newstr);
}

function validateEmailAddress(emailToValidate){

    //if (emailToValidate == '' || typeof(emailToValidate) == 'undefined'){
    //  return(true);
    //}

    emailToValidate = stringTrim(emailToValidate);
    var error_msg = '';
    var emailLength = emailToValidate.length;
    var atPos = emailToValidate.indexOf('@');
    var firstDotPos = emailToValidate.indexOf('.');
    var lastDotPos = emailToValidate.lastIndexOf('.');

    if (emailLength < 7){
        error_msg += "Minimum email address length is not correct.\n";
        //return(false);               // minimum email address length ("x@xx.xx")
    }
    if (atPos < 1){
        error_msg += "Email address has '@' as first character or no '@' at all.\n";
        //return(false);                    // traps for no @, or @ as first character
    }
    if (firstDotPos < 1){
        error_msg += "Email address has '.' as first character or no '.' at all.\n";
        //return(false);                // traps for no ., or . as first character
    }
    if (atPos == emailLength-1){
        error_msg += "Email address has '@' as last character.\n";
        //return(false);        // traps for @ as penultimate or last character
    }
    if (lastDotPos >= emailLength-2){
        error_msg += "Email address has too few digits after last '.'.\n";
        //return(false);    // traps for too few digits after last . (must be at least 2)
    }
    // traps for @ character next to . character
    if (emailToValidate.charAt(atPos-1) == '.' || emailToValidate.charAt(atPos+1) == '.'){
        error_msg += "The email address is not correct or is blank.\n";
        //return(false);
    }
    if(error_msg > ''){
        alert(error_msg);
        return(false);
    }
    return true;
}

function chkemail(id){
    var emailobj = document.getElementById(id).value;
    return validateEmailAddress(emailobj);
}

