// Fix urls!
var loc = document.location + "";
if ( loc.substr ( loc.length - 4, 4 ) != '/no/' && loc.indexOf ( 'onsorer' ) < 0 )
{
	document.location = document.getElementsByTagName ( 'base' )[0].href + 'no/';
}

var iPad = navigator.userAgent.indexOf ( 'iPad' ) >= 0;
var boxcentering = 0;
var firstbox = 0;
var theScrollSpeed = 520;
var newsTimeout = false;
var lastClickLink;

// Preloads all content
function initTopMenu()
{
	if ( document.getElementById ( 'TopMenu__' ) )
	{
		// Inits some vars
		scrollerFunc();
		daynight();
		
		// Setup a scrollcontainer
		var scContainer = document.createElement ( 'div' );
		scContainer.id = 'ScrollContainer';
		document.getElementById ( 'InnerContent__' ).appendChild ( scContainer );
		
		// Setup the first child
		var hf = document.getElementById ( 'Hovedfelt' );
		// amended with movement of news!
		var nyh = document.getElementById( "Nyheter" );
		var old = nyh.parentNode;
		hf.appendChild ( nyh );
		// ga
		var first = document.createElement ( 'div' ); first.className = 'Hovedfelt';
		first.innerHTML = hf.innerHTML;
		first.style.left = boxcentering+'px';
		hf.parentNode.removeChild ( hf );
		scContainer.appendChild ( first );
		
		// Special event for logo
		var log = document.getElementById ( "Logo" ).getElementsByTagName( "a" )[0];
		log.href = "javascript:void(0)";
		log.onclick = function ()
		{
			lastClickLink = this;
			document.currentLink = this;
			var linkz = document.getElementById ( 'TopMenu__' ).getElementsByTagName ( 'a' );
			for ( var aa = 0; aa < linkz.length; aa++ )
				linkz[aa].className = '';
			document.currentX = scContainer.scrollLeft+boxcentering;
			document.targetX = 0;
			document.phase = 0;
			document.ptStart = gtime();
			scrollerFunc();
		}
		
		var links = document.getElementById ( 'TopMenu__' ).getElementsByTagName ( 'a' );
		var sw = screen.width; if ( sw < 1200 ) sw = 1200;
		document.currentLink = 0; // current link nr from topmenu
		
		// Store image
		var dagenidag = document.getElementById( "dagenidag" );
		var imgsrc = dagenidag.src;
		for ( var a = 0; a < links.length; a++ )
		{
			var oldlink = links[a].href;
			links[a].href = "javascript:void(0)";
			links[a].offset = a*sw;
			links[a].a = a;
			links[a].onclick = function ()
			{
				lastClickLink = this;
				document.currentLink = this.a;
				var linkz = document.getElementById ( 'TopMenu__' ).getElementsByTagName ( 'a' );
				for ( var aa = 0; aa < linkz.length; aa++ )
					linkz[aa].className = '';
				this.className = 'current';
				document.currentX = scContainer.scrollLeft+boxcentering;
				document.targetX = this.offset;
				document.phase = 0;
				document.ptStart = gtime();
				scrollerFunc();
			}
			links[a].appendChild(document.createElement ( 'div' ));
			if ( a < 1 ) continue;
			var b = new bajax ();
			b.openUrl ( oldlink, 'get', true );
			b.loaded = false;
			b.ind = a;
			links[a].b = b;
			links[a].b.link = links[a];
			
			b.onload = function ()
			{ 
				this.loaded = true; 
				// Get data and retrieve only "Felt1"
				this.data = this.getResponseText ();
				if ( this.data.length )
				{
					var div = document.createElement ( 'div' );
					var idag = document.createElement( 'img' );
					idag.src = imgsrc;
					idag.className = "dagenidag";
					idag.alt = "Dagen i dag - i morgen";
					this.data = this.data.split ( 'Felt1">' )[1];
					this.data = this.data.split ( 'Felt2">' )[0];
					this.data = this.data.split ( '</div>' );
					this.data.pop ();
					this.data = this.data.join ( '</div>' );
					
					this.data = this.data.split ( 'id="Hovedfelt"' ).join ( 'class="Hovedfelt"');
					div.innerHTML = this.data.split ( /id=["]{0,1}Bilder["]{0,1}/i ).join ( 'class="Bilder"' );
					// Check for image galleries
					if ( 
						div.innerHTML.indexOf ( 'class="Bilder"' ) > 0 ||
						div.innerHTML.indexOf ( 'class=Bilder' ) > 0
					)
					{
						div.innerHTML += '<div class="ImageNavigation">' +
							'<div class="Up" onclick="ScrollImages(this,-1)"></div>' +
							'<div class="Down" onclick="ScrollImages(this,1)"></div>' +
							'</div>';
					}
					var cn = this.link.innerHTML+'';
					cn = cn.split ( /<[^>]*?>/i ).join ( '' ).split ( /[ ]/i ).join ( '' );
					cn = cn.split ( "/" ).join ( "_" );
					cn = cn.split ( /[ø|æ|å|Ø|Æ|Å]{1,2}/i ).join ( '_' );
					if(cn.indexOf ( "Styret_Kontakt" ) < 0 )
					{
						div.appendChild(idag);
					}
					
					div.className = cn;
					div.style.width = '992px';
					div.style.position = 'absolute';
					div.style.left = this.link.offset + 'px';
					document.getElementById ( 'ScrollContainer' ).appendChild ( div );
					
					
					
					// Move news elenent on all but the main page
					if ( this.ind > 0)
					{
						if(cn.indexOf( "Styret_Kontakt" ) < 0){
							var nh = document.createElement ( 'div' );
							nh.innerHTML = nyh.innerHTML;
							nh.className = "Nyheter";
							var eles = div.getElementsByTagName ( 'div' );
							for ( var k = 0; k < eles.length; k++ )
							{
								if ( eles[k].className == "Hovedfelt" )
								{
									eles[k].innerHTML = "<div class=\"Container\">" + eles[k].innerHTML + "</div>";
									eles[k].appendChild ( nh );
								}
							}
						}
					}
					
					// Change form action
					
					if ( !document.fform && this.ind == 4 )
					{
						setupFormElement ();
					}
				}
				else { /* we have error */ }		
			}
			if ( isIE ) // || ( isMozilla && !isWebkit ) )
			{
				links[a].onmouseover = function ()
				{
					var d = this.getElementsByTagName ( 'div' )[0];
					if ( this.className.indexOf ( 'small' ) >= 0 ) return setOpacity ( d, 1 );
					fadeElement ( d, 1);
				}
				links[a].onmouseout = function ()
				{
					var d = this.getElementsByTagName ( 'div' )[0];
					if ( this.className.indexOf ( 'small' ) >= 0 ) return setOpacity ( d, 1 );
					fadeElement ( d, 0 );
				}
				setOpacity ( links[a].getElementsByTagName ( 'div' )[0], 0 );
			}
			b.send();
		}
		var exSpace = document.createElement ( 'div' );
		exSpace.id = 'exspace';
		exSpace.style.position = 'absolute';
		exSpace.style.width = links.length * screen.width + 'px';
		exSpace.style.top = '0px';
		exSpace.style.left = '0px';
		exSpace.style.height = '10px';
		scContainer.appendChild ( exSpace );
	}
	else
	{
		setTimeout ( "initTopMenu()", 25 );
	}
}
initTopMenu();

