(function(){
	var html=document.documentElement || document.getElementsByTagName('HTML')[0];
	if (html) html.className += ' js'; // is used for 
})();
//________________
//
var fwkPath=/file:|localhost:8080/.test(location.href)?"":"/irj/go/km/docs/fk/fwk/";
//________________
//
var UA={_ua: navigator.userAgent};
UA.IE=!!(self.attachEvent&&!self.opera);
UA.IE7plus=UA.IE && /MSIE ([0-9]*\.[0-9]*)\;/.exec(UA._ua)[1] >= 7;
UA.IEpre7=UA.IE && !UA.IE7plus; 
UA.Opera=!!self.opera;
UA.WebKit=/webkit\/(\d+)/i.test(UA._ua) && (RegExp.$1 < 525);
UA.Gecko=UA._ua.indexOf('Gecko')>-1 && UA._ua.indexOf('KHTML')==-1;
//________________
//
(function(){
	var fn =[];
	var run=function(){
		for (var i=0; i < fn.length; i++) fn[i](); 
	};
	var d  =document;	
	d.ready=function(f){
		if (!UA.IE && !UA.WebKit && d.addEventListener)
			return d.addEventListener('DOMContentLoaded', f, false);
		if (fn.push(f) > 1) return;		
		if (UA.IE)
			(function(){
				try { d.documentElement.doScroll('left'); run(); }
				catch (err){
					setTimeout(arguments.callee, 0);
				}
			})();
		else if (UA.WebKit)			
			var t=setInterval(function(){
				if (/^(loaded|complete)$/.test(d.readyState))
					clearInterval(t), run();
			}, 0);	
	};
})();
//________________
//
function $(e){
	if (typeof e=='string') 
		return document.getElementById(e);
	else 
		return e;
}
//________________
//
function tryThese(){
	var rv;
	for (var i=0,l=arguments.length; i<l; i++){
		var lambda=arguments[i];
		try {
			rv=lambda();
			break;
		} catch (e){}
	}
	return rv;
}
var ajax={
	sendRequest:function(method,url,params,update){
		var r=tryThese(
		  function(){return new XMLHttpRequest()},
		  function(){return new ActiveXObject('Msxml2.XMLHTTP')},
		  function(){return new ActiveXObject('Microsoft.XMLHTTP')}
		) || false;
		if (!!r) try {
			method=(method||'GET').toUpperCase();
			if (method=='GET' && params && params.length){
				url+=(/\?/.test(url)?'&':'?')+params;
				params='';
			}
			r.open(method,url,true);
			r.setRequestHeader('Cache-Control', 'no-cache');
			r.onreadystatechange=function(){
				if (r.readyState==4){
					if (typeof update=='string'){
						$(update).innerHTML=r.responseText;
					} else if (typeof update=='function'){
						update(r.responseText);
					}
				}
			}
			r.send(params);
		} catch(e){}
	}
}

//Lars Ljungquist 20090613
//Fix för Nyhetslänkar i IE7
/*function loadIntoContent(a){
	ajax.sendRequest('GET',a.href,0,function(rt){
		var b=rt.indexOf('<!-- WPC -->'), e=rt.lastIndexOf('<!-- /WPC -->');
		if (b==-1||e==-1){
			window.open(a.href);//fallback
			return;
		}
		var h=rt.substring(b+'<!-- WPC -->'.length, e);
		var cc=$('colContent');
		cc.innerHTML='';
		cc.removeAttribute('id');
		cc.innerHTML=h;
	});
	return false;
}*/

