﻿var career_div;
var career_request;
var career_serviceUrl = "proxy.php";

function career_toggleSubContent(newSubContent) {
    hide(currentSubContent);
    career_show(newSubContent);
    toggleSubNav(newSubContent);
    
}

function createRequestObject() {
    if (window.XMLHttpRequest) {
        try {
            return new XMLHttpRequest();
        } catch (e) { }
    } else if (window.ActiveXObject) {
        try {

            return new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            try {
                return new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e) { }
        }
    }
    return null;
}

function career_show(id) {
    if (!id || id.trim().length <= 0) { return; }

    career_div = document.getElementById(id);
    career_div.innerHTML = '<h1>Current Openings</h1><div class="textArea" >Please wait while fetching open positions</div>';
    career_div.style.display = "block";

    career_request = createRequestObject();

    if (career_request) {
        career_request.onreadystatechange = processReqChange;
        //career_request.open("POST", career_serviceUrl + "/HelloWorld", true);
        career_request.open("POST", career_serviceUrl, true);
        career_request.send('');
    }
}

function career_GetPositionNodeRequest_IE(node) {

    var title = node.selectSingleNode("Title").text;
    var requirements = node.selectSingleNode("Requirements").text;
    var descriptionNode = node.selectSingleNode("Description");
    var jobCodeNode = node.selectSingleNode("JobCode");
    var description = null;
    var jobCode = null;

    if (descriptionNode != null) {
        description = descriptionNode.text
    }

    if (jobCodeNode != null) {
        jobCode = jobCodeNode.text;
    }

    return career_createDIV(title, requirements, description, jobCode);
}


function career_GetPositionNodeRequest_FF(node) {

    var titleNode = node.getElementsByTagName("Title");
    var requirementsNode = node.getElementsByTagName("Requirements");
    var descriptionNode = node.getElementsByTagName("Description");
    var jobCodeNode = node.getElementsByTagName("JobCode");

    var title = titleNode[0].childNodes[0].nodeValue;
    var requirements = requirementsNode[0].childNodes[0].nodeValue;
    var description = (descriptionNode.length == 0) ? null : descriptionNode[0].childNodes[0].nodeValue;
    var jobCode = (jobCodeNode.length == 0) ? null : jobCodeNode[0].childNodes[0].nodeValue;


    return career_createDIV(title, requirements, description, jobCode);
}

function career_createDIV(title, requirements, description, jobCode) {
    var divContent = '';

    divContent += '<p>';
    divContent += '<h2>' + title + '</h2>';
    divContent += '<div>';

    if (description != null) {
        divContent += '<p>' + description + '</p>';
    }

    divContent += 'Requirements:'
    divContent += '<p>' + requirements + '</p>';
    divContent += '<p>Send resume to <a href="mailto:hr@eastbanctech.com">hr@eastbanctech.com</a></p>';

    if (jobCode != null) {
        divContent += '<p><b>Must reference job code: ' + jobCode + '</b></p>';
    }

    divContent += '</div>'
    divContent += '</p>';
    return divContent;
}

function career_processRequest(req) {
    var positionNodes;
    if (window.ActiveXObject) // IE
    {
        positionNodes = req.responseXML.selectNodes("//ArrayOfPosition/Position");
    } else { // FireFox, Opera
        //alert(new XMLSerializer().serializeToString(req.responseXML));
        positionNodes = req.responseXML.getElementsByTagName("Position");
        //alert(positionNodes.length);   
    }

    var divContent = '<h1>Current Openings</h1><div class="textArea" >';
    if (positionNodes.length == 0) {
        divContent += 'There is no open positions at this time';
    }
    else {
        for (var i = 0; i < positionNodes.length; i++) {
            if (window.ActiveXObject) {
                divContent += career_GetPositionNodeRequest_IE(positionNodes[i]);
            } else {
                divContent += career_GetPositionNodeRequest_FF(positionNodes[i]);
            }
        }
    }
    divContent += '</div>';
    career_div.innerHTML = divContent;
}

function processReqChange() {
    try { // Important!  
        // only when state is "complete"
        if (career_request.readyState == 4) {
            // if status "OK"        
            if (career_request.status == 200) {
                career_processRequest(career_request);
            } else {
                alert("Unable to get data, please try again later:\n" +
                career_request.statusText);
            }
        }
    }
    catch (e) {
        // alert('Caught Exception: ' + e.description);
        // В связи с багом XMLHttpRequest в Firefox приходится отлавливать ошибку
        // Bugzilla Bug 238559 XMLHttpRequest needs a way to report networking errors
        // https://bugzilla.mozilla.org/show_bug.cgi?id=238559
    }
}