﻿var Mp3Player = Class.create({
	
	initialize : function(songs) {
		var params = {
			wmode : 'opaque'
		};		
		var flashvars = songs;
		flashvars.autoplay = true;
		
		swfobject.embedSWF("/swf/mp3Player.swf", 'playerSWF', 1, 1, "9.0.0", "", flashvars, params);
		
		if ($('playButton') && $('playButton').observe) {
			this.doDomStuff();
		} else {
			Event.observe(document, 'dom:loaded', this.doDomStuff.bindAsEventListener(this));
		}
	
	}, 
	
	doDomStuff : function() {
		$('playButton').observe('click', this.playClick.bindAsEventListener(this));
		$('nextButton').observe('click', this.nextClick.bindAsEventListener(this));
		$('stopButton').observe('click', this.stopClick.bindAsEventListener(this));
	},
	
	playClick : function() {
		if ($('ytplayer')) {
			$('ytplayer').pauseVideo();
		}
		$('playerSWF').cmdPlay();
	},
	
	test : function() {
		alert('test');
	},
	
	nextClick : function() {
		$('playerSWF').cmdNext();
	},
	
	stopClick : function() {
		$('playerSWF').cmdStop();
	},
	
	setSongName : function(songName) {
		return;
		if ($('sangTitelOgTid').setTitle) {
			$('sangTitelOgTid').setTitle(songName);
		} else {
			$('sangTitel').update(songName);	
		}
	},
	
	setStatus : function(status) {
		
	},
	
	playProgress : function(position, length) {
		$('sangProgress').update(this.makeTime(position) + '/' + this.makeTime(length));
	},
	
	makeTime : function(ms) {
		var sec = Math.round(ms / 1000);
		var min = Math.floor(sec / 60);
		sec = sec - min * 60;
		return this.stringPadLeft(min, 2, '0') + ':' + this.stringPadLeft(sec, 2, '0');
	},
	
	stringPadLeft : function (str, width, pad) {
		str = str.toString();
		while (str.length < width) {
			str = pad + str;
		}
		return str;
	}
	
});

if (!isAdminPage) {
	mp3Player = new Mp3Player(window.songs); // songs sættes fra php
}

var centerScroll; // Disse bruges af flere funktioner;
var kalenderScroll;
var videoScroll;
Event.observe(document,'dom:loaded', whenDomLoaded);

var slideshows = new Array();


