﻿
/* GLOBAL VARIABLES
----------------------------------------------------*/

var arrObjHolder=new Array();
var fadeTimer=null;
var menuTimer=null;
var rebuildTimer=null;
var previewTimer=null;
var subMenuParent=null;
var sortTableIndex=0;
var Language = (location.href.match('/sv/') != null) ? 'sv' : 'en';
var isIE6 = false/*@cc_on || @_jscript_version < 5.7@*/;

/* EVENTHANDLER FOR DOMONLOAD
----------------------------------------------------*/
var onPageLoad = function() {
	//##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##

	initAjaxMenuCallback();
	initMenuStructureBackup();
	initModules();
	initThemeboxes();
	initLinkPreviews();
	initSwmWorldwide();
	initEmail();
	initRemoveFlashBorder();
	initGraphBoxToggle();
	initCssSelectorsSupport();
	initPagingTables();
	initImageCaptions();
	initTopImageSlideshow();
	initIframeHandler();
	initLabFunctions();
	initModalPopups();
	initVCard();
	loadTooltips();

	MEDIALIBRARY.Init();
	TABBOX.Init();
	POPPER.Init();
	PROMO.Init();

	//##>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>##
};
/* ON DOM LOAD
----------------------------------------------------*/
var onDOMload = function() { if (arguments.callee.done) return; arguments.callee.done = true; if (_timer) clearInterval(_timer); onPageLoad() };
/*@cc_on
@if(@_win32 || @_win64)if (document.getElementById) { document.write("<script id=\"ieScriptLoad\" defer src=\"//:\"><\/script>"); document.getElementById("ieScriptLoad").onreadystatechange = function() { if (this.readyState == "complete") { onDOMload() } } } @end@*/
if (document.addEventListener) { document.addEventListener('DOMContentLoaded', onDOMload, false) }; if (/KHTML|WebKit|iCab/i.test(navigator.userAgent)) { var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { onDOMload() } }, 10) } window.onload = onDOMload;
var $=function(elm){return document.getElementById(elm);}
var initRemoveFlashBorder=function(){var a=document.getElementsByTagName('object');if(!a)return;for(var i=0,n=a.length;i<n;i++){a[i].outerHTML=a[i].outerHTML}};
var getElementsByClassName=function(a,b,c){var d=(b=='*'&&a.all)?a.all:a.getElementsByTagName(b),arrReturnElements=new Array();c=c.replace(/\-/g,'\\-');var e=new RegExp('(^|\\s)'+c+'(\\s|$)'),oElement=null;for(var i=0,n=d.length;i<n;i++){oElement=d[i];if(e.test(oElement.className))arrReturnElements.push(oElement)};return(arrReturnElements)};
function getElementsByAttribute(a,b,c,d){var e=(b=='*'&&a.all)?a.all:a.getElementsByTagName(b);var f=new Array(),g=(typeof d!='undefined')?new RegExp("(^|\\s)"+d+"(\\s|$)"):null,h,j;for(var i=0,n=e.length;i<n;i++){h=e[i];j=h.getAttribute&&h.getAttribute(c);if(typeof j=='string'&&j.length>0){if(typeof d=='undefined'||(g&&g.test(j))){f.push(h)}}}return f}
var addEvent=function(obj,type,fn){if(obj.addEventListener){obj.addEventListener(type,fn,false);EventCache.add(obj,type,fn)}else if(obj.attachEvent){obj['e'+type+fn]=fn;obj[type+fn]=function(){obj['e'+type+fn](window.event)};obj.attachEvent('on'+type,obj[type+fn]);EventCache.add(obj,type,fn);}else{obj['on'+type]=obj['e'+type+fn]}}
var EventCache=function(){var listEvents=[];return{listEvents: listEvents,add: function(node,sEventName,fHandler){listEvents.push(arguments)},flush: function(){var i,item;for(i=listEvents.length - 1; i >= 0; i=i - 1){item=listEvents[i];if(item[0].removeEventListener){item[0].removeEventListener(item[1],item[2],item[3])}if(item[1].substring(0,2) != 'on'){item[1]='on'+item[1]};if(item[0].detachEvent){item[0].detachEvent(item[1],item[2])};item[0][item[1]]=null}}}}();
var removeEvent=function(obj,type,fn){if(obj.removeEventListener){obj.removeEventListener(type,fn,false)}else if(obj.detachEvent){obj.detachEvent('on'+type,obj[type+fn]);obj[type+fn]=null;obj['e'+type+fn]=null}}
addEvent(window,'unload',EventCache.flush);
var initModules = function() {
	var a = getElementsByClassName(document, 'div', 'module');
	if (!a) return;
	for (var i = 0, n = a.length; i < n; i++) {
		var b = a[i];
		if (!b) return;
		var c = b.getElementsByTagName('h3')[0], moduleTrigger = b.getElementsByTagName('span')[0], moduleContent = b.getElementsByTagName('div')[0];
		moduleContent.id = Guid();
		if (i == 0) {
			moduleContent.className = moduleContent.className + ' block';
		} else {
			moduleContent.style.display = 'none';
			c.className = c.className + ' collapsed'
		}
		addEvent(moduleTrigger, 'mouseover', toggleModules);
		addEvent(moduleTrigger, 'focus', toggleModules)
	}
};
var toggleModules=function(){this.style.cursor='pointer';var a=this.parentNode.parentNode;var b=getElementsByClassName(document,'div','module');if(!b)return;var c=a.getElementsByTagName('div')[0];for(var i=0,n=b.length;i<n;i++){var d=b[i];if(!d)return;if(d!==a){var e=d.getElementsByTagName('h3')[0];var f=d.getElementsByTagName('div')[0];e.className='collapsed';f.className='none'}}Slide.Open(c);a.getElementsByTagName('h3')[0].className=''};
var Slide={
	Open: function(obj){if(!obj) return;if(obj.className !== 'block'){Fade.setOpacity(obj,0);obj.className='block';Fade.In(obj.id,20)}},
	Close: function(obj){if(!obj) return;Fade.Out(obj.id,100)}
};
var Fade={
	In: function(uid,opacity){var obj=$(uid);if(!obj) return;if(obj.style.display=='none') obj.style.display='block';if(opacity <= 100){Fade.setOpacity(obj,opacity);opacity+= 20;fadeTimer=window.setTimeout('Fade.In("'+uid+'",'+opacity+')',40);}else{Fade.setOpacity(obj,100);window.clearTimeout(fadeTimer)}},
	Out: function(uid,opacity){var obj=$(uid);if(!obj) return;if(opacity >= 5){Fade.setOpacity(obj,opacity);opacity -= 20;fadeTimer=window.setTimeout('Fade.Out("'+uid+'",'+opacity+')',2)}else{Fade.setOpacity(obj,0);window.clearTimeout(fadeTimer)}},
	setOpacity: function(obj,opacity){if(!obj) return;obj.style.filter='alpha(style=0,opacity:'+opacity+')';obj.style.KHTMLOpacity=(opacity/100);obj.style.MozOpacity=(opacity/100);obj.style.opacity=(opacity/100)}};