function setupFormElement ()
{
	
}

function checkForm ()
{
	var frm = document.getElementById ( 'formifr' );
	var eles = frm.getElementsByTagName ( 'input' );
	var jax = new bajax ();
	jax.openUrl ( 'no/paamelding/?action=sendcontact', 'post', true );
	if ( frm.Aksept.value != '1' )
	{
		alert ( 'Du må akseptere vilkår' );
		return;
	}
	if ( frm.Navn.value.length < 1 )
	{
		alert ( 'Du må skrive inn navnet ditt.' );
		frm.Navn.focus ();
		return false;
	}
	if ( frm.Email.value.length < 1 )
	{
		alert ( 'Du må skrive inn e-post adressen din.' );
		frm.Email.focus ();
		return false;
	}
	if ( frm.Fakturaadresse.value.length < 1 )
	{
		alert ( 'Du må skrive inn fakturaadressen din.' );
		frm.Fakturaadresse.focus ();
		return false;
	}
	for ( var a = 0; a < eles.length; a++ )
	{
		switch ( eles[a].type )
		{
			case 'text':
			case 'hidden':
				if ( eles[a].value == '0' ) 
					eles[a].value = 'Nei';
				else if ( eles[a].value == '1' )
					eles[a].value = 'Ja';
				jax.addVar ( eles[a].name, eles[a].value );
				break;
			default:
				break;
		}	
	}
	jax.onload = function ()
	{
		alert ( this.getResponseText () );
	}
	jax.send ();
	frm.reset ();
}


