/* Globala variabler *******************************************************************************************************/

var elevatorDiv, elevatorDownLimit, elevatorUpLimit; var elevatorUpIeLimit = 0; var elevatorDelay = 1; var fullScreenAdDiv;

/* Körs när DOM laddats klart *******************************************************************************************************/
function localDomLoaded() {

//Lägg till Trade Doubler info
if( getUrlParam('m') != 'print' ) {
	document.getElementsByTagName('head')[0].appendChild(document.createTextNode("\n<!-- TradeDoubler site verification 1680096 -->\n"));
}

//Faux.js
scanColumns.init();

//#5413: ModalWindow öppnas inte i IE8 (finns redan uppladdad i Polopoly av Adeprimo, onödigt med dubbelanrop)
//ModalWindow.flashiframefix = function(e){ return; };

//Stäng av den grå hover-fyrkanten för att poppa upp bildtext (fungerar ej, se annan lösning nedan)
//var disabledFeatures = ['ImageCaption'];

//Döper om H2.structural till rätt avdelning. Loopar igenom H2. *fredrik*
var newstr = 'Nyheter';
for(var x=0, ln0 = document.getElementsByTagName("h1").length; x<ln0; x++) {
	if( document.getElementsByTagName("h1")[x].className == 'structural') { 
		newstr = document.getElementsByTagName("h1")[x].innerHTML;
		break;
	}
}
for(var x=0, ln0 = document.getElementsByTagName("h2").length; x<ln0; x++) {
	if( document.getElementsByTagName("h2")[x].className == 'structural') { 
		document.getElementsByTagName("h2")[x].innerHTML = newstr;
		break;
	}
}

//Loopa igenom divar
var divArr = document.getElementsByTagName("div");
for(var x=0, ln0 = divArr.length; x<ln0; x++)
{
	if( divArr[x].className && divArr[x].className == 'row' && divArr[x].innerHTML.match(/&amp;/gi) )
	{
		//Ersätta konstiga tecken i TT-artiklarna
		var str = divArr[x].innerHTML;
		str = str.replace(/&amp;#xD;/gi,'<br />');
		str = str.replace(/&amp;#x0096;/gi,'-');
		str = str.replace(/–/gi,'-');
		divArr[x].innerHTML = str;
	}
	else if( divArr[x].id == 'articleContent' && divArr[x].innerHTML.match(/&amp;/gi) )
	{
		//Ersätta konstiga tecken i TT-artiklarna
		var str = divArr[x].innerHTML;
		str = str.replace(/&amp;#xD;/gi,'<br />');
		str = str.replace(/&amp;#x0096;/gi,'-');
		str = str.replace(/–/gi,'-');
		divArr[x].innerHTML = str;
	}
	else if( document.getElementsByTagName('div')[x].id.match(/articleContainer/g) ) {
		var par = document.getElementsByTagName('div')[x];
		for(var j=0, ln2=par.getElementsByTagName('div').length; j<ln2; j++)
		{
			if( par.getElementsByTagName('div')[j].className.match(/photoAlbumContainer/g) ) {
				var ch = par.getElementsByTagName('div')[j];
				ch.innerHTML = ch.innerHTML.replace("<h3>",""); ch.innerHTML = ch.innerHTML.replace("</h3>","");
				ch.getElementsByTagName('span')[0].className = 'label';
				ch.getElementsByTagName('em')[0].innerHTML = 'Bildextra';
				ch.getElementsByTagName('span')[0].style.display = 'block';
				break;
			}
		}
	}
	else if( document.getElementsByTagName('div')[x].className == 'imageCaptionIcon' ) {
		//Stäng av den grå hover-fyrkanten för att poppa upp bildtext
		var n = document.getElementsByTagName('div')[x]; var par = n.parentNode;
		if( par.className == 'imageWrapper' ) { n.style.display = 'none'; }
	}
	else if( document.getElementsByTagName('div')[x].className.match(/adElevator/g) ) {
		//Kolla om det finns någon annons på hiss-annonsens position
		if( document.getElementsByTagName('div')[x].innerHTML.match(/zoneid=26/g) ) {
			elevatorDiv = document.getElementsByTagName('div')[x];
			beginElevator();
		}
	}
	else if( document.getElementsByTagName('div')[x].className.match(/adColumn/g) )
	{
		//Ta bort tomma högerspaltsannonser
		/*var adCol = divArr[x];
		for(var y=0, ln1 = adCol.getElementsByTagName("div").length; y<ln1; y++)
		{
			var adDiv = adCol.getElementsByTagName("div")[y];
			if( adDiv && adDiv.className && adDiv.className == 'advertising' && adDiv.offsetHeight < 40 )
			{
				var par = adDiv.parentNode;
				par.removeChild(adDiv);
			}
		}*/
	}
}

//Loopa igenom iframes och ta bort frameborder
/*for(var x=0, ln0 = document.getElementsByTagName("iframe").length; x<ln0; x++) {
	if( document.getElementsByTagName("iframe")[x].frameBorder != 0 || document.getElementsByTagName("iframe")[x].frameBorder != "0" ) {
		document.getElementsByTagName("iframe")[x].frameBorder = "0";
	}
}*/

//Gör övre delen av logon klickbar
/*if( document.getElementById('mainTop') ) {
	var mainTop = document.getElementById('mainTop');	
	mainTop.innerHTML = '<a href="http://st.nu" class="logoTop" onfocus="this.blur()" style="float:left; display:block; top:0; left:0; width:151px; height:17px;"><img src="http://st.nu/misc/images/transpixel.gif" width="151" height="17" border="0"></a>'+mainTop.innerHTML;
}*/

}

//Global variabel som innehåller information om vilken webbläsare personen kör
var BrowserDetect = {
	init: function ()
	{
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data)
	{
		for (var i=0;i<data.length;i++)
		{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1) return data[i].identity;
			}
			else if (dataProp) return data[i].identity;
		}
	},
	searchVersion: function (dataString)
	{
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
				{ string: navigator.userAgent, subString: "Chrome", identity: "Chrome" },
				{ string: navigator.userAgent, subString: "OmniWeb", versionSearch: "OmniWeb/", identity: "OmniWeb" },
				{ string: navigator.vendor, subString: "Apple", identity: "Safari", versionSearch: "Version" },
				{ prop: window.opera, identity: "Opera" },
				{ string: navigator.vendor, subString: "iCab", identity: "iCab" },
				{ string: navigator.vendor, subString: "KDE", identity: "Konqueror" },
				{ string: navigator.userAgent, subString: "Firefox", identity: "Firefox" },
				{ string: navigator.vendor, subString: "Camino", identity: "Camino" },
				{ string: navigator.userAgent, subString: "Netscape", identity: "Netscape" },
				{ string: navigator.userAgent, subString: "MSIE", identity: "Explorer", versionSearch: "MSIE" },
				{ string: navigator.userAgent, subString: "Gecko", identity: "Mozilla", versionSearch: "rv" },
				{ string: navigator.userAgent, subString: "Mozilla", identity: "Netscape", versionSearch: "Mozilla" }
				],
	dataOS : [
				{ string: navigator.platform, subString: "Win", identity: "Windows" },
				{ string: navigator.platform, subString: "Mac", identity: "Mac" },
				{ string: navigator.userAgent, subString: "iPhone", identity: "iPhone/iPod" },
				{ string: navigator.platform, subString: "Linux", identity: "Linux" }
	]

};


/* Funktioner **************************************************************************************************/

//Funktion som döper krönikören / bloggaren i huvudet till rätt namn
function createAuthor(cName) {
	var arr = cName.split("_"); var name = arr[0].replace(" ","");
	var author = document.createElement('div');
	author.className = 'opinionAuthor';
	if( document.getElementById(name) ) author.innerHTML = document.getElementById(name).innerHTML;
	else author.innerHTML = "Ny skribent";
	return author;
}

//Funktion som Jonas anropar från swf-filen för att scrolla till viss punkt (används i himmelsannonsen)
function scrollToFunction(x,y) { x=x.replace(/[^0-9]/gi,''); y=y.replace(/[^0-9]/gi,''); scrollTo(x,y); }

//Popup-funktioner
function vvpopper () { window.open ("http://2.st.nu/banners/vv/index.html","vvwindow","location=0,status=0,scrollbars=0,width=800,height=645,resizable=0"); return; }
function tnpopper () { window.open ("http://2.st.nu/banners/toyotanytt/index.html?fromST=1","tnwindow","location=0,status=0,scrollbars=0,width=800,height=645,resizable=0"); return; }
function Lyssna_Live(url) { var day = new Date(); var id = day.getTime();
eval("page" + id + " = window.open(url, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=300,height=450,left=25,top=25');"); }

//Plugga tom OpenX annons
function oxPlugg(zid) {
	var par = a_pluggNoder[zid].parentNode;
	par.insertBefore(document.getElementById('plugg_'+zid),a_pluggNoder[zid]);
	par.removeChild(a_pluggNoder[zid]);
}

//Ta reda på skärmhöjd och bredd
function getClientHeight() { return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight; }
function getClientWidth() { return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth; }

//Ta reda på scrollbarens y-position
function getScrollY() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) { scrOfY = window.pageYOffset; }
  else if( document.body && document.body.scrollTop ) { scrOfY = document.body.scrollTop; }
  else if( document.documentElement && document.documentElement.scrollTop ) { scrOfY = document.documentElement.scrollTop; }
  return scrOfY;
}

