/* ©Webgraph, www.webgraph.se tel:0293-55055, Sweden */
/* Senast Šndrad:06-01-17 */


/* <!-- meny syntax: 
onclick="{return stay=2, staysub=21, !showMenu('3', event);}" 
onClick="show(3,2)"
--> */
/* <!-- fšr lager som inte ska stŠnga andra vid klick: onClick="event.cancelBubble = true;" --> */

// Visa layer: onclick="return !showMenu('10', event);"

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject

/*================ Open a new browserwindow  ==================*/
var url;
function mySmallWindow(url) {
open(url,'','heigt=400,width=600,screenX=100,screenY=100');
}
/*================ /Open a new browserwindow  ==================*/


/*================ Get a random value between 1 and 10 ==================*/
function getRandomInteger() {
var randomNum;
randomNum = (Math.random() * 10);
/*Divide with appropriate randomNumber to limit randomNumbers lower than 10:
(/1.06=9; /1.18=8; /1.4=7; /1.55=6; /2=5; /2.5=4; /3=3; /4.1=2;)*/
randomNum = (randomNum / 3);
//if (randomNum < 1) {randomNum = 1;}
//else {
return Math.round(randomNum); 
//}
//document.write("The random rounded value is " + randomNum);
}
/*================ /Get a random value between 1 and 10 ==================*/


// ********************************
// application-specific functions *
// ********************************
var numMenus = 90; //= Hšgsta nummer pŒ lager som ska dšljas.
var menuId;
var lastLayer;


/*================ Hide all layers  ====================*/
function hideAllMenus() {
//counter= lŠgsta nummer pŒ lager som ska gšmmas
for(counter = 1; counter <= numMenus; counter++) { 
	changeObjectVisibility('Layer' + counter, 'hidden');	
}
//Enskilda sub+sub lager med hšga nummer:
changeObjectVisibility('Layer111', 'hidden');
}


/*================ Hide all layers exept arguments ====================*/
function hideAllMenusExept(stay, staysub) {
for(counter = 1; counter <= (stay+numMenus); counter++) { 
	if (stay != counter && staysub != counter) {
	changeObjectVisibility('Layer' + counter, 'hidden');
	}
}
//Enskilda sub+sub lager med hšga nummer:
changeObjectVisibility('Layer111', 'hidden');
lastLayer = null;
}

/*==================== Show some argument layers =================*/
function show(ett) {
//if (lastLayer) {hideAllMenusExept(lastLayer-1);}
for (var i=0; i<show.arguments.length; i++) {
menuId = 'Layer' + show.arguments[i];
if(changeObjectVisibility(menuId, 'visible')) {
continue;
} else {
return false;
}
}
lastLayer = ett; /* = Fšrsta argumentet */
}

/*==================== Show-hide some argument layers =================*/
function showHide(ett) {
hideAllMenus();
for (var i=0; i<showHide.arguments.length; i++) {
menuId = 'Layer' + showHide.arguments[i];
getStyleObject(menuId);
if (lastLayer == showHide.arguments[i]) { /* Varannanfunktion fšr fšrsta argumentet (=klickat lager) */
lastLayer = null;
changeObjectVisibility(menuId, 'hidden');
} else {
if(changeObjectVisibility(menuId, 'visible')) {
if (i==0){lastLayer = ett;} /* = Fšrsta argumentet */
continue;
} else {
return false;
}
}
}
}

/*==================== Hide some argument layers =================*/
function hide() {
for (var i=0; i<hide.arguments.length; i++) {
menuId = 'Layer' + hide.arguments[i];
if(changeObjectVisibility(menuId, 'hidden')) {
lastLayer = null;
continue;
} else {
return false;
}
}
}

//document.onclick = hideAllMenus;
/* Det hŠr lagret behšvs pŒ sida fšr att kunna klicka ned alla menyer
/* <div id=contentdiv style="position: absolute; left: 0; top: 0;"></div> */




function changePosStyle(objectId, newPosStyle) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.position = newPosStyle;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility



function posStyle(ett) {
for (var i=0; i<showHide.arguments.length; i++) {
menuId = 'Layer' + showHide.arguments[i];
getStyleObject(menuId);
if (lastLayer == showHide.arguments[i]) { /* Varannanfunktion fšr fšrsta argumentet (=klickat lager) */
lastLayer = null;
changePosStyle(menuId, 'fixed');
} else {
if(changePosStyle(menuId, 'absolute')) {
if (i==0){lastLayer = ett;} /* = Fšrsta argumentet */
continue;
} else {
return false;
}
}
}
}

//Ändra typ av position (fixed, absolute, relative...)
function changeObjectPositionStyle(objectId, newPosStyle) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.position = newPosStyle;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectPositionStyle



