/* $Rev: 12986 $ */

var ue_meassure = false;
var ue_page_started = 0;
var ue_page_fetched = 0;
var ue_page_rendered = 0;
var ue_section = 'none';
var ue_articleid = 0;
var ue_resolution = 0;
var ue_track = 'none';

var click_statistik_scale = 10;

function ueUrlencode(str) {
	return escape(str).replace('+', '%2B').replace('%20', '+').replace('*', '%2A').replace('/', '%2F').replace('@', '%40');
}
function ueUrlParam( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function uePageFetchComplete() {
	ue_page_fetched = (new Date()).getTime();
}

function uePageRenderComplete() {
	ue_page_rendered = (new Date()).getTime();
	
	var time_fetched = (ue_page_fetched - ue_page_started);
	var time_rendered = (ue_page_rendered - ue_page_fetched);
	var os = navigator.userAgent;
	if (os.length>=252) os=os.substring(0,252)+"...";
	var referrer = document.referrer;
	if (referrer.length>=252) referrer=referrer.substring(0,252)+"...";

	
	(new Image()).src = 'http://jp.dk/eceLoggerServlet?transfer=' + time_fetched
	+ '&render=' + time_rendered 
	+ '&section=' + ue_section 
	+ '&articleid=' + ue_articleid
	+ '&server=' + ue_track
	+ '&ver=2'
	+ '&resolution=' + ue_resolution
	+ '&userAgent=' + ueUrlencode(os)
	+ '&referrer=' + ueUrlencode(referrer) ;

}

function uePageRenderStart() {
	var os = navigator.userAgent;
	if (os.length>=252) os=os.substring(0,252)+"...";
	var referrer = document.referrer;
	if (referrer.length>=252) referrer=referrer.substring(0,252)+"...";
	
	(new Image()).src = 'http://jp.dk/eceLoggerServlet?transfer=0&render=0' 
	+ '&section=start_' + ue_section 
	+ '&articleid=' + ue_articleid
	+ '&server=' + ue_track
	+ '&ver=2'
	+ '&resolution=' + ue_resolution
	+ '&userAgent=' + ueUrlencode(os)
	+ '&referrer=' + ueUrlencode(referrer) ;
}

function ueInit(resolution,section,aid) {

	if( Math.floor(Math.random()*resolution+1) == 1 ){
		ue_meassure = true;
		ue_page_started = (new Date()).getTime();
		ue_page_fetched = ue_page_started;
		ue_page_rendered = ue_page_started;
		ue_resolution = resolution;
		ue_section = section;
		ue_articleid = aid;
		ue_track = ueUrlParam( 'track' );
		
		window.addEvent('domready', function() {
			uePageFetchComplete();
		});
		
		window.addEvent('load', function() {
			uePageRenderComplete();
		});
	}

}

// DROPDOWN MENU -->
function bjaelke(tekst){
  bi++;
  if(tekst == ''){tekst = "&nbsp;";}
  content += '<div class="ddmSecBG"><div class="ddmSec">'+tekst+'</div><div id="b'+bi+'" onmouseover="DropdownOver(\'b'+bi+'\');" style="visibility: hidden; position: absolute" onmouseout="DropdownOut(\'b'+bi+'\');"></div></div>';
}

function blank(){
}

function menupunkt(tekst,link,target,js){
  mi++;
  var jslink = "";
  if(js == 1){
  		jslink = ' onclick="'+link+'"';
  		link = 'javascript:void(0);';
  }
  if(target == ''){target = "_top";}
  if(tekst == ''){tekst = "&nbsp;";}
  content += '<div class="ddmLinkBG"><a href="'+link+'"'+jslink+' class="ddmLink" target="'+target+'" onfocus="blur();">'+tekst+'</a><div id="b'+bi+'m'+mi+'" onmouseover="DropdownOver(\'b'+bi+'m'+mi+'\');" style="visibility: hidden; position: absolute" onmouseout="DropdownOut(\'b'+bi+'m'+mi+'\');"></div></div>';
}

// Skjul <select> ved dropdown -->

function selectSpecialHide(from,to,vis){
	var div
	for(var i=from;i<=to;i++){
		div=getElement("hideElement"+i);
		if(div) {
			if(NS4){
				div.visibility=vis?"show":"hide"
			}else{
				div.style.visibility=vis?"visible":"hidden"
			}
		}
	}
	if (timeoutHideSel != 0) {
		clearTimeout(timeoutHideSel);
		timeoutHideSel = 0;
	}
}

function selectSpecialShow(from,to,vis){
	timeoutHideSel = setTimeout('selectSpecialHide(\''+from+'\',\''+to+'\',\''+vis+'\');', 500);
}

timeoutHideSel = 0;

thisBrowser=false
thisBrowserver=0
IE4=!!document.all
W3C=DOM=!!document.getElementById
NS4=!!document.layers
Mac=(navigator.appVersion.indexOf("Mac")!=-1)
if((i=navigator.userAgent.indexOf('Opera'))!=-1){
	thisBrowser='opera'
	thisBrowserver=parseFloat(navigator.userAgent.substr(i + 6, 3))
}else if((i=navigator.userAgent.indexOf('MSIE'))!=-1){
	thisBrowser='msie'
	thisBrowserver=parseFloat(navigator.userAgent.substr(i + 5, 3))
}else if((i=navigator.userAgent.indexOf('Gecko'))!=-1){
	thisBrowser='gecko'
	thisBrowserver=navigator.userAgent.substr(i + 6, 8)
}else if(NS4){
	thisBrowser='ns4'
}else if(navigator.userAgent.indexOf('Konqueror')!=-1){
	thisBrowser='konqueror'
}

function getElement(id){
	return W3C?document.getElementById(id):
		IE4?document.all[id]:
		NS4?document[id]:false;
}



//-------------------------------------

// FONT RESIZE -->
var size=13;
function sizeUp() { 
  updatetext(size < 20 ? ++size : size);
}
function sizeDown() { 
  updatetext(size > 9 ? --size: size); 
}
function updatetext(newsize){
  var txts = document.getElementsByTagName("p");
  for (i = 0;i < txts.length;i++) {
    var name = txts[i].className;
    if (name == "") txts[i].style.fontSize = newsize+"px";
//  if (name == "objCaption") txts[i].style.fontSize = (newsize-4)+"px";
    if (name == "artDato" || name == "artByline") txts[i].style.fontSize = (newsize-3)+"px";
  }
  var opd = document.getElementsByTagName("span");
  for (i = 0;i < opd.length;i++){var name = opd[i].className; if (name == "Opd") opd[i].style.fontSize = (newsize-3)+"px";}
  var link = document.getElementsByTagName("a");
  for (i = 0;i < link.length;i++){var name = link[i].className;if (name == "artByline") link[i].style.fontSize = (newsize-3)+"px";}
//var rel = document.getElementsByTagName("div");
//for (i = 0;i < rel.length;i++){var name = rel[i].id; if (name == "relArt") rel[i].style.fontSize = (newsize-2)+"px";}
  var h1 = document.getElementsByTagName("h1"); for (i = 0;i < h1.length;i++){h1[i].style.fontSize = (newsize+17)+"px";}
  var h2 = document.getElementsByTagName("h2"); for (i = 0;i < h2.length;i++){h2[i].style.fontSize = (newsize+8)+"px";}
  var h3 = document.getElementsByTagName("h3"); for (i = 0;i < h3.length;i++){h3[i].style.fontSize = (newsize+5)+"px"; h3[i].style.lineHeight = (newsize+3)+"px";}
  var h4 = document.getElementsByTagName("h4"); for (i = 0;i < h4.length;i++){h4[i].style.fontSize = newsize+"px";}
  var h5 = document.getElementsByTagName("h5"); for (i = 0;i < h5.length;i++){h5[i].style.fontSize = (newsize-2)+"px";}
}




// FANEBLADE -->
var oldtab; 
var olddiv; 

function setTab(divId, state) { 
	var div = document.getElementById(divId); 
	var tab = document.getElementById(divId + 'tab'); 
	var tabs = null; 
	if(tab) tabs = tab.parentNode.parentNode; 
	if(oldtab) oldtab.className = 'notselected'; 
	if(olddiv) olddiv.style.display = 'none'; 
	
	if(state) { 
		if(tab) tab.className = 'selected'; 
		if(div) div.style.display = 'block'; 
		if(tabs) tabs.className = 'active'; 
	} else { 
		if(tab) tab.className = 'notselected'; 
		if(div) div.style.display = 'none'; 
		if(tabs) tabs.className = 'inactive'; 
	} 
	oldtab = tab; 
	olddiv = div; 
} 

function fixDates(formVar) {
  /* Initializing variables: */
  var searchForm = document.getElementById(formVar);
  var toDate = searchForm.toDate.value;
  var fromDate = searchForm.fromDate.value;
  var re = new RegExp("(\\d{2}).(\\d{2}).(\\d{2})", "g");
  var today = new Date().getFullYear();
  var yearTwoDig = today.toString().substring(2);
  /* Checking to dates: */
  if (toDate.match(re)) {
    // sett eceToDate til true and pass on values
    searchForm.eceToDate.value = "true";
    searchForm.eceToDay.value = toDate.substring(0,2);
    searchForm.eceToMonth.value = toDate.substring(3,5) - 1;
    if(toDate.substring(6) <= yearTwoDig) {
      searchForm.eceToYear.value = "20" + toDate.substring(6);
    } else {
      searchForm.eceToYear.value = "19" + toDate.substring(6);
    }
  } else {
    // sett eceToDate til false
    searchForm.eceToDate.value = "false";
  }
  /* Checking from dates: */
  if (fromDate.match(re)) {
    // sett eceToDate til true and pass on values
    searchForm.eceFromDate.value = "true";
    searchForm.eceFromDay.value = fromDate.substring(0,2);
    searchForm.eceFromMonth.value = fromDate.substring(3,5) - 1;
    if(fromDate.substring(6) <= yearTwoDig) {
      searchForm.eceFromYear.value = "20" + fromDate.substring(6);
    } else {
      searchForm.eceFromYear.value = "19" + fromDate.substring(6);
    }
  } else {
    // sett eceToDate til false
    searchForm.eceFromDate.value = "false";
  }
  return true;
}



// Ticker -->
//<!--
var tegnTimeout   = 50;
var rubrikTimeout = 5000;
var cursorOne     = "_";
var cursorTwo     = "-";
var cursorNone    = "";
//var stdString     = "jp.dk:&nbsp;";
var stdString     = "";
var rubrikker     = new Array();
var links         = new Array();

function startTicker(){
	newsID     = -1;
	curLength  = 0;
    /* If item count is 0, then we do not start ticker */
	if (document.getElementById && itemCount > 0){
		tickerAnchor = document.getElementById("tickerLink");
		mainTicker();
	}else{
    document.write("<style>.tickerDisp{display:none;}</style>");
    return true;
	}
}

function mainTicker(){
	var timeOut;

	if(curLength == 0){
		newsID++;
		newsID            = newsID % itemCount;
		rubrik            = rubrikker[newsID].replace(/&quot;/g,'"');
		tickerLink        = links[newsID];
		tickerAnchor.href = tickerLink;
		stdStringTag 	    = "<span class=\"tickerStd\"><b>" + stdString + "</b></span>";
	}

	tickerAnchor.innerHTML = stdStringTag + rubrik.substring(0,curLength) + setCursor();

	if(curLength != rubrik.length){
		curLength++;
		timeOut = tegnTimeout;
	}else{
		curLength = 0;
		timeOut = rubrikTimeout;
	}
	setTimeout("mainTicker()", timeOut);
}

function setCursor(){
	if(curLength == rubrik.length){
		return cursorNone;
	}

	if((curLength % 2) == 1){
		return cursorOne;
	}else{
		return cursorTwo;
	}
}
// -->



//-------------------------------------------

function createCookie(name,value,minutes) {
	if (minutes) {
		var date = new Date();
		date.setTime(date.getTime()+(minutes*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;i < ca.length;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);
}


//--------------------JPPart-------------------
var loadJpXstreamFrontmodul = false;
function changeIframe(elementID,ifmUrl){
  if( document.getElementById( elementID ) != null ){
  	document.getElementById( elementID ).src=ifmUrl;
  }
}
// POPUP VINDUE -->
function openfullscreenWindow(theURL,winName) {
	var scx=screen.width-10;	
	var scy=screen.height-75;
	features='width='+scx+',height='+scy+'screenX=0,screenY=0,top=0,left=0,scrollbars=yes';
	window.open(theURL,winName,features);
}

// FORM FUNKTIONER -->
function clearTAvalue(el) {if (el.defaultValue == el.value) el.value = "" }
function setTAvalue(el) {if (el.value == "") el.value = el.defaultValue }



//--------------------EPNPart-------------------

// Faner artikelbund -->
var oldtab;
var olddiv;
function setBundTab(divId){
	var tab = document.getElementById('tab' + divId);
	var div = document.getElementById('artTab' + divId);

	if(oldtab){
		oldtab.className = 'bundTab';
	}else{
		document.getElementById('tab1').className = 'bundTab';
	}

	if(olddiv){
		olddiv.style.display = 'none';
	}else{
		document.getElementById('artTab1').style.display = 'none';
	}

	if(tab){tab.className = 'bundTabSelected'}
	if(div){div.style.display = 'block';}

	oldtab = tab;
	olddiv = div;
}

var oldtabAll;
var olddivAll;
function setBundTabAll(divIdAll){
	var tabAll = document.getElementById('tabAll' + divIdAll);
	var divAll = document.getElementById('artTabAll' + divIdAll);

	if(oldtabAll){
		oldtabAll.className = 'bundTab';
	}else{
		document.getElementById('tabAll1').className = 'bundTab';
	}

	if(olddivAll){
		olddivAll.style.display = 'none';
	}else{
		document.getElementById('artTabAll1').style.display = 'none';
	}

	if(tabAll){tabAll.className = 'bundTabSelected'}
	if(divAll){divAll.style.display = 'block';}

	oldtabAll = tabAll;
	olddivAll = divAll;
}


var jpticker = new Class({

	Implements: Options,
	options: {
		frequency: 500,
		item_frequency: 3500,
		char_frequency: 80,
		tween_speed: 500,
		endBits: ['_','-'],
		endImage: null,
		endImageStyle: '',
		removeEnd: true,
		mode: 'fade'
	},
	initialize: function(container, options) {
		this.container = container;
		this.setOptions(options);
		this.current = 0;
		this.currentChar = 0;
		this.timer = null;
		
		switch (this.options.mode){
		case 'tick':
			this.startJPTick();
			break;
		case 'fade':
			this.startJPFade();
			break;	
		default:
			this.startJPTick();
			break;
		}		
		
	},
	startJPTick: function() {
		this.container.each(function(item) {				
			item.setStyle('display', 'none');
		});		
		this.current_item = this.container[this.current%this.container.length];
		setTimeout(this.onTick.bind(this), this.options.frequency);
	},
	onTick: function() {				
		if(this.currentChar==0) {
			if (this.current_item) {
				this.current_item.setStyle('display', 'none');						
			}
			this.current_item.removeEvents();
			this.current_item = this.container[this.current%this.container.length];
			this.addMouseEvents();
			this.current_item.setStyle('display', 'inline');

			this.current_title = this.current_item.getFirst("a").innerHTML;
			this.current++;
		}

		var end = this.options.endBits[this.currentChar&this.options.endBits.length-1];

		if (this.options.endImage != null)
		{
			end = '<img src="' + this.options.endImage + '" style="' + this.options.endImageStyle + '" />';
		}
		

		
		this.current_item.getFirst("a").innerHTML = this.current_title.substring(0,this.currentChar) + end;

		if(this.currentChar==this.current_title.length) {
			if (this.options.removeEnd){
				this.current_item.getFirst("a").innerHTML = this.current_title.substring(0,this.current_title.length);
			}
			this.currentChar=0;
			var t = this.options.item_frequency || 1000;
			this.current_item.removeEvents();			
		} else {
			this.currentChar++;
			var t = this.options.char_frequency || 50;			
			
		}
		//this.timer = setTimeout(this.onTick.bind(this), t);
		this.timer = this.onTick.delay(t, this)
	},
	startJPFade: function(){
		var tweenSpeed = this.options.tween_speed;
		this.container.each(function(item) {				
			item.setStyle('display', 'none');
			item.set('tween', {duration: tweenSpeed});
			item.fade('hide');			
		});
		this.current_item = this.container[this.current%this.container.length];

		setTimeout(this.onFade.bind(this), this.options.frequency);
		
	},
	onFade: function() {
		
		this.current_item.removeEvents();
		

		this.current_item.fade('out');
		this.current_item.setStyle('display', 'none');
		this.current++;		
		this.current_item = this.container[this.current%this.container.length];
		
		this.addMouseEvents();
		this.current_item.setStyle('display', 'inline');
		this.current_item.fade('in');
		
		
		//this.timer = setTimeout(this.onFade.bind(this), this.options.item_frequency);
		this.timer = this.onFade.delay(this.options.item_frequency+(2*this.options.tween_speed), this);
	},
	addMouseEvents : function(){
		this.current_item.addEvents({
			'mouseenter' : function(me){
			switch (this.options.mode){
			case 'tick':
				this.current_item.getFirst("a").innerHTML = this.current_title.substring(0,this.current_title.length);
				this.currentChar=0;
				$clear(this.timer);
				break;
			case 'fade':
				$clear(this.timer);
				break;	
			default:
				this.current_item.getFirst("a").innerHTML = this.current_title.substring(0,this.current_title.length);
				this.currentChar=0;
			$clear(this.timer);
				break;
			}		
			}.bind(this),
			'mouseleave' : function(me){
				switch (this.options.mode){
				case 'tick':
					this.timer = this.onTick.delay(this.options.item_frequency, this);
					break;
				case 'fade':
					this.timer = this.onFade.delay(this.options.item_frequency+(2*this.options.tween_speed), this);
					break;	
				default:
					this.timer = this.onTick.delay(this.options.item_frequency, this);
					break;
				}		
			}.bind(this)			
		});
	}

});

var intObject = function() {
	this.value = 1;
}

function guide_move_next(tabId, pos, max) {
	pos.value = pos.value + 1;
	if (pos.value > max) {
		pos.value = max;
	} else {
		guide_slide(tabId, pos);
	}
}

function guide_move_prev(tabId, pos) {
	pos.value = pos.value - 1;
	if (pos.value < 1) {
		pos.value = 1;
	} else {
		guide_slide(tabId, pos);
	}
}

function change_page(tabId, page) {
	for (var i = 1; i < 4; i++) {
		if (i == page) {
			document.getElementById('tab' + tabId + 'dot' + page).src = '/img/guide/arrow_tween_closed_dot.png';
		} else {
			document.getElementById('tab' + tabId + 'dot' + i).src = '/img/guide/arrow_tween_open_dot.png';			
		}
	}
}

function guide_slide(tabId, pos) {
	var amount = ((pos.value - 1) * 194 * (-1)) + "px";
	var myEffects = new Fx.Morph('guideSlides' + tabId, {duration: 1000, transition: Fx.Transitions.Sine.easeInOut, onComplete: function(){change_page(tabId, pos.value);}});
	myEffects.start({
		'margin-left': amount
	});
}

function guide_change_tab(currentTabNo, currentClass, tabNo, standartClass) {
	document.getElementById("guideTab" + currentTabNo.value).className = standartClass;
	document.getElementById("guideTab" + tabNo).className = currentClass;
	document.getElementById("guideTabContent" + currentTabNo.value).style.display = "none";
	document.getElementById("guideTabContent" + tabNo).style.display = "block";
	currentTabNo.value = tabNo;
}

function trackclick(event, aid, pos, section) {
    if (event.button != 2) {
        if( Math.floor(Math.random() * click_statistik_scale + 1) == 1) {
            new Request({url:'/eceCLS?' + 'aid=' + aid + '&pos=' + pos + '&section=' + section + '&rnd=' + Math.random() + '&ncc=1'}).get();
        }
    }
}

function print_text(text) {
	document.write(text);
}

var LiveBox = function(divId, sportId, uniqueTournamentId, eventImages) {
	this.divId = divId;
	this.sportId = sportId;
	this.uniqueTournamentId = uniqueTournamentId;
	this.currentMatch = 0;
	this.eventImages = eventImages.split(",");
	var me = this;
	this.update = function(){
		jQuery.getJSON("?service=jsonSRT&mode=liveTicker&vn=15&sportId=" + me.sportId + "&uniqueTournamentId=" + me.uniqueTournamentId , me.updateBox);
	};
	this.updateBox = function(data){
		me.currentMatch = 0;
		me.matches=data;
		if(me.matches != null && me.matches.length>0){
			if(me.timeout){
				window.clearInterval(me.timeout);
			}
			jQuery("#" + me.divId + " .LiveFPTop").html('<span class="LiveFPTopLeft">' + jQuery("#" + me.divId + " .LiveFPTop .LiveFPTopLeft").html() + '</span>');
			for(var i=0; i<me.matches.length; i++){
				var match = me.matches[i];
				if(me.matches[0].live){
					var template = jQuery('#liveTemplate').clone();
					template.attr("id", "");
					var result="<a href='http://spn.dk/live/?matchId=" + match.id + "#liveMatch_" + match.id + "'> " +match.homeTeam.name + " - " + match.awayTeam.name+"</a>";  
					jQuery(".LiveFPTopGmCur", template).html(result + "&nbsp;" + match.homeTeam.score + "-" + match.awayTeam.score);
					jQuery(".LiveFPTopGmMin", template).html(match.matchTime);
					var item=0; var result="";
					for(var j=1; j<=2; j++){
						if((match.events.length-j)>=0){
							var event=match.events[match.events.length - j];
							result= result + " '" + event.eventTime+ " " + (event.eventScore!=null?event.eventScore:"")+ " " + event.player1.name;
							result= result + " <img src='/img/spn/srt/" + me.eventImages[event.eventType] + "'/>";
							item++;
						 }
					};
					jQuery(".LiveFPTopGmGoal", template).html(result);
					jQuery("#" + me.divId + " .LiveFPTop").append(template);
					if(i==0){
						jQuery("#" + me.divId + " .LiveFPTop .LiveFPTopRght").show();
					}
				}else{
					var template = jQuery('#upcomingTemplate').html();
					template = template.replace("homeTeamName", match.homeTeam.name);
					template = template.replace("awayTeamName", match.awayTeam.name);
					template = template.replace("matchDate", match.matchDate);
					jQuery("#" + me.divId + " .LiveFPTop").append(jQuery(template));
					if(i==0){
						jQuery("#" + me.divId + " .LiveFPTop .LiveFPTopRght1").show();
					}
				};
			}
			if(me.matches.length>1){
				me.timeout = window.setInterval(me.switchMatch, 5000);
			}
		}
		me.init();
	};
	this.switchMatch = function(){
		jQuery("#" + me.divId + " .LiveFPTop span.LiveFPTopRght1:eq("+ me.currentMatch + ")," + "#" + me.divId + " .LiveFPTop div.LiveFPTopRght:eq("+ me.currentMatch + ")").hide(200);
		me.currentMatch = (me.currentMatch +1) % me.matches.length;
		jQuery("#" + me.divId + " .LiveFPTop span.LiveFPTopRght1:eq("+ me.currentMatch + ")," + "#" + me.divId + " .LiveFPTop div.LiveFPTopRght:eq("+ me.currentMatch + ")").show(200);
	};
	
	this.init = function(){
		window.setTimeout(me.update, 30000);
	};
	me.update();
};

var DeferBanner = function(bannerPlace, adtechID, adtechGroup, grp, sectionDirId) {
	this.bannerPlace = bannerPlace;
	this.adtechID = adtechID;
	this.adtechGroup = adtechGroup;
	this.grp = grp;
	this.sectionDirId = sectionDirId;
}

var DeferBannerSystem = function() {
	this.counter = 0;
	this.deferBanners = [];
	this.currentDeferBannerID;
    this.loadFinishedEventHandler = null; // a handler for event that is fired after all banners were loaded

    this.addLoadFininshedEventHandler = function(handlerFunction){
        this.loadFinishedEventHandler = handlerFunction;
    }

	this.addDeferBanner = function(deferBanner) {
		if (deferBanner instanceof DeferBanner) {
			this.deferBanners[this.counter++] = deferBanner;
		}
	}

	this.onLoadDeferIframe = function() {
		var o = this.deferBanners[this.currentDeferBannerID];
		if (o) {
			document.getElementById("banner_" + o.bannerPlace).innerHTML =
											document.getElementById("deferBannerLoader").contentWindow.document.body.innerHTML;
			this.currentDeferBannerID++;
			this.nextDeferBanner();
		}
	}

	this.nextDeferBanner = function() {
		if (this.currentDeferBannerID < this.counter) {
			var deferIframe = document.getElementById("deferBannerLoader");
			var deferBanner = this.deferBanners[this.currentDeferBannerID];
			deferIframe.src = '/?service=bannerContainer&adtechID=' + deferBanner.adtechID + '&adtechGroup=' +
				deferBanner.adtechGroup + '&group=' + deferBanner.grp + '&sectionDirId=' + deferBanner.sectionDirId;
		}
        else
            if (this.loadFinishedEventHandler) this.loadFinishedEventHandler.call(this);
	}

	this.onLoadMainPage = function () {
		if (this.counter > 0) {
			this.currentDeferBannerID = 0;
			this.nextDeferBanner();
		}
	}
};

var TabSwitcher = function(divId, currentTab) {
	this.divId = "#"+divId;
	this.currentTab = currentTab;
	var me=this;
	this.handleTabClick = function(clickEvent){
		var target = jQuery(clickEvent.currentTarget);
		var tabs = target.parent().parent().children("li");
		var selectedTab = tabs.index(target.parent());
		if(selectedTab!=me.currentTab){
			target.addClass("selected");
			jQuery(tabs[me.currentTab]).children("a").removeClass("selected");
			var containers = jQuery(me.divId + " .TBtabs").nextAll("div");
			jQuery(containers[me.currentTab]).addClass("dN");
			jQuery(containers[selectedTab]).removeClass("dN");
			me.currentTab = selectedTab;
		};
	};
	jQuery(this.divId + " .TBtabs a").click(this.handleTabClick);
};

var TabSwitcherNew = function (menuSelector, tabSelector, currClass) {
	this.menuSelector = menuSelector;
	this.tabSelector = tabSelector;
	this.currClass = currClass;
	this.currentTabNumber = new intObject();
	this.change = function(tabNumber) {
		if (this.currentTabNumber.value != tabNumber) {
			jQuery(this.menuSelector + this.currentTabNumber.value).removeClass(this.currClass);
			jQuery(this.menuSelector + tabNumber).addClass(this.currClass);
			jQuery(this.tabSelector + this.currentTabNumber.value).hide();
			jQuery(this.tabSelector + tabNumber).show();
			this.currentTabNumber.value = tabNumber;
		}
		return false;
	}
}

// Tracking

function gup( name ){
	  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	  var regexS = "[\\?&]"+name+"=([^&#]*)";
	  var regex = new RegExp( regexS );
	  var results = regex.exec( window.location.href );
	  if( results == null )
	    return "";
	  else
	    return results[1];
	}

function jplink_tracking() {
	if (gup('ref') != '' || gup('refid') != '') {
		createCookie('jplink_tracking_refid',gup('refid'),20);
		createCookie('jplink_tracking_ref',gup('ref'),20);
	}
	if (readCookie('jplink_tracking_ref') != null || readCookie('jplink_tracking_refid') != null) {
		document.write('<img src="http://jplink.dk/track.php?ref=' + readCookie('jplink_tracking_ref') + '&refid=' + readCookie('jplink_tracking_refid') +'" />');
		
		createCookie('jplink_tracking_refid',readCookie('jplink_tracking_refid'),20);
		createCookie('jplink_tracking_ref',readCookie('jplink_tracking_ref'),20);
		
		if (typeof jQuery != 'undefined'){
			jQuery('a').bind('click', function(target) {
				if (this.toString().indexOf(document.domain.toString()) == -1){
					if (this.toString().indexOf('?') > -1){
						window.location=this.toString() + '&ref=' + readCookie('jplink_tracking_ref') + '&refid=' + readCookie('jplink_tracking_refid');
					} else {
						window.location=this.toString() + '?ref=' + readCookie('jplink_tracking_ref') + '&refid=' + readCookie('jplink_tracking_refid');
					}
					return false;
				}
			});
		}
	}

}

function createSlider(selectBox,templateId, valueWidth){
	var questionSelects = jQuery(selectBox), templateId;
	questionSelects.each(
		function(q,w){
			var currentSelect = jQuery(w); 
			currentSelect.hide();
			currentSelect.val(0);
			currentSelect.after(jQuery(templateId).jqote(currentSelect, '*'));
			var nextElement = currentSelect.next().next();
			var labels=nextElement.children();
			labels.hide();
			jQuery(labels[1]).show();
			labels.each(
				function(p,u){
					jQuery(u).css("margin-left", (p-1)*valueWidth - jQuery(u).width()/2);
				}
			)
			jQuery(labels[1]).css("margin-left", 0);

			var lastElement = labels.last();
			labels.last().css("margin-left", nextElement.width()-lastElement.width());
			lastElement.show();
	});
}
function initBoxWithSliders(){
	var draggingTarget, globalOverlay, maxValue;
	jQuery("body").mousedown(function(event){
		var target = jQuery(event.target);
		if(target.hasClass("slider")){
			makeEasing(target,0);
			draggingTarget = jQuery(target.parent());
			var options = jQuery(draggingTarget.parent()).find("option");
			if(options.length>0){
				maxValue = jQuery(options[options.length-1]).val() ;
			}
			event.preventDefault ? event.preventDefault() : event.returnValue = false;
			globalOverlay = createOverlay(0,0,jQuery(document).width(),jQuery(document).height());
		} 	
	});
	jQuery("body").mouseup(function(event){
		var target = jQuery(event.target);
		if(draggingTarget){
			makeEasing(draggingTarget.children("div"),0.5);
			draggingTarget.children("div").css("margin-left",jQuery(draggingTarget.parent()).children("select").val()*getWidthOfSlider() - 26);
			event.preventDefault ? event.preventDefault() : event.returnValue = false;
		}else if(target.hasClass("answerBox")) {
			makeEasing(target.children("div"),0.5);
			value = moveSlider(event,target, true);
			target.children("div").css("margin-left",value.value*valueWidth - 26);
		}
		if(globalOverlay){
			globalOverlay.remove();
			globalOverlay = undefined;
		}
		draggingTarget = undefined;
	});
	function makeEasing(target,time){
		target.css("-webkit-transition-duration", time + "s");
		target.css("-moz-transition-duration", time + "s");
		target.css("-o-transition-duration", time + "s");
	}

	jQuery("body").mousemove(function(event){
		if(event.layerX<0){return;}
		if(draggingTarget && jQuery(event.target).hasClass("answerBox")){
			value = moveSlider(event,draggingTarget);
			draggingTarget.children("div").css("margin-left",value.offset);
		}else if (draggingTarget){
			value = moveSlider(event,draggingTarget);
			draggingTarget.children("div").css("margin-left",value.offset);
		}
	});
	
	function moveSlider(event,target, click){
		valueWidth = getWidthOfSlider(target);
		offset = event.pageX - target.offset().left + (click?-6:-6);
		if(offset<valueWidth-30){
			offset=valueWidth-30;
		} else if(offset>valueWidth*maxValue-24) {
			offset=valueWidth*maxValue-24;
		}
		
		value = Math.round((offset+23)/valueWidth);
		if(jQuery(target.parent()).children("select").val()!=value){
			target.next().children().hide();
			jQuery(target.next().children()[value]).show();
			jQuery(target.parent()).children("select").val(value);
		}
		return {'value':value, 'offset':offset, 'width':valueWidth};
	}
	function getWidthOfSlider(target){
		if(draggingTarget){
			return (draggingTarget.hasClass("KompasQuestVoteVigtLine")?42:46);
		}
		return (target.hasClass("KompasQuestVoteVigtLine")?42:46);
	}
	function createOverlay(top,left,width,height){
		var overlay = jQuery("<div></div>");
		overlay.width(width-24);
		overlay.height(height);
		overlay.appendTo("body");
		overlay.css("top", top);
		overlay.css("left", left);
		overlay.addClass("overlay");
		return overlay;
	}
}
function resetSlider(){
	jQuery(".answerBox").remove();
	jQuery(".KompasQuestVoteEnigTxt").remove();
	jQuery(".KompasQuestVoteVigtTxt").remove();
	createSlider(".KompasQuest select.answer", "#questionAnswerTemplate", 46);
	createSlider(".KompasQuest select.weight", "#questionWeightTemplate", 42);
	jQuery(".overlay").remove();
}

function initCompas(){
	resetSlider();
	
	jQuery(".KompasOpdat").click(
		function(event){
			if(jQuery(".KompasOpdat:first").text()!="Opdater"){
				resetSlider();
				jQuery(".KompasOpdat").text("Opdater");
				jQuery(".compasResult").remove();
				return;
			}
			var selects = jQuery(".KompasQuest select"), select, errorPresent = false, overlay, questions=new Array();
			selects.each(function(p,u){
				jQuery(u).parent().parent().parent().removeClass("error");
			});
			selects.each(function(p,u){
					select = jQuery(u);
					if(select.val()==0){
						select.parent().parent().parent().addClass("error");
						errorPresent = true;
						var questionNumber = Math.floor(p/2)+1;
						if(questions.length==0 || questions[questions.length-1]!=questionNumber){
							questions.push(Math.floor(p/2+1));
						}
					}
			});
			if(!errorPresent){
				var mainBlock = jQuery(".KompasQuest");
				jQuery(".KompasOpdat").text("Prøv igen");
				overlay = jQuery("<div></div>");
				overlay.width(mainBlock.width());
				overlay.height(mainBlock.height());
				overlay.appendTo("body");
				overlay.css("top",mainBlock.offset().top);
				overlay.css("left",mainBlock.offset().left);
				overlay.addClass("overlay");
				overlay.addClass("overlayGrayed");
				var formToSubmit = mainBlock.find("form");
				jQuery.post(formToSubmit.attr("action"), jQuery(formToSubmit).serializeArray(), function(data){
					jQuery(window).scrollTop(jQuery(".KompasTsr").offset().top);
					jQuery(".KompasTsr:not(.dN)").remove();
					jQuery(".KompasTsr.dN").after(data);
				});
				return true;
			}else{
				alert("Du har glemt at udfylde spørgsmål " + questions.join(","));			
			}
			return false;
		}
	);
}