//Returnera både scrollbarens x- och y-position (egentligen behövs bara denna, men då måste jag ändra alla funk.anrop för getScrollY och det orkar jag inte nu)
function getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) { scrOfY = window.pageYOffset; scrOfX = window.pageXOffset; }
  else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { scrOfY = document.body.scrollTop; scrOfX = document.body.scrollLeft; }
  else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

//Returnerar värdet på den parameter i URL:en vars namn vi skickar in
function getUrlParam(pn){
	var strReturn = ""; var strHref = window.location.href;
	if( strHref.indexOf("?") > -1 ) {
		var strQueryString = strHref.substr(strHref.indexOf("?"));
		var aQueryString = strQueryString.split("&");
		for( var iParam = 0; iParam < aQueryString.length; iParam++ ){
			if( aQueryString[iParam].indexOf(pn + "=") > -1 ){
				var aParam = aQueryString[iParam].split("=");
				strReturn = aParam[1];
				break;
			}
    	}
  	}
	return unescape(strReturn);
}

//Den här funktionen kollar efter en given parameter i sidans URL och försöker ersätta angiven iframe src. MEN den fungerar inte alltid eftersom getUrlParam är
//känslig för t.ex. en url som innehåller & eller ?. T.ex. när vi skulle modda iframe för OS-sajten, då url var url=http://exempel.com/?param1=2378&param2=24
//klarade den bara av att få ut följande: url=http://exempel.com/?param1= Då får man istället hårdkoda och kolla direkt på window.location.href
function modIframe(p,s){var rx=new RegExp(s,"g");if(getUrlParam(p)){var sp=document.getElementById('startpageContainer');if(sp){var aifs=sp.getElementsByTagName('iframe');for(var i in aifs){if(aifs[i].name&&aifs[i].name.match(rx)){aifs[i].src=getUrlParam(p);break;}}}}}

