
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlDoc_Programs = new XMLHttpRequest();
    xmlDoc_Unions = new XMLHttpRequest();
}
else {// code for IE6, IE5
    xmlDoc_Programs = new ActiveXObject("Microsoft.XMLHTTP");
    xmlDoc_Unions = new ActiveXObject("Microsoft.XMLHTTP");
}


function onLoad(){
    //xmlDoc_Programs.load("../xml/programs.xml");
    xmlDoc_Programs.open("GET", "../xml/programs.xml", false);
    xmlDoc_Programs.send(null);
    readProgramsXML();

}

function CheckStatus(selectedVal) {
    var unionTypeDDL = document.getElementById("selUnionType");
    var unionTypeLbl = document.getElementById("lblUnionType");
    var unionNameDDL = document.getElementById("selUnionName");
    var unionNameLbl = document.getElementById("lblUnionName");

    var unionMemberName = document.getElementById("spanUnionMemberName");
    var unionLocalName = document.getElementById("spanUnionLocalName");

    //only ask for union type\name if the val isnt 3
    if (selectedVal != "3") {
        unionTypeDDL.className = 'showDiv';
        unionTypeLbl.className = 'showDiv';
        unionNameDDL.className = 'showDiv';
        unionNameLbl.className = 'showDiv';

        unionLocalName.className = 'showDiv';
    }
    else {
        unionTypeDDL.className = 'hideDiv';
        unionTypeLbl.className = 'hideDiv';
        unionNameDDL.className = 'hideDiv';
        unionNameLbl.className = 'hideDiv';

        unionLocalName.className = 'hideDiv';
        document.getElementById("UnionLocalName").value = '';

        clearItems(unionNameDDL);
        unionTypeDDL.selectedIndex = 0;
        unionNameDDL.selectedIndex = 0;
    }

    //Only ask for union member name if the val is 2
    if (selectedVal != "2") {
        unionMemberName.setAttribute("style", "visibility: hidden;");
        document.getElementById('spanUnionMemberName').className = 'hideDiv';
		}
	else{
	    unionMemberName.setAttribute("style", "visibility: inline;");
	    document.getElementById('spanUnionMemberName').className = 'showDiv';
	}
}

function CountryChange(selectedVal) {
    var divUSA = document.getElementById("PersonalInfo_USA");
    var divCAN = document.getElementById("PersonalInfo_CAN");
    var divINTL = document.getElementById("PersonalInfo_INTL");

    var submitBtnUSA = document.getElementById("submitIt_USA");
    var submitBtnCAN = document.getElementById("submitIt_CAN");
    var submitBtnINTL = document.getElementById("submitIt_INTL");

    if (selectedVal == "USA") {
        divUSA.className = 'showDiv';
        divCAN.className = 'hideDiv';
        divINTL.className = 'hideDiv';

        submitBtnUSA.className = 'showDiv';
        submitBtnCAN.className = 'hideDiv';
        submitBtnINTL.className = 'hideDiv';
    }
    else if (selectedVal == "CAN") {
        divUSA.className = 'hideDiv';
        divCAN.className = 'showDiv';
        divINTL.className = 'hideDiv';

        submitBtnUSA.className = 'hideDiv';
        submitBtnCAN.className = 'showDiv';
        submitBtnINTL.className = 'hideDiv';
    }
    else if (selectedVal == "INTL") {
        divUSA.className = 'hideDiv';
        divCAN.className = 'hideDiv';
        divINTL.className = 'showDiv';

        submitBtnUSA.className = 'hideDiv';
        submitBtnCAN.className = 'hideDiv';
        submitBtnINTL.className = 'showDiv';
    }
}

