﻿/* Singleline functions
---------------------------------------------------------------- */

function $d(d) {
    return document.getElementById(d);
}

/* Toogle text
---------------------------------------------------------------- */

var field = function () {
    return {
        focus: function (f, txt) {
            if (f.value == txt) {
                f.value = '';
            } else {
                f.select();
            }
        },
        blur: function (f, txt) {
            if (f.value == '') {
                f.value = txt;
            }
        }
    };
} ();

/* Tabs
---------------------------------------------------------------- */

var tabs = function () {
    return {
        click: function (f) {
            var obj = $d('tabs');
            var elm = $d(f.id + '-content');
            if (obj && elm) {
                // Reset phanes
                var items = obj.getElementsByTagName('a');
                for (var d = 0; d < items.length; d += 1) {
                    items[d].className = '';
                }
                // Reset content
                items = obj.getElementsByTagName('div');
                for (d = 0; d < items.length; d += 1) {
                    var str = items[d].className;
                    if (str.indexOf("con") != -1) {
                        items[d].style.display = 'none';
                    }
                }
                try { f.blur(); } catch (e) { }
                f.className = 'selected';
                elm.style.display = 'block';
            }
        }
    };
} ();

/* Toogle
---------------------------------------------------------------- */

var dropallow = false;

var toogle = function () {
    return {
        footer: function (f) {
            if (f != '') {
                location.href = f;
            }
        },
        alert: function (f, act) {
            var obj = $d('alert');
            if (obj) {
                if (act == 'close') {
                    obj.style.display = 'none';
                }
                if (act == 'over') {
                    f.className = 'inn over';
                }
                if (act == 'out') {
                    f.className = 'inn';
                }
            }
        },
        dropdown: function (f, act) {
            var obj = $d('dropdown');
            if (obj) {
                if (act == 'show') {
                    if (obj.style.display != 'block') {
                        obj.style.display = 'block';
                        obj.style.opacity = '0';
                        setTimeout("toogle.dropdown(this,'delay');", 100);
                        setTimeout("toogle.dropdown(this,'remove');", 200);
                        dropallow = true;
                    } else {
                        toogle.dropdown(this, 'onclick');
                    }
                }
                if (act == 'delay') {
                    obj.style.opacity = '100';
                    dropallow = true;
                }
                if (act == 'remove') {
                    dropallow = false;
                }
                if (act == 'hide') {
                    if (!dropallow) {
                        obj.style.display = 'none';
                        obj.style.opacity = '0';
                    }
                }
                if (act == 'onclick') {
                    if (obj.style.display == 'block') {
                        toogle.dropdown(this, 'hide');
                    }
                }
            }
        }
    };
} ();

/* Validation
---------------------------------------------------------------- */

var validate = function () {
    var execute = true;
    return {
        err: function (f, act) {
            var obj = $d(f);
            if (obj) { if (act == 'reset') { obj.style.backgroundColor = '#ffffff'; } else { obj.style.backgroundColor = '#f8ff8a'; } }
        },
        email: function (str) {
            var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
            if (filter.test(str)) { return true; } else { return false; }
        },
        empty: function (str) {
            var filter = /^\s+$/;
            var expression;
            if (filter.test(str) || str == '') { expression = false; } else { expression = true; }
            return expression;
        },
        onlynumbers: function (evt) {
            var charCode = (evt.which) ? evt.which : event.keyCode;
            if (charCode > 31 && (charCode < 48 || charCode > 57)) { return false; } else { return true; }
        },
        search: function (f, s) {
            execute = true;
            if (!validate.empty(f.q.value) || f.q.value == s) {
                execute = false;
            }
            return execute;
        },
        newsletter: function (f) {
            execute = true;

            // Reset fields
            validate.err(f.name.id, 'reset');
            validate.err(f.email.id, 'reset');

            if (!validate.empty(f.name.value)) {
                execute = false;
                validate.err(f.name.id, 'error');
            }
            if (!validate.email(f.email.value)) {
                execute = false;
                validate.err(f.email.id, 'error');
            }
            if (!f.accept.checked) {
                execute = false;
            }
            return execute;
        }
    };
} ();

/* Collapser
---------------------------------------------------------------- */

