// <![CDATA[
var hp = {
	persons: new Array(),
	episods: new Array(),
	
	hp_container : 'home_content',
	hp_element : Object ,
	limit_bottom: 0,
	limit_right: 0,
	v_growth: 180,
	o_growth: 121,
	
//SOUND
	sound_path: 'files/2009/02/sigla_feisbum.swf',
	sound_container_id: 'sound_po',
	sound_container: Object,
	sound_controller_id : 'sound_controller',
	sound_controller_ele : Object ,
	sound_object_id : 'sound_object',
	
	sound_play: false,
	sound_OFF_txt: 'sound:<b>ON|OFF</b>',
	sound_ON_txt: 'sound:<b>ON|OFF</b>',
	
	initialize: function(){
//Home footer
		if($('footer_dx')){
			$('footer_dx').appear({delay: 1.5, duration: 0.3});
		}
		hp.hp_element = $(hp.hp_container);
		if(!hp.hp_element) return(false);

//		hp.preload_images();

		hp.limit_right = hp.hp_element.getWidth();
		hp.limit_bottom= hp.hp_element.getHeight();
//	SOUND...
		hp.sound_container = $(hp.sound_container_id);
		if(hp.sound_path.strip() != "" && hp.sound_container){
			if(hp.sound_path.strip() != "" && hp.sound_container){

			hp.sound_controller_ele = $(hp.sound_controller_id);
			hp.sound_controller_ele.update(hp.sound_ON_txt);
			
			if(hp.sound_controller_ele){
				new Event.observe(hp.sound_controller_id,"click", function(event){
					Event.stop(event);
					if(hp.sound_play == true){
						hp.stop_sound();
					}else{
						hp.play_sound();
					}
				});
				}
			}
		}
		
		if(!hp.hp_element){
			if(hp.sound_path.strip() != "" && hp.sound_container){
				hp.play_sound.delay(3);
			}
			return(false);
		}
		h_pHolder=hp.hp_element.select('#home_text');
		if(h_pHolder.first()){
			h_pHolder = h_pHolder.first();
		}		
		new PeriodicalExecuter(function(hp_pe){
			hp.draw_element();
			new_ele = hp.persons.last();
			if(!new_ele){
				new Insertion.Top(
					h_pHolder,'<div style="display:none" id="home_navigation_text" class="bold big_text txt_centered">' +
							'Clicca su una delle foto per entrare nel mondo feisbum!' +
						'</div>');
				new Effect.Appear('home_navigation_text', {delay: 0.2, duration: 0.5, 
				queue: { position: 'end', scope: 'navi' }, sync: false});
				new Effect.Appear('newsletterform', {duration: 0.5, 
					queue: { position: 'end', scope: 'navi' },
					sync: false});
///				new Effect.Shake('home_navigation_text' , {delay: 1.2, duration: 0.8, distance: 20,scope: 'navi',sync: false});
	//SOUND...
				hp_pe.stop();
				hp.add_observers();
				hp.play_sound.delay(3);
				return(false);				
			}
		}, 0.1);
	},
//SOUND CONTROL
	play_sound: function(){
		hp.sound_container = $(hp.sound_container_id);
		if(hp.sound_path.strip() == "" || !hp.sound_container){
			alert("Error...");
			return(false);
		}

		sound_flashvars = {};
		sound_params = {menu: "false", allowscriptaccess: "always"};
		sound_params = {allowscriptaccess: "always"};
		sound_attributes = {};
		swfobject.embedSWF(hp.sound_path , hp.sound_object_id, "0", "0", "9.0.0",
			"expressInstall.swf", sound_flashvars, sound_params, sound_attributes);
		
		hp.sound_controller_ele.update(hp.sound_OFF_txt);
		hp.sound_controller_ele.appear({delay:0.2, duration: 0.5, scope:'navi', queue: 'end'});
		hp.sound_play = true;
	},
	
	stop_sound: function(){
		sound_ele = $(hp.sound_object_id);
		if(sound_ele){
			sound_ele.remove();
			hp.sound_play = false;
			hp.sound_controller_ele.update(hp.sound_ON_txt);
			div_ele = new Element('div', {id: hp.sound_object_id});
			new Insertion.Bottom(hp.sound_container, div_ele);
		}
	},

// HOME ANI
	add_episode: function(episode_element){
		hp.episods.push(episode_element);
	},
	add_person: function(person_element){
		hp.persons.push(person_element);
	},
	add_observers: function(){
		var elements = $$("DIV.hpc");
		elements.each(function(p_ele){
			Event.observe(p_ele, 'click', function(event){
				hp.puff_ele(this);
			});
		});
	},
	preload_images: function(){
		var image_preloader = '<div id="image_place_holder">';
		hp.persons.each(function(ele){
			image_preloader += '<img src="' + ele[2] + '" />';
		});
		image_preloader += '</div>';
		new Insertion.Top( hp.hp_element, image_preloader);
	},
	draw_element: function(){
		new_ele = hp.persons.last();
		hp.persons.pop();
		
		new Insertion.Bottom( hp.hp_element,
			'<div class="hpc_container">' +
			'<div style="display:none" class="hpc" id="person_'+new_ele[0]+'">' +
			'<img class="home_image" alt="' + new_ele[1] + '" src="' + new_ele[2] + '" />' +
			'</div></div>'+
			'<div class="hp_person_element" id="person_box_'+ new_ele[0] + '" style="display:none">' +
			'<div class="person_data txt_centered">' +
			'<a class="normal_text orange" title="' + new_ele[1] + '" href="person.php?id='+ new_ele[0] + '">' +  
			'<img class="person_image" alt="' + new_ele[1] + '" src="' + new_ele[2].sub('tn-','') + '" />'+ 
			'<div class="person_name">'+ new_ele[1]+'</div></a></div>' +
			'</div>'
		);
		var p_ele = $('person_' + new_ele[0]);
		
		new Effect.Appear	(p_ele, {duration: 0.25, delay: 0.2});
		new Effect.Shake	(p_ele, {duration: 0.9, distance: 10});
	},
	puff_ele: function(ele){
	  	$$(".puffed").each(function(unp_ele){
	  		if((unp_ele.id != ele.id) &&(unp_ele)){
		  		hp.unpuff_ele(unp_ele);
	  		}
	  	});
	  	
		if(ele.hasClassName("puffed")){
			hp.unpuff_ele(ele);
		}else{
//	-------------------------------------------------------------
	  	ele.addClassName('puffed');
		var ele_id = ele.id;
		ele_id = ele_id.sub('person_','');
		var puff_element = $("person_box_" + ele_id);
		if(puff_element){

			var puff_top=	(ele.positionedOffset().top - (hp.v_growth / 3)).round();
			var puff_left=	(ele.positionedOffset().left - (hp.o_growth / 3)).round();

			puff_element.style.top = puff_top + "px";
			puff_element.style.left = puff_left + "px";

			var init_puff_element_top = (puff_top > 55)? puff_top : 55;
			var init_puff_element_left = (puff_left > 8)? puff_left : 8;

			if(init_puff_element_top > 0 || init_puff_element_left > 0){
				new Effect.Move(puff_element, {
					queue: { position: 'end', scope: 'people_puff_move' },
					transition: Effect.Transitions.spring,
				 	x: init_puff_element_left, y: init_puff_element_top, mode: 'absolute'});
			}
//calcoli
			var ele_bottom_limit =	ele.positionedOffset().top + hp.v_growth - 8;
			var ele_right_limit =	ele.positionedOffset().left + hp.o_growth;
			var x_movement = 0;
			var y_movement = 0;
			
			if(ele_bottom_limit > hp.limit_bottom || ele_right_limit > hp.limit_right){
				x_movement = (ele_right_limit > hp.limit_right)? ele_right_limit - hp.limit_right : 0;
				y_movement = (ele_bottom_limit > hp.limit_bottom)? ele_bottom_limit - hp.limit_bottom : 0;
				new Effect.Move(puff_element, {
					queue: { position: 'end', scope: 'people_puff_move' },
					transition: Effect.Transitions.spring,
				 	x: -x_movement, y: -y_movement, mode: 'relative'});
			}
			
			puff_element.addClassName('view_puff');
			puff_element.show();
			
			new Effect.Morph(puff_element, {
				queue: { position: 'end', scope: 'people_puff' },
				style: {width: hp.o_growth+'px',height: hp.v_growth+'px'},
				transition: Effect.Transitions.spring, duration: 1.2,
		  		afterUpdate: function(){},
		  		afterFinish:function(){} 
		  	});
			}
	//		return(true);
//	-------------------------------------------------------------
			}
		},
	unpuff_ele: function(ele){
		if(ele.hasClassName("puffed")){
			//	-------------------------------------------------------------
  			ele.removeClassName('puffed');
			var ele_id = ele.id;
			ele_id = ele_id.sub('person_','');
			var puff_element = $("person_box_"+ele_id);
			if(puff_element){
				puff_element.removeClassName('view_puff');
				new Effect.Fade(puff_element,{duration: 0.2, delay: 0.0,
				queue: { position: 'front', scope: 'people_unpuff' },
				afterFinish:function(){
					puff_element.style.width = '0px';
					puff_element.style.height= '0px';					
				}});
			}
//			return(true);
			//	-------------------------------------------------------------
		}
	}
};
Event.observe(document, "dom:loaded", function(){
	hp.initialize();
});
// ]]>