// Scroll galleryimages
function ScrollImages ( o, dir )
{
	if ( o )
	{
		if ( document.vsc && document.vsc.inter )
			return;
		document.vsc = new Object (); var vsc = document.vsc;
		vsc.dom = o.parentNode.parentNode.childNodes[isIE ? 1 : 2];
		vsc.alpha = 0;
		vsc.dir = dir;
		vsc.inter = setInterval ( 'ScrollImages()', 15 );
		vsc.ty = vsc.dom.scrollTop + ( 440 * dir );
		vsc.cy = vsc.dom.scrollTop;
		vsc.pst = gtime();
	}
	else 
	{
		var vsc = document.vsc;
		if ( vsc.alpha < 1 )
		{
			vsc.alpha = (gtime() - vsc.pst) / theScrollSpeed;
		}
		else { clearInterval ( vsc.inter ); vsc.inter = false; }
		if ( vsc.alpha > 1 ) vsc.alpha = 1;
		var miy = Math.min ( vsc.ty, vsc.cy );
		var may = Math.max ( vsc.ty, vsc.cy )-miy;
		var p = Math.sin(Math.pow(vsc.alpha,3)*90*Math.PI/180);
		vsc.dom.scrollTop = miy + ( may * (vsc.dir==1?p:(1-p) ) );
	}
}

// Scrolls to current target position
function scrollerFunc ()
{
	boxcentering = Math.floor((document.body.offsetWidth-992)*0.5);
	
	if ( document.currentX == document.targetX ) 
		return;
		
	if ( document.phase < 1 )
	{
		document.phase = (gtime () - document.ptStart) / theScrollSpeed;
		setTimeout ( 'scrollerFunc()', 15 );
	}
	if ( document.phase > 1 ) document.phase = 1;
	var pw = Math.sin(Math.pow(document.phase,3)*90*Math.PI/180);
	pw = document.currentX > document.targetX ? 1-pw : pw;	
	var lx = Math.min ( document.currentX, document.targetX );
	var hx = Math.max ( document.currentX, document.targetX )-lx;
	var cx = hx * pw + lx;	
	document.getElementById ( 'ScrollContainer' ).scrollLeft = cx-boxcentering; //scrollTo ( cx, 0 );
}

window.onresize = function ()
{
	boxcentering = Math.floor((document.body.offsetWidth-992)*0.5);
	var sc = document.getElementById ( 'ScrollContainer' );
	sc.getElementsByTagName ( 'div' )[0].style.left = boxcentering + 'px';
	if ( lastClickLink )
		lastClickLink.onclick();
}

function fadeElement ( el, v, t, endfunc )
{
	if ( el )
	{
		if ( endfunc ) 
			el.endfunc = endfunc;
		else el.endfunc = false;
		
		if ( el.interval ) clearInterval ( el.interval );
		el.v = v == 1 ? 0 : 0.5;
		el.mode = v == 1 ? 'in' : 'out';
		if ( !el.id ) el.id = 'ele'+Math.floor(Math.random()*100+Math.random()*100+Math.random()*100);
		el.t = t ? t : 0.5;
		el.fade = function ()
		{
			if ( this.mode == 'in' )
			{
				setOpacity ( this, 0 );
				this.v += 0.1; setOpacity ( this, this.v );
				if ( this.v >= this.t ) 
				{
					if ( this.endfunc ) this.endfunc();
					clearInterval ( this.interval );
				}
			}
			else
			{
				this.v -= 0.1; setOpacity ( this, this.v );
				if ( this.v <= 0 ) 
				{
					if ( this.endfunc ) this.endfunc();
					clearInterval ( this.interval );
				}
			}
		}
		el.interval = setInterval ( 'document.getElementById(\''+el.id+'\').fade()', 15 ) ;
	}
}