function whenDomLoaded() {
	if (!isAdminPage) {
		
		
		swfobject.embedSWF("/swf/mp3PlayerDisplay.swf", 'sangTitelOgTid', 350, 20, "9.0.0", "", {} ,{wmode : 'opaque'} );
		
		if (videoer[0]) {
			var params = { 
				allowScriptAccess: "always", 
				allowFullScreen: "true",
				wmode		: 'opaque'
			};
		    var atts = { id: "ytplayer" };
	    	swfobject.embedSWF('http://www.youtube.com/v/'+videoer[0]['url']+'?enablejsapi=1&playerapiid=ytplayer&fs=1',"ytplayer","450","300","8",null,null,params,atts);
  		} else {
  			$('ytplayer').update('');
  		}
    	
    	var pe = new PeriodicalExecuter(function() {
    		if ($('ytplayer') && $('ytplayer').addEventListener) {
    			$('ytplayer').addEventListener('onStateChange', "ytplayerOnStateChange");
				pe.stop();		
    		}
    	}, 0.2);
		
		$('titleButton').observe('click', function() {
			changePage(1);
		});
		for (var i = 2; i <= 6; i++) {
			new MouseOver('menu' + i + 'IMG');	
		}
		
		centerScroll = new GraphicalScrollbar('centerWrapper', {'imgPrefix' : 'centerScroll', 'imgExtension' : 'gif', 'scrollbarWidth' : 23, 'endButtonsHeight' : 0, 'scrollThumbHeight' : 23});
		kalenderScroll = new GraphicalScrollbar('kalender', {'imgPrefix' : 'kalenderScroll', 'imgExtension' : 'png', 'scrollbarWidth' : 23, 'endButtonsHeight' : 0, 'scrollThumbHeight' : 23});
		videoScroll = new GraphicalScrollbar('videoListe', {'imgPrefix' : 'kalenderScroll', 'imgExtension' : 'png', 'scrollbarWidth' : 23, 'endButtonsHeight' : 0, 'scrollThumbHeight' : 23});
		
		changePage(window.currentPage);
	
		$('loginButton').observe('click', openLoginPopup);
		$('loginCurtain').observe('click', function() {
			$('loginCurtain').setStyle({display:'none'});
			$('loginPopup').setStyle({display:'none'});	
		});
		$('gaestebogSendBtn').observe('click', function() {
			if (gaestebogValidator.validates()) {
				$('centerContent_6').update('sender...');
				centerScroll.reset();
				//$('gaestebogSendBtn').setStyle({display: 'none'});
				new Ajax.Request('/ajax/gaestebogIndlaeg', {
					parameters: {
						navn : $F('gaestebogNavnIPT'),
						email : $F('gaestebogEmailIPT'),
						besked : $F('gaestebogBeskedIPT')
					},
					method : 'post',
					onSuccess : gaestebogSuccess,
					onFailure : ajaxFailure
				})
			}
		})
	}
	
	var queryParams = document.location.href.replace(/\+/g," ").toQueryParams();
	if (queryParams.loginError) {
		openLoginPopup();
		alert(queryParams.loginError);
	}
	if (queryParams.forgotPasswordError) {
		openLoginPopup();
		showForgotPassword();
		alert(queryParams.forgotPasswordError);
	}
	if (queryParams.forgotPasswordSuccess) {		
		alert('Vi har sendt en email med dit password til den angivne emailadresse');
	}
	
	if (window.formErrorFields) {
		formErrorFields.each(function(f) {				
			if ($(f) && ($(f).readAttribute('type') == 'text') || $(f).readAttribute('type') == 'password' || $(f).tagName == 'textarea' || $(f).tagName.toLowerCase() == 'select') {				
				$(f).setStyle({background: '#ff8'});
			}
		});
		var errorText = '';
		formErrors.each(function(m) {
			if (Object.isArray(m)) {				
				errorText += m.first() + "\n";
			} else {
				errorText += $H(m).values().first();
			}
		});
		alert(errorText);
		
	}
	if (adminLoggedIn && !isAdminPage) {
		$('tekstAdminButton').observe('click', middleButtonClick);
		$('venstreBilledeAdminButton').observe('click', venstreButtonClick);
		$('kalenderAdminButton').observe('click', function() {
			document.location = '/admin_kalender';
		});
		$('playerAdminButton').observe('click', function() {
			document.location = '/admin_sange';
		});
	}
	
	
	if (Prototype.Browser.IE) {
		$('password').observe('keydown', loginFormKeydown);
	}
	
	
	/*Event.observe(document, 'click', function(event) {
		var e = event.element();
		window.status = e.tagName + "#" + e.id;
	});*/
}

function playVideo(n) {
	if ($('ytplayer')) {
		$('ytplayer').loadVideoByUrl('http://www.youtube.com/v/' + videoer[n]['url']);
		if (mp3Player) {
			mp3Player.stopClick();
		}	
	}
}

function ytplayerOnStateChange(newState) {
	if (newState == 1 && mp3Player) {
		mp3Player.stopClick();
	}
}

function gaestebogSuccess(transport) {
	if (transport.responseText != 'success') {
		ajaxFailure(transport);
		return;
	}
	$('gaestebogNavnIPT').clear();
	$('gaestebogEmailIPT').clear();
	$('gaestebogBeskedIPT').clear();
	$('centerContent_6').update('Opdaterer gæstebogen...');
	centerScroll.reset();
	new Ajax.Updater('centerContent_6', '/ajax/updateGaestebog', {
		onFailure: ajaxFailure,
		onComplete: gaestebogUpdateComplete
	});
} 

function gaestebogUpdateComplete(transport) {
	//setTimeout(function() {
		centerScroll.reset();
	//}, 50);
}

function ajaxFailure(transport) {
	if (confirm('Der skete en fejl. vil du se den tekniske information?')) {
		alert(transport.responseText);
	}
}

function initMenu(pageId) {
	[2,3,4,5,6].each(function(p) {
		var e = $('menu' + p + 'IMG');
		if (p == pageId) {
			if (!e.hasClassName('active')) e.addClassName('active');
		} else {
			if (e.hasClassName('active')) e.removeClassName('active');
		}
		e.src = '/images/menu' + p + (p == pageId ? '_rollover' : '') + '.gif';
	})
}

function middleButtonClick() {
	if (currentPage == 3) {
		document.location = '/admin_billeder';
	} else if (currentPage == 6) {
		document.location = '/admin_gaestebog';
	} else {
		new EditorOverlay('centerContent_' + currentPage, tekstIds[currentPage]);
	}
}

function venstreButtonClick() {
	new ImageEditorOverlay('venstreBillede', venstreBilleder[currentPage]['image_id']);
}