function UnionValidation() {

    var selUnionStatusVal = document.getElementById("selUnionStatus").value;
    var selUnionType = document.getElementById("selUnionType");
    var selUnionName = document.getElementById("selUnionName");
    var unionMemberName = document.getElementById("UnionMemberName");
    var unionLocalName = document.getElementById("UnionLocalName");

    if (selUnionStatusVal != "3") { //If val is 3 then we dont need to worry about validating anymore

        if (selUnionStatusVal == "2") { //If val is 2, make sure we have a Union Member Name

            if (trim(unionMemberName.value) == "") { //check our value
                alert("Union Member Name is required");
                unionMemberName.focus();
                return false;
            } //END trim(unionMemberName.value) == ""

        } //END if selUnionStatusVal == "2"

        if (selUnionType.value == "x") { //check our value  -- ERIC THIS HAS BEEN BLANK, this is your issue why validation isnt doing anything
            alert("Union Type is required");
            selUnionType.focus();
            return false;
        } //END selUnionType.value == "x"

        if (selUnionName.value == "x") {
            alert("Please select a value for Union Name");
            selUnionName.focus();
            return false;
        } //END if selUnionName.value == "x"

    } //END selUnionStatusVal != "3"
    else {
        return true;
    }

    return true;
}



function readProgramsXML() {

    if (xmlDoc_Programs.readyState == 4) {

        var progID = getQueryVariable('progID');

        var xmlDoc = xmlDoc_Programs.responseXML;

        var i = 0;
        var name;
        var val;
        var selected;
        
        var programDDL = document.getElementById("selPrograms");
        while (i <= xmlDoc.getElementsByTagName("program").length - 1) {
            
            name = xmlDoc.getElementsByTagName("program")[i].firstChild.data;
            val = xmlDoc.getElementsByTagName("program")[i].attributes.getNamedItem("id").nodeValue;

            if (val == progID) {
                selected = true;
            }
            else {
                selected = false;
            }

            AddItemWithSelect(programDDL, name, val, selected);

            
            i = i + 1;
            
        }

    }
}

function AddItem(ddl, Text, Value) {
    // Create an Option object                
    var opt = document.createElement("option");
    opt.text = Text;
    opt.value = Value;
    
    // Add an Option object to Drop Down/List Box
    ddl.options.add(opt);        // Assign text and value to Option object

}

function AddItemWithSelect(ddl, Text, Value, selected) {
    // Create an Option object                
    var opt = document.createElement("option");
    opt.text = Text;
    opt.value = Value;

    if (selected == true) {
        opt.selected = true;
        }

    // Add an Option object to Drop Down/List Box
    ddl.options.add(opt);        // Assign text and value to Option object

}

function LoadUnions(val) {
    var unionDDL = document.getElementById("selUnionName");
    var unionLbl = document.getElementById("lblUnionName");

    var unionLocalName = document.getElementById("spanUnionLocalName");
    var unionLocalNameTxt = document.getElementById("UnionLocalName");


    clearItems(unionDDL);
    unionDDL.selectedIndex = 0;
    if (val == "x") {
        unionDDL.add(new Option("Please Select a Union Type Above", "x"));
        unionDDL.disabled = true;
        unionDDL.setAttribute("style", "visibility: inline;");
        unionLbl.setAttribute("style", "visibility: inline;");

        unionLocalNameTxt.value = '';
        unionLocalName.setAttribute("style", "visibility: hidden;");
    }
    else if (val == "AFLCIO") {
        //unionDDL.add(new Option(val, val));
        readUnionsXML("AFLCIO_Unions.xml", unionDDL);
        unionDDL.disabled = false;
        unionDDL.setAttribute("style", "visibility: inline;");
        unionLbl.setAttribute("style", "visibility: inline;");
        unionLocalName.setAttribute("style", "visibility: inline;");
    }
    else if (val == "NonAFLCIO") {
        //unionDDL.add(new Option(val, val));
        readUnionsXML("Non_AFLCIO_Unions.xml", unionDDL);
        unionDDL.disabled = false;
        unionDDL.setAttribute("style", "visibility: inline;");
        unionLbl.setAttribute("style", "visibility: inline;");
        unionLocalName.setAttribute("style", "visibility: inline;");
    }
    else if (val == "Other") {
    unionDDL.setAttribute("style", "visibility: hidden;");
    unionLbl.setAttribute("style", "visibility: hidden;");
    }
}

