﻿Event.observe(document,'dom:loaded', whenDomLoaded);
Event.observe(window,'load', whenPageLoaded);

var popupSponsorer = new Popup(null, 'popupSponsorer', sponsorerOpenCallback);
var popupSponsorUpdater = new DatoTidUpdater('sponsorDatoTid');


var popupNyhedsmails = new Popup(null, 'popupNyhedsmails');
var popupVSGalleri = new Popup(null, 'popupVSGalleri');
var popupGalleriUpdater = new DatoTidUpdater('VSGalleriDatoTid');
var popupInfomoede = new Popup(null, 'popupInfomoede');
var popupNyhedsmailsTilmeldingModtaget = new Popup(null,"popupNyhedsmailsTilmeldingModtaget");
var popupInfomoedeTilmeldingModtaget = new Popup(null,"popupInfomoedeTilmeldingModtaget");

var LogoRollover = new MouseOver('MoDLogoIMG');

var rollovers = new Array();

function sponsorerOpenCallback() {
	fleXenv.reInitialize('sponsorListeContainer');
}

if (window.visBetingelser && visBetingelser) {
	var popupBetingelser = new Popup('betingelserA', 'popupBetingelser', betingelserOpenCallback); 	
}

function betingelserOpenCallback() {
	fleXenv.reInitialize('popupBetingelserTekst');
}


var tableDisplayStyle;
function showQuicksearch() {
	$('quicksearchDropdown').setStyle({
		display:'block'
	});	
	$('quicksearchShadowBody').setStyle({
		height: $('quicksearchDropdown').getHeight() - 15 + 'px'
	});
	$('quicksearchDropdownShadowTBL').setStyle({
		display: tableDisplayStyle
	});
	quicksearchScrollContentTop = 0;
	$('quicksearchScrollContent').setStyle({top: 0});
}

function hideQuicksearch() {
	$('quicksearchDropdown').setStyle({
		display:'none'
	});
	$('quicksearchDropdownShadowTBL').setStyle({
		display:'none'
	});
}

var quicksearchScrollTimer;
var quicksearchScrollContentTop = 0;
var quicksearchScrollContentHeight;
var quicksearchScrollContainerHeight;
var quicksearchUpArrowWhite = new Image();
quicksearchUpArrowWhite.src = '/images/quicksearchArrowUpWhite.gif';
var quicksearchDownArrowWhite = new Image();
quicksearchDownArrowWhite.src = '/images/quicksearchArrowDownWhite.gif';

function startQuicksearchScrollDown() {
	$('quicksearchDownArrow').src = '/images/quicksearchArrowDownWhite.gif';
	//alert(quicksearchScrollContentTop +' ' + quicksearchScrollContentHeight + ' ' + quicksearchScrollContainerHeight);
	quicksearchScrollTimer = new PeriodicalExecuter(function() {
		if (quicksearchScrollContentTop + quicksearchScrollContentHeight > quicksearchScrollContainerHeight) {
			quicksearchScrollContentTop -= 1;
			$('quicksearchScrollContent').setStyle({top: quicksearchScrollContentTop + 'px'})
		} else {
			//stopQuicksearchScroll();
		}
	}, 0.008);
}

function startQuicksearchScrollUp() {
	$('quicksearchUpArrow').src = '/images/quicksearchArrowUpWhite.gif';
	quicksearchScrollTimer = new PeriodicalExecuter(function() {
		if (quicksearchScrollContentTop < 0) {
			quicksearchScrollContentTop += 1;
			$('quicksearchScrollContent').setStyle({top: quicksearchScrollContentTop + 'px'})
		} else {
			//stopQuicksearchScroll();
		}
	}, 0.008);
}

function stopQuicksearchScroll() {
	quicksearchScrollTimer.stop();
	//alert('stop');
	$('quicksearchUpArrow').src = '/images/quicksearchArrowUpBlack.gif';
	$('quicksearchDownArrow').src = '/images/quicksearchArrowDownBlack.gif';
}


var showQuicksearchDropdown = false;
var rightImgPosX;
var rightImgPosY;
var rightImgSrc;
var mouseOverQuicksearchItem = false;
var quicksearchImageOffsetY;

