var Mp3Player = Class.create({
	
	initialize : function(songs) {
		var params = {
			wmode : 'opaque'
		};		
		var flashvars = songs;
		
		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() {
		$('playerSWF').playPause();
	},
	
	test : function() {
		alert('test');
	},
	
	nextClick : function() {
		$('playerSWF').cmdNext();
	},
	
	stopClick : function() {
		$('playerSWF').cmdStop();
	},
	
	setSongName : function(songName) {
		$('sangTitel').update(songName);
	},
	
	setStatus : function(status) {
		
	},
	
	playProgress : function(position, length) {
		var progress = this.makeTime(position) + '/' + this.makeTime(length);
		if (progress == '00:00/00:00') {
			progress = '';
		}
		$('sangProgress').update(progress);
	},
	
	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;
	}
	
});

var songs = {
	url0 	: '/songs/Europaelevator.mp3',
	titel0	: 'Europaelevator',
	
	url1	: '/songs/Skrivestop.mp3',
	titel1	: 'Skrivestop',
	
	url2	: '/songs/Krig.mp3',
	titel2	: 'Lad os starte en krig',
	
	url3	: '/songs/Schh.mp3',
	titel3	: 'Schh'
}

mp3Player = new Mp3Player(songs);

Event.observe(document, 'dom:loaded', function() {
	setScreen();	
	Event.observe(window, 'resize', setScreen);
	$('email').observe('focus', emailFocus);
	$('emailSubmit').observe('click', emailSubmitClick);
	
	//$('myspaceBtn').observe('click', function)
	$('playButton').observe('mouseover', cmdBtnMouseover);
	$('nextButton').observe('mouseover', cmdBtnMouseover);
	$('stopButton').observe('mouseover', cmdBtnMouseover);
	
	$('playButton').observe('mouseout', cmdBtnMouseout);
	$('nextButton').observe('mouseout', cmdBtnMouseout);
	$('stopButton').observe('mouseout', cmdBtnMouseout);	
});

function cmdBtnMouseover(event) {
	var e = event.element();
	switch (e.id) {
		case 'playButton':
			var img = 'playPause_rollover';
			break;
		case 'nextButton':
			var img = 'nextBtn_rollover';
			break;
		case 'stopButton':
			var img = 'stopBtn_rollover';
			break;		
	}
	e.setStyle({
		background : 'url(/images/' + img + '.jpg) no-repeat top left'
	});
}

function cmdBtnMouseout(event) {
	var e = event.element();
	e.setStyle({
		background : 'url(/images/dummy.gif) repeat'
	});
}

function emailFocus() {
	if ($('email').value == 'Din email') {
		$('email').value = '';
	}
}

function emailSubmitClick() {
	if (/^([a-z0-9_\-\.])+\@([a-z0-9_\-\.])+\.([a-z]{2,4})$/i.test($F('email'))) {
		new Ajax.Request('/ajax/tilmeldNyhedsbrev.php', {
			method : 'post',
			parameters : {
				email	: $F('email')
			},
			onSuccess	: tilmeldSuccess,
			onFailure	: tilmeldFailure
		});
		$('emailSubmit').update('Arbejder...');
		$('emailSubmit').setStyle({
			cursor: 'auto'
		});
	} else {
		alert('Indtast venligst en gyldig email-adresse');
	}
}

function tilmeldSuccess(transport) {
	if (transport.responseText != 'success') {
		tilmeldFailure(transport);
		return;
	}
	alert('Tak for din tilmelding. Vi vil holde dig opdateret.');
	resetTilmelding();
}

function resetTilmelding() {
	$('emailSubmit').setStyle({
		cursor: 'pointer'
	});
	$('email').value = 'Din email';
	$('emailSubmit').update('Tilmeld nyhedsbrev');
}

function tilmeldFailure(transport) {
	if (confirm('Der skete en fejl. Vil du se den tekniske information?')) {
		alert(transport.responseText);
	}
	resetTilmelding();
}

function setScreen() {
	var screenDimensions = document.viewport.getDimensions();
	var contentDimensions = $('contentWrapper').getDimensions();

	//alert(screenDimensions.width + ' ' + screenDimensions.height + ' ' + contentDimensions.width + ' ' + contentDimensions.height);
	
	$('masterBg').setStyle({
		left: Math.round((screenDimensions.width - 1620) / 2) -6 + 'px',
		top:  Math.round((screenDimensions.height - 1160) / 2) -3 + 'px',
		display:'block'
	})
	$('contentWrapper').setStyle({
		left: Math.round((screenDimensions.width - contentDimensions.width) / 2) + 'px',
		top:  Math.round((screenDimensions.height - contentDimensions.height) / 2) + 'px'
	})
}