//Är den här noden synlig på skärmen?
function isScrolledIntoView(elem) {
	if( elem.offsetTop && elem.offsetHeight ) {
		var a_scroll = getScrollXY();
		var docViewBottom = a_scroll[1] + getClientHeight();
		var elemTop = elem.offsetTop;
		var elemBottom = elemTop + elem.offsetHeight;
		return ((elemBottom >= a_scroll[1]) && (elemTop <= docViewBottom));
	}
	else return false;
}

function restyleReview(p)
{
	var commentsDiv = p.previousSibling;
	var review = commentsDiv.parentNode.getElementsByTagName('div')[0];

	var headlineContainer = h3Node = "null";
	
	for(var y=0, ln1 = review.getElementsByTagName("div").length; y<ln1; y++)
	{
		if( review.getElementsByTagName("div")[y].className.match(/headlineContainer/gi) ) { headlineContainer = review.getElementsByTagName("div")[y]; }
		else if( review.getElementsByTagName("div")[y].className.match(/bodyContainer/gi) )
		{
			var bodyContainer = review.getElementsByTagName("div")[y];
			if( bodyContainer.getElementsByTagName('h3')[0] && bodyContainer.getElementsByTagName('h3')[0].className.match(/header_bodyContainer/gi) ) { h3Node = bodyContainer.getElementsByTagName('h3')[0]; }
			if( headlineContainer != 'null' && h3Node != 'null' )
			{	
				headlineContainer.insertBefore(h3Node,headlineContainer.getElementsByTagName('div')[0]);
				if( bodyContainer.getElementsByTagName('p')[0].className.match(/articlePreamble/gi) ) {
					headlineContainer.insertBefore(bodyContainer.getElementsByTagName('p')[0],headlineContainer.getElementsByTagName('div')[0]);
				}
			}
			break;
		}
	}
	review.style.display = "block";	
}

//Två funktioner för att sköta specialformatet Mellanlandning
function closeFullScreenAd() {
	if( !fullScreenAdDiv ) {
		getFullScreenAd();
	}
	
	if( fullScreenAdDiv ) {
		fullScreenAdDiv.style.width = fullScreenAdDiv.style.height = fullScreenAdDiv.style.top = fullScreenAdDiv.style.left = 0;
		fullScreenAdDiv.innerHTML = '';
	}
	//if( document.getElementById('adTop') ) document.getElementById('adTop').style.height = '0px';
	document.getElementById('mainPadding').style.padding = '0';
	document.getElementById('mainPadding').style.background = 'transparent';
	if( document.getElementById('fullScreenBkg') )
	{
		var bk = document.getElementById('fullScreenBkg');
		bk.parentNode.removeChild(bk);
	}
}

function setFullScreenAd(n,co,f) {
	if( f != 'popup' ) document.getElementById('mainPadding').style.paddingTop = '2000px';
	if( co ) document.getElementById('mainPadding').style.background = co;
	if( document.getElementById('fullScreenBkg') ) {
		moveFullScreenBkg();
		window.onresize = moveFullScreenBkg;
	}
	getFullScreenAd();
}
function getFullScreenAd() {
	var m = document.getElementById('mainWrapper');
	var ar = m.getElementsByTagName('div');
	for(var i=0, ln=ar.length; i<ln; i++) {
		if( ar[i].id && ar[i].id.match(/MAX_/g) ) { fullScreenAdDiv = ar[i]; break;	 }
		}
}
function moveFullScreenBkg() {
	if( document.getElementById('fullScreenBkg') )
	{
		var d = document.getElementById('fullScreenBkg');
		var w = parseInt(d.style.width.replace(/[^0-9]/,''));
		var h = parseInt(d.style.height.replace(/[^0-9]/,''));
		var cw = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;
		var ch = document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
		d.style.left = ((cw - w) / 2) + 'px';
		d.style.top = ((ch - h) / 2) + 'px';
	}
}

function killFocusAd()
{
	if( document.getElementById('focusEffect') )
	{
		var fe = document.getElementById('focusEffect');
		//fe.style.width = fe.style.height = '1px'; fe.innerHTML = '';
		fe.style.display = 'none';
		fe.style.visibility = 'hidden';
		var par = fe.parentNode;
		par.removeChild(fe);
	}
}

