/**
 *								
 *  Dölj ett lager						
 *								
 *	   div	Id på lagret som ska döljas			
 *								
 **/
function hideLayer(div){
	document.getElementById(div).style.visibility="hidden";
}

/**
 *								
 *  Visa ett lager						
 *								
 *	   div	Id på lagret som ska visas			
 *								
 **/
function showLayer(div){
	document.getElementById(div).style.visibility="visible";
}

/**
 *								
 *  Skifta mellan att dölja och visa ett lager, skiftar 	
 *  visibility							
 *								
 *     divNamn	Id på lagret som ska skiftas			
 *								
 **/
function toggle(divNamn){
	var div = document.getElementById(divNamn).style;
	if(div.visibility == '' || div.visibility == 'visible'){
		div.visibility = 'hidden';
	}
	else{
		div.visibility = 'visible';
	}
}

/**
 *								
 *  Skifta mellan att dölja och visa ett lager, skiftar display 
 *								
 *     divNamn	Id på lagret som ska skiftas			
 *								
 **/
function toggle2(divNamn){
	var div = document.getElementById(divNamn).style;
	if(div.display == '' || div.display == 'block'){
		div.display = 'none';
	}
	else{
		div.display = 'block';
	}
}

/**
 *								
 *  Skifta mellan att dölja och visa ett lager, skiftar overflow
 *  och height							
 *								
 *     divNamn	Id på lagret som ska skiftas			
 *								
 **/
function toggle3(divNamn){
	var div = document.getElementById(divNamn).style;
	if(div.height == '' || div.height == 'auto'){
		div.height = '0px';
		div.overflow = 'hidden';
	}
	else{
		div.height = 'auto';
		div.overflow = 'visible';
	}
}

/**
 *								
 *  Funktion för att visa/dölja hjälpen. Kollar ifall vi har	
 *  mootools tillgängligt och ifall vi redan aktiverat tips	
 *								
 **/
var hjalp_initilized = false;
function visaHjalp(){

	if(typeof(Tips) != 'function'){
		alert('Hjälp är tyvärr bara tillgängligt i redigeringsläge');
	//	return false;
	}
	else{
		if(!hjalp_initilized){
			new Tips($S('.hjalp'));
			new Tips($S('.hjalpImg'), {mouseOver: true});
			hjalp_initilized = true;
		}

		// Kollar ifall Hjälp ska visas eller döljas
		if(document.getElementsByName("visaDoljHjalp")[0].value == 0){
			document.getElementsByName("visaDoljHjalp")[0].value = 1;
		}
		else{
			document.getElementsByName("visaDoljHjalp")[0].value = 0;
		}
	}
}

/**
 *								
 *  Kontrollerar om ett värde är numerisk			
 *								
 *	   val	Värde att kolla					
 *								
 *    [return]	Returnerar true/false om värdet är numerisk	
 *								
 **/
function is_numeric(val){
	return (val == parseInt(val));
}

/**
 *								
 *  Returnerar en värdet på en kaka				
 *								
 * NameOfCookie	 Namnet på kakan				
 *								
 *     [return]	 Värdet på kakan om den hittas, annar null	
 *								
 **/
function getCookie(NameOfCookie){
	
	// Kolla om några kakor är satta
	if(document.cookie.length > 0){
		
		// Alla kakorna ligger på rad i en sträng, försök avgöra var vå börjar
		begin = document.cookie.indexOf(NameOfCookie + "=");
		
		if(begin != -1){
		
			// Värdet på kakan börjar efter namnet + "="
			begin += NameOfCookie.length + 1;
			
			// Försök avgöra var den slutar (slutar med ett ;)
			end = document.cookie.indexOf(";", begin);
		
			// Om vi inte hittade något slut så är det den sista kakan i strängen ...
			if(end == -1)
				end = document.cookie.length;
			
			// Returnera kakan
			return unescape(document.cookie.substring(begin, end));
		}
	}
	
	// Ingen hittades
	return null;
}

function setCookie(NameOfCookie, value, expiredays){
	var ExpireDate = new Date();
	ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
	document.cookie = NameOfCookie + "=" + escape(value) + ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
}