/* Varna för gamla Explorervarianter*/
function warnMSIE6() {
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
var re1 = /MSIE 6\.0/i;
var re2 = /MSIE 5\.0/i;

//document.write("Browser name: "+ browser)
//document.write("<br>")
//document.write("Browser version: "+ b_version)

if (re1.test(b_version)) {
	//Hårdkodat, försök hitta ett generiskt system...
	if (changeObjectPositionStyle('LOGOTYPE', 'absolute') && changeObjectPositionStyle('FOOTER', 'relative')) {
		return true;
	}  else {
alert('Tyvärr kan Explorer 6.0 inte ge fullständig rättvisa till de här sidorna.\nDu bör uppgradera till version 7.0 eller använda en annan browser.')
	}
}
if (re2.test(b_version)) {
alert('Tyvärr kan Explorer 5.0 inte ge fullständig rättvisa till de här sidorna.\nDu bör uppgradera till version 7.0 eller använda en annan browser.')
}

}
/* /Varna för gamla Explorervarianter*/

/* Stoppa gamla Explorervarianter*/
function stopMSIE6() {
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
var re1 = /MSIE 6\.0/i;
var re2 = /MSIE 5\.0/i;

//document.write("Browser name: "+ browser)
//document.write("<br>")
//document.write("Browser version: "+ b_version)

if (re1.test(b_version)) {
alert('Tyvärr kan Explorer 6.0 inte ge fullständig rättvisa till de här sidorna.\nDu bör uppgradera till version 7.0 eller använda en annan browser.');
return false;
	}
if (re2.test(b_version)) {
alert('Tyvärr kan Explorer 5.0 inte ge fullständig rättvisa till de här sidorna.\nDu bör uppgradera till version 7.0 eller använda en annan browser.');
return false;
}

}
/* /Stoppa gamla Explorervarianter*/

/* Redirect gamla Explorervarianter*/
function redirectMSIE6(thislink) {
var browser=navigator.appName;
var b_version=navigator.appVersion;
var version=parseFloat(b_version);
var re1 = /MSIE 6\.0/i;
var re2 = /MSIE 5\.0/i;

//document.write("Browser name: "+ browser)
//document.write("<br>")
//document.write("Browser version: "+ b_version)

if (re1.test(b_version)) {
parent.window.location = thislink;
return true;
	}
if (re2.test(b_version)) {
parent.window.location = thislink;
return true;
}

}
/* /Redirect gamla Explorervarianter*/



// Ändra textstorlek på en sida med de här länkarna
//Text <a href="javascript:decreaseFontSize();">-</a> / <a href="javascript:increaseFontSize();">+</a>
var min=9;
var max=20;
function increaseFontSize() {
   var p = document.getElementsByTagName('body');
   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=max) {
         s += 1;
         setCookie('font_size',s,10); //Sista siffran är dagar tills coockien dör
      }
      p[i].style.fontSize = s+"px"
   }
}
function decreaseFontSize() {
   var p = document.getElementsByTagName('body');
   for(i=0;i<p.length;i++) {
      if(p[i].style.fontSize) {
         var s = parseInt(p[i].style.fontSize.replace("px",""));
      } else {
         var s = 12;
      }
      if(s!=min) {
         s -= 1;
         setCookie('font_size',s,10); //Sista siffran är dagar tills coockien dör
      }
      p[i].style.fontSize = s+"px"
     
   }   
}


//ÄNDRA TEXTSTORLEK MED VARAKTIGHET MOTSVARANDE COOCKIENS
// onLoad="ceckCookie();"

//CHECKCOOCKIE
function checkCookie() {
	
size=getCookie('font_size');
 //alert(size + ' T');

if (size!=null && size!="") {
 var p = document.getElementsByTagName('body');	
	for(i=0;i<p.length;i++) {
		p[i].style.fontSize = size + "px";
		}
	} 
}