var collapser = function () {
    return {
        initialize: function () {
            var items = document.getElementsByTagName('div');
            for (var d = 0; d < items.length; d += 1) {
                var str = items[d].className;
                if (str.indexOf('collapser') != -1) {
                    if (str.indexOf('hide') != -1) {
                        var elm = $d(items[d].id + '-body');
                        if (elm) { elm.style.display = 'none'; }
                        items[d].className = 'head collapser show';
                    }
                    if (str.indexOf('show') != -1) {
                        items[d].className = 'head collapser hide';
                    }
                    items[d].onclick = function () {
                        collapser.toogle(this);
                    };
                }
            }
        },
        toogle: function (f) {
            var obj = $d(f.id);
            var elm = $d(f.id + '-body');
            if (obj && elm) {
                var str = f.className;
                if (str.indexOf('show') != -1) {
                    f.className = 'head collapser hide';
                    elm.style.display = 'block';
                } else {
                    f.className = 'head collapser show';
                    elm.style.display = 'none';
                }
            }
        }
    };
} ();

/* Links
---------------------------------------------------------------- */

var linkz = function () {
    return {
        initialize: function () {
            var items = document.getElementsByTagName('div');
            for (var d = 0; d < items.length; d += 1) {
                var str = items[d].className;
                if (str.indexOf('links') != -1) {
                    if (str.indexOf('hide') != -1) {
                        items[d].style.display = 'none';
                    }
                }
            }
        },
        toogle: function (f, m) {
            var obj = $d(m);
            var more = $d(m + '-more');
            var less = $d(m + '-less');

            if (obj && more && less) {
                if (f.className == 'show') {
                    obj.style.display = 'block';
                    more.style.display = 'none';
                    less.style.display = 'block';
                } else {
                    obj.style.display = 'none';
                    more.style.display = 'block';
                    less.style.display = 'none';
                }
                try { f.blur(); } catch (e) { }
            }
        }
    };
} ();

/* Image boxes
---------------------------------------------------------------- */