// Insert iPad CSS
if ( iPad )
{
	var l = document.createElement ( 'link' );
	l.rel = 'stylesheet';
	l.href = 'upload/ipad.css';
	l.media = 'only screen and (max-device-width: 1024px)';
	document.getElementsByTagName ( 'head' )[0].appendChild ( l );
}

// Hide the newsticker
var _ntshowing = false;
function hideNewsTicker ()
{
	clearTimeout ( newsTimeout );
	if ( _ntshowing )
	{
		fadeElement ( document.getElementById ( 'NewsTicker' ), 0 );
		_ntshowing = false;
	}
}
function showNewsTicker ()
{
	if ( !_ntshowing )
	{
		fadeElement ( document.getElementById ( 'NewsTicker' ), 1, 1 );
		_ntshowing = true;
		scrollNews ();
	}
}
// Start news ticker
function initNewsTicker ()
{
	_ntshowing = true;
	var nt = new Object ();
	nt.dom = document.createElement ( 'div' ); nt.dom.id = 'NewsTicker';
	document.body.appendChild ( nt.dom ); nt.dom.object = nt;
	nt.container =document.createElement ( 'div' ); nt.container.id = 'TickerContents';
	nt.dom.appendChild ( nt.container );
	nt.news =document.createElement ( 'div' ); nt.news.id = 'News';
	nt.dom.appendChild ( nt.news );
	var t = new bajax (); 
	t.nt = nt;
	var first = false;
	t.openUrl ( 'no/aktuelle_nyheter/index.html?arenamode=xml', 'get', true );
	t.onload = function ()
	{
		var xml = this.getResponseXML ();
		var items = xml.getElementsByTagName ( 'div' );
		var news = new Array ();
		for ( var a = 0; a < items.length; a++ )
		{
			if ( !items[a].getAttribute ( 'class' ) )
				continue;
			if ( items[a].getAttribute ( 'class' ).indexOf ( 'Newsitem' ) )
			{
				var n = document.createElement ( 'div' );
				var no = items[a].getElementsByTagName ( 'h2' )[0];
				if ( !no ) continue;
				var da = items[a].getElementsByTagName ( 'text' )[0];
				var ln = items[a].getElementsByTagName ( 'a' )[0];
				if ( ln ) ln = 'getNews(\''+ln.getAttribute ( 'href' )+'\')';
				else ln = '';
				n.className = 'TickerNews';
				n.style.height = '20px';
				var dt = da.firstChild.nodeValue.split(' ')[1]+': ' + no.firstChild.nodeValue;
				n.innerHTML = ln ? ( '<a href="javascript:void(0)" onclick="'+ln+'">'+dt+'</a>' ) : dt;
				this.nt.news.appendChild ( n );
				if ( !first ) 
				{
					first = document.createElement ( 'div' );
					first.className = 'TickerNews'; first.style.height = '20px';
					first.innerHTML = n.innerHTML;
				}
			}
		}
		// Add first news item also on the bottom
		if ( first )
			this.nt.news.appendChild ( first );
		nt.news.num = 0;
		nt.news.top = 40;
		nt.news.firstChild.style.marginTop = nt.news.top + 'px';
		if ( newsTimeout ) clearTimeout ( newsTimeout );
		newsTimeout = setTimeout ( 'scrollNews()', 100 );
	}
	t.send ();
}
function scrollNews ()
{
	if ( !_ntshowing ) return;
	var nn = document.getElementById ( 'News' );
	nn.value = 0;
	nn.otop = nn.top;
	tween ( nn, 1, 10, 
		function ()
		{
			this.top = this.otop - (40*this.value);
			this.firstChild.style.marginTop = Math.floor ( this.top ) + 'px';
		}, 
		function ()
		{
			if ( this.num == this.childNodes.length-1 )
			{
				this.num = 0;
				this.top = 0;
				this.otop = 0;
			}
			this.num++;
			if ( newsTimeout ) clearTimeout ( newsTimeout );
			newsTimeout = setTimeout ( 'scrollNews()', 4000 );
		} 
	);			
}
function inArray (ke, ar)
{
	for ( var a = 0; a < ar.length; a++ )
		if ( ar[a] == ke ) return true;
	return false;
}
function sendbcontact ()
{
	var inps = document.getElementById ( 'ContactForm' ).getElementsByTagName ( '*' );
	var str = '';
	for ( var a = 0; a < inps.length; a++ )
	{
		if ( ( 'input select textarea' ).indexOf ( inps[a].tagName.toLowerCase() ) < 0 )
			continue;
			
		if ( inps[a].className == 'required' && inps[a].value.length < 1 )
		{
			alert ( 'Du må fylle ut ' + inps[a].name.toLowerCase() + '.' );
			inps[a].focus();
			return false;
		}
		str += inps[a].name + ': ' + inps[a].value + '<br/>';
	}
	var j = new bajax ();
	j.addVar ( 'send', 1 ); j.addVar ( 'message', str );
	j.openUrl ( 'no/kontakt/index.html', 'post', true );
	j.onload = function () { alert ( 'Takk for din interesse! Meldingen er sendt!' ) }
	j.send ();
}

