﻿var urlSelect = null;

function navigate() {
var url = urlSelect.value;
if(url != "empty" && url.length > 0) {
window.open(url);
}
}

function fullScreen(url)
{
var windowprops = "top=0,left=0,resizable=no,width=" + screen.width + ",height=" + screen.height + ",fullscreen=yes,scrollbars=auto";
window.open(url, "popupPage", windowprops);
}

function keyboardSubmit(e, buttonid){
var keycode;
var bt = document.getElementById(buttonid);

if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;

if (keycode == 13) {
if (null != bt && (typeof bt == 'object')) {
        
if (bt.dispatchEvent && (typeof bt == 'object') && typeof(bt.click) == 'undefined') 
eval(bt.getAttribute('href'));           
else 
bt.click();
}
return false;
} 
}

function enableValidatorsBoolean(id,ctrls,bool)
{
var source = document.getElementById(id);

if((source != undefined && ctrls != undefined) && (source.type == "checkbox" || source.type == "radio"))
for (var i=0; i<ctrls.length; i++)
ValidatorEnable(document.getElementById(ctrls[i]),(source.checked == bool));
}

function writeCookie(name,value,days)
{
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = "; expires="+date.toGMTString();
}
document.cookie = name+"="+value+expires+"; path=/";
}

function addClickFunction(id) {
var b = document.getElementById(id);
if (b && typeof(b.click) == 'undefined') 
b.click = function() {
var result = true; 
if (b.onclick) result = b.onclick();
if (typeof(result) == 'undefined' || result) { eval(b.getAttribute('href')); }
}
}

/* BEGIN: HitCounter */
var HitCounterTracking = new Array();
function HitCounter(jobId, log, _this, _text) {
    if (!LocateMetric(log)) {
        HitCounterTracking.push(log);
        var temp = new tempuri.org.IHitCounterLogger();
        if (null != _this) {

            temp.LogJobView(jobId, log, _this.href);
        }
        else {
            temp.LogJobView(jobId, log, _text);
        }
    }
}

function LocateMetric(log) { for (i = 0; i < HitCounterTracking.length; i++) { if (HitCounterTracking[i] == log) { return true; } } return false; }
function CopyEmailTracking(jobId) { var emailText = display(); if (emailText != null && emailText != "") { HitCounter(jobId, 0, null, emailText); } }
function display() { if (document.getSelection) { var str = document.getSelection(); } else if (document.selection && document.selection.createRange) { var range = document.selection.createRange(); var str = range.text; } else { var str = null; } return str; }
/* END: HitCounter */

/* BEGIN: ILocationService */
function AssignAutoCompleteToControl(service, id, language) {
    $("input#" + id).autocomplete(autoCompleteUrl + service,
     {
         dataType: 'json',
         parse: function(data) {
             var rows = new Array();
             for (var i = 0; i < data.length; i++) {
                 rows[i] = { data: data[i], value: data[i], result: data[i] };
             }
             return rows;
         },
         formatItem: function(row, i, n) {
             return row
         },
         extraParams: {
             contextKey: language,
             count: 200
         },
         delay: 100,
         minChars: 2         
     });
}
/* END: ILocationService */

// Get all Query params
function GetQueryParams() {
    var query = this.location.search.substring(1);
    var result = new Object();
    if (query.length > 0) {
        var params = query.split("&");
        for (var i = 0; i < params.length; i++) {
            var pos = params[i].indexOf("=");
            var name = params[i].substring(0, pos);
            var value = params[i].substring(pos + 1);
            result[name] = value;
        }
    }
    return result;
}

function urlredirect(url) {
    if ($.browser.msie)
        url.replace("&", "&amp;");
    window.location = url;
}

// Returns query string parmeters related to job search
// TODO: move out of GlobalScript.js
function GetJobSearchParams(queryHash) {
    // get all currnet params
    var currentParams = GetQueryParams();
    var finalParamString = "";
    
    for (newKey in queryHash) {
        if (currentParams[newKey] == undefined || currentParams[newKey] != queryHash[newKey])
            currentParams[newKey] = queryHash[newKey];
    }

    for (key in currentParams) {
        if (finalParamString == "") {
            finalParamString += "?" + key + "=" + currentParams[key];
        }
        else {
            finalParamString += "&" + key + "=" + currentParams[key];
        }
    }

    return finalParamString;
}

// redirect when selected index change on job search sort
// TODO: move out of GlobalScripts.js
function SortJobSearch(id) {
    var sortBox = document.getElementById(id)
    var value = sortBox.options[sortBox.selectedIndex].value;

    var splitValues = value.split(":");
    var keyValue = new Object();

    keyValue["st"] = splitValues[0].toLowerCase();
    if (splitValues[1] == "A") {
        keyValue["so"] = "ascending";
    }
    else if (splitValues[1] == "D") {
        keyValue["so"] = "descending";
    }

    var queryString = GetJobSearchParams(keyValue);
    urlredirect(window.location.protocol + "//" + window.location.host + window.location.pathname + queryString);
}