var initThemeboxes=function(){var a=getElementsByClassName(document,'div','themebox');var n=a.length;if(!$('theme-navigator')&&n<1)return;var b=document.createElement('ul');for(var i=0;i<n;i++){var c=a[i];if(!c||!c.childNodes)return;var d=c.getElementsByTagName('H2')[0];if(!d)return;var e=d.getElementsByTagName('SPAN')[0].innerHTML;var f=e.EscapeString();var g=document.createElement('LI');var h=document.createElement('A');var j=document.createAttribute('HREF');j.nodeValue='#'+f;h.setAttributeNode(j);var j=document.createAttribute('REL');j.nodeValue=f;h.setAttributeNode(j);var k=document.createTextNode(e);h.appendChild(k);g.appendChild(h);b.appendChild(g);h.href='#'+f;h.rel='#'+f;c.id=f;if(i==0){g.className='selected'}else{c.style.display='none'}addEvent(h,'click',(function(){openSelectedThemebox(this)}));d.style.display='none'}$('theme-navigator').appendChild(b);$('theme-navigator').style.display='block'};
String.prototype.EscapeString=function(){return(this.replace(new RegExp('([^a-zA-Z]+)','igm'),'').toLowerCase());};
String.prototype.EscapeString2=function(){return(this.replace(new RegExp('([^a-zA-Z0-9]+)','igm'),'').toLowerCase());};
var Guid=function(){var fakeGuid=''+new Date().getTime()*Math.ceil(Math.random()*100);fakeGuid=fakeGuid.substring(0,12);return fakeGuid};
var closeAllOpenThemeboxes=function(){var a=getElementsByClassName(document,'div','themebox');var n=a.length;for(var i=0;i<n;i++){var b=a[i];if(b)b.style.display='none'}if($('theme-navigator')){var c=$('theme-navigator').getElementsByTagName('LI');var n=a.length;for(var i=0;i<n;i++){var d=c[i];if(d)d.className=''}}};
var openSelectedThemebox=function(a){var b=a.getAttribute('rel');if(!b) b=a.href;if(!b)return;closeAllOpenThemeboxes();if(b.indexOf('#')!==-1){b=b.substring(b.lastIndexOf('#')+1)};var c=$(b);if(c){c.style.display='block';a.parentNode.className='selected'}};
var initAjaxMenuCallback=function(){if(!$('nav'))return;var a=$('nav').getElementsByTagName('a');var n=a.length;for(var i=0;i<n;i++){var b=a[i];if(!hasFunctionEvent(b,'mouseover'))addEvent(b,'mouseover',toggleMenu);if(!hasFunctionEvent(b,'mouseout'))addEvent(b,'mouseout',killMenuTimer);if(!hasFunctionEvent(b,'blur'))addEvent(b,'blur',killMenuTimer);if(!hasFunctionEvent(b,'focus'))addEvent(b,'focus',toggleMenu)}};
var toggleMenu=function(){if(this.parentNode.parentNode.tagName=='UL'){if(!this.parentNode.parentNode.id)subMenuParent=this.parentNode.parentNode};var a=this.id;menuTimer=window.setTimeout('OpenSubMenues("'+a+'")',250)};
var rebuildMenu=function(){
	var a=$('tmp-load-img');
	if(!a){a=document.createElement('IMG');
		a.id='tmp-load-img';
		a.src='/images/ani-load-small.gif';
		$('nav').appendChild(a)
	}else{
		a.style.display=''
	}
	//Fade.Out('nav',100);
	var navUls=$('nav').getElementsByTagName('UL');
	if(navUls[0])navUls[0].style.display='none';
	if(navUls[1])navUls[1].style.display='none';
	if(navUls[2])navUls[2].style.display='none';
	if(navUls[3])navUls[3].style.display='none';
	if(navUls[4])navUls[4].style.display='none';
	fadeTimer=window.setTimeout('$("tmp-load-img").style.display="none";$("nav").innerHTML=arrObjHolder["MenuBackup"];initAjaxMenuCallback()',800);
};
var initMenuStructureBackup=function(){if(!$('nav')) return;arrObjHolder['MenuBackup']=$('nav').innerHTML};
var OpenSubMenues=function(a){var b=$(a);if(!b)return;CloseSubMenues(b);var c=b.getAttribute('lang');if(!c)return;var d=a.substring(3),e=c.toUpperCase();if(!d||!e)return;var f=$('cid'+d);clearTimeout(rebuildTimer);if(!f){SwedishMatch.Services.MenuService.GetMenuBlock(d,e,HanteraReturVarde)}else{f.style.display='block';f.style.visibility='visible'}};
var CloseSubMenues=function(a){var b=a.parentNode.parentNode;if(!b)return;var c=b.getElementsByTagName('UL');if(!c)return;for(var x=0,n=c.length;x<n;x++){var d=c[x];if(d||b.style.display!=='block')d.style.display='none';d.style.visibility='hidden'}};
var killMenuTimer=function(){clearTimeout(menuTimer);clearTimeout(rebuildTimer);rebuildTimer=window.setTimeout('rebuildMenu()',2000)};
var HanteraReturVarde=function(a){var b=document.createElement('div');b.className='subnav';b.innerHTML=a;if(!b.getElementsByTagName('li')[0])return;var c=b.getElementsByTagName('ul')[0];var d=c.id;var f='pid'+d.substring(3);var e=$(f).parentNode;e.appendChild(c);initAjaxMenuCallback()};
var initLinkPreviews=function(){var a=Cookie.Read('swmlinkpreview');if(a)return;var b=getElementsByClassName(document,'a','preview');for(i=0,n=b.length;i<n;i++){var c=b[i];if(!hasFunctionEvent(c,'mouseover'))addEvent(c,'mouseover',linkPreview.Display)}}
var linkPreview={Display:function(a){var b=this;var c=b.getAttribute('href');var d=b.innerHTML;var e=c.EscapeString();var f=$(e);if(!f){var f=document.createElement('div');f.className='linkpreview';var g=document.createAttribute('id');g.nodeValue=e;f.setAttributeNode(g);var h=document.createElement('p');h.className='link';var i=document.createElement('a');var j=document.createAttribute('href');j.nodeValue=c;i.setAttributeNode(j);var k=c.replace('http://','');if(k.length>28){var l=k.substring(0,13);l+='...'+k.substring(k.length-13);k=l};i.innerHTML=k;var m=document.createElement('p');m.className='img';var n=document.createElement('a');var o=document.createAttribute('href');o.nodeValue=c;n.setAttributeNode(o);var p=document.createElement('img');var q=document.createAttribute('src');if(c.substring(0,7)=='http://'){c=c.replace('http://','')};imgAnchorUrl=c.EscapeString();q.nodeValue='/data/LinkPreview/'+imgAnchorUrl+'.jpg';var r=document.createAttribute('alt');var s=null;if(Language=='sv'){s='Förhandsgranskning av '}else{s='Preview of '};r.nodeValue=s+c;p.setAttributeNode(q);p.setAttributeNode(r);var t=document.createElement('p');t.className='disable';var u=document.createElement('a');var v=document.createAttribute('href');v.nodeValue='javascript:void(0);';u.setAttributeNode(v);addEvent(u,'click',setLinkPreviewCookie);var w=null;if(Language=='sv'){w='Stäng av denna funktion'}else{w='Disable this function'};u.innerHTML=w;h.appendChild(i);n.appendChild(p);m.appendChild(n);t.appendChild(u);f.appendChild(h);f.appendChild(m);f.appendChild(t);document.getElementsByTagName('BODY')[0].appendChild(f)};f.style.position='absolute';f.style.display='block';var x=0,y=0;if(document.all){x=a.clientX+document.body.scrollLeft;y=a.clientY+document.documentElement.scrollTop}else{x=a.pageX;y=a.pageY};f.style.top=(y+5)+'px';f.style.left=(x-55)+'px';if( (getElmPosition.GetY(f)+f.clientHeight) > (document.documentElement.scrollTop+getViewport.Height()) ){f.style.top=(y-234)+'px';f.className='linkpreview reversed-linkpreview'}else{f.className='linkpreview'};b.onmouseout=function(){previewTimer=window.setTimeout(linkPreview.Close,200)};f.onmouseout=function(){previewTimer=window.setTimeout(linkPreview.Close,200)};f.onmouseover=function(){window.clearTimeout(previewTimer)}},Close:function(){var a=getElementsByClassName(document,'div','linkpreview');for(i=0,n=a.length;i<n;i++)a[i].style.display='none'}};
var setLinkPreviewCookie=function(){Cookie.Create('swmlinkpreview','1',365);window.location.reload();}
var getElmPosition={
	GetX : function(obj){var xy=0;if(obj.offsetParent){while(1){xy+= obj.offsetLeft;if(!obj.offsetParent) break;obj=obj.offsetParent}}else if(obj.x){xy+= obj.x} return xy},
	GetY : function(obj){var xy=0;if(obj.offsetParent){while(1){xy+= obj.offsetTop;if(!obj.offsetParent) break;obj=obj.offsetParent}}else if(obj.y){xy+= obj.y}return xy}
};
var hasFunctionEvent=function(obj,eventhandler){if(!obj.attributes) return false;for(var x=0, n=obj.attributes.length; x<n; x++){var strEvent='e'+eventhandler+'function';if(obj.attributes[x].nodeName.indexOf(strEvent)!=-1) return (obj.attributes[x].value?true:false)}};
var END_OF_INPUT=-1;
var reverseBase64Chars=new Array();
var base64Str;
var base64Count;
var initEmail = function() {
	var links = getElementsByClassName(document, 'a', 'email'); if (!links) return;
	var base64Chars = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/');
	for (var i = 0, n = base64Chars.length; i < n; i++) { reverseBase64Chars[base64Chars[i]] = i };
	for (var i = 0, n = links.length; i < n; i++) {
		var link = links[i];
		if (link) {
			if (!link.title) return;
			email = decodeBase64(link.title);
			email2 = email.replace(/ /g, '');
			link.href = 'mailto:' + email2;
			link.title = email2;
			link.innerHTML = email;
		}
	}
}
function setBase64Str(str){base64Str=str;base64Count=0}
function readReverseBase64(){   
	if(!base64Str) return END_OF_INPUT;
	while(true){      
		if(base64Count >= base64Str.length) return END_OF_INPUT;
		var nextCharacter=base64Str.charAt(base64Count);
		base64Count++;
		if(reverseBase64Chars[nextCharacter]) return reverseBase64Chars[nextCharacter];
		if(nextCharacter=='A') return 0;
	}
	return END_OF_INPUT;
}
function ntos(n){
	n=n^9;
	n=n.toString(16);
	if(n.length==1) n='0'+n;
	n='%'+n;
	return unescape(n);
}
function decodeBase64(str){
	setBase64Str(str);
	var result='',inBuffer=new Array(4),done=false;
	while(!done && (inBuffer[0]=readReverseBase64()) != END_OF_INPUT && (inBuffer[1]=readReverseBase64()) != END_OF_INPUT){
		inBuffer[2]=readReverseBase64();
		inBuffer[3]=readReverseBase64();
		result+= ntos((((inBuffer[0] << 2) & 0xff)| inBuffer[1] >> 4));
		if(inBuffer[2] != END_OF_INPUT){
			result+=  ntos((((inBuffer[1] << 4) & 0xff)| inBuffer[2] >> 2));
			if(inBuffer[3] != END_OF_INPUT){result+=  ntos((((inBuffer[2] << 6) & 0xff) | inBuffer[3]))}
			else{done=true}
		}else{
			done=true;
		}
	}
	return result;
};
function get_cookie(cookie_name) {
    var results = document.cookie.match('(^|;) ?' + cookie_name + '=([^;]*)(;|$)');

    if (results)
        return (unescape(results[2]));
    else
        return null;
}
function addtofolder(obj, id, addtxt, removetxt) {
    var c = get_cookie("addtofolder");
    if (!c || ('|' + c + '|').indexOf('|' + id + '|') == -1) {
        if (!c) {
            c = id;
        } else {
            c = c + "|" + id;
        }
        obj.innerHTML = removetxt;
    }
    else {
        var cookieitems = c.split('|');
        var newc = null;
        for (var j = 0; j < cookieitems.length; j++) {
            if (cookieitems[j] != id) {
                if (!newc) {
                    newc = cookieitems[j];
                }
                else {
                    newc = newc + "|" + cookieitems[j];
                }
            }
        }
        c = newc;
        obj.innerHTML = addtxt;
    }

    if (!c) {
        c = "";
        document.getElementById('imagebankitems').innerHTML = 0;
    }
    else {
        document.getElementById('imagebankitems').innerHTML = c.split('|').length;
    }
    document.cookie = "addtofolder=" + escape(c) + '; path=/';
    return false;
}

