        var enableCache = false;
        var jsCache = new Array();
        var AjaxObjects = new Array();

        function ShowContent(divId,ajaxIndex,url)
        {
	        document.getElementById(divId).innerHTML = AjaxObjects[ajaxIndex].response;
	        if(enableCache){
		        jsCache[url] = 	AjaxObjects[ajaxIndex].response;
	        }
	        AjaxObjects[ajaxIndex] = false;
        }
		
		function Ajax(divId,url)
        {
	        if(enableCache && jsCache[url]){
		        document.getElementById(divId).innerHTML = jsCache[url];
		        return;
	        }	
	        var ajaxIndex = AjaxObjects.length;
	        document.getElementById(divId).innerHTML = '<img src=/image/spinner.gif width=16 height=16 hspace=10 vspace=10 />';
	        AjaxObjects[ajaxIndex] = new sack();
	        AjaxObjects[ajaxIndex].requestFile = url;
	        AjaxObjects[ajaxIndex].onCompletion = function(){ ShowContent(divId,ajaxIndex,url); };
	        AjaxObjects[ajaxIndex].runAJAX();
        }
		
		
        function getPageLink(divId,url)
        {
	        if(enableCache && jsCache[url]){
		        document.getElementById(divId).innerHTML = jsCache[url];
		        return;
	        }	
	        var ajaxIndex = AjaxObjects.length;
	        document.getElementById(divId).innerHTML = '<img src=image/spinner.gif hspace=10 vspace=10 />';
	        AjaxObjects[ajaxIndex] = new sack();
	        AjaxObjects[ajaxIndex].requestFile = url;
	        AjaxObjects[ajaxIndex].onCompletion = function(){ movetopage(AjaxObjects[ajaxIndex].response); };
	        AjaxObjects[ajaxIndex].runAJAX();
	        document.getElementById(divId).innerHTML = '';
        }

var newwindow;
function xnewwin(url)
{
    if(!url==''){
	    var d = new Date()
	    var t = d.getTime()
	    var xname = 'xwind'+t;
	    newwindow=window.open(url,xname,'');
	    if (window.focus) {newwindow.focus()}
	}
}        
function movetopage(url){
	window.location.href=url;
}
function movetourlfromlist(obj,mod){
   var x1 = obj.selectedIndex; 
   if(mod==1){
    sID = obj.options[x1].value;
    getPageLink('xLogoBox','/_funcs/get_linkFromID.asp?id='+sID);
   }
   else{
    sValue = obj.options[x1].text;
    getPageLink('xLogoBox','/_funcs/get_linkFromID.asp?name='+sValue);
   }
  
}
function mbox(){
    data.modal({onOpen: function (dialog) {
      dialog.overlay.fadeIn('slow', function () {
        dialog.container.slideDown('slow', function () {
          dialog.data.fadeIn('slow'); 
        });
      });
    }});

}
function sendtosearch(obj){
   sValue = obj.value;
   movetopage('/sok?'+sValue);
}
function xprintpage(url)
{
	var d = new Date()
	var t = d.getTime()
	var xname = 'xwind'+t;
	newwindow=window.open(url,xname,'location=0,status=0,scrollbars=1,width=700,height=600');
	if (window.focus) {newwindow.focus()}
}
function hamta(namn)                                            //Funktionshuvud
{
    kakor=document.cookie;                                          //Lagrar innehållet i document.cookie i kakor
    kakor_delar=kakor.split(";");                                  //Deklarerar en array med namnet kakor_delar
    for (raknare_i=0;raknare_i<kakor_delar.length;raknare_i++)      //Startar en loop som pågår som max tills alla kakor_delar's delar har lästs
    {
    tva_delar=kakor_delar[raknare_i].split("=");                    //Skapar arrayen tva_delar, som namnet säger innehåller två delar - namnet på kakan i index 0 och dess värde i index 1
    if (tva_delar[0]==namn)                                         //Om kakans namn motsvarar namn...
    {
    return unescape(tva_delar[1]);                                  //Så returneras kakans värde, i ett unescape:at format
    }
    }
    return "";                                                      //Om kakan inte hittades så returnerar scriptet en tom sträng
}

function savetocookie(namn, innehall, lagringstid)
{   
    // hämta först lagrad kaka
    kaka = cookieGetter('svedala');
    //alert(document.cookie);
    //alert(kaka);
    lagringstid=parseInt(eval(lagringstid));
     if (lagringstid+""=="NaN") 
     {
      datumsnutt="";
     }
     else
     {
      var datum = new Date();                               
      datum.setTime(datum.getTime() + 1000*60*60*24*365);      //1 år    
      datum=datum.toGMTString();                             
      datumsnutt="; expires="+datum;
     }
    
    document.cookie=namn+"="+kaka+escape(innehall)+'#';
    //alert(namn+"="+kaka+escape(innehall)+'#'+datumsnutt);
    
	Ajax('xmyfav','/_funcs/get_myfav.asp');
	Ajax('xmyfav','/_funcs/get_myfav.asp');
	alert('En ny favorit ha lagts till i din lista!'); 
    window.history.go(); 
}
function cookieGetter(cname) // 
{ 
var searched = cname + "=" //8 
if (document.cookie.length > 0) //9 
     { 
     nstart = document.cookie.indexOf(searched) //10 
     if(nstart != -1) //11 
     { 
     nstart += searched.length //12 
     nend = document.cookie.indexOf(";", nstart ) //13 
     if (nend == -1) //14 
     nend = document.cookie.length //15 
     return unescape(document.cookie.substring(nstart,nend)) //16 
     } 
     } 
}