//SETCOOCKIE
function setCookie(c_name,value,expiredays)
{
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+
((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}


//GETCOOCKIE
function getCookie(c_name)
{
if (document.cookie.length>0)
  {
  c_start=document.cookie.indexOf(c_name + "=");
  if (c_start!=-1)
    { 
    c_start=c_start + c_name.length+1; 
    c_end=document.cookie.indexOf(";",c_start);
    if (c_end==-1) c_end=document.cookie.length;
    return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
return "";
}


/* BOKMÄRKE DENNA SIDA, ÄVEN I RAMAR
 EN LÄNK SOM DENNA ELLER LIKNADE BEHÖVS PÅ SIDAN:
 <a href="javascript:bookmark_us('http://<?php echo($_SERVER["PHP_SELF"]) ?>','<?php echo($thisTitle) ?>')">Bokmärk den här sidan!</a>
<a href="javascript:bookmark_us('http://www.adress.se','titel')">Bokmärk den här sidan!</a> */

function bookmark_us(url, title){

if (window.sidebar) // firefox
    window.sidebar.addPanel(title, url, "");
else if(window.opera && window.print){ // opera
    var elem = document.createElement('a');
    elem.setAttribute('href',url);
    elem.setAttribute('title',title);
    elem.setAttribute('rel','sidebar');
    elem.click();
} 
else if(document.all)// ie
    window.external.AddFavorite(url, title);
}


/* Notera Explorer och ändra opacitet på ett objekt med två metoder.
Värdet varieras mellan 1 - 10, där 10 är ogenomskinligt. 
Funktionen anropas så här i t.ex. en bild-tag: onMouseOver = "opacity(this,8);" */
function opacity(it, Q) {
var browser=navigator.appName;
var re1 = /Explorer/i;

if (re1.test(browser)) {
	it.filters.alpha.opacity=Q*10;
} else {
	it.style.opacity=Q/10;
	}
}
/* /Notera Explorer och ändra opacitet på ett objekt  med två metoder */

/* ========================== BILDSPEL ======================= */
/*placeholder = <img src="bildspel/1.jpg" name='Bildspel'> */
var fart = 6000; //tusendelar av en sekund
var Bild = new Array();
var Antal = 57; //Antal bilder i katalogen "bildspel", där första bilden ska heta "1.jpg"

for (i = 0; i < Antal; i++){
var bildnr = i+1;
Bild[i] = 'bildspel/' + bildnr +'.jpg';
}

var a = 0;
var b = Bild.length;

var laddaBild = new Array();
for (i = 0; i < b; i++){
   laddaBild[i] = new Image();
   laddaBild[i].src = Bild[i];
}

var onoff = 0;
var block = 0;
function onOff() {
if (onoff == 1) {
onoff = 2;
block = 1;
setTimeout('removeBlock()', fart); // Förhindrar att det blir dubbla setTimeout för fadning, som i så fall ger bildfladder
} else if (block == 0) {
onoff =1;
}
}
function removeBlock() {
	block = 0;
}

function Off() { 
if (onoff == 1) {
onoff = 2;
block = 1;
setTimeout('removeBlock()', fart); // Förhindrar att det blir dubbla setTimeout för fadning, som i så fall ger bildfladder
} else {
onoff =0;
}
}

function drivBildspel() {
if (onoff == 1) {
   a++;
   if (a > (b-1)) a=0; 
	document.images.Bildspel.src = laddaBild[a].src;
	FadeOpacity('Bildspel', 10, 100, 1000, 25 );
	setTimeout('drivBildspel()', fart);
	setTimeout("FadeOpacity('Bildspel', 100, 10, 1000, 25 )", fart - 1000);
}
}

function backaBildspel() {
SetOpacity(document.getElementById('Bildspel'), 100);
if (onoff != 2) {
	a--;
   if (a < 0) a = Antal;
   document.images.Bildspel.src = laddaBild[a].src;
   } 
 }
 
function mataBildspel() {
SetOpacity(document.getElementById('Bildspel'), 100);
if (onoff != 2) {
	a++;
   if (a > (b-1)) a=0; 
   document.images.Bildspel.src = laddaBild[a].src;
   } 
 }
 
/* ========================== /BILDSPEL ======================== */
/* ========================== Opacity funktioner =====================*/
/*
FadeOpacity() requires 5 parameters to define the animation:
elemId
The id attribute of the DOM object (or HTML entity) to animate.
fromOpacity
The starting opacity for the animation.
toOpacity
The ending opacity of the animation. This is the opacity the element will have when the animation ends.
time
The time the animation should take, in milliseconds. This should be divisible by the frames per second or it will 
be rounded to the next highest number that is divisible.
fps
The frames per second for the animation. A higher fps value means a smoother animation, but opacity changes can 
be processor-intensive on larger elements, so you could lower this if needed. 8 - 12 fps is a good quality setting.
*/
function SetOpacity(elem, opacityAsInt) {
	var opacityAsDecimal = opacityAsInt;
	
	if (opacityAsInt > 100)
		opacityAsInt = opacityAsDecimal = 100; 
	else if (opacityAsInt < 0)
		opacityAsInt = opacityAsDecimal = 0; 
	
	opacityAsDecimal /= 100;
	if (opacityAsInt < 1)
		opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
	
	elem.style.opacity = opacityAsDecimal;
	elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}

function FadeOpacity(elemId, fromOpacity, toOpacity, time, fps) {
if (onoff == 1) {
	var steps = Math.ceil(fps * (time / 1000));
	var delta = (toOpacity - fromOpacity) / steps;
	
	FadeOpacityStep(elemId, 0, steps, fromOpacity, delta, (time / steps));
	}
}

function FadeOpacityStep(elemId, stepNum, steps, fromOpacity, delta, timePerStep) {
    SetOpacity(document.getElementById(elemId), Math.round(parseInt(fromOpacity) + (delta * stepNum)));

    if (stepNum < steps)
        setTimeout("FadeOpacityStep('" + elemId + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
}
/* ========================== Opacity funktioner =====================*/