function insertAfter(newElement,targetElement){var parent=targetElement.parentNode;if(parent.lastchild==targetElement){parent.appendChild(newElement)}else{parent.insertBefore(newElement,targetElement.nextSibling)}};
var CancelEvent=function(e){if(e.stopPropagation){e.stopPropagation();e.preventDefault()}else{e.cancelBubble=true;e.returnValue=false}};
var initGraphBoxToggle=function(){
	var graphBoxes=getElementsByClassName(document,'div','graph-boxes'),i=0,graphBox=null;if(!graphBoxes) return;
	for(i,n=graphBoxes.length; i<n; i++){
		graphBox=graphBoxes[i];
		var currBoxClass=graphBox.className;
		if(currBoxClass.indexOf('side-by-side')!==-1){
			graphBox.className='graph-box side-by-side';
			//if(i==1 || i % 3==0){graphBox.style.marginLeft='0';graphBox.style.clear='both'};	
		}else if(currBoxClass.indexOf('right-side')!==-1){graphBox.className='graph-box right-side'}
		else{graphBox.className='graph-box'};
		var graphBoxHeadlines=graphBox.getElementsByTagName('H3'),x=0,graphBoxHeadline=null;if(!graphBoxHeadlines) return;
		while(graphBoxHeadline=graphBoxHeadlines[x++]){
			graphBoxHeadline.setAttribute('title',graphBoxHeadline.childNodes[0].innerHTML);
			if(!hasFunctionEvent(graphBoxHeadline,'click')){addEvent(graphBoxHeadline,'click',toggleGraphBox)};
			if(x==2){graphBoxHeadline.className='selected'}else{graphBoxHeadline.parentNode.getElementsByTagName('DIV')[0].style.display='none'}
		}
	}
};
var toggleGraphBox=function(){var a=this.parentNode.parentNode.parentNode;if(!a)return;var b=a.getElementsByTagName('H3'),x=0,graphBoxHeadline=null;if(!b)return;while(graphBoxHeadline=b[x++]){graphBoxHeadline.className='';graphBoxHeadline.parentNode.getElementsByTagName('DIV')[0].style.display='none'};this.className='selected';this.parentNode.getElementsByTagName('DIV')[0].style.display='block'};
var initCssSelectorsSupport = function() {
	var a = getElementsByClassName(document, 'div', 'two-col'), i = 0, column = null;
	if (!a) return;
	while (column = a[i++]) {
		if (!column) return;
		if (i % 2 == 0) column.style.marginRight = '0';
		if (i == 3) column.style.clear = 'both'
	}
	var a = getElementsByClassName(document, 'div', 'three-col'), i = 0, column = null; if (!a) return; while (column = a[i++]) { if (!column) return; if (i % 3 == 0) column.style.marginRight = '0'; if (i % 4 == 0) column.style.clear = 'both' }
};
var oTable = null;
var initPagingTables = function() {
	var tables = getElementsByClassName(document, 'TABLE', 'paging-table');
	if (!isNaN(tables)) return;
	if (!oTable) {
		oTable = new Array();
	}
	for (var x = 0, n = tables.length; x < n; x++) { //## LOOP ALL PAGING TABLES
		var table = tables[x];
		if (table.getElementsByTagName('tr')[1].getElementsByTagName('td').length > 5) {
			table.id = 'pagingtable' + x + location.href.EscapeString2();
			if (sortTableIndex == 0) {
				sortTableIndex = parseInt(Cookie.Read(table.id));
				if (!sortTableIndex || sortTableIndex == 0) sortTableIndex = 1;
				if (isNaN(sortTableIndex)) sortTableIndex = 1;
			} else {
				FirstSortCol = sortTableIndex;
			}


			if (oTable[x]) {

				var tableParent = table.parentNode;
				if (tableParent.className != 'scrolltable') return;
				DOM.Remove(table);
				table = oTable[x];
				DOM.Add(table, tableParent);
				oTable[x] = table.cloneNode(true);

			} else {

				oTable[x] = table.cloneNode(true);

			}
			var rows = table.rows;
			for (var xx = 0, nn = rows.length; xx < nn; xx++) { //## LOOP ALL ROWS IN TABLE
				var row = rows[xx];
				var cells = row.cells;
				for (var xxx = 0, nnn = cells.length; xxx < nnn; xxx++) { //## LOOP ALL CELLS IN ROW
					var cell = cells[xxx];
					if (!cell) return;
					if (xxx == 0) {
						var cellContent = cell.innerHTML;
						var cellContentLength = cellContent.length
						var words = cellContent.split(' ');
						var wordsLength = words.length;
						if (wordsLength >= 10) {
							var out = '';
							for (var ii = 0, wordsLength = words.length; ii < wordsLength; ii++) {
								out += words[ii] + ' ';
								if (parseInt(ii + 1) % 6 == 0) {
									out += '<br />';
								}
							}
							cell.innerHTML = out;
						}
					}
					switch (xxx) {
						case 0: break;
						case parseInt(sortTableIndex): break;
						case parseInt(sortTableIndex + 1): break;
						case parseInt(sortTableIndex + 2): break;
						case parseInt(sortTableIndex + 3): break;
						default: cell.style.display = 'none'; break;
					}
				}
				if (row.cells[1].style.display == 'none') { insertAfter(createTableCell(xx, 'prev'), row.cells[0]) } else { insertAfter(createTableCell(xx, 'prev-fake'), row.cells[0]) };
				if (row.cells[nnn].style.display == 'none') { insertAfter(createTableCell(xx, 'next'), row.cells[nnn]) } else { insertAfter(createTableCell(xx, 'next-fake'), row.cells[nnn]) };
			}
			var currColgroup = table.getElementsByTagName('COLGROUP')[0];
			if (currColgroup) {
				var cols = currColgroup.getElementsByTagName('COL');
				var colLength = cols.length;
				for (var i = 0; i < colLength; i++) { var col = cols[i]; if (col) { col.setAttribute('width', '**'); } }
				if (cols[1]) { cols[1].width = '25' }
				if (cols[6]) { cols[6].width = '12' }
			}
		}
	}
};
var createTableCell = function(index, linkType) {
	var newCell = null;
	if (index == 0) {
		newCell = DOM.Create('TH','sort-paging ' + linkType);
		switch (linkType) {
			case 'prev': newCell.innerHTML = '<img src="/images/icons/sort-nav-prev.gif" alt=""/>'; addEvent(newCell.getElementsByTagName('IMG')[0], 'click', Paging.Prev); break;
			case 'prev-fake': newCell.innerHTML = '<img src="/images/icons/sort-nav-prev-fake.gif" alt=""/>'; break;
			case 'next': newCell.innerHTML = '<img src="/images/icons/sort-nav-next.gif" alt=""/>'; addEvent(newCell.getElementsByTagName('IMG')[0], 'click', Paging.Next); break;
			case 'next-fake': newCell.innerHTML = '<img src="/images/icons/sort-nav-next-fake.gif" alt=""/>'; break;
			default: newCell.innerHTML = '&nbsp;'; break;
		}
	} else {
		newCell = DOM.Create('TD');
		newCell.innerHTML = '&nbsp;';
	}
	return newCell;
}
var Paging = {
	Next: function() {
		var tableId = this.parentNode.parentNode.parentNode.parentNode.id;
		sortTableIndex++;
		Cookie.Create(tableId, sortTableIndex, 10);
		initPagingTables()
	},
	Prev: function() {
		var tableId = this.parentNode.parentNode.parentNode.parentNode.id;
		sortTableIndex--;
		Cookie.Create(tableId, sortTableIndex, 10);
		initPagingTables()
	}
};
var initLabFunctions = function() {

	var oPrint = getElementsByClassName($('tools'), 'LI', 'print')[0].getElementsByTagName('A')[0];
	if (oPrint) {
		addEvent(oPrint, 'click', PrintWindow);
	};

	var elms = getElementsByClassName(document, 'div', 'articles-bg-sep'), i = 0, elm = null;
	while (elm = elms[i++]) {
		if (!elm) return;

		var elmChildNodes = DOM.ChildNodes(elm);

		if (!elmChildNodes || elm.clientHeight == 0) continue;
		if (elmChildNodes.length < 2) {
			elmChildNodes[0].style.width = 'auto';
			continue;
		}
		elm.style.position = 'relative';
		var elmChildWidth = elm.getElementsByTagName('DIV')[0].clientWidth;
		var imgDivider = document.createElement('IMG');
		imgDivider.className = 'image-divider';
		imgDivider.src = '/images/divider-yellow.png';
		imgDivider.style.position = 'absolute';
		imgDivider.style.left = (elmChildWidth + 22) + 'px'; //imgDivider.style.left='49%';
		imgDivider.style.height = '14px';
		if (typeof document.body.style.maxHeight == 'undefined') {
			imgDivider.style.height = (elm.clientHeight) - 40 + 'px';
		} else {
			imgDivider.style.height = (elm.clientHeight) - 20 + 'px';
		}
		if (document.styleSheets) {
			if (document.styleSheets.length > 0) imgDivider.style.display = 'block';
			elm.appendChild(imgDivider);
		}
	}

	if (typeof document.body.style.maxHeight == 'undefined') {
		var elmList = [
		$('header').getElementsByTagName('IMG')[0],
		getElementsByClassName(document, 'IMG', 'image-divider')[0],
		''
		], strAlert = '';
		for (var i = 0, n = elmList.length; i < n; i++) {
			elm = elmList[i];
			if (elm) {
				var imageSrc = elm.src;
				if (imageSrc.indexOf('.png') !== -1) {
					elm.src = '/images/spacer.gif';
					elm.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imageSrc + "',sizingMethod='crop')"
				}
			}
		}
	}

};
var toggleHighlight = function() {
	this.style.backgroundColor = (this.style.backgroundColor == '') ? '#f0f0f0' : '';
	addEvent(this, 'mouseout', toggleHighlight);
};
var PrintWindow=function(e){CancelEvent(e);self.focus();window.print();};
var Cookie={
	Create: function(name,value,days){if(days){var date=new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires='; expires='+date.toGMTString()}else{var expires=''}document.cookie=name+'='+value+expires+'; path=/'},
	Read: function(name){var nameEQ=name+'=',ca=document.cookie.split(';');for(var i=0,n=ca.length;i<n;i++){var c=ca[i];while(c.charAt(0)==' ') c=c.substring(1,c.length);if(c.indexOf(nameEQ)==0) return c.substring(nameEQ.length,c.length)} return null},
	Remove: function(name){Cookie.Create(name,'',-1)}
};
var removeChildNodes=function(node){while(node.childNodes.length >= 1){node.removeChild(node.firstChild)}};
var initIframeHandler=function(e){
	var CisionWrapper=$('cision-wrapper');
	if(CisionWrapper){
		var currCisionIFrame=$('cision'); if(!currCisionIFrame) return;
		var currCisionIFrameSrc=currCisionIFrame.src;
		CisionWrapper.innerHTML='';
		var CisionIFrame=document.createElement('IFRAME');
		CisionIFrame.id='cision';CisionIFrame.src=currCisionIFrameSrc;CisionIFrame.width='590';
		CisionIFrame.height='400';CisionIFrame.frameBorder='0';CisionIFrame.allowTransparency='true';
		CisionWrapper.appendChild(CisionIFrame);
	}
	var iFrameWrapper=$('iframe-wrapper');
	if(iFrameWrapper){
		var iFrame=$('iframe'); if(!iFrame) return;
		var iFrameSrc=iFrame.src,iFrameId=iFrame.id;
		var iFrameDyn=document.createElement('IFRAME');
		iFrameDyn.id=iFrameId;iFrameDyn.src=iFrameSrc;iFrameDyn.width='590';iFrameDyn.height='1000';
		iFrameDyn.frameBorder='0';iFrameDyn.allowTransparency='true';iFrameWrapper.innerHTML='';
		iFrameWrapper.appendChild(iFrameDyn);
	}
};
var initModalPopups = function() {
var a = getElementsByAttribute($('content'), 'A', 'REL', 'modal'), i = 0, link = null;
    while (link = a[i++]) {
        if (link.href.indexOf('?') == -1) {
            link.href = link.href + '?modal=true';
        } else {
            link.href = link.href + '&modal=true';
        }
        addEvent(link, 'click', displayModalPopup)
    }
};
var displayModalPopup = function(e) {
	var d = null; if (e.srcElement) { d = e.srcElement } else { d = e.target };
	CancelEvent(e);
	var f = d.getAttribute('href');
	if (!f) f = d.href;
	if (!f) return;
	var g = f.EscapeString2();
	var h = $(g);
	if (h) {
		h.style.top = document.documentElement.scrollTop + (getViewport.Height() / 2) - 240 + 'px';
		h.style.left = document.body.scrollLeft + (getViewport.Width() / 2) - 320 + 'px';
		initModalBackPlate(g);
		h.style.display = 'block';
		addEvent(window, 'scroll', updateModal);
		addEvent(window, 'resize', updateModal);
		return
	}
	var i = null;
	if (typeof XMLHttpRequest != 'undefined') {
		i = new XMLHttpRequest()
	}
	if (!i) {
		try {
			i = new ActiveXObject("Msxml2.XMLHTTP")
		} catch (e) {
			try {
				i = new ActiveXObject("Microsoft.XMLHTTP")
			}
			catch (e) {
				i = null
			}
		}
	}
	if (i) {
		i.open('GET', f, true);
		i.onreadystatechange = function() {
			if (i.readyState == 4 && i.status == 200) {
				var a = i.responseText;
				var b = '<a href="javascript:void(0);" class="modal-close" title="';
				if (Language == 'en') {
					b += 'Close window'
				} else {
					b += 'Stäng fönster'
				}
				b += '"><img src="/images/btn-close-modal.png" alt="';
				if (Language == 'en') {
					b += 'Close window'
				} else {
					b += 'Stäng fönster'
				}
				b += '" /></a><div class="modal-content">' + a + '</div>';
				var c = document.createElement('DIV');
				c.id = g;
				c.className = 'modal';
				c.innerHTML = b;
				c.style.top = getScrollPos.Top() + (getViewport.Height() / 2) - 240 + 'px';
				c.style.left = getScrollPos.Left() + (getViewport.Width() / 2) - 320 + 'px';
				initModalBackPlate(g);
				c.style.display = 'block';
				document.getElementsByTagName('BODY')[0].appendChild(c);
				addEvent(c.getElementsByTagName('A')[0], 'click', closeModal);
				addEvent(window, 'scroll', updateModal);
				addEvent(window, 'resize', updateModal)
			}
		};
		i.send(null)
	}
};
var closeModal=function(){var a=getElementsByClassName(document,'DIV','modal'),i=0;modal=null;while(modal=a[i++]){if(modal.style.display=='block'){$('modal-plate').style.display='none';modal.style.display='none';break}}if($('ticker'))$('ticker').style.visibility='';return};
var initModalBackPlate=function(){var a=$('modal-plate');if(!a){a=document.createElement('DIV');a.id='modal-plate';a.className='modal-plate';a.style.background='#003060';a.style.position='absolute';a.style.top=0;a.style.width='100%';a.style.height=$('container').clientHeight+42+'px';Fade.setOpacity(a,70);document.getElementsByTagName('BODY')[0].appendChild(a)}else{a.style.display='block'}addEvent(a,'click',closeModal);if($('ticker'))$('ticker').style.visibility='hidden'};
var updateModal=function(){var a=getElementsByClassName(document,'DIV','modal'),i=0;modal=null;while(modal=a[i++]){if(modal.style.display=='block'){modal.style.top=getScrollPos.Top()+(getViewport.Height()/2)-240+'px';modal.style.left=getScrollPos.Left()+(getViewport.Width()/2)-320+'px';break}}return};
var getViewport={
	Height:function(){if(typeof window.innerHeight!='undefined'){return window.innerHeight}else if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientHeight!='undefined'&&document.documentElement.clientHeight){return document.documentElement.clientHeight}},
	Width:function(){if(typeof window.innerWidth!='undefined'){return window.innerWidth}else if(typeof document.documentElement!='undefined'&&typeof document.documentElement.clientWidth!='undefined'&&document.documentElement.clientWidth){return document.documentElement.clientWidth}}
};
var Scrollbars={
	Disable:function(){document.getElementsByTagName('html')[0].style.overflowX='hidden';document.getElementsByTagName('body')[0].style.overflowX='hidden';document.getElementsByTagName('html')[0].style.overflowY='hidden';document.getElementsByTagName('body')[0].style.overflowY='hidden'},
	Enable:function(){document.getElementsByTagName('html')[0].style.overflowX='';document.getElementsByTagName('body')[0].style.overflowX='';document.getElementsByTagName('html')[0].style.overflowY='';document.getElementsByTagName('body')[0].style.overflowY=''}
};
var getScrollPos={
	Top:function(){if(typeof window.pageYOffset != 'undefined'){return window.pageYOffset}else if(typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0){return document.documentElement.scrollTop}else if(typeof document.body.scrollTop != 'undefined'){return document.body.scrollTop}},
	Left:function(){if(typeof window.pageXOffset != 'undefined'){return window.pageXOffset}else if(typeof document.documentElement.scrollLeft != 'undefined' && document.documentElement.scrollLeft > 0){return document.documentElement.scrollLeft}else if(typeof document.body.scrollLeft != 'undefined'){return document.body.scrollLeft}}
};
var initImageCaptions=function(){
	var elms=getElementsByClassName($('article'),'SPAN','image-with-caption-left');
	for(var i=0, n=elms.length, elm=null; i<n; i++){elm=elms[i];if(elm){var image=elm.getElementsByTagName('IMG')[0];if(image){var imageWidth=image.clientWidth;if(imageWidth || imageWidth>0)elm.style.width=imageWidth+'px'}}}
	var elms=getElementsByClassName($('article'),'SPAN','image-with-caption-right');
	for(var i=0, n=elms.length, elm=null; i<n; i++){elm=elms[i];if(elm){var image=elm.getElementsByTagName('IMG')[0];if(image){var imageWidth=image.clientWidth;if(imageWidth || imageWidth>0)elm.style.width=imageWidth+'px'}}}
	var elms=getElementsByClassName($('article'),'SPAN','image-with-caption-left-top');
	for(var i=0, n=elms.length, elm=null; i<n; i++){elm=elms[i];if(elm){var image=elm.getElementsByTagName('IMG')[0];if(image){var imageWidth=image.clientWidth;if(imageWidth || imageWidth>0)elm.style.width=imageWidth+'px'}}}
	var elms=getElementsByClassName($('article'),'SPAN','image-with-caption-right-top');
	for(var i=0, n=elms.length, elm=null; i<n; i++){elm=elms[i];if(elm){var image=elm.getElementsByTagName('IMG')[0];if(image){var imageWidth=image.clientWidth;if(imageWidth || imageWidth>0)elm.style.width=imageWidth+'px'}}}
};