function sack(file) {
	this.xmlhttp = null;

	this.resetData = function() {
		this.method = "POST";
  		this.queryStringSeparator = "?";
		this.argumentSeparator = "&";
		this.URLString = "";
		this.encodeURIString = true;
  		this.execute = false;
  		this.element = null;
		this.elementObj = null;
		this.requestFile = file;
		this.vars = new Object();
		this.responseStatus = new Array(2);
  	};

	this.resetFunctions = function() {
  		this.onLoading = function() { };
  		this.onLoaded = function() { };
  		this.onInteractive = function() { };
  		this.onCompletion = function() { };
  		this.onError = function() { };
		this.onFail = function() { };
	};

	this.reset = function() {
		this.resetFunctions();
		this.resetData();
	};

	this.createAJAX = function() {
		try {
			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e1) {
			try {
				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e2) {
				this.xmlhttp = null;
			}
		}

		if (! this.xmlhttp) {
			if (typeof XMLHttpRequest != "undefined") {
				this.xmlhttp = new XMLHttpRequest();
			} else {
				this.failed = true;
			}
		}
	};

	this.setVar = function(name, value){
		this.vars[name] = Array(value, false);
	};

	this.encVar = function(name, value, returnvars) {
		if (true == returnvars) {
			return Array(encodeURIComponent(name), encodeURIComponent(value));
		} else {
			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
		}
	}

	this.processURLString = function(string, encode) {
		encoded = encodeURIComponent(this.argumentSeparator);
		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
		varArray = string.split(regexp);
		for (i = 0; i < varArray.length; i++){
			urlVars = varArray[i].split("=");
			if (true == encode){
				this.encVar(urlVars[0], urlVars[1]);
			} else {
				this.setVar(urlVars[0], urlVars[1]);
			}
		}
	}

	this.createURLString = function(urlstring) {
		if (this.encodeURIString && this.URLString.length) {
			this.processURLString(this.URLString, true);
		}

		if (urlstring) {
			if (this.URLString.length) {
				this.URLString += this.argumentSeparator + urlstring;
			} else {
				this.URLString = urlstring;
			}
		}

		// prevents caching of URLString
		this.setVar("rndval", new Date().getTime());

		urlstringtemp = new Array();
		for (key in this.vars) {
			if (false == this.vars[key][1] && true == this.encodeURIString) {
				encoded = this.encVar(key, this.vars[key][0], true);
				delete this.vars[key];
				this.vars[encoded[0]] = Array(encoded[1], true);
				key = encoded[0];
			}

			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
		}
		if (urlstring){
			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
		} else {
			this.URLString += urlstringtemp.join(this.argumentSeparator);
		}
	}

	this.runResponse = function() {
		eval(this.response);
	}

	this.runAJAX = function(urlstring) {
		if (this.failed) {
			this.onFail();
		} else {
			this.createURLString(urlstring);
			if (this.element) {
				this.elementObj = document.getElementById(this.element);
			}
			if (this.xmlhttp) {
				var self = this;
				if (this.method == "GET") {
					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
					this.xmlhttp.open(this.method, totalurlstring, true);
				} else {
					this.xmlhttp.open(this.method, this.requestFile, true);
					try {
						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
					} catch (e) { }
				}

				this.xmlhttp.onreadystatechange = function() {
					switch (self.xmlhttp.readyState) {
						case 1:
							self.onLoading();
							break;
						case 2:
							self.onLoaded();
							break;
						case 3:
							self.onInteractive();
							break;
						case 4:
							self.response = self.xmlhttp.responseText;
							self.responseXML = self.xmlhttp.responseXML;
							self.responseStatus[0] = self.xmlhttp.status;
							self.responseStatus[1] = self.xmlhttp.statusText;

							if (self.execute) {
								self.runResponse();
							}

							if (self.elementObj) {
								elemNodeName = self.elementObj.nodeName;
								elemNodeName.toLowerCase();
								if (elemNodeName == "input"
								|| elemNodeName == "select"
								|| elemNodeName == "option"
								|| elemNodeName == "textarea") {
									self.elementObj.value = self.response;
								} else {
									self.elementObj.innerHTML = self.response;
								}
							}
							if (self.responseStatus[0] == "200") {
								self.onCompletion();
							} else {
								self.onError();
							}

							self.URLString = "";
							break;
					}
				};

				this.xmlhttp.send(this.URLString);
			}
		}
	};

	this.reset();
	this.createAJAX();
}
