function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

function showMore(e){
	e.parentNode.style.display='none'; 
	e.parentNode.previousSibling.style.display='block';
}
function showLess(e){
	e.parentNode.style.display='none'; 
	e.parentNode.nextSibling.style.display='block';
}
function get_nextSibling(n)
{
y=n.nextSibling;
while (y.nodeType!=1)
  {
  y=y.nextSibling;
  }
return y;
}

function get_firstChild(n)
{
y=n.firstChild;
while (y.nodeType!=1)
  {
  y=y.nextSibling;
  }
return y;
}


var Booking = {
	e : "",
	error_avbrudd : 'En feil oppsto, mest sannsynlig pga. at du har vært inaktiv for lenge. <br/><a href="/ny/sjumilskogen/booking">Prøv på nytt ved å klikke her</a><br/>Dersom feilen vedvarer ber vi om at du tar kontakt med oss.',
	noerrors: false,
	init:function(fortsett){
		e = $('dashboard');
		var fortsett = ((typeof(fortsett) != 'undefined') && (fortsett == 'fortsett')) ? '&fortsett=fortsett' : '';
		e.innerHTML = Booking.formatLoader('Kontakter bookingserver...');
		
		
		YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', booking_callback_init, "steg=start" + fortsett);
		
	},
	init_handleSuccess:function(o){
		var response = o.responseText.split("-----s-----");
		if(response[0] == 'start'){
			var datoclean = response[1];
			var rangepicker = response[2];
			e.innerHTML = response[3];
			initcal(datoclean,rangepicker);
			this.updateTips();
			this.updateTabs();
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
	},
	updateTotalPrice:function(){
		var totalpris = 0;
		var pf = document.getElementsByTagName('span');
		for(i = 0; i < pf.length; i++){
			if(pf[i].className.indexOf("calculatethis") > -1){
				totalpris += (pf[i].innerHTML*1);
			}
		}
		
		$('totalpris').innerHTML = totalpris;
	},
	updateServicePrice:function(serviceid, groupid){
		$("servicefortsett").className = 'disabledknapp';	
		$("servicefortsett").disabled = true;
	
		
		if(typeof(groupid) == 'undefined' && $('service_antall'+serviceid).value != ''){
			var postData = "steg=updateServicePrice&serviceid="+serviceid+"&antall="+$('service_antall'+serviceid).value;
			$('service_subtotalcontainer'+serviceid).innerHTML = '<img src="/ny/bilder/indikator2.gif" />';
			 YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', booking_callback_updateServicePrice, postData);
		  
	   }
	   else if(typeof(groupid) != 'undefined' && $('service_antall_group'+groupid).value != ''){
		   var postData = "steg=updateServicePrice&serviceid="+serviceid+"&antall="+$('service_antall_group'+groupid).value+"&groupid="+groupid;
			$('service_subtotalcontainer_group'+groupid).innerHTML = '<img src="/ny/bilder/indikator2.gif" />';
			 YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', booking_callback_updateServicePrice, postData);
	   }
	   
	   
	},
	updateServicePrice_handleSuccess:function(o){
		var raw = o.responseText.split("-----s-----");
		
		if(raw[0] == 'updateServicePrice'){
			$('service_subtotalcontainer'+raw[1]).innerHTML = raw[2];
			
			if(raw[2].indexOf("warning") < 0){
				$("servicefortsett").className = 'knapp';	
				$("servicefortsett").disabled = false;	
			}
			
			this.updateTips();
			this.updateTotalPrice();
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
	},
	finnEnheter:function(fortsett) {
		if((typeof(fortsett) != 'undefined') && (fortsett == 'fortsett')){
			var postData = "steg=velgEnhet&fortsett=fortsett";			
		} else {
			
			var s = $('boenheter');
			var boenheter = "";
			var valgteboenheter = 0;
			for(i = 0; i < s.options.length; i++){
				if(s.options[i].selected == true){
					boenheter += s.options[i].value +"-";
					valgteboenheter++;
				}
			}
			
			if(boenheter != ""){
				boenheter = boenheter.substr(0,boenheter.length-1);
			}
			if(valgteboenheter == s.options.length){
				boenheter = "";
			}
			
		
			var postData = "steg=velgEnhet&antallPersoner="+$('antallPersoner').value+"&rangepicker="+$('rangepicker').value+"&dato="+$('dato').value+
			"&boenheter="+boenheter;
		}
		$('innercontent').innerHTML = this.formatLoader('Søker');
	   YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', booking_callback_finnEnheter, postData);
	},
	finnEnheter_handleSuccess:function(o){
		var response = o.responseText.split("-----s-----");
		if(response[0] == 'velgEnhet'){
			e.innerHTML = response[1];	
			
			var pf = document.getElementsByTagName('span');
			for(i = 0; i < pf.length; i++){
				if(pf[i].className.indexOf("wildcard") > -1){
					var id = pf[i].parentNode.id.split("sidebar_pris");
					id = id[1];
					if(document.getElementById('sidebar_info' + id).style.display == 'block'){
						var mainid = id.split("-");
						document.getElementById('sidebar_bookbtn' + mainid[0]).style.display = 'none';
					}
				}
			}
				
			this.updateTips();
			this.updateTabs();
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
		
		this.gaLog('Online booking - Finn enheter');
	},
	
	velgEnhet:function(enhetsid, seed) {
		if(enhetsid == 'fortsett'){
			var postData = "steg=velgTillegg&fortsett=fortsett";
		} else {
			
			var e = document.getElementsByTagName('input');
			var periode = "";
			for(i = 0; i < e.length; i++){
				if(e[i].className.indexOf("sidebar_radio"+seed) > -1 && e[i].checked){
					periode = e[i].value;
					periode = periode.split("+");
					i = e.length;
				}
			}
		
			var postData = "steg=velgTillegg&enhetsid="+enhetsid+"&fra="+periode[0]+"&til="+periode[1];
		}
		$('innercontent').innerHTML = this.formatLoader('Vennligst vent...');
	   YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', booking_callback_velgEnhet, postData);
	},
	velgEnhet_handleSuccess:function(o){
		var response = o.responseText.split("-----s-----");
		if(response[0] == 'velgTillegg'){
			e.innerHTML = response[1];
			var buttons = document.getElementsByTagName("input");
			for(i = 0; i < buttons.length; i++){
				if(buttons[i].className.indexOf("bookingbutton") > -1){
					buttons[i].style.display = 'none';
				}
			}
		
			
			this.updateTips();
			this.updateTabs();
			this.updateTotalPrice();
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
		
		this.gaLog('Online booking - Valgt enhet');
	},
	handlekurv:function(){
	
		var services = document.getElementsByTagName("input");
		var servicelist = "";
		for(i = 0; i < services.length; i++){
			if(services[i].className.indexOf("isaservicegroup") > -1){
				var sid = services[i].name.substr(14);
				
				sid = $("servicegroup"+sid).options[$("servicegroup"+sid).selectedIndex].value;
				
				var santall = services[i].value;
				
				if(sid.match("^[0-9]*$") != null && santall.match("^[0-9]*$") != null){
					servicelist += sid + "a" + santall + "-";
				}
			}
			else if(services[i].className.indexOf("isaservice") > -1){
				var sid = services[i].name.substr(14);
				var santall = services[i].value;
				
				if(sid.match("^[0-9]*$") != null && santall.match("^[0-9]*$") != null){
					servicelist += sid + "a" + santall + "-";
				}
			}
			 
		}
		
		
		$('innercontent').innerHTML = this.formatLoader('Vennligst vent...');
		var postData = "steg=handlekurv&servicelist="+servicelist;
		YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', booking_callback_handlekurv, postData);
		
	},
	handlekurv_handleSuccess:function(o){
		var response = o.responseText.split("-----s-----");
		if(response[0] == 'handlekurv'){
			e.innerHTML = response[1];
			var buttons = document.getElementsByTagName("input");
			for(i = 0; i < buttons.length; i++){
				if(buttons[i].className.indexOf("bookingbutton") > -1){
					buttons[i].style.display = 'none';
				}
			}
			this.updateTips();
			this.updateTabs();
			this.updateTotalPrice();
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
		
		this.gaLog('Online booking - Ved handlekurv');
	},
	valider:function(hva){
		
		$('fullfor1').style.display = 'block';
		$('fullfor2').style.display = 'none';		
		$('sendforesporsel').className = "disabledknapp";
		$('sendforesporsel').value ="Kontroller felter markert med rødt varselstegn, og klikk her";
		this.noerrors = false;
		
		if(hva == 'land'){
			var verdi = $(hva).options[$(hva).selectedIndex].value;
		} 
		else if(hva == 'leiebetingelser'){
			var verdi = ($(hva).checked) ? 'godtatt' : '';
		} else {
			var verdi = $(hva).value;
		}
		var postData = "steg=valider&hva="+hva+"&verdi="+verdi;
		var hvor = hva + "_validator";
		$(hvor).innerHTML = '<img src="/ny/bilder/indikator2.gif" alt="Loading" />';
		
		YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', {
				success:Booking.valider_handleSuccess,
				failure:Booking.handleFailure,
				scope: Booking,
				argument:[hvor]
				}, postData);
	},
	valider_handleSuccess:function(o){
	
		var response = o.responseText.split("-----s-----");
		if(response[0] == 'validering'){
			$(o.argument[0]).innerHTML = response[1];
			this.updateTips();
			
			var e = document.getElementsByTagName("img");
			var errorcount = 0;
			for(i = 0; i < e.length; i++){
				if(e[i].src.indexOf("warning") > -1){
					errorcount++;
				}
			}
			
			if(errorcount == 0){
				$('sendforesporsel').className = "knapp";
				$('sendforesporsel').value = "Send forespørsel";
				this.noerrors = true;
			} else {
				$('sendforesporsel').className = "disabledknapp";
				$('sendforesporsel').value ="Kontroller felter markert med rødt varselstegn, og klikk her";
				this.noerrors = false;
			}
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
	
		
		
	},
	captchaRegenerate:function(){
		$('captchaimage').src = '/ny/system/temp/captcha.php?seed=' + Math.random();
		this.valider('captcha');
	},
	fullfor:function(hva){
		
		
	
		if(this.noerrors){
			if((typeof(hva) != 'undefined') && (hva == 'send')){
				var postData = "steg=fullfor" +
							"&firmanavn="+$('firmanavn').value +
							"&fornavn="+$('fornavn').value +
							"&etternavn="+$('etternavn').value +
							"&adresse="+$('adresse').value +
							"&postnr="+$('postnr').value +
							"&sted="+$('sted').value +
							"&land="+$('land').value +
							"&mobil="+$('mobil').value +
							"&epost="+$('epost').value +
							"&typeopphold="+$('typeopphold').value +
							"&captcha="+$('captcha').value +
							"&kommentarer="+$('kommentarer').value;
			
			$('innercontent').innerHTML = this.formatLoader('Vennligst vent mens orderen fullføres...');
			YAHOO.util.Connect.asyncRequest('POST', '/ny/sjumilbooking_api.php', {
					success:Booking.fullfor_handleSuccess,
					failure:Booking.handleFailure,
					scope: Booking
					}, postData);
				
			} else {
				$('fullfor1').style.display = 'none';
				$('fullfor2').style.display = 'block';		
			}
		} 
		
		
	},
	fullfor_handleSuccess:function(o){
		var response = o.responseText.split("-----s-----");
		if(response[0] == 'fullfor'){
			e.innerHTML = response[1];
			this.updateTips();
		} else{
			e.innerHTML = this.formatError(this.error_avbrudd);
		}
		
		this.gaLog('Online booking - Fullført kjøp');
	},
	formatError:function(msg){
		return '<fieldset class="feilmelding"><legend>Feil</legend><p>'+msg+'</p></fieldset>';
	},
	
	formatLoader:function(msg){
		return '<div class="loader"><img src="/ny/bilder/indikator2.gif" alt="Loading" /><br/>'+msg+'</div>';
	},
	updateTips:function(){
		sweetTitles.init();
	},
	
	updateTabs:function(){
		initTabs();
	},
	handleFailure:function(o){
		e.innerHTML = this.formatError('En systemfeil har oppstått! Prøv igjen senere.');
	},
	visForetrukkede:function(hva){
		var e = document.getElementsByTagName('table');
		for(i = 0; i < e.length; i++){
		
			if(e[i].className.indexOf('enhet_tabell') > -1){
				if(e[i].className.indexOf('foretrukket') > -1){
					e[i].style.display = 'block'; 		
				} else {
					e[i].style.display = (hva) ? 'none' : 'block';
				}
			}
		}
	},
	selectAll:function(){
		$('bo_alle').style.display = 'block';
		$('bo_spesifik').style.display = 'none';
		$('bo_utvalgt').style.display = 'none';
		var s = $('boenheter');
		for(i = 0; i < s.options.length; i++){
			s.options[i].selected = true;
		}
	},
	selectSpecify:function(){
		$('bo_utvalgt').style.display = 'none';
		$('bo_alle').style.display = 'none';
		$('bo_spesifik').style.display = 'block';
	},
	settPeriode:function(seed,num){
		
		for(i = 0; i < 5; i++){
			var e = $("sidebar_periode"+seed+"-"+i);
			
			if(e != null && e.className.indexOf('sidebar_markert_ikketilbud') > -1 ){
				e.className = 'sidebar_ikketilbud';
			}
			else if(e != null && e.className.indexOf('sidebar_markert') > -1 ){
				e.className = 'sidebar_alternativ';
			}
			var e = $("sidebar_info"+seed+"-"+i);
			if(e != null && e.className.indexOf('sidebar_info') > -1){
				e.style.display = (e.id == 'sidebar_info'+seed+'-'+num) ? 'block' : 'none';
			}
		}
		
		$('sidebar_periode'+seed+'-'+num).className = ($('sidebar_periode'+seed+'-'+num).className == 'sidebar_ikketilbud') ? 'sidebar_markert_ikketilbud' : 'sidebar_markert';
		
		if($('sidebar_pris'+seed+'-'+num).firstChild.className.indexOf('wildcard') > -1){
			$('sidebar_bookbtn'+seed).style.display = 'none';
		} else {
			$('sidebar_bookbtn'+seed).style.display = 'block';
		}
			
		
	},
	selectGroupChange:function(groupid){
		var selectedid = $('servicegroup'+groupid).options[$('servicegroup'+groupid).selectedIndex].value;
		var selectedpris = $('servicegroup'+groupid).options[$('servicegroup'+groupid).selectedIndex].className;
		
		var e = document.getElementsByTagName('div');
		for(var i = 0; i < e.length; i++){
			
			if(e[i].className != null && e[i].className.indexOf("servicedesc_group"+groupid) > -1){
				
				e[i].style.display = 'none';
			}
		}
		$("serviceprice_group"+groupid).innerHTML = selectedpris+",-";
		$("servicedesc"+selectedid+"_group"+groupid).style.display = 'block';
		$("service_antall_group"+groupid).onkeyup = function(){ Booking.updateServicePrice(selectedid,groupid); };
		this.updateServicePrice(selectedid,groupid);
	},
	gaLog:function(page){
		try{
			trackerB._trackPageview(page);
		} catch(e){}
		try{
			trackerC._trackPageview(page);
		} catch(e){}
		
	}
	
};

/*
 * Define the callback object for success and failure
 * handlers as well as object scope.
 */
  var booking_callback_handlekurv =
{
	success:Booking.handlekurv_handleSuccess,
	failure:Booking.handleFailure,
	scope: Booking
};
 var booking_callback_updateServicePrice =
{
	success:Booking.updateServicePrice_handleSuccess,
	failure:Booking.handleFailure,
	scope: Booking
};
var booking_callback_finnEnheter =
{
	success:Booking.finnEnheter_handleSuccess,
	failure:Booking.handleFailure,
	scope: Booking
};
var booking_callback_velgEnhet =
{
	success:Booking.velgEnhet_handleSuccess,
	failure:Booking.handleFailure,
	scope: Booking
};
var booking_callback_init =
{
	success:Booking.init_handleSuccess,
	failure:Booking.handleFailure,
	scope: Booking
};




function initTabs(){
	var e = document.getElementsByTagName("div");
	for(i = 0; i<e.length; i++){
		if(e[i].className.indexOf("tabhead") > -1){
			addEvent(e[i],"click",showTab);
		}
	}
}
function showTab(hvilken){
	var e = document.getElementsByTagName("div");
	
	var target = event.target ? hvilken.target.getAttribute("title") : hvilken.srcElement.getAttribute("title");
	for(i = 0; i < e.length; i++){
		if(e[i].className.indexOf("tabhead") > -1){
			if(e[i].getAttribute("title") == target){
				e[i].className = e[i].className.replace(/tabheadoff-/ig,"tabhead-");
			}
			else{
				e[i].className = e[i].className.replace(/tabhead-/ig,"tabheadoff-");
			}
		}
	
		if(e[i].className.indexOf("tabcontent") > -1){
			if(e[i].getAttribute("title") == target){
				e[i].style.display = "block";
			}
			else{
				e[i].style.display = "none";
			}
		}
	}
}





YAHOO.util.Event.onDOMReady(Booking.init);
YAHOO.util.Connect.setDefaultPostHeader(false);
YAHOO.util.Connect.initHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1","true"); 