function delCookie (NameOfCookie){
	// Kontrollera så att kakan finns
	if(getCookie(NameOfCookie)){
		// Sätt att kakan slutade gälla för länge sen ...
		document.cookie = NameOfCookie + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	}
}

function checkSave(f) {
	if (f.savepass.checked) {
		setCookie("login_username", f.username.value, 365);
		setCookie("login_password", f.password.value, 365);
		setCookie("login_red", (f.red.checked?"1":"0"), 365);
		setCookie("login_savepass", (f.savepass.checked?"1":"0"), 365);
	} else {
		delCookie("login_username");
		delCookie("login_password");
		delCookie("login_red");
		delCookie("login_savepass");
	}
	return true;
}

/**
 *								
 *  Visar en popup						
 *								
 *	source	Adress att visa					
 *	  name	Namn på popuppen				
 *	 width	Bredd på popuppen				
 *	height	Höjd på popuppen				
 *								
 **/
function PopUpWin(source, name, width, height){

	// Lägg till lite extra bredd och höjd på angivna värden för det är lite margin på body per standard
	if(width != "" || height != ""){
		width = parseInt(width) + 20;
		height = parseInt(height) + 20;
	}
	
	var win = window.open(source, name, "location=0,toolbar=no,menubar=yes,scrollbars=no,resizable=yes" + (width > 0 ? ",width=" + width + ",height=" + height : ""));
	win.focus();
}

/**
 *								
 *  Visar en popup, om bredd eller höjd är större än definierat	
 *  värde så bildas scrollbars					
 *								
 *	source	Adress att visa					
 *	  name	Namn på popuppen				
 *	 width	Bredd på popuppen				
 *	height	Höjd på popuppen				
 *								
 **/
function PopUpWin2(source, name, width, height, maxwidth, maxheight){

	// Lägg till lite extra bredd och höjd på angivna värden för det är lite margin på body per standard
	if(width != "" || height != ""){
		width = parseInt(width) + 20;
		height = parseInt(height) + 20;
	}

	var scrollbars = "no";

	// Kontrollera bredd
	if(typeof(maxwidth) == "undefined")
		maxwidth = 600;
	
	if(width > maxwidth){
		width = maxwidth;
		scrollbars = "yes";
	}
	
	// Kontrollera höjd
	if(typeof(maxheight) == "undefined")
		maxheight = 500;
	
	if(height > maxheight){
		height = maxheight;
		scrollbars = "yes";
	}
	
	var win = window.open(source, name, "location=0,toolbar=no,menubar=yes,scrollbars=" + scrollbars + ",resizable=yes" + (width > 0 ? ",width=" + width + ",height=" + height : ""));
	win.focus();
}

/**
 *								
 *  Samma som PopUpWin() men den visar alltid scroll		
 *								
 **/
function PopUpWinScroll(source, name, width, height){

	// Lägg till lite extra bredd och höjd på angivna värden för det är lite margin på body per standard
	if(width != "" || height != ""){
		width = parseInt(width) + 20;
		height = parseInt(height) + 20;
	}
	
	var win = window.open(source, name, "location=0,toolbar=no,menubar=yes,scrollbars=yes,resizable=yes" + (width > 0 ? ",width=" + width + ",height=" + height : ""));
	win.focus();
}

function PopUpWinBC(source,name,width,height) {
	scrollbar = 'yes';
	window.open(source, name,"location=1,toolbar=yes,menubar=yes,scrollbars=" + scrollbar + ",resizable=yes" + (width>0 ? ",width="+width+",height="+height : ""));
}

function clickepost(dom, adr) {
  document.write("<a href=\"mailto");
  document.write(":" + adr + "@");
  document.write(dom + "\">" + adr + "@" + dom + "<\/a>");
}


function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function getSelectedCheckbox(buttonGroup) {
   // Go through all the check boxes. return an array of all the ones
   // that are selected (their position numbers). if no boxes were checked,
   // returned array will be empty (length will be zero)
   var retArr = new Array();
   var lastElement = 0;
   if (buttonGroup[0]) { // if the button group is an array (one check box is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            retArr.length = lastElement;
            retArr[lastElement] = i;
            lastElement++;
         }
      }
   } else { // There is only one check box (it's not an array)
      if (buttonGroup.checked) { // if the one check box is checked
         retArr.length = lastElement;
         retArr[lastElement] = 0; // return zero as the only array value
      }
   }
   return retArr;
} // Ends the "getSelectedCheckbox" function