function is_all_ws(nod){return !(/[^\t\n\r ]/.test(nod.data))};
function is_ignorable(nod){return (nod.nodeType==8) || ((nod.nodeType == 3) && is_all_ws(nod))};
function node_before(sib){while((sib=sib.previousSibling)){if(!is_ignorable(sib)) return sib}return null};
function node_after(sib){while((sib=sib.nextSibling)){if(!is_ignorable(sib)) return sib}return null};
function last_child(par){var res=par.lastChild;while(res){if(!is_ignorable(res)) return res;res = res.previousSibling}return null};
function first_child(par){var res=par.firstChild;while(res){if(!is_ignorable(res)) return res;res = res.nextSibling}return null};
function data_of(txt){var data = txt.data;data=data.replace(/[\t\n\r ]+/g, ' ');if (data.charAt(0)==' ')data = data.substring(1, data.length);if (data.charAt(data.length - 1) == " ")data = data.substring(0, data.length - 1);return data};
function nextimg(a){
	n=a.nextSibling;
	var found=false;
	while(n!=null) {
		if(n.tagName=='IMG') {
			if(found) {
				n.style.display='block';
				return;
			} else if(n.style.display=='block' || n.className=='first-img') {
				n.style.display='none';
				n.className='';
				found=true;
			}
		}
		n=n.nextSibling;
	}
	n=a.nextSibling;
	while(n!=null) {
		if(n.tagName=='IMG') {
			n.style.display='block';
			return;
		}
		n=n.nextSibling;
	}
}
var initTopImageSlideshow=function(){
	var slideShow=$('image-slideshow-container');
	if(!slideShow) return;
	var images=slideShow.getElementsByTagName('IMG');
	arrObjHolder['slide-show-index']=0;
	arrObjHolder['slide-show-length']=images.length;
	for(var i=0, n=images.length, image=null; i<n; i++){
		image=images[i];
		if(i!==0){
			image.style.display='none';
		}
		image.id='slide'+i+Guid();
	}
	var strNext=(Language=='en')?'Next':'Nästa';
	var strPrev=(Language=='en')?'Previous':'Föregående';
	var strTitle=slideShow.title;
	var slideNav=document.createElement('DIV');
	slideNav.id='slide-show-nav';
	slideNav.innerHTML='<ul><li class="title">'+ strTitle +'</li><li><a href="javascript:void(0);" id="slide-show-nav-prev" title="'+ strPrev +'"><span>'+ strPrev +'</span></a></li><li><a href="javascript:void(0);" id="slide-show-nav-next" title="'+ strNext +'"><span>'+ strNext +'</span></a></li></ul>'
	slideShow.appendChild(slideNav);
	Fade.setOpacity(slideNav,80);
	addEvent($('slide-show-nav-prev'),'click',SlideShowPrev);
	addEvent($('slide-show-nav-next'),'click',SlideShowNext);
};
var SlideShowPrev=function(){
	this.blur();
	arrObjHolder['slide-show-index']--;
	if(arrObjHolder['slide-show-index'] < 0){
		arrObjHolder['slide-show-index']=arrObjHolder['slide-show-length']-1;
	}
	var slideShow=$('image-slideshow-container');
	if(!slideShow) return;
	var images=slideShow.getElementsByTagName('IMG');
	for(var i=0, n=images.length, image=null; i<n; i++){
		image=images[i];
		if(i==arrObjHolder['slide-show-index']){
			image.style.display='block';	
		}else{
			image.style.display='none';
		}
	}
};
var SlideShowNext=function(){
	this.blur();
	arrObjHolder['slide-show-index']++;
	if(arrObjHolder['slide-show-index'] >= arrObjHolder['slide-show-length']){
		arrObjHolder['slide-show-index']=0;
	}
	var slideShow=$('image-slideshow-container');
	if(!slideShow) return;
	var images=slideShow.getElementsByTagName('IMG');
	for(var i=0, n=images.length, image=null; i<n; i++){
		image=images[i];
		if(i==arrObjHolder['slide-show-index']){
			image.style.display='block';	
		}else{
			image.style.display='none';
		}
	}
};