//Start på Funktioner för elevator
function animateElevator(dir,offset) {
	if( !elevatorDelay && getScrollY() > 300 ) {
		var tp = parseInt(elevatorDiv.style.top.replace(/[^0-9]/gi));
		if( !isVisible('t') || !isVisible('b') ) {
			if( dir == 'd' && (elevatorDownLimit-20) > (elevatorDiv.offsetTop+elevatorDiv.offsetHeight) ) {
				if( tp < offset ) { elevatorDiv.style.top = (tp+10)+'px'; }
				if( tp+10 < offset ) setTimeout("animateElevator('"+dir+"','"+offset+"')",100);
			}
			else if( dir == 'u' && (elevatorUpLimit+10) < elevatorDiv.offsetTop ) {
				if( tp < offset ) { elevatorDiv.style.top = (tp-10)+'px'; }
				if( tp-10 < offset ) setTimeout("animateElevator('"+dir+"','"+offset+"')",100);
			}
		}
	}
	else { elevatorDelay = 0; setTimeout("animateElevator('"+dir+"','"+offset+"')",1000); }
}
function beginElevator() {
	if( elevatorDiv.getElementsByTagName('div')[0].className == 'advertising' ) { var str = elevatorDiv.getElementsByTagName('div')[0].innerHTML; elevatorDiv.innerHTML = str; }
	elevatorDownLimit = document.getElementById('mainBottom').offsetTop;
	elevatorUpLimit = elevatorDiv.offsetTop;
	elevatorDiv.marginTop = '10px';
	elevatorDiv.style.position='absolute';
	elevatorDiv.style.top = elevatorDiv.offsetTop+'px';
	elevatorLeft();
	if( window.addEventListener ) { window.addEventListener("scroll", moveElevator, false); }
	else if (window.attachEvent) { window.attachEvent("onscroll", moveElevator); }
	else if (document.getElementById) { window.onscroll=moveElevator; }
	if( window.addEventListener ) { window.addEventListener("resize", elevatorLeft, false); }
	else if (window.attachEvent) { window.attachEvent("onresize", elevatorLeft); }
	else if (document.getElementById) { window.onresize=elevatorLeft; }
}
function elevatorLeft() { if( elevatorDiv ) { elevatorDiv.style.left = (document.getElementById('mainWrapper').offsetLeft+790) + 'px'; } }
function isVisible(edge) {
	if( edge == 't' ) return ((elevatorDiv.offsetTop-getScrollY()) <= getClientHeight()) ? ( (getScrollY() >= elevatorDiv.offsetTop) ? false : true ) : false;
	else if( edge == 'b' )	
		return (((elevatorDiv.offsetTop+elevatorDiv.offsetHeight)-getScrollY()) <= getClientHeight()) ? ( (getScrollY() >= (elevatorDiv.offsetTop+elevatorDiv.offsetHeight)) ? false : true ) : false;
}
function moveElevator() {
	elevatorDelay = 1;
	var sY = getScrollY(); var cH = getClientHeight(); var fT = document.getElementById('mainBottom').offsetTop;
	if( sY < 300 ){	
		if( navigator.appName == 'Microsoft Internet Explorer' && document.getElementById('topjobsContainer') ) {
			//Kompensera för TopJobs i IE
			if( elevatorUpIeLimit == 0 ) {
				var tpc = document.getElementById('topjobsContainer'); var tp=0;
				for(var i=0, ln=document.getElementsByTagName('div').length; i<ln; i++) {
					if( document.getElementsByTagName('div')[i].className == 'lokus_topjobs') { tp = document.getElementsByTagName('div')[i].offsetTop; break; }
				}
				var tpch = (tpc.offsetHeight < 20 || !tpc.offsetHeight) ? 40 : (tpc.offsetHeight);
				elevatorUpIeLimit = tp + tpch + 27 + 27 +(tpch*2.1) + 200;
				elevatorUpLimit = elevatorUpIeLimit;
			}
		}
		elevatorDiv.style.top = (elevatorUpLimit+10)+'px';
	}
	else if( (sY+cH) >= fT ) { elevatorDiv.style.top = (elevatorDownLimit - (elevatorDiv.offsetHeight+20))+'px'; }
	else {
		var top = isVisible('t'); var bottom = isVisible('b'); var dir = '';
		if( !top && bottom && elevatorDownLimit > (elevatorDiv.offsetTop+elevatorDiv.offsetHeight) ) { dir = 'd'; }
		else if( !bottom && top ) { dir = 'u'; }
		else if( !bottom && !top && elevatorUpLimit < (elevatorDiv.offsetTop-20) ) { elevatorDiv.style.top = sY+'px'; dir = '';  }
		if( dir ) { animateElevator(dir,(elevatorUpLimit + sY)); }
	}
}
//Slut på Funktioner för elevator