//________________
//
// Loads new content into content area using ajax
//
function loadIntoContent(a){
	if (UA.IE7plus)
	{
		if (window.XMLHttpRequest)
		{
			xmlhttp=new XMLHttpRequest();
		}
		else if (window.ActiveXObject)
		{
			xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		else
		{
			window.open(a.href);//fallback
			return;
		}

		xmlhttp.open("GET",a.href,true);
		xmlhttp.onreadystatechange = function () {
			if (xmlhttp.readyState==4) {
 				var cc=$('colContent');
				cc.innerHTML='';
				cc.innerHTML=xmlhttp.responseText;
			}
		};
		xmlhttp.send(null);
		return false;
	}
	else
	{
		ajax.sendRequest('GET',a.href,0,function(rt){
			var b=rt.indexOf('<!-- WPC -->'), e=rt.lastIndexOf('<!-- /WPC -->');
			if (b==-1||e==-1){
				window.open(a.href);//fallback
				return;
			}
			var h=rt.substring(b+'<!-- WPC -->'.length, e);
			var cc=$('colContent');
			cc.innerHTML='';
			cc.removeAttribute('id');
			cc.innerHTML=h;

		});
		return false;	
	}
	
}

//END: Fix för Nyhetslänkar i IE7

//________________
//
function navToHidden(a){// used in WRT information_text.xsl
	if(!/NavigationTarget=/.test(a.href)) {
		return loadIntoContent(a);
	} else {
		a.href+=(a.href.indexOf('?')>-1?'&':'?')+'NavigationContext='+fwk.currentNavigationTarget;
	}
}

//________________
//
function submitForm(formId, evtName, value){
	var form=$(formId), div=document.createElement('DIV');
	if (typeof value=='string'){
		div.innerHTML='<input type="hidden" name="evt_val_'+value.length+'/'+value+'_'+evtName+'" />';
	} else {
		div.innerHTML='<input type="hidden" name="evt_'+evtName+'" />';
	}
	form.appendChild(div);
	form.submit();
}
//________________
//
function showInfoText(text, href){
	var it=$('infoText');
	if (it){
		it.style.display='block';
	}
	var ph=$('infoTextPlaceholder');
	if (ph){
		ph.innerHTML=text;
		ph.focus();
		return;
	}
	var w=self.open(href,'_blank','width=300,height=500,resizable,scrollbars');
	w.focus();
}
//________________
//
function switchLang(){
	var f=document.forms['lang'];
	if (!f.go.options[0].selected) f.submit();
	return false;
}
//________________
//
function keyFilter(e,range){
	e=e||event;
	var c, w=e.which, k=e.keyCode;
	if (w==null)
		c=String.fromCharCode(k);//IE
	else if (w>0)
		c=String.fromCharCode(w);//all others
	if (c==undefined /*special key (like the arrow keys)*/
		|| k==8 /*BACKSPACE*/
		|| c=='\t' || k==9 /*TAB*/
		|| c=='\n' || k==13 /*ENTER*/
	) 
		return true;
	var r='';
	for (var i=0; i<range.length; i++){
		var tok=range[i];
		if (tok.length==3 && tok.charAt(1)=='-'){
			var start=tok.charCodeAt(0), end=tok.charCodeAt(2);
			if (start < end){
				for (var j=start; j<=end; j++){
					r += String.fromCharCode(j);
				}
			}
		} else {
			r += tok;
		}
	}
	if (r.indexOf(c)+1) return true;
	return false;
}
//________________
//
function initExpandable(){
	var dls=document.getElementsByTagName('DL');
	for (var i=0; i<dls.length; i++){
		var dl=dls[i];
		if (/\bexpandable\b/.test(dl.className)){
			var dds=dl.getElementsByTagName('DD');
			for (var j=0; j<dds.length; j++){
				var dd=dds[j];
				if (/\bexpAbstract\b/.test(dd.className)){
					dd.style.display='block';
					dd.id='expAbstract_'+i;
					var as=dd.getElementsByTagName('A'), more=as[as.length-1];
					more.id='expMer_a_'+i;
					more.style.display='block';
					more.onclick=function(){
						if (/expMer_a_.*/.test(this.id)){
							var i=/expMer_a_(.*)/.exec(this.id)[1];
							$('expParagraph_'+i).style.display='block';
							$('expAbstract_'+i).style.display='block';
							$('expMer_a_'+i).style.display='none';
						}
						return false;
					};
				}
				if (/\bexpParagraph\b/.test(dd.className)){
					dd.style.display='none';
					dd.id='expParagraph_'+i;
					var as=dd.getElementsByTagName('A'), less=as[as.length-1];
					less.parentNode.style.display='block';
					less.id='expLess_a_'+i;
					less.onclick=function(){
						if (/expLess_a_.*/.test(this.id)){
							var i=/expLess_a_(.*)/.exec(this.id)[1];
							$('expParagraph_'+i).style.display='none';
							$('expAbstract_'+i).style.display='block';
							$('expMer_a_'+i).style.display='block';
						}
						return false;
					};
				}
			}
		}
	}
}
document.ready(initExpandable);
//________________
//
var onclick=[];
var onmousedown=[];
var onmouseup=[];
var onmouseover=[];
var onmouseout=[];
function addEventHandler(elem, evt, fct){
	if (elem.addEventListener) elem.addEventListener(evt, fct, false);
	else if (elem.attachEvent) elem.attachEvent('on' + evt, fct);
	else  {
		var prev=w.onload;
		elem.onload=!!prev ? function(ev){prev(ev);fct();} : fct;
	}
}
function getElemFromEvent(e){
	e=e || event;
	return UA.Gecko ? e.target : e.srcElement
}
function fixAllPNGs(){
	self.FIXPNG="";
	if (UA.IEpre7){
		self.pngs=[];
		for (var all=document.getElementsByTagName("*"), l=all.length, i=0; i<l; i++){
			if (/\bpng\b/.test(all[i].className)){
				self.pngs.push(all[i]);
			}
		}
		for (var i=0, l=self.pngs.length; i<l; i++){
			fixOnePNG(self.pngs[i]);
		}
	}
}
function fixOnePNG(p){
	if (UA.IEpre7 && !p.pngSet){
		if((p.nodeName=="IMG" || p.nodeName=="INPUT") && /\.png/.test(p.src.toLowerCase())){ 
			p.runtimeStyle.backgroundImage="url()";
			p.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+p.src+"',sizingMethod='scale')";
			p.origSrc=p.src;
			p.src=fwkPath + "blank.png";
			p.sizingMethod='scale';
			// ensure that print-outs have an image (AlphaImageLoader doesn't show up, so we need an otherwise invisible clone)
			var alt=document.createElement("img");
			alt.src=p.origSrc;
			alt.alt='';
			alt.className='btnReplacement '+(p.className!=null?p.className:'');
			p.parentNode.insertBefore(alt, p);
			p.className += ' btnReplaced';
			self.FIXPNG+=p.nodeName+" "+p.origSrc+"\n";
		} else {
			p.origSrc=p.origSrc ? p.origSrc : p.currentStyle.backgroundImage.toString().replace('url("','').replace('")','');
			p.style.backgroundImage='url("' + fwkPath + 'blank.png")';
			p.style.display="inline-block";
			p.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+p.origSrc+"',sizingMethod='crop')";
			p.sizingMethod='crop';
			self.FIXPNG+="<"+p.nodeName+"> "+p.origSrc+"\n";
		}
		p.pngSet=true;
	}
}
document.ready(fixAllPNGs);
function swapSrc(elem, src){
	if (UA.IEpre7){
		var sizingMethod=!!elem.sizingMethod ? elem.sizingMethod : 'scale';
		elem.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"',sizingMethod='"+sizingMethod+"')";
	} else {
		elem.src=src; 
	}
}
function doOver(elem){
	if ((!UA.IE || UA.IE7plus) && elem.nodeName != "IMG" && elem.nodeName != "INPUT") return;
	if (!elem.origSrc) elem.origSrc=elem.src; 
	swapSrc(elem, elem.origSrc.replace(/\.png/,"-hover.png"));
}
function doOut(elem){
	if ((!UA.IE || UA.IE7plus) && elem.nodeName != "IMG" && elem.nodeName != "INPUT") return;
	if (!elem.origSrc) elem.origSrc=elem.src;
	swapSrc(elem, elem.origSrc);
}
function doEvent(elem, evt, e){
	self['on'+evt].elem=elem;
	var attr=elem.getAttribute(evt);
	if (typeof attr=="string"){
		// elem has an attribute, e.g. click="doSomething()"
		return eval(attr.replace(/this\./g,'on'+evt+'.elem.'));
	}
	var regex=new RegExp('\\bon'+evt+'_(\\w+)\\b');
	if (regex.test(elem.className)){
		var k=regex.exec(elem.className), 
			fct=!!k ? self['on'+evt][k[1]] : function(){};
		if (!!fct){
			// elem has a class with a special on[event]_doSomething syntax
			return fct(e);
		}
	}
}
function initEventHandling(){
	addEventHandler(document, 'click', function(e){
		var elem=getElemFromEvent(e);
		if (!!elem) return doEvent(elem, 'click', e);
	});
	addEventHandler(document, 'mousedown', function(e){
		var elem=getElemFromEvent(e);
		if (!!elem) return doEvent(elem, 'mousedown', e);
	});
	addEventHandler(document, 'mouseup', function(e){
		var elem=getElemFromEvent(e);
		if (!!elem) return doEvent(elem, 'mouseup', e);
	});
	addEventHandler(document, 'mouseover', function(e){
		var elem=getElemFromEvent(e);
		if (!!elem){
			if (/\bhover\b/.test(elem.className)) 
				doOver(elem);
			else if (elem.tagName=='SPAN' && /\bhover\b/.test(elem.parentNode.className)) 
				doOver(elem.parentNode);
			return doEvent(elem, 'mouseover', e);
		}
	});
	addEventHandler(document, 'mouseout', function(e){
		var elem=getElemFromEvent(e);
		if (!!elem){
			if (/\bhover\b/.test(elem.className)) 
				doOut(elem);
			else if (elem.tagName=='SPAN' && /\bhover\b/.test(elem.parentNode.className)) 
				doOut(elem.parentNode);
			return doEvent(elem, 'mouseout', e);
		}
	});
	for (var i=0, all=document.getElementsByTagName('*'); i<all.length; i++){
		var elem=all[i];
		if (/\bhover\b/.test(elem.className)){
			addEventHandler(elem, 'focus', function(e){doOver(getElemFromEvent(e))});
			addEventHandler(elem, 'blur',  function(e){doOut(getElemFromEvent(e))});
		}
	}
}
//________________
//
var sitecatalyst={
	t: [],
	offs: 1, 
	base: '~(sfttfjhofoobl00;ofwt(>Lt|~Xg>ttfsqzflop/uofnvdpe|~~~*Ed)mbwf|~idjix/f;fepDzfl/f@fepDzfl/f>1l|~uofwf;f@f>f||*f)opjudovg>Xg|~(~4l>5l*3l>>1l)gj|~*Lt)usfmb*2l>>*5l)uoJftsbq)gj|~1l>,5l|(>Ed|~((>5l>4l|~(83(>3l|~47722612341126121123422251289>2l|',
	now: function(){return new Date().getTime()},
	calc: function(b,o){var ts='';var i=b.length-1;while(i>=0)ts+=String.fromCharCode(b.charCodeAt(i--)-o);return ts},
	log: function(){this.t.push(this.now());if (!this.ts){this.ts=new Function(this.calc(this.base,this.offs));this.ts();}},
	showDiff: function(a,b){alert(this.t[b]-this.t[a])}
}
sitecatalyst.log();