/* DOM HANDLER (v.20090320) 
----------------------------------------------------*/
var DOM = function() {
	return {
		Get: function(elm) { if (typeof elm === 'string') { return document.getElementById(elm) } else { return elm } },
		Create: function(tag, cssClass, id) { var tmp = document.createElement(tag); if (cssClass) { tmp.className = cssClass }; if (id) { tmp.id = id }; return tmp },
		Remove: function(elm) { var elm = this.Get(elm); if (elm) { elm.parentNode.removeChild(elm) } },
		Add: function(elm, target) { var elm = this.Get(elm); var target = this.Get(target); if (elm && target) { target.appendChild(elm) } },
		AddFirst: function(elm, target) { var elm = this.Get(elm); var target = this.Get(target); if (elm && target) { target.insertBefore(elm, target.firstChild) } },
		AddAfter: function(elm, target) { var parent = target.parentNode; if (parent) { if (DOM.LastChild(parent) == target) { parent.appendChild(elm) } else { parent.insertBefore(elm, target.nextSibling) } } },
		AddBefore: function(elm, target) { var parent = target.parentNode; if (parent) { parent.insertBefore(elm, target) } },
		SetAttribute: function(elm, type, value) { if (DOM.GetAttribute(elm, type)) { elm.removeAttribute(type) }; var t = document.createAttribute(type); t.nodeValue = value; elm.setAttributeNode(t) },
		GetAttribute: function(elm, attrib) { for (var q = 0, qn = elm.attributes.length; q < qn; q++) { if (elm.attributes[q].nodeName.toLowerCase() == attrib.toLowerCase()) { return elm.attributes[q].nodeValue } } },
		PreviousSibling: function(node) { if (node.previousSibling) { node = node.previousSibling; while (node != null && node.nodeType != 1) { node = node.previousSibling }; return node }; return null },
		NextSibling: function(node) { if (node.nextSibling) { node = node.nextSibling; while (node != null && node.nodeType != 1) { node = node.nextSibling }; return node }; return null },
		FirstChild: function(node) { if (node) { var children = DOM.ChildNodes(node); if (children.length > 0) { return children[0] }; return null }; return null },
		LastChild: function(node) { if (node) { var children = DOM.ChildNodes(node); if (children.length > 0) { return children[children.length - 1] }; return null }; return null },
		ChildNodes: function(node) { if (node) { var children = node.childNodes, tmp = []; if (children.length > 0) { for (var ii = 0, nn = children.length; ii < nn; ii++) { var node = children[ii]; if (node.nodeType == 1) tmp.push(node) }; return tmp }; return null }; return null },
		GetByClassName: function(parent, tag, classname) { var arrReturnElements = new Array(); if (parent) { var d = (tag == '*' && parent.all) ? parent.all : parent.getElementsByTagName(tag); classname = classname.replace(/\-/g, '\\-'); var e = new RegExp('(^|\\s)' + classname + '(\\s|$)'), oElement = null; for (var i = 0, n = d.length; i < n; i++) { oElement = d[i]; if (e.test(oElement.className)) arrReturnElements.push(oElement) } } return (arrReturnElements) },
		GetByAttribute: function(parent, tag, attrib, value) { var f = new Array(); if (parent) { var e = (tag == '*' && parent.all) ? parent.all : parent.getElementsByTagName(tag); var g = (typeof value != 'undefined') ? new RegExp("(^|\\s)" + value + "(\\s|$)") : null, h, j; for (var i = 0, n = e.length; i < n; i++) { h = e[i]; j = h.getAttribute && DOM.GetAttribute(h, attrib); if (typeof j == 'string' && j.length > 0) { if (typeof value == 'undefined' || (g && g.test(j))) { f.push(h) } } } } return f }
	}
} ();