var box = function () {
    var boxtim; var boxcur = 1;
    return {
        initialize: function (f) {
            var obj = $d(f + '-items');
            var elm = $d(f + '-controls');
            var ind = $d(f + '-indi');
            if (obj && ind) {
                var tickers = box.count(f + '-items');
                if (tickers > 1) {
                    if (elm) {
                        elm.innerHTML = '';
                        for (var d = 0; d < tickers; d += 1) {
                            var dc = d + 1;
                            if (d == 0) {
                                elm.innerHTML += '<li><span id="' + f + '-node' + (dc) + '" class="mark" onclick="box.show(\'' + f + '-node' + (dc) + '\',\'' + (dc) + '\',\'' + (f) + '\');return false;">' + dc + '</span></li>';
                            } else {
                                elm.innerHTML += '<li><span id="' + f + '-node' + (dc) + '" class="norm" onclick="box.show(\'' + f + '-node' + (dc) + '\',\'' + (dc) + '\',\'' + (f) + '\');return false;">' + dc + '</span></li>';
                            }
                        }
                    }
                    boxtim = setTimeout("box.auto('" + f + "')", 7000);
                } else {
                    ind.style.display = 'none';
                }
            }
        },
        show: function (f, n, t) {
            var obj = $d(f + '-item');
            var imx = $d(f + '-item-img');
            var txt = $d(f + '-text');
            if (obj && imx && txt) {
                box.reset(t);
                boxcur = n;
                if (imx.filters) {
                    box.set(t + '-node' + boxcur + '-item-img', 0);
                    imx.style.filter = "blendTrans(duration=0.6)";
                    imx.filters.blendTrans.Apply();
                    imx.filters.blendTrans.Play();
                } else {
                    box.set(t + '-node' + boxcur + '-item-img', 0);
                    setTimeout("box.fader('" + t + "-node" + boxcur + "-item-img',0,100,600);", 50);
                }
                obj.style.display = 'block';
                txt.style.display = 'block';
                var nod = $d(f);
                if (nod) { nod.className = 'mark'; }
                setTimeout("box.delay('" + boxcur + "','" + t + "');", 500);
            }
        },
        delay: function (f, t) {
            var bxo = $d(t + '-items');
            var imx = $d(t + '-node' + f + '-item-img');
            if (bxo && imx) {
                bxo.style.backgroundImage = 'url(' + imx.src + ')';
            }
        },
        auto: function (f) {
            var tickers = box.count(f + '-items');
            var nm;
            if (boxcur == tickers) { nm = 1; } else { nm = parseInt(boxcur) + 1; }
            var str = f + '-node' + nm;
            box.show(str, nm, f);
            boxtim = setTimeout("box.auto('" + f + "')", 7000);
        },
        over: function (f) {
            clearTimeout(boxtim);
        },
        out: function (f) {
            boxtim = setTimeout("box.auto('" + f + "')", 7000);
        },
        reset: function (t) {
            var obj = $d(t + '-items');
            if (obj) {
                var items = obj.getElementsByTagName('div');
                for (var d = 0; d < items.length; d += 1) {
                    var str = items[d].className;
                    if (str.indexOf('itm') != -1) {
                        items[d].style.display = 'none';
                    }
                }
            }
            var elm = $d(t + '-nodes');
            if (elm) {
                var items = elm.getElementsByTagName('span');
                for (var d = 0; d < items.length; d += 1) {
                    items[d].className = 'norm';
                }
            }
            var txt = $d(t + '-texts');
            if (txt) {
                var items = txt.getElementsByTagName('div');
                for (var d = 0; d < items.length; d += 1) {
                    var str = items[d].className;
                    if (str.indexOf('itm') != -1) {
                        items[d].style.display = 'none';
                    }
                }
            }
        },
        set: function (id, opacity) {
            var obj = $d(id).style;
            obj.opacity = (opacity / 100);
            obj.MozOpacity = (opacity / 100);
            obj.KhtmlOpacity = (opacity / 100);
            obj.filter = "alpha(opacity=" + opacity + ")";
            obj.backgroundColor = '#ffffff';
        },
        fader: function (id, opacStart, opacEnd, millisec) {
            var speed = Math.round(millisec / 100);
            var timer = 0;
            if (opacStart > opacEnd) {
                for (i = opacStart; i <= opacEnd; i = i - 2) {
                    setTimeout("box.set('" + id + "'," + i + ")", (timer * speed));
                    timer++;
                }
            } else if (opacStart < opacEnd) {
                for (i = opacStart; i <= opacEnd; i = i + 2) {
                    setTimeout("box.set('" + id + "'," + i + ")", (timer * speed));
                    timer++;
                }
            }
        },
        count: function (f) {
            var obj = $d(f);
            var count = 0;
            var items = obj.getElementsByTagName('div');
            for (var d = 0; d < items.length; d += 1) {
                var str = items[d].className;
                if (str.indexOf('itm') != -1) {
                    count++;
                }
            }
            return count;
        }
    };
} ();

/* Dragbar
---------------------------------------------------------------- */

var dro = new Object();