function changePage(pageId) {
	currentPage = pageId;
	$$('.centerContent').each(function(e) {
		e.setStyle({
			display: 'none'
		});
	})
	$('centerContent_' + pageId).setStyle({
		display : 'block'
	});
	initMenu(pageId);
	centerScroll.reset();
	$('venstreBillede').down('img').src = '/images/cms/generelt/' + venstreBilleder[pageId]['image_id'] + '.jpg?salt=' + venstreBilleder[pageId]['image_salt'];
	$('venstreBillede').down('img').setStyle({
		left: (venstreBilleder[pageId]['image_pos_x'] ? Math.max(venstreBilleder[pageId]['image_pos_x'], 0) : 0) + 'px',
		top:  (venstreBilleder[pageId]['image_pos_y'] ? Math.max(venstreBilleder[pageId]['image_pos_y'], 0) : 0) + 'px',
		width: 'auto',
		height: 'auto'
	});
	if (pageId == 5 || pageId == 6) {
		$('kalender').setStyle({
			display:'none'
		});
		$('kalenderBg').setStyle({
			display:'none'
		});
		$('venstreBillede').setStyle({
			display : 'none'
		});
		$('venstreBilledeRamme').setStyle({
			display : 'none'
		});
		if (adminLoggedIn && !isAdminPage) {
			$('venstreBilledeAdminButton').setStyle({
				display: 'none'
			});
			$('kalenderAdminButton').setStyle({
				display: 'none'
			});
			$('tekstAdminButton').setStyle({
				display: 'none'
			});
		}
	} else {
		$('kalender').setStyle({
			display:'block'
		});
		$('kalenderBg').setStyle({
			display:'inline'
		});
		$('venstreBillede').setStyle({
			display : 'block'
		});
		$('venstreBilledeRamme').setStyle({
			display : 'inline'
		});
		if (adminLoggedIn && !isAdminPage) {
			$('venstreBilledeAdminButton').setStyle({
				display: 'block'
			});
			$('kalenderAdminButton').setStyle({
				display: 'block'
			});
			$('tekstAdminButton').setStyle({
				display: 'block'
			});
		}
	}
	if (pageId == 5) {
		$('videoWrapper').setStyle({
			display: 'block'
		});
		$('centerWrapper').setStyle({
			display: 'none'
		});
		videoScroll.reset();
	} else {
		$('videoWrapper').setStyle({
			display: 'none'
		});
		$('centerWrapper').setStyle({
			display: 'block'
		});
	}
	if (pageId == 6) {
		$('gaestebogWrapper').setStyle({
			display: 'block'
		});
		$('centerWrapper').setStyle({
			left: '485px'
		})
	} else {
		$('gaestebogWrapper').setStyle({
			display: 'none'
		});
		$('centerWrapper').setStyle({
			left: '389px'
		})
	}
}

function loginFormKeydown(event) {	
	var keyCode = getKeyCode(event);
	if (keyCode == Event.KEY_RETURN) {		
		if (loginValidator.validates()) {
			loginForm.submit();
		}
	}
}

function openLoginPopup() {
	$('loginCurtain').setStyle({
		display:'block',
		opacity:0.7
	});
	var winDimensions = document.viewport.getDimensions();
	$('loginPopup').setStyle({
		display:'block',
		left:Math.round(winDimensions.width / 2) - 171 + 'px',
		top:Math.round(winDimensions.height / 2) - 75 + 'px'
	});
	$('loginContent').setStyle({
		display:'block'
	});
	$('forgotPassword').setStyle({
		display:'none'
	});
	$('password').focus();
}

function showForgotPassword() {
	$('loginContent').setStyle({
		display:'none'
	});
	$('forgotPassword').setStyle({
		display:'block'
	});
}

var loginValidator = new Validator({
	rules : {
		password: {
			validator: 'notEmpty',
			id: 'password',
			message: 'Indtast venligst dit password.',
			breakChainOnFailure: true
		}		
	},
	form : 'loginForm',
	alert : {
		
	}
}, true);

var gaestebogValidator = new Validator({
	rules : {
		navn: {
			validator: 'notEmpty',
			id: 'gaestebogNavnIPT',
			message: 'Udfyld venligst dit navn.',
			breakChainOnFailure: true
		},
		email: {
			validator: 'email',
			id: 'gaestebogEmailIPT',
			message: 'Indtast venligst en gyldig email.',
			breakChainOnFailure: true
		},
		besked: {
			validator: 'notEmpty',
			id: 'gaestebogBeskedIPT',
			message: 'Du har ikke skrevet en besked.',
			breakChainOnFailure: true
		}
	},
	form : 'nyhedsmailsPopupForm',
	alert : {
		
	}
}, true);