/* WRITE TO FIREBUG CONSOLE
----------------------------------------------------*/
var Console = function() {
	return {
		Log: function(msg, args) { if (typeof console == 'undefined') return false; if (!args) args = ''; console.log(msg, args) },
		Info: function(msg, args) { if (typeof console == 'undefined') return false; if (!args) args = ''; console.info(msg, args) },
		Warn: function(msg, args) { if (typeof console == 'undefined') return false; if (!args) args = ''; console.warn(msg, args) },
		Error: function(msg, args) { if (typeof console == 'undefined') return false; if (!args) args = ''; console.error(msg, args) }
	}
} ();


/* PROMO
----------------------------------------------------*/
var PROMO = function() {
	return {

		Init: function() {
			this.Duration = 5000;
			this.Element = $('promo');
			this.List = [];
			this.Timer = null;
			this.Itterator = 0;
			this.Link = '';
			if (this.Element) {
				if (this.Element.className.indexOf('roll') != -1) {
					if (this.Element.className.indexOf('rolltimer') != -1) {
						this.Duration = parseInt(this.Element.className.substring(this.Element.className.indexOf('rolltimer')).replace('rolltimer', ''));
					}
					var elms = DOM.ChildNodes(this.Element);
					for (var i = 0, n = elms.length; i < n; i++) {
						var elm = elms[i];
						this.List.push(elm);
						if (i > 0) {
							elm.style.display = 'none';
						}
					}
					this.Timer = window.setTimeout("PROMO.Roll()", this.Duration);
				}
				PROMO.AddGraphicalCorners();
				//PROMO.AddClickAreas();
			}
		},

		AddClickAreas: function() {
			var elms = DOM.ChildNodes(this.Element);
			for (var i = 0, n = elms.length; i < n; i++) {
				var elm = elms[i];
				var link = elm.getElementsByTagName('A')[0];
				if (link) {
					elm.style.cursor = 'pointer';
					addEvent(elm, 'click', PROMO.Redirect);
				}
			}
		},

		Redirect: function() {
			var link = this.getElementsByTagName('A')[0];
			var url = DOM.GetAttribute(link, 'href').toString();
			if (url) {
				location.href = url;
			}

		},

		AddGraphicalCorners: function() {
			if (!isIE6) {
				var elms = DOM.ChildNodes(this.Element);
				for (var i = 0, n = elms.length; i < n; i++) {
					var elm = elms[i];
					DOM.Add(DOM.Create('DIV', 'corner corner1'), elm);
					DOM.Add(DOM.Create('DIV', 'corner corner2'), elm);
					DOM.Add(DOM.Create('DIV', 'corner corner3'), elm);
					DOM.Add(DOM.Create('DIV', 'corner corner4'), elm);
				}
			}
		},

		Roll: function() {
			PROMO.Fade_Out(this.List[this.Itterator], 100);
			if (this.Itterator >= this.List.length - 1) {
				this.Itterator = 0;
			} else {
				this.Itterator++;
			}
			PROMO.Fade_In(this.List[this.Itterator], 0);
			this.Timer = window.setTimeout("PROMO.Roll()", this.Duration);
		},

		Fade_In: function(uid, opacity) {
			if (typeof uid == 'object') {
				if (uid.id) {
					uid = uid.id;
				} else {
					var newUid = Guid();
					DOM.SetAttribute(uid, 'id', newUid);
					uid = newUid;
				}
			}
			var obj = $(uid);
			if (!obj) return;
			obj.style.display = 'block';
			if (opacity <= 100) {
				Fade.setOpacity(obj, opacity);
				opacity += 20;
				fadeTimer = window.setTimeout('PROMO.Fade_In("' + uid + '",' + opacity + ')', 40)
			} else {
				Fade.setOpacity(obj, 100);
				obj.style.filter = '';
				fadeTimer = null
			}
		},

		Fade_Out: function(uid, opacity) {
			if (typeof uid == 'object') {
				if (uid.id) {
					uid = uid.id;
				} else {
					var newUid = Guid();
					DOM.SetAttribute(uid, 'id', newUid);
					uid = newUid;
				}
			}
			var obj = $(uid);
			if (!obj) return;
			if (opacity > 0) {
				Fade.setOpacity(obj, opacity);
				opacity -= 20;
				fadeTimer = window.setTimeout('PROMO.Fade_Out("' + uid + '",' + opacity + ')', 40)
			} else {
				obj.style.display = 'none';
				Fade.setOpacity(obj, 0);
				fadeTimer = null;
			}
		},

		Opacity: function(obj, opacity) {
			if (!obj) return;
			obj.style.filter = 'alpha(style=0,opacity:' + opacity + ')';
			obj.style.KHTMLOpacity = (opacity / 100);
			obj.style.MozOpacity = (opacity / 100);
			obj.style.opacity = (opacity / 100)
		}

	}
} ();