var dragbar = function () {
    return {
        start: function (event, id) {
            var x, y;
            dro.elNode = $d(id);
            try { x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop; } catch (e) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY; }
            dro.csx = x; dro.csy = y;
            dro.esl = parseInt(dro.elNode.style.left, 10);
            dro.est = parseInt(dro.elNode.style.top, 10);
            if (isNaN(dro.esl)) { dro.esl = 0; }
            if (isNaN(dro.est)) { dro.est = 0; }
            try { document.attachEvent("onmousemove", dragbar.go); document.attachEvent("onmouseup", dragbar.stop); window.event.cancelBubble = true; window.event.returnValue = false; } catch (e) { document.addEventListener("mousemove", dragbar.go, true); document.addEventListener("mouseup", dragbar.stop, true); event.preventDefault(); }
        },
        go: function (event) {
            var x, y;
            var obj = $d('dragbar');
            var olf = $d('dragbar-left');
            var cinp = $d(dro.elNode.id + '-inp');
            if (obj && olf) {
                try { x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop; } catch (e) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY; }
                var drl = (dro.esl + x - dro.csx);
                var objv = parseInt(obj.offsetWidth);
                var off = parseInt(olf.offsetWidth);
                if (drl > 0) { if ((drl + off) <= objv) { dro.elNode.style.left = drl + 'px'; cinp.value = drl; dragbar.indicator(); } } else { dro.elNode.style.left = '0px'; }
                try { window.event.cancelBubble = true; window.event.returnValue = false; } catch (e) { event.preventDefault(); }
            }
        },
        click: function (f) {
            var x, y;
            try { x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft; y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop; } catch (e) { x = event.clientX + window.scrollX; y = event.clientY + window.scrollY; }
            var olf = $d('dragbar-left');
            var org = $d('dragbar-right');
            var dli = $d('dragbar-left-inp');
            var dri = $d('dragbar-right-inp');
            var olfv = parseInt(olf.offsetWidth);
            var orgv = parseInt(org.offsetWidth);
            var elmp = dragbar.elementposition(f);
            var tmp = elmp.split('/');
            var tmpx = parseInt(tmp[0]);
            var elx = x - tmpx;
            if (dli && dri) { var dmin = Math.abs(parseInt(dli.value) - elx); var dmax = Math.abs(parseInt(dri.value) - elx); }
            if (dmin < dmax) {
                olf.style.left = (elx - (olfv / 2)) + 'px';
                dli.value = (elx - (olfv / 2));
                dragbar.start(event, 'dragbar-left');
            } else {
                org.style.left = (elx - (orgv / 2)) + 'px';
                dri.value = (elx - (orgv / 2));
                dragbar.start(event, 'dragbar-right');
            }
            dragbar.indicator();
        },
        stop: function (event) {
            try { document.detachEvent("onmousemove", dragbar.go); document.detachEvent("onmouseup", dragbar.stop); } catch (e) { document.removeEventListener("mousemove", dragbar.go, true); document.removeEventListener("mouseup", dragbar.stop, true); }
        },
        indicator: function () {
            var px, py, af, at, rangex, rangey;
            var indi = $d('dragbar-indicator');
            var obj = $d('dragbar');
            var dralft = $d('dragbar-left');
            var drargt = $d('dragbar-right');
            var dragamount = $d('dragbar-amount');
            var dragamountSelection = $d('dragbar-amount-selection');
            var amountfrom = $d('dragbar-amount-from');
            var amountstart = $d('dragbar-amount-start');
            var amountto = $d('dragbar-amount-to');
            if (indi && obj && dralft && drargt && amountfrom && amountto && dragamount) {
                var indiwid = parseInt(dralft.offsetWidth);
                var objpos = dragbar.elementposition(obj);
                var dralftpos = dragbar.elementposition(dralft);
                var drargtpos = dragbar.elementposition(drargt);
                var objtmp = objpos.split('/');
                var dralfttmp = dralftpos.split('/');
                var drargttmp = drargtpos.split('/');
                var ojbx = parseInt(objtmp[0]);
                var dralftx = (parseInt(dralfttmp[0]) - ojbx);
                var drargtx = (parseInt(drargttmp[0]) - ojbx);
                var dragoffw = (parseInt(obj.offsetWidth) - indiwid);
                indi.style.width = Math.abs((dralftx - drargtx)) + 'px';
                if (dralftx > drargtx) {
                    indi.style.left = drargtx + 'px';
                    px = Math.round(drargtx * 100 / dragoffw);
                    py = Math.round(dralftx * 100 / dragoffw);
                } else {
                    indi.style.left = dralftx + 'px';
                    px = Math.round(dralftx * 100 / dragoffw);
                    py = Math.round(drargtx * 100 / dragoffw);
                }
                af = amountto.value - amountfrom.value;
                at = amountto.value - amountfrom.value;
                rangex = parseInt(amountstart.value) + Math.round(((px / 100) * af));
                rangey = parseInt(amountstart.value) + Math.round(((py / 100) * at));
                dragamount.value = rangex + '/' + rangey;
                dragamountSelection.value = rangex + ' - ' + rangey;
            }
        },
        elementposition: function (obj) {
            var curleft = curtop = 0;
            if (obj.offsetParent) {
                curleft = obj.offsetLeft;
                curtop = obj.offsetTop;
                while (obj = obj.offsetParent) {
                    curleft += obj.offsetLeft;
                    curtop += obj.offsetTop;
                }
            }
            return curleft + '/' + curtop;
        }
    };
} ();

/* Window load
---------------------------------------------------------------- */

window.onload = function () {

    // Images boxes
    box.initialize('box1');

    // Collapser
    collapser.initialize();

    // Links
    linkz.initialize();

}

/* Window onclick
---------------------------------------------------------------- */

window.document.onclick = function () {

    // Dropdown
    toogle.dropdown(this, 'onclick');

}

