var Spry;
if (!Spry) Spry = {};
if (!Spry.Widget) Spry.Widget = {};

function GetAJAX() {
    var xmlHTTP = null;
    try { xmlHTTP = new XMLHttpRequest(); // FF, O, S
    } catch(e) {
        try { xmlHTTP = new ActiveXObject("Msxml2.XMLHTTP"); // IE6+
        } catch (e) {
            try { xmlHTTP = new ActiveXObject("Microsoft.XMLHTTP"); // IE5.5+
            } catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    return xmlHTTP;
}

function ShowMessage(title, message) {
    var xheight = 150;
    var xwidth = 320;
    document.getElementById("msgbox").style.width = xwidth;
    document.getElementById("msgbox").style.height = xheight;
    document.getElementById("msgtitle").innerHTML = title;
    document.getElementById("msgmessage").innerHTML = message;
    document.getElementById("cmdCancel").style.display = 'block';
    document.getElementById("cmdOK").style.display = 'block';
    document.getElementById("msgbox").style.display = "block";
    //alert(document.getElementById("msgbox").style.height);
    //alert(document.getElementById("msgBoxTbl").clientHeight);
    document.getElementById("msgbox").style.height = document.getElementById("msgBoxTbl").clientHeight + 2;
    //alert(document.getElementById("msgbox").style.height);
    if (Spry.is.ie) {
        xheight = document.getElementById("msgbox").clientHeight;
        xwidth = document.getElementById("msgbox").clientWidth;
    } else {
        xheight = document.getElementById("msgbox").clientHeight;
        xwidth = document.getElementById("msgbox").clientWidth;
    }
    //if (xwidth < 320) { xwidth = 320; }
    //if (xheight < 150) { xheight = 150; }

    document.getElementById("msgbox").style.width = xwidth;
    document.getElementById("msgbox").style.height = xheight;
    if (Spry.is.ie) {
        document.getElementById("msgbox").style.left = ((document.body.clientWidth/2) - (xwidth/2)) + "px";
        document.getElementById("msgbox").style.top = ((document.body.clientHeight/2) - (xheight/2)) + "px";
    } else {
        document.getElementById("msgbox").style.left = ((window.innerWidth/2) - (xwidth/2)) + "px";
        document.getElementById("msgbox").style.top = ((window.innerHeight/2) - (xheight/2)) + "px";
    }
    document.getElementById("msgbox").style.display = "block";
    //document.getElementById("overlay").style.display = "block";
}

var ajax;
function get_login() {
    var parameters = "username=" + encodeURIComponent(document.getElementById('username-field').value) + "&" + "password=" + encodeURIComponent(document.getElementById('password-field').value);
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var url = "login.php?sid"+Math.random();
    ajax.onreadystatechange = LoginStateChanged;
    document.getElementById("cmdOK").style.display = 'none';
    document.getElementById("cmdCancel").style.display = 'none';
    document.getElementById("msgbuttonbackground").style.display = 'none';
    ShowMessage("Logging In", "<img src='images/preloader.gif'>&nbsp; Please wait while we log you in to the website.");
    ajax.open("POST", url, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", parameters.length);
    ajax.setRequestHeader("Contection", "close");
    ajax.send(parameters);
}

function LoginStateChanged() {
    if (ajax.readyState == 4) {
        var xmlDocLogin = ajax.responseXML.documentElement;
        var err;
        var usr;
        var pwd;
        var loc;
        err = (xmlDocLogin.getElementsByTagName('errortext')[0].firstChild.nodeValue || xmlDocLogin.selectSingleNode('errortext').firstChild.nodeValue);
        usr = (xmlDocLogin.getElementsByTagName('username')[0].firstChild.nodeValue || xmlDocLogin.selectSingleNode('username').firstChild.nodeValue);
        pwd = (xmlDocLogin.getElementsByTagName('password')[0].firstChild.nodeValue || xmlDocLogin.selectSingleNode('password').firstChild.nodeValue);
        loc = (xmlDocLogin.getElementsByTagName('location')[0].firstChild.nodeValue || xmlDocLogin.selectSingleNode('location').firstChild.nodeValue);
        document.getElementById("cmdOK").style.display = 'block';
        document.getElementById("cmdCancel").style.display = 'block';
        document.getElementById("msgbuttonbackground").style.display = 'block';
        document.getElementById("msgbox").style.display = "none";
        if (err != "Success") {
            ShowMessage("Login Failed", err);
        } else {
            // This is where we need to set the SESSION Variables, and log the user in
            if (loc != "") {
                window.location=loc;
            }
        }
    }
}

function get_general_survey_family(obj) {
    // This function will take the selected Family, and create a POST obj.
}
function get_general_survey_submit(obj) {
    // This function will take all the form elements of Surveys, and create a POST string
}

var sTime;
var eTime;
function PopulateJobTitles(obj) {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var children = null;
    if (document.getElementById('SS1040_JobFamily').value == 'Tourist') {
      document.getElementById('ie6Tourist').innerHTML = 'As a tourist on this site, you are only allowed to view the first Job Family.';
      return false;
    }
    var p2 = "";
    if (document.getElementById('SS1040_JobFamily').value == 'Search') {
      // If the search form is visible, do a search, else, show the search form
      if(document.getElementById("searchform").style.display=='none') {
        document.getElementById("searchform").style.display = 'block';
        return true;
      } else {
        p2 = "&"+"searchCrit="+encodeURI(document.getElementById('searchCrit').value);
      }
    } else {
      document.getElementById("searchform").style.display = 'none';
    }
    var parameters = "SS1040_JobFamily=" + encodeURI(document.getElementById('SS1040_JobFamily').value) + "&" + "CorrelationGrade=" + encodeURI(document.getElementById('CorrelationGrade').value) + "&" + "ReturnType=" + encodeURI('1');
    if (p2 != "") {
      parameters += p2;
    }
    var url = "Surveys.AJAX.php?sid"+Math.random();
    ajax.onreadystatechange = PopulateJobTitlesStateChanged;
    sTime = new Date();
    ajax.open("POST", url, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", parameters.length);
    ajax.setRequestHeader("Contection", "close");
    // Show the messagebox, but hide the buttons for now. We will want to give them the ability to Cancel at some point in time
    if (Spry.is.IE6 == true) {
      // Create a div below the family saying that you are retrieving data
      document.getElementById('ie6Tourist').innerHTML = 'Please wait while we retrieve the Job Titles in this Family';
    } else {
      ShowMessage("Retrieving Data", "<img src='images/preloader.gif'>&nbsp; Please wait while we retrieve the Job Titles in this Family");
      document.getElementById("cmdOK").style.display = 'none';
      document.getElementById("cmdCancel").style.display = 'none';
      document.getElementById("msgbuttonbackground").style.display = 'none';
    }
    ajax.send(parameters);
}

function PopulateJobTitlesStateChanged() {
    if (ajax.readyState == 4) {
        var d;
        var xmlDocJT = ajax.responseXML;
        eTime = new Date();
        var queried = (eTime.getTime() - sTime.getTime());
        var jtBox = document.getElementById("SS1060_Position");
        var children = xmlDocJT.getElementsByTagName('jobtitle');
        var value;
        var text;
        var i;
        sTime = new Date();
        try {
            removeAllOptions(jtBox);
            if (children.length == 0) {
              if (Spry.is.IE6 == true) {
                 document.getElementById('ie6Tourist').innerHTML = 'Oops';
              } else {
                document.getElementById("cmdOK").style.display = 'block';
                document.getElementById("cmdCancel").style.display = 'none';
                document.getElementById("msgbuttonbackground").style.display = 'block';
                addOption(jtBox, "NoData", "There is no data associated with the selected family. Please try another Family, or select 'Select Job Family' to see all Job Titles.");
                ShowMessage("No Data", "There is no data associated with the selected family. Please try another Family,<br/>or select 'Select Job Family' to see all Job Titles.");
              }
            } else {
                for (i=0;i<=children.length-1;i++) {
                    value = (children[i].attributes[0].nodeValue);
                    text = (children[i].childNodes[0].nodeValue);
                    addOption(jtBox, value, text);
                }
              if (Spry.is.IE6 == true) {
                 document.getElementById('ie6Tourist').innerHTML = '';
              } else {
                document.getElementById("msgbox").style.display = "none";
              }
            }
        } catch (e) {
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
            ShowMessage("Error Retrieving Data", "<img src='images/critical.gif'>&nbsp; There was an error retrieving the data. We apologize for any inconvenience caused. Please try again later.<br>" + e);
            document.getElementById("msgbuttonbackground").style.display = 'block';
            document.getElementById("cmdCancel").style.display = 'block';
        }
        eTime = new Date();
        var loaded = (eTime.getTime() - sTime.getTime());
        //alert(queried + "<br>" + loaded);
        PopulateRegions();
    }
}

function PopulateRegions() {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var children = null;
    var parameters = "ReturnType=" + encodeURI('2');
    var url = "Surveys.AJAX.php?sid"+Math.random();
    ajax.onreadystatechange = PopulateRegionStateChanged;
    sTime = new Date();
    ajax.open("POST", url, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", parameters.length);
    ajax.setRequestHeader("Contection", "close");
    // Show the messagebox, but hide the buttons for now. We will want to give them the ability to Cancel at some point in time
    if (Spry.is.IE6 == true) {
      document.getElementById('ie6Tourist').innerHTML = "Please wait while we retrieve the Regional Data";
    } else {
      ShowMessage("Retrieving Data", "<img src='images/preloader.gif'>&nbsp; Please wait while we retrieve the Regional Data");
      document.getElementById("cmdOK").style.display = 'none';
      document.getElementById("cmdCancel").style.display = 'none';
      document.getElementById("msgbuttonbackground").style.display = 'none';
    }
    ajax.send(parameters);
}

function PopulateRegionStateChanged() {
    if (ajax.readyState == 4) {
        var d;
        var xmlDocJT = ajax.responseXML.documentElement;
        eTime = new Date();
        var queried = (eTime.getTime() - sTime.getTime());
        var jtBox = document.getElementById("Region");
        children = xmlDocJT.getElementsByTagName('region');
        var value;
        var text;
        var i;
        sTime = new Date();
        try {
            removeAllOptions(jtBox);
            addOption(jtBox, 0, "Select Region");
            if (children.length == 0) {
                if (Spry.is.IE6 == true) {
                   document.getElementById('ie6Tourist').innerHTML = 'There is no data in the Regional Table.';
                } else {
                  document.getElementById("cmdOK").style.display = 'block';
                  document.getElementById("cmdCancel").style.display = 'none';
                  document.getElementById("msgbuttonbackground").style.display = 'block';
                  addOption(jtBox, "NoData", "There is no data in the Regional Table.");
                  ShowMessage("No Data", "There is no data in the Regional Table.");
                }
            } else {
                for (i=0;i<=children.length-1;i++) {
                    value = (children[i].attributes[0].nodeValue);
                    text = (children[i].childNodes[0].nodeValue);
                    addOption(jtBox, value, text);
                }
                if (Spry.is.IE6 == true) {
                   document.getElementById('ie6Tourist').innerHTML = '';
                } else {
                  document.getElementById("msgbox").style.display = "none";
                }
            }
        } catch (e) {
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
            ShowMessage("Error Retrieving Data", "<img src='images/critical.gif'>&nbsp; There was an error retrieving the data. We apologize for any inconvenience caused. Please try again later.<br>" + e);
            document.getElementById("msgbuttonbackground").style.display = 'block';
            document.getElementById("cmdCancel").style.display = 'block';
        }
        eTime = new Date();
        var loaded = (eTime.getTime() - sTime.getTime());
        //alert(queried + "<br>" + loaded);
        PopulateProjections();
    }
}

function PopulateProjections() {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var children = null;
    var parameters = "ReturnType=" + encodeURI('3');
    var url = "Surveys.AJAX.php?sid"+Math.random();
    ajax.onreadystatechange = PopulateProjectionsStateChanged;
    sTime = new Date();
    ajax.open("POST", url, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", parameters.length);
    ajax.setRequestHeader("Contection", "close");
    // Show the messagebox, but hide the buttons for now. We will want to give them the ability to Cancel at some point in time
    if (Spry.is.IE6 == true) {
       document.getElementById('ie6Tourist').innerHTML = 'Please wait while we retrieve the Regional Data.';
    } else {
      ShowMessage("Retrieving Data", "<img src='images/preloader.gif'>&nbsp; Please wait while we retrieve the Regional Data");
      document.getElementById("cmdOK").style.display = 'none';
      document.getElementById("cmdCancel").style.display = 'none';
      document.getElementById("msgbuttonbackground").style.display = 'none';
    }
    ajax.send(parameters);
}

function PopulateProjectionsStateChanged() {
    if (ajax.readyState == 4) {
        var d;
        var xmlDocJT = ajax.responseXML.documentElement;
        eTime = new Date();
        var queried = (eTime.getTime() - sTime.getTime());
        var jtBox = document.getElementById("Projections");
        children = xmlDocJT.getElementsByTagName('projection');
        var value;
        var text;
        var i;
        sTime = new Date();
        try {
            removeAllOptions(jtBox);
            addOption(jtBox, 100, "Select Projection Value");
            if (children.length == 0) {
                if (Spry.is.IE6 == true) {
                   document.getElementById('ie6Tourist').innerHTML = 'There is no data in the Regional Table.';
                } else {
                  document.getElementById("cmdOK").style.display = 'block';
                  document.getElementById("cmdCancel").style.display = 'none';
                  document.getElementById("msgbuttonbackground").style.display = 'block';
                  addOption(jtBox, "NoData", "There is no data in the Projections Table.");
                  ShowMessage("No Data", "There is no data in the Projections Table.");
                }
            } else {
                for (i=0;i<=children.length-1;i++) {
                    value = (children[i].attributes[0].nodeValue);
                    text = (children[i].childNodes[0].nodeValue);
                    addOption(jtBox, value, text);
                }
                if (Spry.is.IE6 == true) {
                   document.getElementById('ie6Tourist').innerHTML = '';
                } else {
                  document.getElementById("msgbox").style.display = "none";
                }
            }
            addOption(jtBox, "-2", "Custom Value");
        } catch (e) {
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
            ShowMessage("Error Retrieving Data", "<img src='images/critical.gif'>&nbsp; There was an error retrieving the data. We apologize for any inconvenience caused. Please try again later.<br>" + e);
            document.getElementById("msgbuttonbackground").style.display = 'block';
            document.getElementById("cmdCancel").style.display = 'block';
        }
        eTime = new Date();
        var loaded = (eTime.getTime() - sTime.getTime());
        //alert(queried + "<br>" + loaded);
    }
}

function addOption(selectbox, value, text ) {
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
}
function removeAllOptions(selectbox) {
	var i;
	for(i=selectbox.options.length-1;i>=0;i--) {
		selectbox.remove(i);
	}
}

function ValidateSelection() {
    // The following validation will need to take place
    // Disable the button
    document.getElementById('SubmitExec').disabled = true;
    var pos;
    var org;
    var prof;
    var tur;
    var noe;
    var noc;
    // Check if Position is selected
    pos = document.getElementById('Position').selectedIndex;
    // Check if OrgType is selected
    org = document.getElementById('OrgType').selectedIndex;
    // Check that all DDs are selected
    prof = document.getElementById('ValueDD1').selectedIndex;
    tur = document.getElementById('ValueDD2').selectedIndex;
    noe = document.getElementById('ValueDD3').selectedIndex;
    noc = document.getElementById('ValueDD4').selectedIndex;
    // If all the above are not true, then msgbox, and enable the button
    if ((pos != "0") && (org > 0) && ((prof > 0)||(prof == -2)) && ((tur > 0)||(tur == -2)) && ((noe > 0)||(noe == -2)) && ((noc > 0)||(noc == -2))) {
        // Submit
        document.survey.submit();
    } else {
        // Error
        document.getElementById('SubmitExec').disabled = false;
        var msg;
        msg = "Please select all the values. The following values have been left out:\n";
        if (pos == 0) { msg += "Position\n"; }
        if (org == 0) { msg += "Organizational Type\n"; }
        if (prof == 0) { msg += "Profit\n"; }
        if (tur == 0) { msg += "Turnover\n"; }
        if (noe == 0) { msg += "No of Employees\n"; }
        if (noc == 0) { msg += "No of Countries\n"; }
        alert(msg);
    }
    // Submit form
}

function ValidateSelection2() {
    // The following validation will need to take place
    // Disable the button
    document.getElementById('SubmitExec').disabled = true;
    var pos;
    var org;
    var prof;
    var tur;
    var noe;
    var noc;
    // Check if Position is selected
    pos = document.getElementById('Position').selectedIndex;
    // Check if OrgType is selected
    org = document.getElementById('OrgType').selectedIndex;
    // If all the above are not true, then msgbox, and enable the button
    if ((pos != "0") && (org > 0)) {
        // Submit
        document.survey.submit();
    } else {
        // Error
        document.getElementById('SubmitExec').disabled = false;
        var msg;
        msg = "Please select all the values. The following values have been left out:\n";
        if (pos == 0) { msg += "Position\n"; }
        if (org == 0) { msg += "Organizational Type\n"; }
        alert(msg);
    }
    // Submit form
}

function EnableDD() {
   var pos = document.getElementById("Position");
   pos = pos.value;
   var x = document.getElementById("selectall"); x.disabled = (pos == "0");
   var t = 1;
   for (t = 1; t <= 8; t++) {
     var x = document.getElementById("ValueDD" + t);
     x.disabled = (pos == "0");
   }
}

function SelectAllDD() {
   var t = 1;
   for (t = 1; t <= 8; t++) {
     var x = document.getElementById("ValueDD" + t);
     x.selectedIndex = 1;
   }
}

function compressFile(id) {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var url = "_download_db.php?sid"+id;
    ajax.onreadystatechange = CompressStateChanged;
    ShowMessage("Compressing Database", "<img src='images/circle.gif'>&nbsp; Please wait while we compress the database<br>Do not navigate away from this page.");
    document.getElementById("cmdOK").style.display = 'none';
    document.getElementById("cmdCancel").style.display = 'none';
    document.getElementById("msgbuttonbackground").style.display = 'none';
    ajax.open("GET", url, true);
    ajax.send(null);
}

function CompressStateChanged() {
    if (ajax.readyState == 4) {
        var xmlDocC = ajax.responseXML.documentElement;
        var err;
        var fil;
        err = (xmlDocC.getElementsByTagName('errortext')[0].firstChild.nodeValue || xmlDocC.selectSingleNode('errortext').firstChild.nodeValue);
        fil = (xmlDocC.getElementsByTagName('filename')[0].firstChild.nodeValue || xmlDocC.selectSingleNode('filename').firstChild.nodeValue);
        document.getElementById("msgbox").style.display = "none";
        if (err != "Success") {
            ShowMessage("Compression Failed", err);
        } else {
            // This is where we need to set the SESSION Variables, and log the user in
            window.location=fil;
        }
    }
}

function fillNPO(obj) {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var url = "ExecutiveCost.AJAX.php?FillWhat=fillNPO&sid"+Math.random();
    ajax.onreadystatechange = fillNPOStateChange;
    sTime = new Date();
    ajax.open("GET", url, true);
    ShowMessage("Retrieving Data", "<img src='images/preloader.gif'>&nbsp; Please wait while we retrieve the Organizational Types");
    document.getElementById("cmdOK").style.display = 'none';
    document.getElementById("cmdCancel").style.display = 'none';
    document.getElementById("msgbuttonbackground").style.display = 'none';
    ajax.send(null);
}

function fillNPOStateChange() {
    if (ajax.readyState == 4) {
        var d;
        var xmlDocNPO = ajax.responseXML.documentElement;
        eTime = new Date();
        var queried = (eTime.getTime() - sTime.getTime());
        var jtBox = document.getElementById("OrgType");
        children = xmlDocNPO.getElementsByTagName('Entry');
        var value;
        var text;
        var i;
        sTime = new Date();
        //try {
            removeAllOptions(jtBox);
            for (i=0;i<=children.length-1;i++) {
                value = (children[i].attributes[0].nodeValue);
                text = (children[i].childNodes[0].nodeValue);
                addOption(jtBox, value, text);
            }
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
        //} catch (e) {
        //    //document.getElementById("overlay").style.display = "none";
        //    document.getElementById("msgbox").style.display = "none";
        //    ShowMessage("Error Retrieving Data", "<img src='images/critical.gif'>&nbsp; There was an error retrieving the data. We apologize for any inconvenience caused. Please try again later.<br>" + e);
        //    document.getElementById("msgbuttonbackground").style.display = 'block';
        //    document.getElementById("cmdCancel").style.display = 'block';
        //}
        eTime = new Date();
        var loaded = (eTime.getTime() - sTime.getTime());
        //alert(queried + "<br>" + loaded);
        fillPaterson();
    }
}

function SelectOrganization(obj) {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var ddid = document.getElementById("OrgType").value;
    var url = "ExecutiveCost.AJAX.php?FillWhat=SelectOrganization&SOSelectedOrg=" + ddid + "&sid"+Math.random();
    ajax.onreadystatechange = SelectOrganizationStateChange;
    sTime = new Date();
    ajax.open("GET", url, true);
    ShowMessage("Retrieving Data", "<img src='images/preloader.gif'>&nbsp; Please wait while we retrieve the information for your Organizational Type");
    document.getElementById("cmdOK").style.display = 'none';
    document.getElementById("cmdCancel").style.display = 'none';
    document.getElementById("msgbuttonbackground").style.display = 'none';
    ajax.send(null);
}

function SelectOrganization2(obj) {
}

function SelectOrganizationStateChange() {
    if (ajax.readyState == 4) {
        var d;
        var xmlDocSO = ajax.responseXML.documentElement;
        eTime = new Date();
        var queried = (eTime.getTime() - sTime.getTime());
        children = xmlDocSO.getElementsByTagName('Entry');
        var value;
        var text;
        var ddid;
        var i;
        var ddBox;
        sTime = new Date();
        try {
            for (i=0;i<=children.length-1;i++) {
                ddid = (children[i].attributes[0].nodeValue);
                value = (children[i].attributes[1].nodeValue);
                text = (children[i].childNodes[0].nodeValue);
                if (value == 0) {
                    // Determine DD (ValueDD{ddid}), then clear all items, and populate
                    var tmp_ddid;
                    tmp_ddid = "ValueDD" + ddid;
                    ddBox = document.getElementById(tmp_ddid);
                    removeAllOptions(ddBox);
                    addOption(ddBox, value, "Select " + text);
                    addOption(ddBox, -2, "<All>");
                } else {
                    addOption(ddBox, value, text);
                }
            }
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
        } catch (e) {
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
            ShowMessage("Error Retrieving Data", "<img src='images/critical.gif'>&nbsp; There was an error retrieving the data. We apologize for any inconvenience caused. Please try again later.<br>" + e);
            document.getElementById("msgbuttonbackground").style.display = 'block';
            document.getElementById("cmdCancel").style.display = 'block';
        }

        eTime = new Date();
        var loaded = (eTime.getTime() - sTime.getTime());
        //alert(queried + "<br>" + loaded);
    }
}

function fillPaterson(obj) {
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var url = "ExecutiveCost.AJAX.php?FillWhat=FillPaterson&sid"+Math.random();
    ajax.onreadystatechange = fillPatersonStateChange;
    sTime = new Date();
    ajax.open("GET", url, true);
    ShowMessage("Retrieving Data", "<img src='images/preloader.gif'>&nbsp; Please wait while we retrieve the Organizational Types");
    document.getElementById("cmdOK").style.display = 'none';
    document.getElementById("cmdCancel").style.display = 'none';
    document.getElementById("msgbuttonbackground").style.display = 'none';
    ajax.send(null);
}

function fillPatersonStateChange() {
    if (ajax.readyState == 4) {
        var d;
        var xmlDocP = ajax.responseXML.documentElement;
        eTime = new Date();
        var queried = (eTime.getTime() - sTime.getTime());
        var ddBox = document.getElementById("CorrelationGrade");
        children = xmlDocP.getElementsByTagName('Entry');
        var value;
        var text;
        var i;
        sTime = new Date();
        try {
            removeAllOptions(ddBox);
            for (i=0;i<=children.length-1;i++) {
                value = (children[i].attributes[0].nodeValue);
                text = (children[i].childNodes[0].nodeValue);
                addOption(ddBox, value, text);
            }
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
        } catch (e) {
            //document.getElementById("overlay").style.display = "none";
            document.getElementById("msgbox").style.display = "none";
            ShowMessage("Error Retrieving Data", "<img src='images/critical.gif'>&nbsp; There was an error retrieving the data. We apologize for any inconvenience caused. Please try again later.<br>" + e);
            document.getElementById("msgbuttonbackground").style.display = 'block';
            document.getElementById("cmdCancel").style.display = 'block';
        }
        eTime = new Date();
        var loaded = (eTime.getTime() - sTime.getTime());
        //alert(queried + "<br>" + loaded);
        PopulateProjections();
    }
}

function change_password() {
    var parameters = "CurrPassword=" + encodeURIComponent(document.getElementById('CurrPassword').value) + "&" + "NewPassword=" + encodeURIComponent(document.getElementById('NewPassword').value) + "&" + "ConfirmPassword=" + encodeURIComponent(document.getElementById('ConfirmPassword').value);
    ajax = GetAJAX();
    if (ajax == null) {
        alert("Your browser does not support AJAX. Sorry!");
        return;
    }
    var url = "AccPassword.AJAX.php?sid"+Math.random();
    ajax.onreadystatechange = ChangePasswordStateChanged;
    document.getElementById("cmdOK").style.display = 'none';
    document.getElementById("cmdCancel").style.display = 'none';
    document.getElementById("msgbuttonbackground").style.display = 'none';
    ShowMessage("Changing Password", "<img src='images/preloader.gif'>&nbsp; Please wait while we change your password.");
    ajax.open("POST", url, true);
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    ajax.setRequestHeader("Content-length", parameters.length);
    ajax.setRequestHeader("Contection", "close");
    ajax.send(parameters);
}

function ChangePasswordStateChanged() {
    if (ajax.readyState == 4) {
        var xmlDocLogin = ajax.responseXML.documentElement;
        var ret;
        var loc;
        ret = (xmlDocLogin.getElementsByTagName('return')[0].firstChild.nodeValue || xmlDocLogin.selectSingleNode('return').firstChild.nodeValue);
        loc = (xmlDocLogin.getElementsByTagName('location')[0].firstChild.nodeValue || xmlDocLogin.selectSingleNode('location').firstChild.nodeValue);
        document.getElementById("cmdOK").style.display = 'block';
        document.getElementById("cmdCancel").style.display = 'block';
        document.getElementById("msgbuttonbackground").style.display = 'block';
        document.getElementById("msgbox").style.display = "none";
        ShowMessage("Changing Password", ret);
        document.getElementById("cmdOK").focus();
        if (loc != ".") {
            setTimeout('window.location="Home.php"', 3000);
        }
    }
}

Spry.Widget.BrowserSniff = function()
{
	var b = navigator.appName.toString();
	var up = navigator.platform.toString();
	var ua = navigator.userAgent.toString();

	this.mozilla = this.ie = this.opera = this.safari = false;
	var re_opera = /Opera.([0-9\.]*)/i;
	var re_msie = /MSIE.([0-9\.]*)/i;
	var re_gecko = /gecko/i;
	var re_safari = /(applewebkit|safari)\/([\d\.]*)/i;
	var r = false;

	if ( (r = ua.match(re_opera))) {
		this.opera = true;
		this.version = parseFloat(r[1]);
	} else if ( (r = ua.match(re_msie))) {
		this.ie = true;
		this.version = parseFloat(r[1]);
		this.IE6 = /msie|MSIE 6/.test(navigator.userAgent);
	} else if ( (r = ua.match(re_safari))) {
		this.safari = true;
		this.version = parseFloat(r[2]);
	} else if (ua.match(re_gecko)) {
		var re_gecko_version = /rv:\s*([0-9\.]+)/i;
		r = ua.match(re_gecko_version);
		this.mozilla = true;
		this.version = parseFloat(r[1]);
	}
	this.windows = this.mac = this.linux = false;

	this.Platform = ua.match(/windows/i) ? "windows" :
					(ua.match(/linux/i) ? "linux" :
					(ua.match(/mac/i) ? "mac" :
					ua.match(/unix/i)? "unix" : "unknown"));
	this[this.Platform] = true;
	this.v = this.version;

	if (this.safari && this.mac && this.mozilla) {
		this.mozilla = false;
	}
};

Spry.is = new Spry.Widget.BrowserSniff();

