/**
 *############################################################
 *#  copyright 2009 Markus-Oliver Morgenstern                #
 *#  version $Revision$                                      #
 *#  author $Author$                                         #
 *#  $Id$, $Date$                                            #
 *############################################################
 */


/**
 * Global variables
 */
var bgImagePath;
var bgImageRealHeight = 570;
var bgImageRealWidth = 940;
var applicationHeight = 720;
var applicationWidth = 960;
var assetsImagePath = '/mysite/assets/image/';
var ajaxRequest;
var homePageFx;
var homePageOverState;


/**
 * domready
 * get started when all dom-elements beeing loaded
 */
window.addEvent('domready', function() 
{
	windowIsResized();  
	window.onresize = function() 
	{
		windowIsResized();
	}
	reloadImages();
});


init();


/**
 * 
 */
function windowIsResized()
{
	var windowWidth = (window.gecko) ? document.body.clientWidth : window.getWidth();
	var windowHeight = (window.gecko) ? document.body.clientHeight : window.getHeight();
	
	if(windowHeight <= applicationHeight)
	{	
		if($('outer-container-wrapper').getStyle('margin-top') != '0px')
		{
			$('outer-container-wrapper').setStyle('margin-top', '0px');
			$('outer-container-wrapper').setStyle('top', 'auto');
		} 
	} else
	{
		if($('outer-container-wrapper').getStyle('margin-top') != '-360px')
		{
			$('outer-container-wrapper').setStyle('margin-top', '-360px');
			$('outer-container-wrapper').setStyle('top', '50%');
		} 
	}
}


/**
 * 
 */
function init()
{
	windowIsResized();
	
	if($('homePage'))
	{
		homePageFx = new Fx.Tween(
			'homePage',
			{
				property: 'top',
				duration: 'normal',
				transition: 'sine:in:out'
			} 
		);
		$('homePage').setStyle('top', '500px');
		$('newsbutton-wrapper').addEvent('mouseover', function(){
			if(homePageOverState == undefined || homePageOverState)
			{
				homePageFx.cancel();
				homePageFx.start('120px');
				homePageOverState = false;
			} else
			{
				homePageFx.cancel();
				homePageFx.start('500px');
				homePageOverState = true;
			}
		});
		$('newsbutton-wrapper').addEvent('click', function(){
			if(homePageOverState == undefined || homePageOverState)
			{
				homePageFx.cancel();
				homePageFx.start('120px');
				homePageOverState = false;
			} else
			{
				homePageFx.cancel();
				homePageFx.start('500px');
				homePageOverState = true;
			}
		});
		
	}

	if($('musicianHolderMusicianDetail'))
	{
		$('musicianHolderMusicianDetail').fade('hide');
		$('musicianHolderMusicianDetailLoader').fade('hide');
		$('musicianHolderMusicianDetailItem').set('html', '');

		ajaxRequest = new Request({
			noCache: true,
			onRequest: function() {
				musicianAjaxContent.request();
			},
			onComplete: function() {
				musicianAjaxContent.complete();
			},
			onSuccess: function(responseText, responseXML) {
				musicianAjaxContent.success(responseText, responseXML);
			},
			onCancel: function() {
				musicianAjaxContent.cancel();
			},
			onFailure: function(xhr) {
				musicianAjaxContent.success('Es ist ein Fehler aufgetreten.');
			}
		});
	}

	if($('RepertoirePlayerDetail'))
	{
		$('RepertoirePlayerDetail').fade('hide');
		$('RepertoirePlayerDetailLoader').fade('hide');
		$('RepertoirePlayerDetailItemHeadline').set('html', '');
		$('RepertoirePlayerDetailItemComment').set('html', '');
	}

}


/**
 * Musiker Template
 * Laedt die neuen Inhalte mit Ajax nach
 */
