function QS(q) {
	if(q.length > 1) 
		this.q = q.substring(1,q.length);
	else 
		this.q = null;
	this.keyValuePairs = new Array();
	if (q) {
		for(var i=0; i < this.q.split("&").length; i++) {
			this.keyValuePairs[i] = this.q.split("&")[i];
		}
	}
	this.getKeyValuePairs = function() { 
		return this.keyValuePairs; 
	}
	this.getValue = function(s) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0]== s)
				return this.keyValuePairs[j].split("=")[1];
		}
		return false;
	}
	this.getParameters = function() {
		var a = new Array(this.getLength());
		for(var j=0; j < this.keyValuePairs.length; j++) {
			a[j] = this.keyValuePairs[j].split("=")[0];
		}
		return a;
	}
	this.getLength = function() {
		return this.keyValuePairs.length; 
	} 
	this.replaceValue = function(key,value) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0]== key) {
				this.keyValuePairs[j] = key+"="+value;
				return;
			}
		}
		this.keyValuePairs[this.keyValuePairs.length] = key+"="+value;
		return;
	}
	this.addValue = function(key,value) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0]== key) {
				this.keyValuePairs[j] = this.keyValuePairs[j]+value;
				return;
			}
		}
		this.keyValuePairs[this.keyValuePairs.length] = key+"="+value;
		return;
	}
	this.removeValuePart = function(key, value) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0]== key) {
				this.keyValuePairs[j] = key+"="+this.keyValuePairs[j].split("=")[1].replace(value,'');
				return;
			}
		}
	}
	this.removeValuePartToEnd = function(key, value) {
		for(var j=0; j < this.keyValuePairs.length; j++) {
			if(this.keyValuePairs[j].split("=")[0]== key) {
				var s = this.keyValuePairs[j].split("=")[1];
				this.keyValuePairs[j] = key+"="+s.substring(0,s.indexOf(value));
				return;
			}
		}
	}
	this.getQueryString = function() {
		var s = "?";
		for(var j=0; j < this.keyValuePairs.length; j++) {
			s+=this.keyValuePairs[j];
			if (j<(this.keyValuePairs.length-1)) s+="&";
		}
		return s;
	}
}

function doSearch(commonSearch) {
    var qs = new QS("");
    
    var qid = "";
    if(commonSearch == "1"){
	    if(document.getElementById('CommonQueryFieldID')){
	        qid = document.getElementById('CommonQueryFieldID').value;
        }
    }
    else if(document.getElementById('QueryFieldID')){
		qid = document.getElementById('QueryFieldID').value;
    }
    
    var fid = "";
    if(document.getElementById('LocationFieldID')){
        fid = document.getElementById('LocationFieldID').value;
    }
    
    var aid = "";
    if(document.getElementById('AgeAddFieldID')){
        aid = document.getElementById('AgeAddFieldID').value;
    }
    
    var count = "";
    if(document.getElementById('NumberOfHitsPerPage')){
        count = document.getElementById('NumberOfHitsPerPage').value;
    }     
    
    if(qid != ""){
	    if (qs.getValue("q")=="") {
	        var query = document.getElementById(qid).value;
		    qs.addValue("q",encodeURIComponent(query));
	    }else {
	        var query = document.getElementById(qid).value;
		    qs.replaceValue("q",encodeURIComponent(query));
	    }
	}
	
	if(fid != ""){
	    if (qs.getValue("l")=="") {
		    qs.addValue("l",encodeURIComponent(document.getElementById(fid).value));
	    }else {
		    qs.replaceValue("l",encodeURIComponent(document.getElementById(fid).value));
	    }
	}
	
	if(aid != ""){
	    if (qs.getValue("f")=="") {
		    qs.addValue("f",encodeURIComponent(document.getElementById(aid).value));
	    }else {
		    qs.replaceValue("f",encodeURIComponent(document.getElementById(aid).value));
	    }
	    
	    if (qs.getValue("i")=="") {
		    qs.addValue("i",encodeURIComponent(document.getElementById(aid).selectedIndex));
	    }else {
		    qs.replaceValue("i",encodeURIComponent(document.getElementById(aid).selectedIndex));
	    }
	}
	else
	{
	    if (qs.getValue("f")!="") {
	        qs.removeValuePartToEnd("f", qs.getValue("f"));
	    }
	}
	
	if(count != "") {
	    if (qs.getValue("count")=="") {
		    qs.addValue("count",encodeURIComponent(count));
	    }else {
		    qs.replaceValue("count",encodeURIComponent(count));
	    }
	}
	
	
	var searchpage = "";
	if(commonSearch == "1"){
		searchpage = document.getElementById('NavigateToPageCommon').value;
	}
	else{
		searchpage = document.getElementById('NavigateToPage').value;
	}
	document.location = searchpage + qs.getQueryString();
	return true;
}

