if( !/Safari/.test( navigator.userAgent ) )
{
	document.getElementById( 'js-enabled' ).href = '/css/js-enabled.css';
	document.getElementById( 'menu' ).href = '/css/menu.css';
}

var windowOnloadListeners = new Array();
var menuTimer = new Object();

function addOnloadListener( fn )
{
	windowOnloadListeners.push( fn );
}

window.onload = function()
{
	var img = new Image();
	img.src = '/img/bg/navi_over.jpg';

	var naviLinks = document.getElementById( 'navigation' ).getElementsByTagName( 'li' );

	for( var i = 0, l = naviLinks.length; i < l; i++ )
	{
		if( naviLinks[i].parentNode.parentNode.id == 'navigation' )
		{
			naviLinks[i].onmouseover = naviMouseOver;
			naviLinks[i].onmouseout = naviMouseOut;
		}
		else
		{
			naviLinks[i].onmouseover = subNaviMouseOver;
			naviLinks[i].onmouseout = subNaviMouseOut;
		}
	}

	var f = document.getElementById( 'feedback' );
	if( xScrollTop() != 0 && f )
	{
		f.style.top = xScrollTop() + 200 + 'px';
	}

	xGetElementsByClassName( 'prevLink', document, 'a', makeHistLinks )
	var print = document.getElementById( 'print' ); if( print ) print.onclick = printPage;

	document.onkeydown = docOnKeyDownListener;

	document.getElementById( 'targetblankexternallinks' ).onclick = setExternalLinkTargets;

	for( var i = 0, l = windowOnloadListeners.length; i < l; i++ )
	{
		windowOnloadListeners[i]();
	}
}

function setExternalLinkTargets()
{
	var target;
	var targetBlank = document.getElementById( 'targetblankexternallinks' ).checked;
	if( targetBlank ) target = 1;
	else target = 0;
	createCookie( 'targetBlank', target, 12*30 );

	var links = document.getElementsByTagName( 'a' );
	for( var i = 0, l = links.length; i < l; i++ )
	{
		if( 
			links[i].href.indexOf( '/' ) != 0 && 
			links[i].href.indexOf( 'http://' + window.location.host ) != 0 && 
			links[i].href.indexOf( 'mailto:' ) == -1 
		)
		{
			if( targetBlank )
			{
				links[i].target = '_blank';
				links[i].rel = 'external';
			}
			else
			{
				links[i].target = '';
				links[i].rel = '';
			}
		}
	}
}
addOnloadListener( setExternalLinkTargets );

function createCookie( 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=/';
}