var musicianAjaxContent = {
	loadContent: function(requestedPage) 
	{
		ajaxRequest.cancel();
		ajaxRequest.send({ url: requestedPage });
	},
	request: function()
	{
		$('musicianHolderMusicianDetail').fade('in');
		$('musicianHolderMusicianDetailLoader').fade('in');
		$('musicianHolderMusicianDetailItem').fade('out');
	},
	complete: function()
	{
	},
	success: function(responseText, responseXML) 
	{
		$('musicianHolderMusicianDetailLoader').fade('out');
		$('musicianHolderMusicianDetailItem').set('html', responseText);
		$('musicianHolderMusicianDetailItem').fade('in');
	},
	cancel: function()
	{
		$('musicianHolderMusicianDetail').fade('hide');
		$('musicianHolderMusicianDetailLoader').fade('show');
		$('musicianHolderMusicianDetailItem').fade('out');
		$('musicianHolderMusicianDetailItem').set('html', '');
	}
}



/**
 * Repertoire Template
 */
var repertoirePlayerContent = {
	loadContentAudio: function(title, requestedFile) 
	{
		$('RepertoirePlayerDetail').fade('in');
		$('RepertoirePlayerDetailLoader').fade('out');
		$('RepertoirePlayerDetailItem').fade('in');
		$('RepertoirePlayerDetailItemHeadline').set('html', title);
		$('RepertoirePlayerDetailItemComment').set('html', '');
		flowplayer(	"RepertoirePlayerDetailItemPlayer", 
					"/mysite/assets/flash/flowplayer-3.1.4.swf", 
					{ 
						clip: {
							autoPlay: true
						},
					    playlist: [{ url: '/mysite/assets/image/cdcover-theatriumwiesbaden.jpg', autoPlay: true }, { url: requestedFile, autoPlay: false }],
		
						plugins: { 
						    controls: { 
						        url: '/mysite/assets/flash/flowplayer.controls-3.1.4.swf', 
		
						        backgroundColor: '#000000',
						        backgroundGradient: 'low',
		
								play: true, 
								volume: false, 
								mute: false, 
								time: false, 
								stop: false, 
								playlist: false, 
								fullscreen: false,
								
								scrubber: true
		
						    },
							audio: { 
								url: '/mysite/assets/flash/flowplayer.audio-3.1.2.swf' 
							}				    
						} 
					}
		);
		
	},
	
	loadContentYoutube: function(title, requestedFile) 
	{
		$('RepertoirePlayerDetail').fade('in');
		$('RepertoirePlayerDetailLoader').fade('out');
		$('RepertoirePlayerDetailItem').fade('in');
		$('RepertoirePlayerDetailItemHeadline').set('html', title);
		$('RepertoirePlayerDetailItemComment').set('html', 'Quelle: <a href="http://www.youtube.com/watch?v='+requestedFile+'" target="_blank">YouTube.com</a>');
		$('RepertoirePlayerDetailItemPlayer').set('html', '<object width="220" height="200"><param name="movie" value="http://www.youtube.com/v/'+requestedFile+'&hl=de&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'+requestedFile+'&hl=de&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="220" height="200"></embed></object>');
		
	}
	
}


/**
 * load images and put them into structure
 */
function reloadImages() 
{
	/* imagesToLoad = [pictureId, path] */
	var imagesToLoad = new Array(); 
	if ( $defined($('bgPicture')) ) 
	{
		imagesToLoad = [
			['bgPicture', bgImagePath]
		];
	}
  
	imagesToLoad.each( function(imagesToLoad) 
	{
		if (imagesToLoad[1]) 
		{
			var img = new Image();
			img.src = imagesToLoad[1];
			if(!img.complete) 
			{
				img.onload = function() 
				{ 
					if ( $defined($(imagesToLoad[0])) ) $(imagesToLoad[0]).setProperty('src', imagesToLoad[1]);
				};  
			}
			else 
			{
				$(imagesToLoad[0]).setProperty('src', imagesToLoad[1]);
			}
		}
	});
}


/**
 * preload images
 * @param Array images
 */
function preloadImages(images)
{
	if (images == undefined) return;
	if (images.length <= 0) return;
	document.imageArray = new Array(images.length);
	for (var i = 0; i < images.length; i++) 
	{
		document.imageArray[i] = new Image;
		document.imageArray[i].src = images[i];
	}
}