function navigatorSearch(modifier) {
    var qs = new QS(document.location.search);
    
    if (qs.getValue("f") == "") {
        qs.addValue("f", encodeURIComponent(modifier));
    }
    else {
        var currentModifiers = qs.getValue("f");
        qs.replaceValue("f", currentModifiers + encodeURIComponent(" " + modifier));
    }

    searchpage = document.getElementById('NavigateToPage').value;
    document.location = searchpage + qs.getQueryString();

    return true;
}

function removeModifierFromNavigatorSearch(modifier) {
    var qs = new QS(document.location.search);
    
    if (qs.getValue("f") != "") {
        var encodedModifier = encodeURIComponent(modifier);
        qs.removeValuePart("f", encodedModifier);
    }
    
    searchpage = document.getElementById('NavigateToPage').value;
    document.location = searchpage + qs.getQueryString();
    
    return true;
}

function doFrontpageSearch() {
    var qs = new QS("");
    
    var qid = "";
    if(document.getElementById('QueryFieldID')){
        qid = document.getElementById('QueryFieldID').value;
    }
    
    var fid = "";
    if(document.getElementById('LocationFieldID')){
        fid = document.getElementById('LocationFieldID').value;
    }
    
    var aid = "";
    if(document.getElementById('AgeAddFieldID')){
        aid = document.getElementById('AgeAddFieldID').value;
    }
    
    var count = "";
    if(document.getElementById('NumberOfHitsPerPage')){
        count = document.getElementById('NumberOfHitsPerPage').value;
    }     
    
    if(qid != ""){
	    if (qs.getValue("q")=="") {
		    qs.addValue("q",encodeURIComponent(document.getElementById(qid).value));
	    }else {
		    qs.replaceValue("q",encodeURIComponent(document.getElementById(qid).value));
	    }
	}
	
	if(fid != ""){
	    if (qs.getValue("l")=="") {
		    qs.addValue("l",encodeURIComponent(document.getElementById(fid).value));
	    }else {
		    qs.replaceValue("l",encodeURIComponent(document.getElementById(fid).value));
	    }
	}
	
	if(aid != ""){
	    if (qs.getValue("f")=="") {
		    qs.addValue("f",encodeURIComponent(document.getElementById(aid).value));
	    }else {
		    qs.replaceValue("f",encodeURIComponent(document.getElementById(aid).value));
	    }
	    
	    if (qs.getValue("i")=="") {
		    qs.addValue("i",encodeURIComponent(document.getElementById(aid).selectedIndex));
	    }else {
		    qs.replaceValue("i",encodeURIComponent(document.getElementById(aid).selectedIndex));
	    }
	}
	else
	{
	    if (qs.getValue("f")!="") {
	        qs.removeValuePartToEnd("f", qs.getValue("f"));
	    }
	}
	
	if(count != "") {
	    if (qs.getValue("count")=="") {
		    qs.addValue("count",encodeURIComponent(count));
	    }else {
		    qs.replaceValue("count",encodeURIComponent(count));
	    }
	}
	
	
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doSimpleSearch(q) {
    var qs = new QS("");
    qs.addValue("q",encodeURIComponent(q));
    var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doSearchInSearchResult(id) {
    var qs = new QS(document.location.search);
    var value = document.getElementById(id).value;
    if (qs.getValue("sicr")=="") {
		qs.addValue("sicr",encodeURIComponent(value));
	}else {
		qs.replaceValue("sicr",encodeURIComponent(value));
	}
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function removeSearchInSearchResult() {
    var qs = new QS(document.location.search);
    
    if (qs.getValue("sicr")!="") {
		qs.replaceValue("sicr","");
	}
	if(qs.getValue("offset")!="") {
	    qs.replaceValue("offset","0");	
	}
	
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doJobtypeSearch(value) {
    var qs = new QS("");
    if (qs.getValue("q")=="") {
		qs.addValue("q",encodeURIComponent("Jobtype: "+value));
    }else {
		qs.replaceValue("q",encodeURIComponent("Jobtype: "+value));
	}
	
	var count = "";
    if(document.getElementById('NumberOfHitsPerPage')){
        count = document.getElementById('NumberOfHitsPerPage').value;
    }
    
	if(count != "") {
	    if (qs.getValue("count")=="") {
		    qs.addValue("count",encodeURIComponent(count));
	    }else {
		    qs.replaceValue("count",encodeURIComponent(count));
	    }
	}
	
	if (qs.getValue("sortorder")!="") {		    
        qs.replaceValue("sortorder",encodeURIComponent("descending"));
    }
    else {
        qs.addValue("sortorder",encodeURIComponent("descending"));
    }
    
    if (qs.getValue("sortby")!="") {		    
        qs.replaceValue("sortby",encodeURIComponent("ofirvalidfrom"));
    }
    else {
        qs.addValue("sortby",encodeURIComponent("ofirvalidfrom"));
    }
	
	qs.addValue("jobtypesearch",encodeURIComponent("true"));
	
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doAdvertiserSearch(value) {
    var qs = new QS("");
    if (qs.getValue("q")=="") {
		qs.addValue("q",encodeURIComponent("firma: " + value));
	} else {
		qs.replaceValue("q",encodeURIComponent("firma: " + value));		
	}
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doSimilarSearch(docvector, simtype) {
    var qs = new QS(document.location.search);
    if (qs.getValue("sim")=="") {
		qs.addValue("sim",docvector);
	}else {
		qs.replaceValue("sim",docvector);
	}
	if (qs.getValue("simt")=="") {
		qs.addValue("simt",encodeURIComponent(simtype));
	}else {
		qs.replaceValue("simt",encodeURIComponent(simtype));
	}
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doPagingSearch(offset, count) {
    var qs = new QS(document.location.search);
    if (qs.getValue("offset")=="") {
		qs.addValue("offset",encodeURIComponent(offset));
	}else {
		qs.replaceValue("offset",encodeURIComponent(offset));
	}
	if (qs.getValue("count")=="") {
		qs.addValue("count",encodeURIComponent(count));
	}else {
		qs.replaceValue("count",encodeURIComponent(count));
	}
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function doGoToPageSearch(count, pageID, errorDescription,maxPages) 
{
    var page = document.getElementById(pageID).value;
    var strPat = /\d+/;
    if(strPat.test(page)){
        var qs = new QS(document.location.search);

        if(page >parseInt(maxPages)){

            if (qs.getValue("offset")=="") {
		        qs.addValue("offset",encodeURIComponent((maxPages* count)-count));
	        }else {
		        qs.replaceValue("offset",encodeURIComponent((maxPages* count)-count));
	        }
	        if (qs.getValue("count")=="") {
		        qs.addValue("count",encodeURIComponent(count));
	        }else {
		        qs.replaceValue("count",encodeURIComponent(count));
	        }
	        var searchpage = document.getElementById('NavigateToPage').value;
	        document.location = searchpage + qs.getQueryString();
	        return true;
        }
        else
        {
            if (qs.getValue("offset")=="") {
		        qs.addValue("offset",encodeURIComponent((page* count)-count));
	        }else {
		        qs.replaceValue("offset",encodeURIComponent((page* count)-count));
	        }
	        if (qs.getValue("count")=="") {
		        qs.addValue("count",encodeURIComponent(count));
	        }else {
		        qs.replaceValue("count",encodeURIComponent(count));
	        }
	        var searchpage = document.getElementById('NavigateToPage').value;
	        document.location = searchpage + qs.getQueryString();
	        return true;
        }
    }
    else
    {
        alert(errorDescription);
        return false;
    }
}

function doSortByRelevansSearch() 
{
    var qs = new QS(document.location.search);
    if (qs.getValue("sortorder")!="") {		    
        qs.replaceValue("sortorder",encodeURIComponent(""));
    }
    if (qs.getValue("sortby")!="") {		    
        qs.replaceValue("sortby",encodeURIComponent(""));
    }
    var searchpage = document.getElementById('NavigateToPage').value;
    document.location = searchpage + qs.getQueryString();
    return true;
}

function doSortByNewJobSearch() 
{
    var qs = new QS(document.location.search);
    var desc = "descending";
    var sortfield = "ofirvalidfrom";

    if (qs.getValue("sortorder")=="") {
	    qs.addValue("sortorder",encodeURIComponent(desc));
    }
    else {
	    qs.replaceValue("sortorder",encodeURIComponent(desc));
    }
    if (qs.getValue("sortby")=="") {
	    qs.addValue("sortby",encodeURIComponent(sortfield));
    }
    else {
	    qs.replaceValue("sortby",encodeURIComponent(sortfield));
    }
    var searchpage = document.getElementById('NavigateToPage').value;
    document.location = searchpage + qs.getQueryString();
    return true;
}

function doChangeShowOnPageSearch(count) 
{
    var qs = new QS(document.location.search);
    if (qs.getValue("offset")!="") {
       qs.replaceValue("offset","0"); 
    }
	if (qs.getValue("count")=="") {
		qs.addValue("count",encodeURIComponent(count));
	}else {
		qs.replaceValue("count",encodeURIComponent(count));
	}
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function gotoShowJobPage(id) 
{
    var qs = new QS(document.location.search);
    
	if (qs.getValue("id")=="") {
		qs.addValue("id",encodeURIComponent(id));
	}else {
		qs.replaceValue("id",encodeURIComponent(id));
	}
	var searchpage = document.getElementById('NavigateToPageShowJob').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function initField(fieldid, param) {
    var field = document.getElementById(fieldid);
    var qs = new QS(document.location.search);
    alert(fieldid+param);
    field.value = qs.getValue(param);
}


function clickButtonViaEnter(btnid, e){
    if (!e) e = window.event; // FIX IE
    var btn = document.getElementById(btnid);    
    if (document.all && e){
        if (e.keyCode == 13){
            e.returnValue=false;
            e.cancel = true;
            btn.click();
        }
    }
    else if (document.getElementById && e){
        if (e.which == 13){
            e.returnValue=false;
            e.cancel = true;
            btn.click();
        }
    }
    else if(document.layers && e){
        if(e.which == 13){
            e.returnValue=false;
            e.cancel = true;
            btn.click();
        }
    }
}

function performGeoNavigation(value, idofzipcodebox) {
    var zipcodebox = document.getElementById(idofzipcodebox);
    if(zipcodebox.value) {
        var qs = new QS(document.location.search);
        if (qs.getValue("zip")=="") {
		    qs.addValue("zip",encodeURIComponent(zipcodebox.value));
	    } else {
		    qs.replaceValue("zip",encodeURIComponent(zipcodebox.value));		
	    }
	    if (qs.getValue("dist")=="") {
		    qs.addValue("dist",encodeURIComponent(value));
	    } else {
		    qs.replaceValue("dist",encodeURIComponent(value));		
	    }
	    if (qs.getValue("sortby")=="") {
		    qs.addValue("sortby",encodeURIComponent("ofirrank"));
	    } else {
		    qs.replaceValue("sortby",encodeURIComponent("ofirrank"));		
	    }
	    	    
	    var searchpage = document.getElementById('NavigateToPage').value;
	    document.location = searchpage + qs.getQueryString();
    } else {
        alert("Der er ikke indtastet et validt postnr.");
    }  
} 

function removeGeoNavigator() {
    var qs = new QS(document.location.search);
    if (qs.getValue("dist")!="") {
        qs.replaceValue("dist","");		
    }
    if (qs.getValue("zip")!="") {
        qs.replaceValue("zip","");
    }
    if (qs.getValue("sortby")!="") {
        qs.replaceValue("sortby","");
    }
    if (qs.getValue("sortorder")!="") {
        qs.replaceValue("sortorder","");
    }
    if(qs.getValue("offset")!="") {
	    qs.replaceValue("offset","0");	
	}
    var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
}

function performDrillDownNavigation(s) {
	var qs = new QS(document.location.search);
	if (qs.getValue("q")=="") {
		qs.addValue("f",encodeURIComponent(" +"+s));
	} else {
		qs.addValue("f",encodeURIComponent(" +"+s));		
	}
	if(qs.getValue("offset")!="") {
	    qs.replaceValue("offset","");	
	}
	
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();
	return true;
}

function removeDrillDownNavigator(drilltype, s) {
	var qs = new QS(document.location.search);	
	var navs = s.split("|");
	for(var j=0; j < navs.length; j++) {
	    var nav = navs[j];
	    if (drilltype == 'yes') {
		    if (qs.getValue("q")=="") {
			    qs.removeValuePartToEnd("f",encodeURIComponent(" +"+nav));
		    } else {
			    qs.removeValuePartToEnd("f",encodeURIComponent("+"+nav));
		    }
	    } else {
		    if (qs.getValue("q")=="") {
			    qs.removeValuePart("f",encodeURIComponent(" +"+nav));
		    } else {
			    qs.removeValuePart("f",encodeURIComponent(" +"+nav));			
		    }
	    }
	}	
	if(qs.getValue("offset")!="") {
	    qs.replaceValue("offset","0");	
	}
	var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();

	return true;
}

function removeAllDrillDownNavigators() {
    var qs = new QS(document.location.search);
    if (qs.getValue("f")!="") {
        qs.replaceValue("f","");	
    }
    if (qs.getValue("zip")!="") {
        qs.replaceValue("zip","");	
    }
    if (qs.getValue("dist")!="") {
        qs.replaceValue("dist","");	
        
        if(qs.getValue("sortorder")!=""){
            qs.replaceValue("sortorder","");	
        }
        if(qs.getValue("sortby")!=""){
            qs.replaceValue("sortby","");	
        }
    }
    if (qs.getValue("sicr")!="") {
        qs.replaceValue("sicr","");	
    }
    if(qs.getValue("offset")!="") {
	    qs.replaceValue("offset","0");	
	}
    var searchpage = document.getElementById('NavigateToPage').value;
	document.location = searchpage + qs.getQueryString();

	return true;
}

function HideIframeInIe(state, iframeId) 
{
    var browserName=navigator.appName;
    var iframe = document.getElementById(iframeId); 

    if (browserName=="Microsoft Internet Explorer" && iframe!="")
    {
        if(state==true){
            iframe.style.display = '';
        }
        else
        {
            iframe.style.display = 'none';
        }
    }
   
}

function doNothing()
{
    return true;
}



/* set search enter */
$(document).ready(function()
{
    $(".inpSearch").keyup(function(event)
    {
        if (event.keyCode == 13)
        {
            $(".btnSearch").trigger('click');
        }
    });
});