function getSelectedCheckboxValue(buttonGroup) {
   // return an array of values selected in the check box group. if no boxes
   // were checked, returned array will be empty (length will be zero)
   var retArr = new Array(); // set up empty array for the return values
   var selectedItems = getSelectedCheckbox(buttonGroup);
   if (selectedItems.length != 0) { // if there was something selected
      retArr.length = selectedItems.length;
      for (var i=0; i<selectedItems.length; i++) {
         if (buttonGroup[selectedItems[i]]) { // Make sure it's an array
            retArr[i] = buttonGroup[selectedItems[i]].value;
         } else { // It's not an array (there's just one check box and it's selected)
            retArr[i] = buttonGroup.value;// return that value
         }
      }
   }
   return retArr;
} // Ends the "getSelectedCheckBoxValue" function


/*
 *								
 *  Returnerar getvariablar					
 *								
 *  Detta script finns att hämta på http://www.jojoxx.net och	
 *  får användas fritt så länge som dessa rader står kvar.	
 *								
 **/
function querystring(){
	if(!location.search){ return null; }
	var querystr=location.search.split("?")[1].replace(/\+/g," ");
	for(var n=0;n<querystr.split("&").length;n++){
		var name=unescape(querystr.split("&")[n].split("=")[0]);
		var value=unescape(querystr.split("&")[n].split("=")[1]);
		if(this[name]){
			if(typeof(this[name])=="object"){
				this[name][this[name].length]=value;
			}else{
				this[name]=new Array(this[name],value);
			}
		}else{
			this[name]=value;
		}
	}
}

var _GET = new querystring();


// 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));
	
}

/**
 *							    
 *  Hitta positionen på ett element för visa hjälpen.	    
 *  All heder till http://www.quirksmode.org/js/findpos.html
 *							    
 **/
function findPos(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];
}

function findAllPos(obj) {

	var pos = findPos(obj);
	var curtop = pos[1];
	var curleft = pos[0];

	var screenWidth = window.innerWidth || document.documentElement.clientWidth || 0;
	var screenHeight = window.innerHeight || document.documentElement.clientHeight || 0;
	
	return [curtop, (screenWidth - curleft - obj.offsetWidth), (screenHeight - curtop - obj.offsetHeight), curleft];
}

/**
 *							
 *  Placerar ut loginLayer och visar ovanför eller 	
 *  nedanför logga-ut länken				
 *							
 *	   dir	Om det ska visas ovanför eller nedanför	
 *		länken					
 *							
 **/
function showHideLoginlayer(dir){
	
	var div = document.getElementById("loginLayer");
	var link = document.getElementById("loginLink");
	
	// Hitta placeringen på länken
	var linkPos = findPos(link);
	
	// Hämta bred och höjd på diven och länken
	var divH = div.offsetHeight;
	var divW = div.offsetWidth;
	var linkH = link.offsetHeight;
	var linkW = link.offsetWidth;
	
	// Avgör om diven ska visas ovanför eller nedanför länken och placera ut den
	if(dir == 'below'){
		// Visar nedanför
		div.style.top = linkPos[1] + linkH;
		div.style.left = linkPos[0] - ((divW - linkW) / 2);
	}
	else{
		// Visar ovanför
		div.style.top = linkPos[1] - divH - linkH;
		div.style.left = linkPos[0] - ((divW - linkW) / 2);
	}
	
	// Avgör ifall vi ska visa eller dölja layern
	if(div.style.visibility == '' || div.style.visibility == 'visible'){
		div.style.visibility = 'hidden';
	}
	else{
		div.style.visibility = 'visible';
	}
}

/**
 *							
 *  Byter ut en bild i menyn				
 *							
 *	   img	Referens till bilden			
 *	    to	Till vilken bild vi ska byta		
 *	  from	Från vilken bild vi bytt		
 *	 hover	Ifall vi hovrar				
 *
 **/
function menuSwap(img, to, from, hover){

	img.src = to;

}