function clearItems(ddl) {
    var i = 0;
    var len = ddl.length;

    while (i <= len - 1) {
        ddl.remove(0);
        i += 1;
    }

}
function verify() {
    if (xmlDoc_Unions.readyState != 4)
        return false;
}
function readUnionsXML(docName, ddl) {

    xmlDoc_Unions.open("GET", "../xml/" + docName, false);
    xmlDoc_Unions.send(null);

    if (xmlDoc_Unions.readyState == 4) {
        var xmlDoc = xmlDoc_Unions.responseXML;
        
        var i = 0;
        var name;
        var val;

        while (i <= xmlDoc.getElementsByTagName("union").length - 1) {

            name = xmlDoc.getElementsByTagName("union")[i].firstChild.data;
            val = xmlDoc.getElementsByTagName("union")[i].attributes.getNamedItem("id").nodeValue;

            AddItem(ddl, name, val);
            
            i = i + 1;
        }

    }
}

function MM_jumpMenu(targ, selObj, restore) { //v3.0
    eval(targ + ".location='" + selObj.options[selObj.selectedIndex].value + "'");
    if (restore) selObj.selectedIndex = 0;
}

function trim(str) {
    var str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
    while (ws.test(str.charAt(--i)));
    return str.slice(0, i + 1);
}

function FormatPhone(field) {
    var agt = navigator.userAgent.toLowerCase();
    var is_ie = (agt.indexOf("msie") != -1);

    if (!is_ie) {
        var temp = field.value.replace(/[^0-9]/g, "");
        var cursor = temp.length;

        temp = temp.replace(/^(\d{0,3})(\d{0,3})(\d{0,4})(\d*)/, "($1)$2-$3 x $4");

        if (cursor < 11)
            temp = temp.replace(/\s*x\s*$/, "");
        if (cursor < 7)
            temp = temp.replace(/\-\s*$/, "");
        if (cursor < 3)
            temp = temp.replace(/\)\s*$/, "");
        if (!cursor)
            temp = "";
        if (temp.length > 13)
            temp = temp.substring(0, 13);

        field.value = temp;
        return true;
    }
    else {
        if (window.event.keyCode != 9 && window.event.keyCode != 16) {
            var temp = field.value.replace(/[^0-9]/g, "");
            var cursor = temp.length;

            temp = temp.replace(/^(\d{0,3})(\d{0,3})(\d{0,4})(\d*)/, "($1)$2-$3 x $4");

            if (cursor < 11)
                temp = temp.replace(/\s*x\s*$/, "");
            if (cursor < 7)
                temp = temp.replace(/\-\s*$/, "");
            if (cursor < 3)
                temp = temp.replace(/\)\s*$/, "");
            if (!cursor)
                temp = "";
            if (temp.length > 13)
                temp = temp.substring(0, 13);

            field.value = temp;
            return true;
        }
    }
}

function checkEmail(element) {
    var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return emailPattern.test(element.value);

}

function validateZip(zip) {
    if (zip.match(/^[0-9]{5}$/)) {
        return true;
    }
    zip = zip.toUpperCase();
    if (zip.match(/^[A-Z][0-9][A-Z][0-9][A-Z][0-9]$/)) {
        return true;
    }
    if (zip.match(/^[A-Z][0-9][A-Z].[0-9][A-Z][0-9]$/)) {
        return true;
    }
    return false;
}

function GetCookie(name) {
    var arg = name + '=';
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
        var j = i + alen;
        if (document.cookie.substring(i, j) == arg) {
            return getCookieVal(j);
        }
        i = document.cookie.indexOf(' ', i) + 1;
        if (i == 0) {
            break;
        }
    }
    return null;
}

function cookieValue(tag) {
    var value = null;
    var myCookie = document.cookie + ";";
    var findTag = tag + "=";
    var endPos;
    if (myCookie.length > 0) {
        var beginPos = myCookie.indexOf(findTag);
        if (beginPos != -1) {
            beginPos = beginPos + findTag.length;
            endPos = myCookie.indexOf(";", beginPos);
            if (endPos == -1)
                endPos = myCookie.length;
            value = unescape(myCookie.substring(beginPos, endPos));
        }
    }
    return value;
}

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
}


