/* Filename: misura/javascripts/home/home.js */

/**
 * Initializes the current script
**/
it.misura.initHome = function()
{
	it.misura.vars.areaMenu = jQuery( '#areas-menu' );
	it.misura.vars.areaMenu.css
	(
		{ marginTop:'0', top: it.misura.getAreasMenuVerticalPosition() + 'px' }
	);
	it.misura.appendAreasBackgrounds();
	jQuery( '.popup-last-news .close-button' ).click( it.misura.closePopupLastNews );
	jQuery( window )
		.load( it.misura.attachHomeVideo )
		.resize( it.misura.homeWindowResize )
	;
};/* end function it.misura.initHome() */

/**
 * Appends all area background
**/
it.misura.appendAreasBackgrounds = function()
{
	jQuery( '#areas-menu a:not(.worldwide)' )
		.each
		(
			function()
			{
				var name = jQuery( this ).attr( 'class' );
				it.misura.loadBackgroundImage( name, it.misura.vars.imagesUrl + name + '/backgrounds/default.jpg' );
			}
		)
		.hover( it.misura.areaMenuRollover, it.misura.areaMenuRollout )
		.click( it.misura.areaMenuClick )
	;
};/* end function it.misura.appendAreasBackgrounds() */

/**
 * Manages the area menu rollover event
**/
it.misura.areaMenuRollover = function()
{
	jQuery( '.' + jQuery( this ).attr( 'class' ), it.misura.vars.backgroundContainer )
		.stop()
		.animate( { opacity: 1}, 1000 )
	;
};/* end function it.misura.areaMenuRollover() */

/**
 * Manages the area menu rollout event
**/
it.misura.areaMenuRollout = function()
{
	jQuery( '.' + jQuery( this ).attr( 'class' ), it.misura.vars.backgroundContainer )
		.stop()
		.animate( { opacity: 0}, 1000 )
	;
};/* end function it.misura.areaMenuRollout() */

/**
 * Manages the areas menu click event
**/
it.misura.areaMenuClick = function()
{
	var
		  t = jQuery( this )
		, name = t.attr( 'class' )
	;
	if( it.misura.vars.hasFlashPlayerVersion )
	{
		it.misura.vars.headerBackgroundsFolder = name;
		it.misura.vars.footerBackgroundsFolder = name + '/lang/' + it.misura.vars.applicationLanguage;
		it.misura.windowResize();

		if( typeof it.misura.vars.areaPlayer !== 'undefined' )
		{
			it.misura.vars.areaPlayer.remove();
		} else {
			it.misura.vars.areaPlayer = jQuery.forge( 'div' )
				.attr( 'id', 'area-player' )
				.appendTo( jQuery( '#content' ) )
			;
		}
		jQuery( '#home-info-links' ).remove();
		jQuery( '#areas-menu a' ).unbind( 'mouseover' ).unbind( 'mouseout' );
		jQuery( '.' + name, it.misura.vars.backgroundContainer ).stop().css( 'opacity', 1 );
		it.misura.printAreaVideoPlayer
		(
			name, t.attr( 'href' ), it.misura.vars.areasVideosSkipColors[ name ].replace( '#', '0x' )
		);
	} else {
		window.location.href = t.attr( 'href' );
	}

	return false;
};/* end function it.misura.areaMenuClick() */

/**
 * Attaches the home video clip
**/
it.misura.attachHomeVideo = function()
{
	if( it.misura.vars.hasFlashPlayerVersion )
	{
		jQuery.forge( 'div' )
			.attr( 'id', 'home-background-player' )
			.appendTo( jQuery( '#content' ) )
		;

		var flashvars = {
			  percorso: it.misura.vars.videosUrl + 'home/' + it.misura.vars.homeVideo
			, isLive: 'false'
			, autoLoop: 'false'
			, autoPlay: 'true'
			, resizeToFit: 'true'
			, show_controls: 'false'
			, volume: '50'
		};
		var params = {
			  allowscriptaccess: 'sameDomain'
			, allowfullscreen: 'true'
			, menu: 'false'
			, wmode: 'transparent'
		};
		var attributes = {
			  xiRedirectUrl: self.location.href
			, id: 'home-background-player'
		};

		swfobject.embedSWF
		(
			  it.misura.vars.siteUrl + 'players/player.swf'
			, 'home-background-player'
			, '100%'
			, '100%'
			, it.misura.vars.requiredFlashVersion
			, it.misura.vars.siteUrl + 'players/express-install.swf'
			, flashvars
			, params
			, attributes
		);
	} else {
		it.misura.loadBackgroundImage
		(
			'bg-home-backup', it.misura.vars.imagesUrl + it.misura.vars.homeBackground
		).animate( { 'opacity': 1 }, 1000 ).css( 'z-index', 0 );
	}
};/* end function it.misura.attachHomeVideo() */

/**
 * Manages full window resize event
**/
it.misura.homeWindowResize = function()
{
	var endpos = Math.round( it.misura.getAreasMenuVerticalPosition() );
	if( parseInt( it.misura.vars.areaMenu.css( 'top' ), 10 ) != endpos )
	{
		it.misura.vars.areaMenu.stop( true )
			.animate( { 'opacity': 0.4 }, 200 )
			.animate( { 'top': endpos + 'px'  } , 600 )
			.animate( { 'opacity': 1 }, 600 )
		;
	}
};/* end function it.misura.windowResize() */

/**
 * Returns the final areas menu vertical position
**/
it.misura.getAreasMenuVerticalPosition = function()
{
	return Math.round( ( it.misura.vars.content.height() - it.misura.vars.areaMenu.height() ) / 2 );
};/* end function it.misura.getAreasMenuVerticalPosition() */

/**
 * Add the current object initialization to the onload event
**/
jQuery( document ).ready( it.misura.initHome );
