var onloadListeners = new Array();
function addOnloadListener( fn )
{
	onloadListeners[onloadListeners.length] = fn;
}

window.onload = function()
{
	var btn = xGetElementById( 'feedback_btn_ok' );
	if( btn )
	{
		btn.onclick = function()
		{
			deleteFeedbackPopup();
			return false;
		}
	}

	xGetElementById( 'targetblankexternallinks' ).onclick = setExternalLinkTargets;

	var f = xGetElementById( 'feedback' );
	if( xScrollTop() != 0 && f )
	{
		f.style.top = xScrollTop() + 200 + 'px';
	}

	for( var i = 0, l = onloadListeners.length; i < l; i++ )
	{
		onloadListeners[i]();
	}
	var path = document.location.href;
	path = path.replace( /^http:\/\/[^/]+/, '' );
	var navi = xGetElementById( 'navigation' );

	if( navi )
	{
		var a = navi.getElementsByTagName( 'a' );
		for( var i = 0, l = a.length; i < l; i++ )
		{
			if( a[i].href.replace( /^http:\/\/[^/]+/, '' ) == path )
			{
				a[i].className = 'active';
			}
		}
	}

	var a = xGetElementById( 'secondmenu' ).getElementsByTagName( 'a' );
	for( var i = 0, l = a.length; i < l; i++ )
	{
		if( path.indexOf( a[i].href.replace( /^http:\/\/[^/]+/, '' ) ) != -1 )
		{
			a[i].className = 'active';
		}
	}

}

function setExternalLinkTargets()
{
	var target;
	var targetBlank = document.getElementById( 'targetblankexternallinks' ).checked;
	if( targetBlank ) target = 1;
	else target = 0;
	xSetCookie( 'targetBlank', target, new Date( '2020-10-10' ) );

	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 fadeAndDelete( elem )
{
	var op = xOpacity( elem );

	if( op == 0 )
	{
		elem.parentNode.removeChild( elem );
	}
	else
	{
		xOpacity( elem, op - 0.1 );
		setTimeout( function() 
		{
			fadeAndDelete( elem )
		}, 50 );
	}
}

function createFeedbackPopup()
{
	var f = xGetElementById( 'feedback' )

	if( !f )
	{
		var f = createEl( 'div', false, 'feedback' );
		var p = createEl( 'p', 'Meddelande' );
		f.appendChild( p );
		var ul = createEl( 'ul', false, 'feedbackul' );
		f.appendChild( ul );
		var btnC = createEl( 'div', false, 'feedback_btn_container' );
		var btnOK = document.createElement( 'input' );
		btnOK.type = 'button';
		btnOK.value = 'OK';
		btnOK.id = 'feedback_btn_ok';
		btnOK.onclick = deleteFeedbackPopup;
		btnC.appendChild( btnOK );
		f.appendChild( btnC );

		document.body.appendChild( f );
	}

	return f;
}

function addFeedback( str )
{
	var f = createFeedbackPopup();

	// Want to make sure we don't add the same string twice
	var addStr = true;
	var lis = xGetElementById( '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 = createEl( 'li', str );
		xGetElementById( 'feedbackul' ).appendChild( node );
	}

	if( xScrollTop() != 0 )
	{
		f.style.top = xSrollTop() + 200 + 'px';
	}
}

function deleteFeedbackPopup()
{
	var f = xGetElementById( 'feedback' );
	if( f ) f.parentNode.removeChild( f );
}

function addConfirmFeedback( str, fnCallback, context )
{
	var f = createFeedbackPopup( str );

	if( !xGetElementById( 'feedback_btn_cancel' ) )
	{
		var btnCn = createInput( 'Avbryt', 'feedback_btn_cancel', 'button' );
		btnCn.onclick = deleteFeedbackPopup;
		xGetElementById( 'feedback_btn_container' ).appendChild( btnCn );
	}

	var okBtn = xGetElementById( 'feedback_btn_ok' );

	okBtn.onclick = function()
	{
		if( context && fnCallback.call ) { fnCallback.call( context ); }
		else fnCallback();
	}
}

function createEl( tag, text, id )
{
	var element = document.createElement( tag );
	if( text ) element.appendChild( document.createTextNode( text ) );
	if( id ) element.id = id;
	return element;
}

function createInput( value, id )
{
	var input = document.createElement( 'input' );

	if( value ) input.value = value;
	if( id ) { input.id = id; input.name = id; }
	return input;
}

function initNavi()
{
	var navi = document.getElementById( 'navigation' );
	if( !navi ) return;
	var links = navi.getElementsByTagName( 'a' );

	for( var i = 0, l = links.length; i < l; i++ )
	{
		links[i].onclick = naviOnclick;
	}
}

function naviOnclick( e )
{
	if( !e ) { e = window.event; }
	var target = e.target || e.srcElement;
	target.blur();

	var sib = xNextSib( target );
	if( sib )
	{
		if( sib.style.display != 'block' )
		{
			sib.style.display = 'block';
		}
		else
		{
			sib.style.display = 'none';
		}
		return false;
	}
}

addOnloadListener( initNavi );

function initWords()
{
	var mekk = xGetElementsByClassName( 'word', xGetElementById( 'contents' ), 'a', function( a ) { 
		a.onmouseover = wordMouseOver; 
		a.onmouseout = wordMouseOut;
		a.onclick = function () { return false; }
		a.title = '';
	} );
}

function findPos( el )
{
	var curleft = curtop = 0;
	if( el.offsetParent ) 
	{
		curleft = el.offsetLeft;
		curtop = el.offsetTop;
		while( el = el.offsetParent )
		{
			curleft += el.offsetLeft;
			curtop += el.offsetTop;
		}
	}
	return [curleft, curtop];
}

function wordMouseOver( e )
{
	var evt = new xEvent( e );

	var id = this.id.replace( /^word_/, '' );
	var div = xGetElementById( 'expl_' + id );

	var left = evt.pageX;
	if( left > 430 ) left = 430;
	div.style.left = left + 20 + 'px';
	div.style.top = evt.pageY + 20 + 'px';
	div.style.display = 'block';
}

function wordMouseOut()
{
	var id = this.id.replace( /^word_/, '' );
	var div = xGetElementById( 'expl_' + id );

	if( div ) div.style.display = 'none';
}

addOnloadListener( initWords );