function validation_USA() {

    var fName = document.getElementById("USA_FName");
    var lName = document.getElementById("USA_LName");
    var address1 = document.getElementById("USA_Address1");
    var city = document.getElementById("USA_City");
    var phone = document.getElementById("USA_PhoneNum");
    var emailAdd1 = document.getElementById("USA_Email");
    var emailAdd2 = document.getElementById("USA_Email2");
    var unionStatus = document.getElementById("selUnionStatus");
    var educationLevel = document.getElementById("selEducationLevel");

    var stateProv = document.getElementById("USA_StateProv");
    var zipPostal = document.getElementById("USA_PostalCode");

    if (trim(fName.value) == "") {
        alert("First name is required");
        fName.focus();
        return false;
    }
    else if (trim(lName.value) == "") {
        alert("Last name is required");
        lName.focus();
        return false;
    }
    else if (trim(address1.value) == "") {
        alert("Address is required");
        address1.focus();
        return false;
    }
    else if (trim(city.value) == "") {
        alert("City is required");
        city.focus();
        return false;
    }
    else if (trim(phone.value) == "") {
        alert("Phone is required");
        phone.focus();
        return false;
    }
    else if (phone.value.length != 13) {
        alert("Phone is invalid");
        phone.focus();
        return false;
    }
    else if (trim(emailAdd1.value) == "") {
        alert("Email Address is required");
        emailAdd1.focus();
        return false;
    }
    else if (unionStatus.value == "x") {
        alert("Your Union Status is required");
        unionStatus.focus();
        return false;
    }
    else if (checkEmail(emailAdd1) == false) {
        alert("Email Address is not valid");
        emailAdd1.focus();
        return false;
    }
    else if (trim(emailAdd1.value) != trim(emailAdd2.value)) {
        alert("Email Addresses do not match");
        emailAdd1.focus();
        return false;
    }
    else if (stateProv.value == "") {
        alert("State is required");
        stateProv.focus();
        return false;
    }
    else if (trim(zipPostal.value) == "") {
        alert("Zip Code is required");
        zipPostal.focus();
        return false;
    }
    else if (validateZip(zipPostal.value) == false) {
        alert("Zip Code is invalid");
        zipPostal.focus();
        return false;
    }
    else if (educationLevel.value == "00") {
        alert("Education Level is required");
        educationLevel.focus();
        return false;
    }
    else {
        //our form validated properly, now lets make sure our Union Specific Elements are ok    
        if (UnionValidation() == true) {
            //our form was ok, lets just grab our cookie value for our adkey (if it exists) and be on our way

            if (GetCookie('mktad')) {
                document.getElementById("adkey").value = cookieValue('mktad');
            }

            return true;
        }
        else {
            //something was wrong with our Union Elements
            return false;
        }
    }

}