function whenDomLoaded() {
	tableDisplayStyle = $('baggrundStribeTBL').getStyle('display');
	
	/* QUICKSEARCH BEGIN ******************/
	$('quicksearchTD').observe('mouseover', function(event) {
		//alert('mouseover: ' + event.element().id);
		//event.stop();
		showQuicksearchDropdown = true;
		if ($('quicksearchDropdown').getStyle('display') != 'block') {
			showQuicksearch();
		}
	});
	Event.observe(document, 'click', function(event) {
		if (!event.element().up('#quicksearchTD')) {
			showQuicksearchDropdown = false;
			hideQuicksearch();	
		}
	});
	$('quicksearchTD').observe('mouseout', function(event) {
		showQuicksearchDropdown = false;
		setTimeout(function() {
			if (!showQuicksearchDropdown) {
				//alert('mouseout: ' + event.element().id);
				hideQuicksearch();
			}
		}, 50);
	});
	$$('.quicksearchItem').each(function(item) {
		item.observe('mouseover', function(event) {
			item.setStyle({
				background:'white'
			});
			if ($('rightImgSmsEmail') && item.getClassParam('id')) { // VIS ALLE viser ikke noget billede
				mouseOverQuicksearchItem = true;
				$('rightImgSmsEmail').down('.editableImageIMG').setStyle({
					left: Math.max(quicksearch[item.getClassParam('id')].image_pos_x, 0) + 'px',
					top:  Math.max(quicksearch[item.getClassParam('id')].image_pos_y, 0) + quicksearchImageOffsetY + 'px',
					width: 'auto',
					height: 'auto'
				});
				//alert(Math.max(quicksearch[item.getClassParam('id')].image_pos_y, 0)); // + quicksearchImgOffsetY);
				$('rightImgSmsEmail').down('.editableImageIMG').src = quicksearch[item.getClassParam('id')].src; 
			}
		})
		item.observe('mouseout', function() {
			item.setStyle({
				background:'#da0'
			});
			if ($('rightImgSmsEmail')) {
				mouseOverQuicksearchItem = false;	
				setTimeout(function() {
					if (!mouseOverQuicksearchItem){
						$('rightImgSmsEmail').down('.editableImageIMG').setStyle({
							left: rightImgPosX,
							top:  rightImgPosY,
							width: rightImgWidth,
							height: rightImgHeight
						});
						$('rightImgSmsEmail').down('.editableImageIMG').src = rightImgSrc;
					}
				}, 20); 
			}
		})
	})
	if ($('rightImgSmsEmail')) {
		rightImgPosX = $('rightImgSmsEmail').down('.editableImageIMG').getStyle('left');
		rightImgPosY = $('rightImgSmsEmail').down('.editableImageIMG').getStyle('top');
		rightImgWidth = $('rightImgSmsEmail').down('.editableImageIMG').getStyle('width');
		rightImgHeight = $('rightImgSmsEmail').down('.editableImageIMG').getStyle('height');
		rightImgSrc  = $('rightImgSmsEmail').down('.editableImageIMG').src;
		Object.values(quicksearch).each(function(q) {
			q['image'] = new Image();
			q.image.src = q.src;
		});
	}
	
	if ($('quicksearchScrollTop')) {
		$('quicksearchScrollTop').observe(		'mouseover', 	startQuicksearchScrollUp	);
		$('quicksearchScrollTop').observe(		'mouseout', 	stopQuicksearchScroll		);
		$('quicksearchScrollBottom').observe(	'mouseover', 	startQuicksearchScrollDown	);
		$('quicksearchScrollBottom').observe(	'mouseout', 	stopQuicksearchScroll	);
		quicksearchScrollContainerHeight = removePx($('quicksearchScrollContainer').getStyle('height'));
		if (!quicksearchScrollContainerHeight) quicksearchScrollContainerHeight = removePx($('quicksearchScrollContainer').currentStyle.height); // Opera FIX
		//alert(quicksearchScrollContainerHeight);
		var item = $('quicksearchScrollContainer').down('.quicksearchItem');
		var itemHeight = 16; // HUSK AT OPDATERE DENNE HVIS LAYOUTET ÆNDRES. GETHEIGHT VIRKER TILSYNELADENDE IKKE
		//var itemHeight = removePx(item.getStyle('height'));
		var contentHeight = itemHeight;
		while (item = item.next('.quicksearchItem')) {
			contentHeight += itemHeight;
		}
		quicksearchScrollContentHeight = contentHeight;
		if ($('rightImgSmsEmail')) {
			quicksearchImageOffsetY = 225 - removePx($('rightImgSmsEmail').getStyle('top'));
			//alert(quicksearchImageOffsetY);	
		}
	}
	
	// QUICKSEARCH END  *********************************/
	
	
	var queryParams = document.location.href.toQueryParams();
	var isOperaMac = Prototype.Browser.Opera && navigator.platform.indexOf('Mac') >= 0; // Opera på mac respekterer ikke wmode=opaque
	if (swfobject.hasFlashPlayerVersion('9.0.0') && !window.loggedIn && !window.browserLteIE6 && !isOperaMac) {		
		var params = {
			wmode : 'opaque'
		};		
		var flashvars = {};
	
		if ($('leftNav')) {			
			flashvars = menuLeft;
			flashvars.selectedMenuItem = selectedMenuItem; 										
			swfobject.embedSWF("/swf/leftNav.swf?x", "leftNavList", 98, 143, "9.0.0", "", flashvars, params); // Cache trick
		}
		
		
		if ($('rightNav')) {
			flashvars = menuRight;
			flashvars.selectedMenuItem = selectedMenuItem;			
			swfobject.embedSWF("/swf/rightNav.swf", "rightNavList", 108, 67, "9.0.0", "", flashvars, params);
		}
		
		
		// TOPNAV
		
		if ($('topNavKnapper')) {
			params.wmode = 'transparent';				
			flashvars = {				
				bgColor : '0x' + window.topnavColor					
			};	
			for (var i = 1; i <= 5; i++) {
				flashvars['tekst'+i] = escape(menuTop['tekst' + i]);
				flashvars['href'+i]  = escape(menuTop['href'  + i]);
				
			}
			var e = $('topNavKnapperInner');
			e.up().setStyle({
				position:'relative',
				top: '-107px',
				left:0
			});
			swfobject.embedSWF("/swf/topNavMulti.swf", e.id, 612, 139, "9.0.0", "", flashvars, params);
		}
		
		// BILLEDER
		params.wmode = 'opaque';		
		$$('.editableImage.effect_light, .editableImage.effect_blur, .editableImage.swapImages').each(function(e) {
			if (e.hasClassName('swapImages')) {
				var eWidth 	 = e.getWidth();
				var eHeight	 = e.getHeight();
				var posX 	 = e.down('img').positionedOffset().left;
				var posY 	 = e.down('img').positionedOffset().top;	
				var switchId = e.id;		
			}  else {				
				var eWidth 	 = e.down('img').getWidth();
				var eHeight	 = e.down('img').getHeight();
				var posX 	 = 0;
				var posY 	 = 0;	
				var switchId = e.down('img').id;
				var position = e.down('img').positionedOffset();
				var containerDiv = new Element('div').setStyle({position:'absolute', left: position.left + 'px', top: position.top + 'px', width:eWidth + 'px', height: eHeight + 'px'});
				var img = e.down('img').remove();
				e.insert(containerDiv.insert(img));
				//containerDiv.; // Indsætter en ekstra div fordi Flash ikke vil positioneres	
			}					
			flashvars = {
				id				: e.id,
				src 			: e.id == 'bundSwap' ? '' : e.down('img').src,
				href			: (e.down('a') ? e.down('a').href : ''),
				w				: eWidth,
				h				: eHeight,
				posX			: posX,
				posY			: posY,
				effect			: (e.hasClassName('effect_light') ? 'light' : (e.hasClassName('effect_blur') ? 'blur' : '')),
				swapImages		: (e.hasClassName('swapImages') ? (e.id == 'bundSwap' ? bundSwapImages['id'] 	: swapImages['id']) 	: ''),
				swapImagesX 	: (e.hasClassName('swapImages') ? (e.id == 'bundSwap' ? bundSwapImages['x'] 	: swapImages['x']) 		: ''),
				swapImagesY 	: (e.hasClassName('swapImages') ? (e.id == 'bundSwap' ? bundSwapImages['y'] 	: swapImages['y']) 		: ''),
				swapImagesSalt 	: (e.hasClassName('swapImages') ? (e.id == 'bundSwap' ? bundSwapImages['salt'] 	: swapImages['salt']) 	: '')
			};			
			
			swfobject.embedSWF("/swf/editableImage.swf", switchId, eWidth, eHeight, "9.0.0", "", flashvars, params);						
		})				
	} else {
		$$('.topnavButton, .colnavButton').each(function(e) {
			rollovers.push(new MouseOver(e.id));
		})	
	}
	
	if ($$('.sponsorListeItem').length) {
		Object.keys(sponsorer).each(function(id) {
			if (sponsorer[id].link != '' && sponsorer[id].link != 'http://') {		
				$('sponsorListeItem_' + id).observe('click', sponsorClick);
				$('sponsorListeItem_' + id).setStyle({cursor: 'pointer'});	
			}
		});
	}
	
	if ($('popupNyhedsmails')) {
		$('nyhedsmailsPopupSend').observe('click', function() {
			if (nyhedsmailsValidator.validates()) {
				$('nyhedsmailsPopupForm').submit();
			}
		})
	}
	
	if ($('popupInfomoede')) {
		$('popupInfomoedeSend').observe('click', function() {
			if (infomoedeValidator.validates()) {
				$('popupInfomoedeForm').submit();
			}
		})
	}
	
	// SIKRING MOD KOPIERING AF TEKST OG BILLEDER	
	if (!window.loggedIn) {
		$$('#centerContent, .popup').each(function(e) {
			e.observe('copy', function(event) {			
				event.stop();
			})
		})
		$$('#centerContent, .popup').each(function(e) {
			e.observe('cut', function(event) {			
				event.stop();
			})
		});
		Event.observe(document, 'contextmenu',function(event) {
			event.stop();
		})
	}
	
}