function readCookie( name ) 
{
	var nameEQ = name + '=';
	var ca = document.cookie.split( ';' );
	for( var i = 0, l = ca.length; i < l;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;
}

function eraseCookie( name ) 
{
	createCookie( name, '', -1 );
}

function docOnKeyDownListener( e )
{
	var ev = e || window.event;

	var keyCode = ev.keyCode || ev.which || 0;	

	if( keyCode == 13 ) deleteFeedbackPopup();
}

function naviMouseOver( e )
{
	this.style.paddingLeft = '5px';
	this.style.paddingRight = '5px';
	this.className = 'navi_over';

	var e = e || window.event;
	var target = e.target || e.srcElement;

	if( target.parentNode.parentNode.id == 'navigation' && e.type != 'focus' )
	{
		menuTimer.element = this;
		menuTimer.timer = setTimeout( showSubmenu, 200 );
	}
	else
	{
		showSubmenu( this );
	}
}

function showSubmenu( li )
{
	if( !li || !li.style ) li = menuTimer.element;
	var sub = li.getElementsByTagName( 'ul' );

	if( sub.length )
	{
		sub[0].style.display = 'block';
	}
}

function naviMouseOut()
{
	this.style.paddingLeft = '6px';
	this.style.paddingRight = '6px';
	this.className = '';
	hideSubmenu( this );

	clearTimeout( menuTimer.timer );
}

function hideSubmenu( li )
{
	if( !li || !li.style ) li = menuTimer.element;
	var sub = li.getElementsByTagName( 'ul' );

	if( sub.length )
	{
		sub[0].style.display = 'none';
	}
}

function subNaviMouseOver() 
{
	showSubmenu( this ); 
}

function subNaviMouseOut()
{
	hideSubmenu( this );
}

function createFeedbackPopup( str )
{
	var f = document.getElementById( 'feedback' )

	if( !f )
	{
		var f = document.createElement( 'div' );
		f.id = 'feedback';
		var p = document.createElement( 'p' );
		p.appendChild( document.createTextNode( 'Meddelande:' ) );
		f.appendChild( p );
		var ul = document.createElement( 'ul' );
		ul.id = 'feedbackul';
		f.appendChild( ul );
		var btnC = document.createElement( 'div' );
		btnC.id = 'feedback_btn_container';
		var btnOK = document.createElement( 'input' );
		btnOK.type = 'button';
		btnOK.onclick = deleteFeedbackPopup;
		btnOK.value = 'OK'
		btnOK.id = 'feedback_btn_ok';
		btnC.appendChild( btnOK );
		f.appendChild( btnC );

		document.body.appendChild( f );
	}

	var addStr = true;
	var lis = document.getElementById( 'feedbackul' ).getElementsByTagName( 'li' );
	for( var i = 0, l = lis.length; i < l; i++ )
	{
		if( lis[i].childNodes[0].nodeValue == str )
		{
			addStr = false;
		}
	}

	if( addStr )
	{
		var node = document.createElement( 'li' );
		node.appendChild( document.createTextNode( str ) );
		document.getElementById( 'feedbackul' ).appendChild( node );
	}

	if( window.document.documentElement.scrollTop != 0 )
	{
		f.style.top = window.document.documentElement.scrollTop + 200 + 'px';
	}

	return f;
}

function xScrollTop(e,bWin)
{
	var offset=0;
	if(!xDef(e)||bWin||e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body')
	{
		var w=window;
		if(bWin&&e)w=e;
		if(w.document.documentElement&&w.document.documentElement.scrollTop)offset=w.document.documentElement.scrollTop;
		else if(w.document.body&&xDef(w.document.body.scrollTop))offset=w.document.body.scrollTop;
	}
	else
	{
		e=xGetElementById(e);
		if(e&&xNum(e.scrollTop))offset=e.scrollTop;
	}
	return offset;
}

function deleteFeedbackPopup()
{
	var f = document.getElementById( 'feedback' );

	if( f ) f.parentNode.removeChild( f );
}

function addConfirmFeedback( str, fnCallback, context )
{
	var f = createFeedbackPopup( str );

	if( !document.getElementById( 'feedback_btn_cancel' ) )
	{
		var btnCn = document.createElement( 'input' );
		btnCn.type = 'button';
		btnCn.value = 'Avbryt'
		btnCn.id = 'feedback_btn_cancel';
		btnCn.onclick = deleteFeedbackPopup;
		document.getElementById( 'feedback_btn_container' ).appendChild( btnCn );
	}

	var okBtn = document.getElementById( 'feedback_btn_ok' );

	okBtn.onclick = function()
	{
		if( context && fnCallback.call ) fnCallback.call( context );
		else fnCallback();
	}
}

function makeHistLinks( a )
{
	a.onclick = back;
}

function back() { history.back(); }
function printPage() { window.print(); }

function findPos( obj ) 
{
	var curleft = curtop = 0;
	if( obj.offsetParent ) 
	{
		curleft = obj.offsetLeft;
		curtop = obj.offsetTop;
		while( obj = obj.offsetParent ) 
		{
			curleft += obj.offsetLeft;
			curtop += obj.offsetTop;
		}
	}
	return {x:curleft, y:curtop};
}

function xFirstChild( e, t )
{
	//e = document.getElementById( e );
	var c = e ? e.firstChild : null;
	while( c ) 
	{
		if( c.nodeType == 1 && ( !t || c.nodeName.toLowerCase() == t.toLowerCase() ) ) { break; }
		c = c.nextSibling;
	}
	return c;
}

function xGetElementsByClassName( c, p, t, f, cn )
{
	var r = new Array();
	var re = new RegExp("(^|\\s)"+c+"(\\s|$)");
	var e = p.getElementsByTagName( t );
	for( var i = 0; i < e.length; i++ )
	{
		if( re.test( e[i].className ) ) 
		{
			r[r.length] = e[i];
			if( f ) f( e[i] );
		}
	}
	return r;
}

function debug( str )
{
	mydebugger.innerHTML += str +' | ';
}

function trim( stringToTrim ) 
{
	return stringToTrim.replace( /^\s+|\s+$/g, '' );
}

function print_r( theObj )
{
	var msgs = document.createElement( 'div' );
	msgs.style.position = 'absolute';
	msgs.style.left = '100px';
	msgs.style.top = '100px';
	msgs.style.width = '300px';
	msgs.style.height = '300px';
	msgs.style.backgroundColor = '#FFF';
	msgs.style.border = '1px solid #000';
	msgs.style.zIndex = '10000000';
	document.body.appendChild( msgs );
	if( theObj.constructor == Array || theObj.constructor == Object)
	{
		msgs.innerHTML = msgs.innerHTML + "<ul>\n";
		for(var p in theObj)
		{
			if( theObj[p].constructor == Array || theObj[p].constructor == Object)
			{
				msgs.innerHTML = msgs.innerHTML + "<li>["+p+"] => "+typeof(theObj)+"\n";
				print_r( theObj[p] );
				msgs.innerHTML = msgs.innerHTML + "</li>\n";
			} 
			else 
			{
				msgs.innerHTML = msgs.innerHTML + "<li>["+p+"] => "+theObj[p]+"</li>\n";
			}
		}
		msgs.innerHTML = msgs.innerHTML + "</ul>\n";
	}
}