function validation_CAN() {
    //var programName = document.getElementById("selPrograms");
    var fName = document.getElementById("CAN_FName");
    var lName = document.getElementById("CAN_LName");
    var address1 = document.getElementById("CAN_Address1");
    var city = document.getElementById("CAN_City");
    var phone = document.getElementById("CAN_PhoneNum");
    var emailAdd1 = document.getElementById("CAN_Email");
    var emailAdd2 = document.getElementById("CAN_Email2");
    var unionStatus = document.getElementById("selUnionStatus");
    var educationLevel = document.getElementById("selEducationLevel");

    var stateProv = document.getElementById("CAN_StateProv");
    var zipPostal = document.getElementById("CAN_PostalCode");

    if (trim(fName.value) == "") {
        alert("First name is required");
        fName.focus();
        return false;
    }
    else if (trim(lName.value) == "") {
        alert("Last name is required");
        lName.focus();
        return false;
    }
    else if (trim(address1.value) == "") {
        alert("Address is required");
        address1.focus();
        return false;
    }
    else if (trim(city.value) == "") {
        alert("City is required");
        city.focus();
        return false;
    }
    else if (trim(phone.value) == "") {
        alert("Phone is required");
        phone.focus();
        return false;
    }
    else if (phone.value.length != 13) {
        alert("Phone is invalid");
        phone.focus();
        return false;
    }
    else if (trim(emailAdd1.value) == "") {
        alert("Email Address is required");
        emailAdd1.focus();
        return false;
    }
    else if (trim(unionStatus.value) == "x") {
        alert("Your Union Status is required");
        unionStatus.focus();
        return false;
    }
    else if (checkEmail(emailAdd1) == false) {
        alert("Email Address is not valid");
        emailAdd1.focus();
        return false;
    }
    else if (trim(emailAdd1.value) != trim(emailAdd2.value)) {
        alert("Email Addresses do not match");
        emailAdd1.focus();
        return false;
    }
    else if (stateProv.value == "") {
        alert("Province is required");
        stateProv.focus();
        return false;
    }
    else if (trim(zipPostal.value) == "") {
        alert("Postal Code is required");
        zipPostal.focus();
        return false;
    }
    else if (validateZip(zipPostal.value) == false) {
        alert("Zip Code is invalid");
        zipPostal.focus();
        return false;
    }
    else if (educationLevel.value == "00") {
        alert("Education Level is required");
        educationLevel.focus();
        return false;
    }
    else {
        //our form validated properly, now lets make sure our Union Specific Elements are ok    
        if (UnionValidation() == true) {
            //our form was ok, lets just grab our cookie value for our adkey (if it exists) and be on our way

            if (GetCookie('mktad')) {
                document.getElementById("adkey").value = cookieValue('mktad');
            }

            return true;
        }
        else {
            //something was wrong with our Union Elements
            return false;
        }
    }
}

function validation_INTL() {
    //var programName = document.getElementById("selPrograms");
    var fName = document.getElementById("INTL_FName");
    var lName = document.getElementById("INTL_LName");
    var address1 = document.getElementById("INTL_Address1");
    var city = document.getElementById("INTL_City");
    var phone = document.getElementById("INTL_PhoneNum");
    var emailAdd1 = document.getElementById("INTL_Email");
    var emailAdd2 = document.getElementById("INTL_Email2");
    var unionStatus = document.getElementById("selUnionStatus");
    var educationLevel = document.getElementById("selEducationLevel");

    var country = document.getElementById("selIntlCountry");

    if (trim(fName.value) == "") {
        alert("First name is required");
        fName.focus();
        return false;
    }
    else if (trim(lName.value) == "") {
        alert("Last name is required");
        lName.focus();
        return false;
    }
    else if (trim(address1.value) == "") {
        alert("Address is required");
        address1.focus();
        return false;
    }
    else if (trim(city.value) == "") {
        alert("City is required");
        city.focus();
        return false;
    }
    else if (trim(phone.value) == "") {
        alert("Phone is required");
        phone.focus();
        return false;
    }
    else if (trim(emailAdd1.value) == "") {
        alert("Email Address is required");
        emailAdd1.focus();
        return false;
    }
    else if (trim(unionStatus.value) == "x") {
        alert("Your Union Status is required");
        unionStatus.focus();
        return false;
    }
    else if (checkEmail(emailAdd1) == false) {
        alert("Email Address is not valid");
        emailAdd1.focus();
        return false;
    }
    else if (trim(emailAdd1.value) != trim(emailAdd2.value)) {
        alert("Email Addresses do not match");
        emailAdd1.focus();
        return false;
    }
    else if (country.value == "") {
        alert("Country is required");
        country.focus();
        return false;
    }
    else if (educationLevel.value == "00") {
        alert("Education Level is required");
        educationLevel.focus();
        return false;
    }
    else {
        //our form validated properly, now lets make sure our Union Specific Elements are ok    
        if (UnionValidation() == true) {
            //our form was ok, lets just grab our cookie value for our adkey (if it exists) and be on our way

            if (GetCookie('mktad')) {
                document.getElementById("adkey").value = cookieValue('mktad');
            }

            return true;
        }
        else {
            //something was wrong with our Union Elements
            return false;
        }
    }
}