function daynight()
{
	var d = new Date();
	if( d.getHours()>20 || d.getHours()<7 )
	{
		var landscape = document.getElementById( "Empty__" );
		landscape.style.background = "#0f0f0f url(upload/images-master/landskap_skoeyt_2_natt.jpg) center 105px";
	}
}

// Get current time
function gtime ()
{
	var d = new Date (); 
	return d.getTime();
}

// Tween function
var _tweens = new Array ();
function tween ( ob, target, time, func, completefunc )
{
	if ( ob )
	{
		ob.tween = tween;
		if ( func ) ob.func = func;
		if ( completefunc ) ob.completefunc = completefunc;
		else ob.completefunc = false;
		ob.current = ob.value ? ob.value : 0;
		ob.target = target;
		ob.strt = gtime();
		ob.end = ob.strt+(time*100);
		ob.span = ob.end - ob.strt;
		ob.phase = 0;
		ob.interval = setInterval ( 'document.getElementById(\''+ob.id+'\').tween()', 25 );
		// Register with tween list
		var fnd = 0;
		for ( var a = 0; a < _tweens.length; a++ )
		{
			if ( _tweens[a] == ob )
			{
				fnd = true;
				break;
			}
		}
		if ( !fnd ) _tweens.push ( ob );
	}
	else
	{
		var diff = this.current - this.target;
		var pphase = this.phase;
		this.phase = (1-(this.end-gtime())/this.span);
		if ( this.phase == this.pphase ) return;
		var tph = this.phase;
		this.phase = -Math.sin ((((this.phase*0.5)*360)+90)*Math.PI/180)*0.5+0.5;
		if ( tph >= 1 )
		{
			this.phase = 1;
			clearInterval ( this.interval );
			stopTween ( this );
		}
		this.value = this.current-(this.phase*diff);
		if ( this.func ) this.func();
		if ( this.phase == 1 ) if ( this.completefunc ) this.completefunc();
	}

function stopTween ( ob )
{
	var out = new Array ();
	for ( var a = 0; a < _tweens.length; a++ )
	{
		if ( ob && ob == _tweens[a] )
		{
			clearInterval ( _tweens[a].interval );
			continue;
		}
		else if ( !ob ) clearInterval ( _tweens[a].interval );
		out.push ( _tweens[a] );
	}
	if ( ob )
		_tweens = out;
	else _tweens = new Array ();
}

// Fade something in our out
function fade ()
{
	setOpacity ( this, Math.pow ( this.value, 2) );
}

// Move camera to a new coordinate
function moveTo ()
{
	var m = document.getElementById ( 'movie' );
	m.scrollLeft = Math.floor(pcx-((pcx-cx)*this.value));
	m.scrollTop = Math.floor(pcy-((pcy-cy)*this.value));
}
}
// Stop all tweens, or just one tween