function openPopUp(pUrl, w, h) {
    var l = getWindowPosition("width") - (w / 2);
    var t = getWindowPosition("height") - (h / 2);
    window.open(pUrl, 'popUp', 'width=' + w + ',height=' + h + ',left=' + l + ',top=' + t + ',resizable=yes');
}

function getWindowPosition(dim) {
    var myWidth = 0, myHeight = 0;
    // a little check cos IE doens't support window innerWidth

    if (typeof (window.innerWidth) == 'number') {
        //Non-IE

        theTop = document.documentElement.scrollTop;
        theHeight = window.innerHeight / 2;

        theLeft = document.documentElement.scrollLeft;
        theWidth = window.innerWidth / 2;

        myWidth = theLeft + theWidth;
        myHeight = theTop + theHeight;

    }
    else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
        //IE 6+ in 'standards compliant mode'
        theTop = document.documentElement.scrollTop;
        theHeight = document.documentElement.clientHeight / 2;

        theLeft = document.documentElement.scrollLeft;
        theWidth = document.documentElement.clientWidth / 2;

        myWidth = theLeft + theWidth;
        myHeight = theHeight + theTop;

    } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
        //IE 4 compatible
        myWidth = document.body.clientWidth;
        myHeight = document.body.clientHeight;
    }

    if (dim == 'width') {
        return myWidth;
    }
    else {
        return myHeight;
    }

}

function changeJobSelection() {
    //document.location.href =document.getElementById("selectBranch").options[document.getElementById("selectBranch").selectedIndex].value;
    var newid = document.getElementById("findJobCenter").options[document.getElementById("findJobCenter").selectedIndex].value;

    var oldlocation = new String(document.location);
    //alert(oldlocation);

    var arrayloc = oldlocation.split("?");
    //alert(arrayloc[0]);

    var newloc;
    if (newid != '') {
        newloc = arrayloc[0] + "?jobid=" + newid;
    }
    else {
        newloc = arrayloc[0];
    }
    //alert(newloc);
    document.location.href = newloc;
}


// Removes leading whitespaces
function LTrim(value) {

    var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");

}

// Removes ending whitespaces
function RTrim(value) {

    var re = /((\s*\S+)*)\s*/;
    return value.replace(re, "$1");

}

// Removes leading and ending whitespaces
function trim(value) {

    return LTrim(RTrim(value));

}


function doSearch() {

    var query = location.href;
    var urlarray = query.split('?');
    var urlf = urlarray[0];

    var txtSearchValue = '';

    var txtSearch = document.getElementById("txtPageSearch");
    if (txtSearch != null) {
        txtSearchValue = txtSearch.value;
    }

    var searchCategoryValue = "";
    var searchSubCategoryValue = "";
    if (trim(txtSearchValue) != '') {
        query = urlf + "?q=" + txtSearchValue + '&l=1';


        var searchCategory = document.getElementById("searchCategory");
        if (searchCategory != null) {
            searchCategoryValue = searchCategory.value;
            query += '&categ=' + searchCategoryValue;

            if (trim(searchCategoryValue) != '0') {
                query += '&mc=scCategory=:' + searchCategoryValue;
            }
        }
        var searchSubCategory = document.getElementById("searchSubCategory");
        if ((searchSubCategory != null) && (trim(searchSubCategoryValue) != '0')) {
            searchSubCategoryValue = searchSubCategory.value;
            query += '&subCateg=' + searchSubCategoryValue;

            if (trim(searchSubCategoryValue) != '0') {
                query += '&mc=scSubCategory=:' + searchSubCategoryValue;
            }

        }
    }

    location.href = query;
}

function checkEnter(e, caller) //e is event object passed from function invocation
{

    var characterCode //literal character code will be stored in this variable

    if (e && e.which || e.which == 0) { //if which property of event object is supported (NN4)

        e = e;
        characterCode = e.which; //character code is contained in NN4's which property
    }
    else {
        e = event;
        characterCode = e.keyCode //character code is contained in IE's keyCode property
    }

    if (characterCode == 13)//if generated character code is equal to ascii 13 (if enter key)
    {
        if (document.all) {
            e.returnValue = false;
            e.cancel = true;
        }
        else {
            e.preventDefault();
        }
        var obj = document.getElementById(caller);
        if (obj) {

            if (obj.click) {
                obj.click();
            }
        }
        return false;
    }
    else {
        return true;
    }

}

