/* home_mgr home_slider.js */
var home_list_photos,
	home_welcome,
	timing = new Number(),
	timi = new Number(),
	indexImage=1,
	nbImages,
	currentLi,
	photos_flow_is_on=false,
	photos_flow_is_stopped=false;
	
	
jQuery(document).ready(function() {
	home_welcome=jQuery('#home_welcome');
	home_list_photos=jQuery('#home_list_photos');


	if(home_welcome.size() && home_list_photos.size())
	{
		//adding the control buttons
		//home_slider_button1 for intro text
		//home_slider_button2 for forest slideshow
		jQuery('#block-system-main').append('<div id="home_slider_button1" class="sprite home_slider_button"></div><div id="home_slider_button2" class="sprite sprite_on home_slider_button"></div>');
			
		var home_slider_button=jQuery('.home_slider_button'),
			container = jQuery('#block-system-main .content');
		
		//checking intitial state from Drupal settings
		if(Drupal.settings.slider_selected_index==1){
			jQuery('#home_slider_button1').addClass('active');
			
			photos_flow_is_on=true;
			}
		else if (Drupal.settings.slider_selected_index==2){
			jQuery('#home_slider_button2').addClass('active');
			container.css('left','-960px');
			}
			
		//add behaviour
		home_slider_button
		.click(function(e){
				e.stopPropagation();
				e.preventDefault();
				var target=jQuery(e.target),
				icon = target.hasClass('hovering')?target.parent():target,
				step_on = (icon.attr('id')=='home_slider_button2') ? 1 : 0	;
				
				if(container.data('step_on')==step_on){
					return false;
					}
				else{
					var new_left = step_on?'+=960':'-=960';
					container.animate({left:new_left}, 450, function(){
							jQuery('.home_slider_button').toggleClass('active');
							container.data('step_on', step_on);
							if(step_on==1){
								restart_photo_flow();
								}
							else{
								stop_photo_flow();
								}	
						});
					}
			})
			.hover(function(e){
				e.stopPropagation();
				e.preventDefault();
				var target = jQuery(e.target);
				if(!target.hasClass('active') && !target.children('.hovering').size())
					return false;
					
				target.clone(false)
								.attr('id', '')
								.addClass('hovering')
								.removeClass('active')
								.css('opacity', 0)
								.appendTo(target)
								.fadeTo(300, 1);
				
				},function(e){
				e.stopPropagation();
				e.preventDefault();
				var target=jQuery(e.target),
				icon = target.hasClass('hovering')?target.parent():target;
				icon.children('.hovering').fadeTo(600, 0, function(){
						jQuery(this).remove();
					});
				
				})
			;


	}
	
	
	
	
	nbImages = home_list_photos.children("li").length;
	
	if(nbImages > 1 ){
		 //myImTmp = new Image();
		// temps entre 2 images
		 timing = 2300;
		 // duree transition
		 timi = 1400;
		 tournerDiapo(true);
	   }
	
	
	
	
	jQuery("#block-system-main-menu ul.menu li a")
		.each(function(index){
		jQuery(this).wrapInner( "<span class='home_menu_text' />" ).append('<span id="home_menu_sprite'+index+'" class="sprite home_menu_sprite"></span>');
		})
		.hover(function(e){
				e.stopPropagation();
				e.preventDefault();
				var target=jQuery(e.target),
				a=target.is('a')?target:target.parents('a:first'),
				sprite=a.children('span.home_menu_sprite');
				if(sprite.children('span.hovering').length)return;
				sprite
					.clone(false)
					.attr('id', '')
					.addClass('hovering')
					.css('opacity', 0)
					.appendTo(sprite)
					.fadeTo(200, 1);
				
			},function(e){
				e.stopPropagation();
				e.preventDefault();
				var target=jQuery(e.target),
				a=target.is('a')?target:target.parents('a:first');
				a.find('span.hovering').fadeTo(260, 0, function(){
					jQuery(this).remove();
					});
				});








});


function stop_photo_flow(){
	photos_flow_is_on=false;
}
function restart_photo_flow(){
	photos_flow_is_on=true;
	if(photos_flow_is_stopped){
		tournerDiapo(false);
	}else{
		var t=setTimeout(restart_photo_flow,600);
	}
}


function tournerDiapo(premiereFois){
	if(premiereFois){
		home_list_photos.prepend(
			"<li style='position:absolute;z-index:8;display:block;' id='fakeLi'> </li>"
		);
		var transition = 50;
	}
	else{
		var transition = timi;
	}
	jQuery("#fakeLi").animate({opacity:0},
		transition,
		function(){
			currentLi = home_list_photos
			.children(":eq("+indexImage+")")
			;
 	 		jQuery("#fakeLi")
				.html(currentLi.html() )
				.css("opacity","1");

			if(indexImage < nbImages){
   				      indexImage++;
			}
			else{
				      indexImage=1;
			}
			var t=setTimeout("tournerDiapo2()",500);
		});
}

function tournerDiapo2(){
	 		currentLi.css("display","none");
			var next = home_list_photos
			.children(":eq("+indexImage+")")
   			.css("display","block").children("img").get(0);
			

			
			var t=setTimeout(function(){
					testImage(next);
				},timing);
}

function testImage(next){
	if(!IsImageOk(next)){
			var t=setTimeout(function(){
					testImage(next);
				},600);
	}else if(photos_flow_is_on){
		tournerDiapo( false );
	}
	else{
		photos_flow_is_stopped=true;
	}
}

function IsImageOk(img) {
    // During the onload event, IE correctly identifies any images that
    // weren’t downloaded as not complete. Others should too. Gecko-based
    // browsers act like NS4 in that they report this incorrectly.
    if (!img.complete) {
        return false;
    }

    // However, they do have two very useful properties: naturalWidth and
    // naturalHeight. These give the true size of the image. If it failed
    // to load, either of these should be zero.

    if (typeof img.naturalWidth != 'undefined' && img.naturalWidth == 0) {
        return false;
    }

    // No other way of checking: assume it’s ok.
    return true;
}

;