//Start funktionalitet för Stenstan toppbanner
var a_stenstanAds = new Array();
var stenstanImages = new Array();
var stenstanPos = 0;
var stenstanImgPos = 0;
var stenstanTest = 0;
function stenstanAd(filename,company_id,parent_id,num) {
	this.company_id = company_id;
	this.filename = filename;
	this.filepath = 'http://2.st.nu/webdisplay/ads/55/'+this.company_id+'/ad/'+filename;
}
function getStenstanAds(mainNode) {
	var jsonObj = new JSONscriptRequest('http://2.st.nu/stenstan/index.php?method=loop');
	jsonObj.buildScriptTag();
	jsonObj.addScriptTag();
}
function initStenstanAds(arr) {
	if( arr ) {
		for(var i=0, ln=arr.length; i<ln; i++) { a_stenstanAds[a_stenstanAds.length] = new stenstanAd(arr[i].filename,arr[i].company_id,'',i); }
		if( a_stenstanAds.length ) { stenstanLoop('init'); }
	}
}
function modStenstan() {
	var a_u = window.location.href.split('stenstanUrl'); var s = a_u[a_u.length-1]; s = s.substr(1,s.length);
	var sp=document.getElementById('stenstanIframe'); if(sp) { sp.src=s; }
}
function setStenstanExpo(filename) {
	var jsonObj = new JSONscriptRequest('http://2.st.nu/stenstan/index.php?method=expo&filename='+filename);
	jsonObj.buildScriptTag(); jsonObj.addScriptTag();
}
function stenstanLoop(m)
{	
	var sleep = 4000;
	if( m != 'init' && stenstanImgPos != 2 ) { sleep = 500; }
	var path = 'http://2.st.nu/stenstan/index.php?method=click&filename=';
	if( m=='init' || !m && isScrolledIntoView(document.getElementById('stenstanTop')) )
	{
		//IE6 Fix
		var tp = document.getElementById('adTop');
		if( tp.getElementsByTagName('div')[0].className && tp.getElementsByTagName('div')[0].className == 'advertising' ) { tp.getElementsByTagName('div')[0].className = ''; }
		
		var numAds = 1; var n,a;
		var filenames = '';
		
		if( stenstanTest ) {
			if( document.getElementById('stenstanTest') ) { var t = document.getElementById('stenstanTest'); }
			else
			{
				var t = document.createElement('div'); t.id='stenstanTest'; ts = t.style; ts.position='absolute';
				ts.top='200px'; ts.left='1400px'; ts.zIndex = 100; document.body.appendChild(t);
			}
			t.innerHTML += (m=='init') ? ' init ' : ' loop ';
		}
		
		if( m == 'init' )
		{
			var a,a0,a1,a2,sleep;
			numAds = 3;
			for(var i=0;i<3;i++) { eval("a"+i+"=document.getElementById('stenstan"+i+"');"); }
		}
		else { a = document.getElementById('stenstan'+stenstanImgPos); n = document.getElementById('stenImg'+stenstanImgPos); }
		
		if( (!m && a ) || (m=='init' && a0 && a1 && a2 ) )
		{
			for(var i=0;i<numAds;i++){
			  eval("a"+((!m)?"":stenstanImgPos)+".style.backgroundImage='url("+a_stenstanAds[stenstanPos].filepath+")'; a"+((!m)?"":stenstanImgPos)+".href=path+'"+a_stenstanAds[stenstanPos].filename+"'; filenames+='"+a_stenstanAds[stenstanPos].filename+",'; if((stenstanPos+1)<a_stenstanAds.length){stenstanPos++;} else{sleep=14000;stenstanPos=0;}stenstanImgPos=(stenstanImgPos==2)?0:(stenstanImgPos+1);");																						
			}
			
			if(filenames) { filenames = filenames.substr(0,filenames.length-1); /*setStenstanExpo(filenames);*/ }
		}
	}
	setTimeout(stenstanLoop,sleep);
}
//Slut på funktionalitet för Stenstan toppbanner

//Extra funktionalitet för modalfönstret
if(typeof ModalWindow != 'undefined'){
    ModalWindow.time = {
        delay : 210, // how long to show loader before quiting
        durationShrink : 0.8, // how long the window shrink time is
        // overlay fade in and out
        durationOverlay : 0.3, 
        fpsOverlay : 20,
        // loader fade in and out
        durationLoader : 0.8, 
        fpsLoader : 20
    }
}

//JSON-funktionalitet
JSONscriptRequest.scriptCounter = 1;
function JSONscriptRequest(fullUrl) {
    this.fullUrl = fullUrl; 
    this.noCacheIE = '&noCacheIE=' + (new Date()).getTime();
    this.headLoc = document.getElementsByTagName("head").item(0);
    this.scriptId = 'YJscriptId' + JSONscriptRequest.scriptCounter++;
}

JSONscriptRequest.prototype.buildScriptTag = function () {
    this.scriptObj = document.createElement("script");
    this.scriptObj.setAttribute("type", "text/javascript");
    this.scriptObj.setAttribute("src", this.fullUrl + this.noCacheIE);
    this.scriptObj.setAttribute("id", this.scriptId);
}
JSONscriptRequest.prototype.removeScriptTag = function () { this.headLoc.removeChild(this.scriptObj);   }
JSONscriptRequest.prototype.addScriptTag = function () { this.headLoc.appendChild(this.scriptObj); }

//Faux.js (jämna ut kolumner som ligger jämsides med vitt så de ser lika höga ut) 
var scanColumns = { 
  init: function() { 
	if(this.exists()) this.install();
  },
  exists: function() { 
    return $$('div.pageBlockContainer').length > 0;
  },
  install: function(attempt) { 
	if ($$('div.pageBlockContainer').length < 1) {
      attempt = attempt ? attempt + 1 : 1;
      if (attempt < 10) window.setTimeout(this.install, 100, attempt);
      return;
    } 
	$$('div.pageBlockContainer').each(function(container) {
		var arr = container.className.split(" ");
		for(var i=0, ln=arr.length; i<ln; i++) { if( arr[i].match(/[0-9]/gi) ) { arr[i] = "faux"+arr[i]; break; } }
		container.className = arr.join(" ");
	});
  }
}