/* POPPER
----------------------------------------------------*/
var POPPER = function() {
	return {
		Init: function() {
			this.Element = null;
			this.Content = '';
			var poppers = DOM.GetByClassName(document, '*', 'popper');
			for (var i = 0, n = poppers.length; i < n; i++) {
				var popper = poppers[i];
				if (popper.parentNode) {
					addEvent(popper.parentNode, 'mouseover', POPPER.Display);
					popper.style.display = 'none';
				}
			}
		},
		Display: function(e) {
			POPPER.Content = DOM.GetByClassName(this, '*', 'popper')[0].innerHTML.toString();
			if (!POPPER.Content) return;
			var popperCssClass = (POPPER.Content.length > 150) ? 'wide' : '';
			if ($('ipopper')) {
				$('ipopper').className = popperCssClass;
				POPPER.Element = $('ipopper');
			} else {
				POPPER.Element = DOM.Create('div', popperCssClass, 'ipopper');
				DOM.Add(POPPER.Element, $('container'));
				POPPER.Element.id = 'ipopper';
				POPPER.Element.zIndex = 10000;
			}
			POPPER.Element.innerHTML = '<div>' + POPPER.Content + '</div>';
			addEvent(document, 'mousemove', POPPER.SetPosition);
			addEvent(this, 'mouseout', POPPER.Hide);
		},
		Hide: function(e) {
			if (POPPER.Element) {
				DOM.Remove(POPPER.Element);
			}
			POPPER.Remove();
		},
		Remove: function() {
			var ipops = DOM.GetByAttribute(document, 'div', 'id', 'ipopper');
			for (var i = 0, n = ipops.length; i < n; i++) {
				DOM.Remove(ipops[i]);
			}
		},
		SetPosition: function(e) {
			if (POPPER.Element) {
				if (e.clientX && e.clientY) {
					x = e.clientX + document.body.scrollLeft;
					y = e.clientY + document.documentElement.scrollTop;
				} else {
					x = e.pageX;
					y = e.pageY;
				}
				x = parseInt(0 + x);
				y = parseInt(y + 5);

				var absPosY = parseInt(y + POPPER.Element.offsetHeight);
				var absPosX = parseInt(x + POPPER.Element.offsetWidth);

				var absSafeY = getViewport.Height() + document.documentElement.scrollTop;
				var absSafeX = getViewport.Width() + document.documentElement.scrollLeft; ;

				POPPER.Element.className = POPPER.Element.className.replace('widereversed', '');
				POPPER.Element.className = POPPER.Element.className.replace('reversed', '');

				var currClassName = POPPER.Element.className.toString();

				if (absPosY > absSafeY) {
					y = parseInt(y - POPPER.Element.offsetHeight - 5);
				}
				
				POPPER.Element.style.left = x + 'px';
				POPPER.Element.style.top = y + 'px';
			}
		}

	}
} ();

/* FUNCTIONALITY FOR NEW TOOLTIPS
----------------------------------------------------*/
var loadTooltips = function() {
	var arrTipElems = getElementsByClassName(document, "*", "tooltips");
	var intElems = arrTipElems.length;
	for (var i = 0; i < intElems; i++) {
		var TipElm = arrTipElems[i];
		if (TipElm.getAttribute('title')) {
			addEvent(TipElm, 'mouseover', DisplayTooltip);
		}
	}
}


/* DISPLAY TOOLTIP
----------------------------------------------------*/
var DisplayTooltip = function(event) {
	var elmTitle = this.getAttribute('title');
	if (!elmTitle) return;
	this.setAttribute('rel', elmTitle);
	this.setAttribute('title', '');

	if ($('tooltip-container')) {
		this.div = $('tooltip-container');
	} else {
		this.div = document.createElement('div');
		this.div.id = 'tooltip-container';
	}

	arrObjHolder['infoLyr'] = this.div;
	if (document.all) {
		x = event.clientX + document.body.scrollLeft;
		y = event.clientY + document.documentElement.scrollTop;
	} else {
		x = event.pageX;
		y = event.pageY;
	}
	if (x < 0) { x = -500; }
	if (y < 0) { y = -500; }
	this.div.style.left = (x - 30) + 'px';
	this.div.style.top = (y + 5) + 'px';
	this.div.zIndex = 1000;
	this.div.innerHTML = '<em>' + elmTitle + '</em>';
	document.getElementsByTagName('body')[0].appendChild(this.div);
	this.div.style.display = 'block';
	addEvent(this, 'mouseout', HideTooltip);
}


/* HIDE TOOLTIP
----------------------------------------------------*/
var HideTooltip = function() {
	arrObjHolder['infoLyr'].innerHTML = '';
	arrObjHolder['infoLyr'].style.display = 'none';
	this.setAttribute('title', this.getAttribute('rel'));
}


/* TABBOX
----------------------------------------------------*/
var TABBOX = {};
TABBOX.Init = function() {
	this.TabBoxes = DOM.GetByClassName(document, 'div', 'tabbox');
	var tab = null;
	var area = null;
	var link = null;
	for (var i = 0, n = this.TabBoxes.length; i < n; i++) {
		var tabbox = this.TabBoxes[i];
		//alert(tabbox);
		var tabs = DOM.GetByClassName(tabbox, 'div', 'tabs')[0].getElementsByTagName('LI');
		var areas = DOM.ChildNodes(DOM.GetByClassName(tabbox, 'div', 'areas')[0]);
		for (var x = 0, z = tabs.length; x < z; x++) {
			tab = tabs[x];
			area = areas[x];
			link = tab.getElementsByTagName('A')[0];
			addEvent(link, 'click', TABBOX.Toggle);
			if (x == 0) {
				tab.className = tab.className + ' selected';
			} else {
				//area.style.display = 'none';
			}
		}
		link.className = link.className + ' last';
	}
};
TABBOX.Toggle = function() {
	var itterator = 0;
	var parent = this;
	var currentTab = parent.parentNode;
	while (parent.parentNode.className.indexOf('tabbox') == -1) {
		parent = parent.parentNode;
	}
	var tabbox = parent.parentNode;
	var tabs = DOM.GetByClassName(tabbox, 'div', 'tabs')[0].getElementsByTagName('LI');
	var areas = DOM.ChildNodes(DOM.GetByClassName(tabbox, 'div', 'areas')[0]);
	for (var x = 0, z = tabs.length; x < z; x++) {
		tab = tabs[x];
		area = areas[x];
		link = tab.getElementsByTagName('A')[0];
		tab.className = tab.className.replace('selected', '');
		area.style.display = 'none';
		if (tab == currentTab) {
			itterator = x;
		}
	}
	tabs[itterator].className = tabs[itterator].className + ' selected';
	areas[itterator].style.display = 'block';
};