var effectManager;
function whenPageLoaded() {
	var queryParams = document.location.href.toQueryParams();
	if (queryParams.tilmeldtnyhedsmails) {
		popupNyhedsmailsTilmeldingModtaget.open();			
	};		
	if (window.infomoedeTilmeldingSuccess) {
		popupInfomoedeTilmeldingModtaget.open();				
	}
	if (queryParams.error) {
		alert('Der skete en fejl.');
	}
	effectManager = new EffectManager();
}

function placeBundStribe() {
	var winHeight = document.viewport.getHeight();
	$('baggrundStribeBund').setStyle({		
		top: (winHeight < 710 ? '700' : winHeight - 10) + 'px'
	});
}

function sponsorClick(event) {
	var e = event.element();
	if (!e.hasClassName('sponsorListeItem')) {
		e = e.up('.sponsorListeItem');
	}
	var id = e.id.substring(17);
	window.open(sponsorer[id].link);
}

function openCaptivatePopup(id) {
	var width = parseInt(captivate[id].width) + 20;
	var height = parseInt(captivate[id].height) + 35;
	var coords = getPopupWindowCoords(width, height);
	var winCaptivate = window.open('/captivate/' + id + '/' + captivate[id].name + '.htm', 'vs_captivate_popup', 'width=' + width+',height='+height +',left=' + coords.left + ',top=' + coords.top);
	if (winCaptivate && winCaptivate.focus) {
		winCaptivate.focus();
	}
}