//Bloguser.js
var a_blogs = new Array();
var a_blogPosts = new Array();
function blog(ob,optString) {
	this.makeDiv = function(optString) {
		var container = document.createElement('div');
		for(var i=0, ln=this.blogPosts.length; i<ln; i++) { container.appendChild(this.blogPosts[i].makePost(optString)); }
		makeBlogTeaserDiv(container,this.parentId);
	}
	this.dbId = ob.dbId;
	this.blogPosts = Array();
	this.alias = ob.alias;
	this.parentId = ob.parentId;
	for(var i=0, ln=ob.blogPosts.length; i<ln; i++) { this.blogPosts[i] = new blogPost(ob.blogPosts[i]); }
	this.makeDiv(optString);
}
function blogPost(ob) {
	this.url = ob.url;
	if( !ob.topic.match(/[a-z0-9]/g) ) { ob.topic = ob.topic.toLowerCase(); if( ob.topic[0] ) { ob.topic[0] = ob.topic[0].toUpperCase(); } }
	this.topic = ob.topic;
	this.posted = ob.posted;
	this.alias = ob.alias;
	this.authorId = ob.authorId;
	this.authorName = ob.authorName;
	this.makePost = function(optString) {
		var container = document.createElement('div');
		if( this.alias == 'gomorron' ) {
			var datum = this.posted.split(" ");
			container.innerHTML = '<a class="blogLink" href="http://blog.st.nu/gomorron" target="_blank" onfocus="this.blur()"><b>Läs Gomorron-bloggen:</b> '+datum[0]+' - '+this.topic+'</a>';
		}
		else if( !this.alias.match(/tags/gi) ) {
			container.className = 'row';
			var spanDiv = document.createElement('span');
			spanDiv.className = 'articleDate';
			spanDiv.appendChild(document.createTextNode(this.posted));
			var linkDiv = document.createElement('div');
			linkDiv.className = 'linkDiv';
			var aLink = document.createElement('a');
			if( this.alias.match(/treamigos|osbloggen/) )
			{
				var pre = '';
				if( window.location.href.match(/st\.nu/gi) ) { pre = 'http://st.nu/sport/treamigos'; }
				else if( window.location.href.match(/op\.se/gi) ) { pre = 'http://st.nu/sport/treamigos'; }
				else if( window.location.href.match(/allehanda\.nu/gi) ) { pre = 'http://allehanda.se/sport/os/treamigos'; }
				
				if( pre ) { aLink.href = pre+'/?blogUrl='+this.url; }
				else { aLink.href = this.url; }
			}
			else aLink.href = this.url;
			aLink.target = '_blank';
			aLink.innerHTML = this.topic;
			var authorDiv;
			if( this.alias && optString.match(/blogName/g) && !optString.match(/!blogName/g) ) {
				authorDiv = document.createElement('i');
				authorDiv.className = 'author';
				authorDiv.innerHTML += '&nbsp;- '+makeReadable(this.alias.replace(/\//gi,""))+'';
			}
			if( this.authorName && optString.match(/authorName/g) ) {
				if( !authorDiv ){ authorDiv = document.createElement('i'); authorDiv.className = 'author'; }
				var aname = this.authorName.replace(/\//gi,"");
				authorDiv.innerHTML += (optString.match(/blogName/g) && !optString.match(/!blogName/g)) ? ' ('+aname+')' : '&nbsp;- '+aname;
			}
			
			var clearer = document.createElement('div');
			clearer.className = 'clearer';
			linkDiv.appendChild(aLink);
			if( authorDiv ) linkDiv.appendChild(authorDiv);
			container.appendChild(spanDiv);
			container.appendChild(linkDiv);
			container.appendChild(clearer);
		}
		return container;
	}
}
function getBlog(alias,numPosts,insertionId,optString) {
	if( alias.length > 0 && numPosts > 0 && document.getElementById(insertionId) ) {
		var url = "";
		if( alias == "senaste" ) { url = 'http://blog.st.nu/polopolyGetLatest.php?'; }
		else { url = 'http://blog.st.nu/polopolyGetBlog.php?'; url += 'alias='+alias; }
		url += '&numPosts='+numPosts;
		url += '&parentId='+insertionId;
		url += '&optString='+optString;
		var jsonObj = new JSONscriptRequest(url);
		jsonObj.buildScriptTag();
		jsonObj.addScriptTag();
	}
}
function makeBloggerTeaser(arr,optString)  { if( arr ) { for(var i=0, ln=arr.length; i<ln; i++) { a_blogs[i] = new blog(arr[i],optString); } } }
function makeBlogTeaser(arr,parentId,optString) {
	if( arr && parentId ) {
		for(var i=0, ln=arr.length; i<ln; i++) { a_blogPosts[i] = new blogPost(arr[i]); }
		var container = document.createElement('div');
		for(var i=0, ln=arr.length; i<ln; i++) {
			if( !optString.match(/blogName/g) ) { optString += ',blogName'; }
			container.appendChild(a_blogPosts[i].makePost(optString));
		}
		makeBlogTeaserDiv(container,parentId);
	}
}
function makeBlogTeaserDiv(postsDiv,parentId) {
	if( parentId ) {
		var container = document.createElement('div');
		container.className = "articleTeaser";
		container.appendChild(postsDiv);
		var parent = document.getElementById(parentId).parentNode;
		parent.insertBefore(container,document.getElementById(parentId).nextSibling);
		parent.removeChild(document.getElementById(parentId));
	}
}

function makeReadable(mini) {
	switch( mini ) {
		case "nasti": return "Nu &auml;r skrivaren trasig igen";
		case "ledarbloggen": return "Ledarbloggen";
		case "fridas": return "Fridas blogg";
		case "tikare": return "Tikar-bloggen";
		case "maitraiders": return "Maitraiders";
		case "niccis": return "Nicola Stewart";
		case "korslaget": return "K&ouml;rslaget";
		case "kennedy": return "Kennedy Katende";
		case "vaningochvilla": return "V&aring;ning &amp; Villa";
		case "gomorron": return "Gomorron-bloggen";
		case "treamigos":
		case "osbloggen": return "Tre Amigos";
		case "seriebloggen":
		case "facit": return "Facit";
		case "15": return "15-bloggen";
		case "gatufestbloggen": return "Gatufestbloggen";
		case "unga": return "Unga-bloggen";
		case "annaholmlund": return "Anna Holmlund";
		case "sportbloggen": return "Sportbloggen";
		case "dannidaniela": return "Dannidaniela";
		case "gardenfordummies": return "Garden For Dummies";
		case "drakarochdemoner": return "Drakar &amp; demoner";
		case "utanbil": return "Vi som tar bussen";
		case "bloggboken": return "Bloggboken";
		case "valbloggen": return "Valbloggen";
		case "yranbloggen": return "Yranbloggen";
		case "studentbloggen": return "Studentbloggen";
		case "bike4cambodia": return "bike4cambodia";
		case "stbild": return "Bildredaktionen p&aring; ST";
		default: return mini;
	}
}

// Funktionalitet för Display-annons-projekten

function getParentNode(n,cn)
{
	var testObj = n;
    eval("while( !(testObj.className && testObj.className.match(/"+n+"/g)) ) { testObj = testObj.parentNode; }\n");
	return testObj;	
}

var a_displayProjects = new Array();

function displayProject(name,title,projectUrl,adsUrl,parentId,gs,regExpo,adWidth,adHeight,a_heights)
{
	this.name = name;
	title = unescape(title); this.title = title.replace(/\+/gi,' ');
	this.ads = new Array();
	this.images = new Array();
	this.globalShow = (gs) ? gs : 4000;
	this.regExpo = (regExpo == 'yes') ? 1 : 0;
	this.globalPos = 0;
	this.adWidth = adWidth;
	this.adHeight = adHeight;
	this.mainHeight = 0;
	for(var i=0; i<a_heights.length; i++) { this.mainHeight = this.mainHeight + parseInt(a_heights[i]); }
	this.mainHeight = this.mainHeight + parseInt(adHeight);
	this.parentId = parentId;
	this.url = projectUrl;
	this.adsUrl = adsUrl;
	this.heights = a_heights;
}

function setupDisplayLinks(uberDiv,project,filename)
{
	var proj = a_displayProjects[project];
	var arr = uberDiv.getElementsByTagName('a');
	var url = proj.url+'?method=click&filename='+filename;
	var hpos = 0;
	
	for(var i=0, ln=arr.length; i<ln; i++)
	{
		if(arr[i].className && arr[i].className=='specialLink')
		{
			var img = document.createElement('img');
			img.width = proj.adWidth;
			img.style.height = proj.heights[hpos]+'px';
			img.src = 'http://st.nu/misc/images/transpixel.gif';
			img.border = 0;
			arr[i].href = url;
			arr[i].target = '_blank';
			arr[i].title = proj.title;
			arr[i].appendChild(img);
			hpos++;
		}
	}	
}

function editDisplayLinks(mainDiv,url)
{
	var arr = mainDiv.getElementsByTagName('a');
	for(var i=0, ln=arr.length; i<ln; i++) { if(arr[i].className && arr[i].className=='specialLink'){ arr[i].href = url; } }	
}

function displayAd(filename,project,num)
{
	this.makeDom = function(num)
	{
		var proj = a_displayProjects[this.project];
		var projectUrl = proj.url;
		var divNode = document.createElement('div');
		var imgNode = document.createElement('img');
		imgNode.border = 0;
		var aNode = document.createElement('a');
		aNode.href = this.url;
		aNode.target = '_blank';
		imgNode.src = proj.adsUrl+this.filename;
		imgNode.width = proj.adWidth; imgNode.height = proj.adHeight;
		
		if( document.getElementById(proj.parentId) )
		{
			var parent = document.getElementById(proj.parentId);
			var mainDiv = parent.parentNode.parentNode;
			if( num==0 && mainDiv ) editDisplayLinks(mainDiv,this.url);
			if( num == 0 ) { parent.removeChild(parent.getElementsByTagName('a')[0]); }
			aNode.style.display = 'block';
			aNode.appendChild(imgNode);
			divNode.appendChild(aNode);
			parent.appendChild(divNode);
		}
	}
	
	this.project = project;
	this.filename = filename;
	this.url = a_displayProjects[project].url+'?method=click&filename='+this.filename;

	this.makeDom(num);
}

function getDisplayAds(mainNode,projectUrl)
{
	if( projectUrl && mainNode.id )
	{	
		var css = document.createElement('link');
		css.setAttribute('href',projectUrl+'/loop.css');
		css.setAttribute('rel','stylesheet');
		css.setAttribute('type','text/css');
		document.getElementsByTagName('head')[0].appendChild(css);
		
		var jsonObj = new JSONscriptRequest(projectUrl+'?method=loop&parent='+mainNode.id);
		jsonObj.buildScriptTag();
		jsonObj.addScriptTag();
	}
}

function initDisplayAds(arr,project,projectUrl,adsUrl,parentId,regExpo,speed,adWidth,adHeight,title,a_heights)
{
	if( document.getElementById(parentId) )
	{
		a_displayProjects[project] = new displayProject(project,title,projectUrl,adsUrl,parentId,speed,regExpo,adWidth,adHeight,a_heights);
		var mainNode = document.getElementById(parentId);
		mainNode.style.width  = adWidth+"px";
		mainNode.style.height = adHeight+"px";
		mainNode.style.overflow = 'hidden';
		mainNode.getElementsByTagName('a')[0].href = projectUrl;
		
		var proj = a_displayProjects[project];
		
		if( arr ) {
			for(var i=0, ln=arr.length; i<ln; i++) { proj.ads[i] = new displayAd(arr[i].filename,project,i); }
			if( proj.ads.length && document.getElementById(parentId) ) { initLoop(project); }
		}
	}
}

function setDisplayAdExpo(filename,project)
{	
	if( a_displayProjects[project].url )
	{
		var jsonObj = new JSONscriptRequest(a_displayProjects[project].url+'?method=expo&filename='+filename);
		jsonObj.buildScriptTag();
		jsonObj.addScriptTag();
	}
}

function setupDislayAd(proj,uberPar)
{
	if( uberPar.getElementsByTagName('div') )
	{
		var box = uberPar.getElementsByTagName('div')[0];
		box.className = 'displayCompany '+proj.name;
		box.style.height = uberPar.style.height = proj.mainHeight+'px';
	}
}

function initLoop(project)
{
	if( project && a_displayProjects[project] )
	{
		var proj = a_displayProjects[project];
		var par = document.getElementById(proj.parentId)
		
		var uberPar = getParentNode(par,'loaderBkg');
		if( uberPar.className && uberPar.className.match(/loaderBkg/g) ) { uberPar.className = uberPar.className.replace(/loaderBkg/g,''); }	
		if( uberPar ) setupDisplayLinks(uberPar,project,proj.ads[0].filename);
		
		setupDislayAd(proj,uberPar);
		
		if( isScrolledIntoView(par) && proj.regExpo ) { setDisplayAdExpo(proj.ads[proj.globalPos].filename,proj.name); }
		
		var css2 = document.createElement('link');
		css2.setAttribute('href',proj.url+'loop2.css');
		css2.setAttribute('rel','stylesheet');
		css2.setAttribute('type','text/css');
		document.getElementsByTagName('head')[0].appendChild(css2);
		
		proj.images = par.getElementsByTagName('img');
		for(i=1, ln=proj.images.length; i<ln; i++) { proj.images[i].xOpacity = 0; }
		proj.images[0].style.display = 'block';
		proj.images[0].xOpacity = .99;
		setTimeout("so_xfade('"+project+"')",proj.globalShow);
	}
}

function so_xfade(project)
{
	if( project && a_displayProjects[project] )
	{
		function setOpacity(obj) {
			if( obj.xOpacity > .99 ) { obj.xOpacity = .99; return; }
			obj.style.opacity = obj.xOpacity;
			obj.style.MozOpacity = obj.xOpacity;
			obj.style.filter = 'alpha(opacity=' + (obj.xOpacity*100) + ')';
		}
		
		var proj = a_displayProjects[project];
		var cOpacity = proj.images[proj.globalPos].xOpacity;
		var nIndex = (proj.images[proj.globalPos+1]) ? (proj.globalPos+1) : 0;
		var nOpacity = proj.images[nIndex].xOpacity;
		cOpacity -= .05;
		nOpacity += .05;
		
		proj.images[nIndex].style.display = 'block';
		proj.images[proj.globalPos].xOpacity = cOpacity;
		proj.images[nIndex].xOpacity = nOpacity;
		setOpacity(proj.images[proj.globalPos]);
		setOpacity(proj.images[nIndex]);
		if( cOpacity <= 0 )
		{	
			var url = (proj.ads[proj.globalPos+1]) ?
			proj.ads[proj.globalPos+1].url : proj.ads[0].url;
			
			//För att ändra samtliga länkar i main-diven så de reggar klick på rätt annons inuti
			if( document.getElementById(proj.parentId) ) { editDisplayLinks(getParentNode(document.getElementById(proj.parentId)),url); }
			
			if( proj.regExpo && isScrolledIntoView(document.getElementById(proj.parentId)) )
			{
				setDisplayAdExpo(proj.ads[proj.globalPos].filename,proj.name);
			}
			proj.images[proj.globalPos].style.display = 'none';
			proj.globalPos = nIndex;
			setTimeout("so_xfade('"+project+"')",proj.globalShow);
		}
		else { setTimeout("so_xfade('"+project+"')",50); }

	}
}