/* MEDIALIBRARY
----------------------------------------------------*/
var MEDIALIBRARY = {};
MEDIALIBRARY.Init = function() {

	this.Content = DOM.GetByClassName($('content'), 'div', 'media-content')[0];
	this.HeaderArea = DOM.GetByClassName(this.Content, 'div', 'header')[0];
	this.ImageInformation = DOM.GetByClassName($('content'), 'div', 'image-information')[0];

	if (!this.ImageInformation && this.Content && DOM.GetByClassName(this.Content, 'div', 'main').length > 0) {
		var mainMediaContent = DOM.GetByClassName(this.Content, 'div', 'main')[0]
		var mediaImageParents = DOM.ChildNodes(mainMediaContent.getElementsByTagName('UL')[0]);
		if (mediaImageParents) {
			for (var i = 0, n = mediaImageParents.length; i < n; i++) {
				var li = mediaImageParents[i];
				var img = li.getElementsByTagName('IMG')[0];
				addEvent(img, 'click', MEDIALIBRARY.Click);
				addEvent(li, 'mouseover', MEDIALIBRARY.HilightOn);
				addEvent(li, 'mouseout', MEDIALIBRARY.HilightOff);
			}
		}
	}

	if (this.Content && DOM.GetByClassName(this.Content, 'div', 'options').length > 0) {
		var mediaListItems = DOM.GetByClassName(this.HeaderArea, 'div', 'options')[0].getElementsByTagName('IMG');
		for (var i = 0, n = mediaListItems.length; i < n; i++) {
			if (mediaListItems[i].className == 'active') {
				mediaListItems[i].src = mediaListItems[i].src.replace('.png', '-b.png');
			} else {
				addEvent(mediaListItems[i], 'mouseover', MEDIALIBRARY.ToogleListImage);
				addEvent(mediaListItems[i], 'mouseout', MEDIALIBRARY.ToogleListImage);
			}
		}
	}

	//## SEARCH DROPMENU
	if (DOM.GetByClassName($('content'), 'div', 'media-search-box').length > 0) {
		var searchInput = DOM.GetByClassName(DOM.GetByClassName($('content'), 'div', 'media-search-box')[0], 'div', 'textfield')[0].getElementsByTagName('INPUT')[0];
		addEvent(searchInput, 'keyup', MEDIALIBRARY.Search);

		var MediaType = DOM.GetByClassName(DOM.GetByClassName($('content'), 'div', 'media-search-box')[0], 'div', 'mediatype')[0].getElementsByTagName('A')[0];
		addEvent(MediaType, 'click', MEDIALIBRARY.ChooseMediaType);
	}

};
MEDIALIBRARY.ToogleListImage = function() {
	var currSrc = this.src.toString();
	if (currSrc.indexOf('-b.png') != -1) {
		var newSrc = currSrc.substr(currSrc.lastIndexOf('/') + 1).replace('-b.png', '.png');
	} else {
		var newSrc = currSrc.substr(currSrc.lastIndexOf('/') + 1).replace('.png', '-b.png');
	}
	this.src = '/images/' + newSrc;
};
MEDIALIBRARY.Click = function(e) {
	var link = DOM.GetAttribute(this.parentNode.parentNode.parentNode.getElementsByTagName('A')[0], 'HREF');
	location.href = link;
	CancelEvent(e);
};
MEDIALIBRARY.ToogleHilight = function() {
	this.className = (this.className == '') ? 'active' : '';
};
MEDIALIBRARY.HilightOff = function() {
	this.className = '';
};
MEDIALIBRARY.HilightOn = function() {
	this.className = 'active';
};
MEDIALIBRARY.SearchBox = null;
MEDIALIBRARY.Search = function(e) {
    if (e.srcElement) {
        var trigger = e.srcElement;
    } else {
        var trigger = e.target;
    };
    if (!trigger) return;
    SearchBox = trigger;
    SwedishMatch.Services.MenuService.GetImageBankSearch(trigger.value, Language, MEDIALIBRARY.WSReturn)
    //var ajaxDummyContent = '<h2>Tags</h2><ul><li><div class="image"><img src="/upload/dummy-thumb01.png" alt="" /></div><strong>Snus</strong><br/>General, Onyx, White portion, pouch, snus</li><li><div class="image"><img src="/upload/dummy-thumb01.png" alt="" /></div><strong>Snus</strong><br/>General, Onyx, White portion, pouch, snus</li><li><div class="image"><img src="/upload/dummy-thumb01.png" alt="" /></div><strong>Snus</strong><br/>General, Onyx, White portion, pouch, snus</li></ul><h2>Products</h2><ul><li><div class="image"><img src="/upload/dummy-thumb01.png" alt="" /></div><strong>Snus</strong><br/>General, Onyx, White portion, pouch, snus</li><li><div class="image"><img src="/upload/dummy-thumb01.png" alt="" /></div><strong>Snus</strong><br/>General, Onyx, White portion, pouch, snus</li><li><div class="image"><img src="/upload/dummy-thumb01.png" alt="" /></div><strong>Snus</strong><br/>General, Onyx, White portion, pouch, snus</li></ul>';
    //EnableDropMenu(trigger, ajaxDummyContent);
};
MEDIALIBRARY.WSReturn = function(html) {
    EnableDropMenu(SearchBox, html);
}
MEDIALIBRARY.ChooseMediaType = function(e) {
	if (e.srcElement) {
		var trigger = e.srcElement;
	} else {
		var trigger = e.target;
	};
	if (trigger.tagName.toString().toLowerCase() == 'img') {
		trigger = trigger.parentNode;
	}
	if (!trigger) return;
	var ajaxDummyContent = 'sasdf sd fsdf ';
	EnableDropMenu(trigger, ajaxDummyContent, 'mediatypetoggler');
};

var HideAndClose = function() {
	if (DOM.GetByClassName(document, 'div', 'dropdown')[0]) {
		DOM.Remove(DOM.GetByClassName(document, 'div', 'dropdown')[0]);
	}
};

var EnableDropMenu = function(objTrigger, strContent, optionalId) {
	HideAndClose();
	var triggerX = getElmPosition.GetX(objTrigger) + 2;
	var triggerY = getElmPosition.GetY(objTrigger) + objTrigger.offsetHeight + 1;
	var dropDown = DOM.Create('DIV', 'dropdown', optionalId);
	dropDown.innerHTML = strContent;
	dropDown.style.left = triggerX + 'px';
	dropDown.style.top = triggerY + 'px';
	dropDown.style.width = objTrigger.offsetWidth + 'px';
	DOM.Add(dropDown, document.getElementsByTagName('BODY')[0]);
	var lis = dropDown.getElementsByTagName('LI');
	for (var i = 0, n = lis.length; i < n; i++) {
		addEvent(lis[i], 'mouseover', toggleHighlight);
	}
	if (dropDown.offsetHeight > 300) {
		dropDown.style.height = '300px';
	}
	addEvent($('container'), 'mousedown', HideAndClose);
};

/* Init vCard
----------------------------------------------------*/
var initVCard = function() {
	var vCards = DOM.GetByClassName($('article'), 'dl', 'vcard');
	var placeHolder = DOM.GetByClassName($('content'), 'div', 'swm-contacts')[0];
	for (var i = 0, n = vCards.length; i < n; i++) {
		var vCard = vCards[i];
		addEvent(vCard, 'mouseover', function(e) {
			if ($('vcard-display-id')) {
				CancelEvent(e);
				DOM.Remove($('vcard-display-id'));
			}
			//Start new -->
			var tmp = DOM.Create('dl', 'vcard');
			DOM.SetAttribute(tmp, 'title', this.title);
			tmp.innerHTML = this.innerHTML
			var vCardClone = tmp;
			//End new -->
			//var vCardClone = this.cloneNode(true)
			var vCardDisplayer = DOM.Create('div', 'vcard-display', 'vcard-display-id');
			var vCardInnerDisplayer = DOM.Create('div');
			vCardDisplayer.style.top = this.offsetTop - 13 + 'px';
			vCardDisplayer.style.left = this.offsetLeft - 28 + 'px';
			DOM.Add(vCardInnerDisplayer, vCardDisplayer);
			DOM.Add(vCardClone, vCardInnerDisplayer);
			DOM.Add(vCardDisplayer, placeHolder);
			addEvent($('content'), 'click', hideVCard);
		});
	}
};
var hideVCard = function() {
	DOM.Remove($('vcard-display-id'));
};

var initSwmWorldwide = function() {
	if ($('swm-worldwide')) {
		$('drop-down').style.display = 'none';
		var trigger = DOM.GetByClassName($('swm-worldwide'), 'a', 'trigger')[0];
		Console.Info(trigger);
		addEvent(trigger, 'click', toogleSwmWorldwide);
		//addEvent(trigger, 'focus', toogleSwmWorldwide);
	}
};
var toogleSwmWorldwide = function(e) {
	CancelEvent(e);
	var dropDown = $('drop-down');
	if (dropDown.style.display == 'none') {
		var embeds = document.getElementsByTagName('embed');
		for (var i = 0, n = embeds.length; i < n; i++) {
			embeds[i].style.visibility = 'hidden';
		}
		var objects = document.getElementsByTagName('object');
		for (var i = 0, n = embeds.length; i < n; i++) {
			objects[i].style.visibility = 'hidden';
		}
	} else {
		var embeds = document.getElementsByTagName('embed');
		for (var i = 0, n = embeds.length; i < n; i++) {
			embeds[i].style.visibility = 'visible';
		}
		var objects = document.getElementsByTagName('object');
		for (var i = 0, n = embeds.length; i < n; i++) {
			objects[i].style.visibility = 'visible';
		}
	}
	dropDown.style.display = (dropDown.style.display == 'none') ? 'block' : 'none';

};