function openSponsorPopup() {
	popupSponsorer.open();
}

function openSmsEmailPopup() {
	popupNyhedsmails.open();
	//alert('sms/email-popup');
}

function openVSGalleriPopup() {		
	var html = '<div id="VSGalleriListeContainer" class="galleriListeContainer flexcroll_hidden">';
	var b;	
	for (var i = 0; i < VSGalleribilleder.length; i++) {						
		b = VSGalleribilleder[i];						
		html += '<div class="IMGContainer"><img src="/images/cms/vs_galleribilleder/small/' + b.id + '.jpg?salt='+b.salt+'" alt="" id="VSgalleribillede_' + b.id + '" class="galleriBilledeSmall" style="left:' + Math.max(b.pos_x_2, 0) + 'px;top:' + Math.max(b.pos_y_2,0) + 'px;" /></div>';
	}
		
	html += '<div class="endOfList">&nbsp;</div></div>';
	var galleriListe = $('popupVSGalleri').down('.galleriListe');
	
	galleriListe.update(html);	
	
	var largeImg = $('popupVSGalleri').down('.galleriStortBillede').down('img'); 
	if (VSGalleribilleder[0]) {
		largeImg.setStyle({display:'inline'});
		largeImg.src='/images/cms/vs_galleribilleder/'+VSGalleribilleder[0]['id']+'.jpg?salt='+VSGalleribilleder[0]['salt'];
		largeImg.setStyle({
			left: Math.max(VSGalleribilleder[0]['pos_x'],0) + 'px',
			top:  Math.max(VSGalleribilleder[0]['pos_y'],0) + 'px'
		});
		galleriListe.down('.IMGContainer').setStyle({marginTop : 0});
	} else {
		largeImg.setStyle({display:'none'});
	}
	popupVSGalleri.open();
	fleXenv.reInitialize('VSGalleriListeContainer');
	$$('#VSGalleriListeContainer img.galleriBilledeSmall').each(function(img) {
		img.observe('click', function(event) {			
			var id = event.element().id.substring(17);			
			var salt = VSGalleribilleder.find(function(b) {return b.id == id;}).salt;						
			largeImg.src = 'images/cms/vs_galleribilleder/' + id + '.jpg?salt=' + salt;
			largeImg.setStyle({
				left: Math.max(VSGalleribilleder.find(function(b) {return b.id == id;}).pos_x,0) + 'px',
				top:  Math.max(VSGalleribilleder.find(function(b) {return b.id == id;}).pos_y,0) + 'px'
			});			
		})
	})
}

