﻿var hp_timer = null;
var hp_currentIndex = 0;
var slider = null;
var container = null;
var items = null;
var timeout = 5000;
var slideAnimationLength = 2000;
var jCache = new Object();
var splahIndex = -1;
var bannerIndex = -1;

$(function ()
	{
		// for Projects: fix height
		if(env.section.toLowerCase() == 'progetti')
			FixProjectsHeight();
		// for Profile: fix height
		if(env.section.toLowerCase() == 'profilo')
			FixProfileHeight
		//
		PrepareSliders();
		//
		// for splash
		jCache.divsSpalshImage = $('div#splash div[id^="splashImage_"]');
		jCache.divsSpalshImage.css('opacity', 0.0);
		jCache.divsSpalshImage.show();
		DisplaySplashImages();
		window.setInterval('DisplaySplashImages();', 5000);
		// for banner
		jCache.divsBannerImage = $('div#banner div[id^="bannerImage_"]');
		jCache.divsBannerImage.css('opacity', 0.0);
		jCache.divsBannerImage.show();
		if(jCache.divsBannerImage.length > 1)
		{
			DisplayBannerImages();
			window.setInterval('DisplayBannerImages();', 5000);
		}
		else
		{
			$('div#bannerImage_0').css('opacity', 1.0);
		}
	}
);

function DisplaySplashImages()
{
	splahIndex++;
	splahIndex = splahIndex % jCache.divsSpalshImage.length;


	ShuffleArray(jCache.divsSpalshImage).each(function(i, el){
		//trace.show(i + '/' + splahIndex);
		//trace.show($(el).attr('id'));
		var finalOpacity = (i == splahIndex) ? 1.0 : 0.0;
		//trace.show(finalOpacity);
		$(el).animate({'opacity':finalOpacity}, {duration:1000, queue:false});
	});
}

function DisplayBannerImages()
{
	bannerIndex++;
	bannerIndex = bannerIndex % jCache.divsBannerImage.length;
	//
	ShuffleArray(jCache.divsBannerImage).each(function(i, el){
		//trace.show(i + '/' + bannerIndex);
		var finalOpacity = (i == bannerIndex) ? 1.0 : 0.0;
		//trace.show(finalOpacity);
		$(el).animate({'opacity':finalOpacity}, {duration:1000, queue:false});
	});
}

function ShuffleArray(array)
{
	for(var j, x, i = array.length; i; j = parseInt(Math.random() * i), x = array[--i], array[i] = array[j], array[j] = x);
    return array;
}

function FixProjectsHeight()
{
	var main_container = $('#sa-projects');
	var items = main_container.find('.sa_item');
	//
	var finalHeight = 0;
	items.each(function(){
		finalHeight = Math.max(finalHeight, $(this).height());
	});
	main_container.height(finalHeight);
};

function FixProfileHeight()
{
	var main_container = $('#sa-profile');
	var items = main_container.find('.sa_item');
	//
	var finalHeight = 0;
	items.each(function(){
		finalHeight = Math.max(finalHeight, $(this).height());
	});
	main_container.height(finalHeight);
};

function PrepareSliders()
{
	$('div.slideArea').each(function(){
        //trace.show("slideArea: " + $('div.slideArea').length);
        //
		var j = $(this);
		var arrowL = j.find('div.sa_arrowLeft');
		var arrowR = j.find('div.sa_arrowRight');
	    arrowL.css('opacity', 0.0);
		arrowR.css('opacity', 0.0);
		//
		var slideDuration = 2500;
		//
		var container = j.find('div.sa_container');
        //
		var mover = $('div.sa_mover', this);
        //
		//container.width(j.width() - arrowL.width() - arrowR.width());
		container.width(798);
		
		trace.show(container.width());
		//
		var arrowsVerticalPosition = (j.height()/2) - 15;
		arrowsVerticalPosition = Math.min(arrowsVerticalPosition, 350);
        var arrowLbgPosition =  "2px " + arrowsVerticalPosition.toString() + "px";
        arrowL.height(j.height()).css('background-position', arrowLbgPosition);
        var arrowRbgPosition =  "43px " + arrowsVerticalPosition.toString() + "px";
		arrowR.height(j.height());
		arrowR.css('background-position', arrowRbgPosition);
        //
		var items = j.find('div.sa_item');
		var first_item = $(items[0]);
		var item_width = first_item.width() + parseInt(first_item.css('margin-left')) + parseInt(first_item.css('margin-right'));
		mover.width((items.length * item_width));
		// trace.show(mover.width());
		//
        if(mover.width() > container.width())
		{
			//container.width(item_width * 6);
			//
			var currentPage = 0;
			var pagesNum = Math.ceil(mover.width() / container.width());
			j.data('pagesNum', pagesNum);
			j.data('currentPage', currentPage);
            //trace.show("pagesNum: " + pagesNum);
			//
			arrowL.data('carusel', j);
			arrowR.data('carusel', j);
			//
			var pageWidth = container.width();
			//
			arrowR.fadeTo(1000, (currentPage == (pagesNum - 1))?0.0:1.0).css('cursor', (currentPage == (pagesNum - 1))?'default':'pointer');
			arrowL.fadeTo(1000, (currentPage == 0)?0.0:1.0).css('cursor', (currentPage == 0)?'default':'pointer');
			//
			arrowL.bind('click', function(){
				var j = $(this);
				var carusel = j.data('carusel');
				var currentPage = carusel.data('currentPage');
				var pagesNum = carusel.data('pagesNum');
				if(currentPage > 0)
				{
					currentPage--;
					carusel.data('currentPage', currentPage);
					//
					carusel.find('div.sa_arrowRight').fadeTo(1000, (currentPage == (pagesNum - 1))?0.0:1.0).css('cursor', (currentPage == (pagesNum - 1))?'default':'pointer');
					carusel.find('div.sa_arrowLeft').fadeTo(1000, (currentPage == 0)?0.0:1.0).css('cursor', (currentPage == 0)?'default':'pointer');
					//
					// var l = currentPage * pageWidth;
					var l = currentPage * pageWidth;
					mover.animate({
						'marginLeft': -l
						},
						{
							duration:slideDuration,
							easing:'swing',
							queue:false
						}
					);
				}
			});
			arrowR.bind('click', function(){
				var j = $(this);
				var carusel = j.data('carusel');
				var currentPage = carusel.data('currentPage');
				var pagesNum = carusel.data('pagesNum');
				if(currentPage < (pagesNum - 1))
				{
					currentPage++;
					carusel.data('currentPage', currentPage);
					//
					carusel.find('div.sa_arrowRight').fadeTo(1000, (currentPage == (pagesNum - 1))?0.0:1.0).css('cursor', (currentPage == (pagesNum - 1))?'default':'pointer');
					carusel.find('div.sa_arrowLeft').fadeTo(1000, (currentPage == 0)?0.0:1.0).css('cursor', (currentPage == 0)?'default':'pointer');
					//
					var l = (currentPage * pageWidth);
					//trace.show(l);
					mover.animate({
						'marginLeft': -l
						},
						{
							duration:slideDuration,
							easing:'swing',
							queue:false
						}
					);
				}
			});
		}
	});
};