function openInfomoedePopup() {
	popupInfomoede.open();
	fleXenv.reInitialize('popupInfomoedeTekst');	
}

var nyhedsmailsValidator = new Validator({
	rules : {
		navn: {
			validator: 'notEmpty',
			id: 'tilmeldNyhedsmailsNavn',
			message: 'Udfyld venligst dit navn.',
			breakChainOnFailure: true
		},
		oneFilled: {
			validator: 'atLeastOneNotEmpty',
			id: ['tilmeldNyhedsmailsMobil','tilmeldNyhedsmailsMail'],
			message: 'Udfyld venligst enten mobilnummer eller mail.',
			breakChainOnFailure: true
		},
		mobil: {
			validator: 'tlfDk',
			id: 'tilmeldNyhedsmailsMobil',
			message: 'Indtast venligst et gyldigt tlf-nummer.',
			allowEmpty : true
		},
		email: {
			validator: 'email',
			id: 'tilmeldNyhedsmailsMail',
			message: 'Indtast venligst en gyldig email.',
			allowEmpty : true
		}
	},
	form : 'nyhedsmailsPopupForm',
	alert : {
		
	}
}, true);

var infomoedeValidator = new Validator({
	rules : {		
		navn: {
			validator: 'notEmpty',
			id: 'popupInfomoedeNavn',
			message: 'Indtast venligst dit navn'
		},		
		oneFilled: {
			validator: 'atLeastOneNotEmpty',
			id: ['popupInfomoedeMobil','popupInfomoedeEmail'],
			message: 'Udfyld venligst enten mobilnummer eller mail.',
			breakChainOnFailure: true
		},
		mobil: {
			validator: 'tlfDk',
			id: 'popupInfomoedeMobil',
			message: 'Indtast venligst et gyldigt tlf-nummer.',
			allowEmpty : true
		},
		email: {
			validator: 'email',
			id: 'popupInfomoedeEmail',
			message: 'Indtast venligst en gyldig email.',
			allowEmpty : true
		}
	},
	form : 'popupInfomoedeForm',
	alert : {
		
	}
}, true);

var EffectManager = Class.create({
	
	initialize : function() {	
		if (window.browserLteIE6) {return; }	
		this.makeRandomOrder();				
		this.startTopBundEffect();				
	},
	
	makeRandomOrder : function() {
		this.order = new Array();
		this.numbers = [1,2,3,4,5];
		for (var i = 0; i < 5; i++) {
			var index = Math.floor(Math.random() * this.numbers.length);					
			this.order[i] = this.numbers[index];
			this.numbers.splice(index, 1);
		}				
	},	
	
	startTopBundEffect : function() {
		this.nextTopEffectIndex = 0;				
		this.topBundPE = new PeriodicalExecuter(this.doTopBundEffect.bind(this), 0);
	},
	
	doTopBundEffect : function() {
		this.hideBundImg();
		this.nextTopEffectIndex = this.nextTopEffectIndex >= 4 ? 0 : this.nextTopEffectIndex + 1;		
		setTimeout(this.skiftBundBilledeOgTopEffekt.bind(this), 2000);
		this.topBundPE.stop();
		this.topBundPE = new PeriodicalExecuter(this.doTopBundEffect.bind(this), 8);
	},
	
	hideBundImg : function() {
		if ($('bundSwap') && $('bundSwap').fadeOut) {
			$('bundSwap').fadeOut();
		}
	},
	
	skiftBundBilledeOgTopEffekt : function() {
		var index = this.order[this.nextTopEffectIndex];
		if ($('bundSwap') && $('bundSwap').showSwap) {			
			$('bundSwap').showSwap(index, menuTop['href' + index]);
		}
		if (window.menuTop) {
			var topImgId = 'editableImageIMG_' + menuTop['img' + index]; 
			if ($(topImgId) && $(topImgId).doEffect) {			
				$(topImgId).doEffect('striber');
			}
		}
	},
	
	swapIn : function(n) {
		if ($('quicksearchDropdown') && $('quicksearchDropdown').getStyle('display') == 'block') return ;
		this.currentTopImg = n;
		if ($('image') && $('image').swapIn) {			
			$('image').swapIn(n, menuTop['href' + n]);
		}
	},
	
	swapOut : function(n) {
		if ($('quicksearchDropdown') && $('quicksearchDropdown').getStyle('display') == 'block') return ;
		if (n != this.currentTopImg) { return; }
		if ($('image') && $('image').swapOut) {			
			$('image').swapOut(n);
		}
	}
	
})