function init()
{
	// INIT VARS
	jQuery.easing.def = "easeOutQuart";
	actuActif = 1;
	etudeActif = 0; 
	centerPos = "agence";
	
	// fns
	initMenu();
	accordion();
	hNav();
	lightbox();	
	isBtnRetour = false;
	initHomeSlider();
}

//-------------------------------------------------------
//
//		MENU
//
//-------------------------------------------------------
function initHomeSlider()
{		
	var num_slides = $(".homeBox").length;
	var startingId = Math.random() * num_slides;
	//console.info(num_slides,startingId);

	$('#home').cycle({
		fx: 'fade',		//	  fadeZoom,scrollUp,... http://malsup.com/jquery/cycle/
		timeout: 5000,
		speed:1500,
		pager:  '#homenav',
		pagerAnchorBuilder: function(idx, slide) {
			return '<li><a href="#"></a></li>';
		},
		startingSlide: startingId,
		//before:onBefore,
		//after:onAfter,
		//pagerClick:onClick,
		pause:         1,     
   		pauseOnPagerHover: 1
	});

}


//-------------------------------------------------------
//
//		MENU
//
//-------------------------------------------------------
function initMenu()
{		
	/*
	$("#agence_btn").click(function()
	{
		moveAgence();
		return false;
	});
	$("#actualites_btn").click(function()
	{
		var etude = $('.etudeHide').eq(actuActif);
		moveEtude(etude);
		return false;
	});
	*/
	
	
	$("#retour_btn").hover(
		function(){
			$("#retour").addClass("actif");				
		},
		function(){
			$("#retour").removeClass("actif");						
		}
	);
	
	$("#retour_btn").click(function()
	{
		moveAgence();
		return false;
	});	
	
	$(".etudelink").click(function()
	{
		var etude = $(this).parent().parent().parent().next('.etudeHide').eq(0);
		moveEtude(etude);
		return false;
	});
	
	$(".visulink").click(function()
	{
		var etude = $(this).parent().parent().next('.etudeHide').eq(0);
		moveEtude(etude);
		return false;
	});
}

function moveAgence()
{
	$(".visulink").removeClass("actif")
	$(".etudelink").removeClass("actif").fadeIn(2000);
	centerPos = "agence";
	moveCenterTo(0,377);
	hideBtnRetour();
	resetEtudeNav();
	return false;
}

function moveEtude(etude)
{
	$(".visulink").addClass("actif");
	$(".etudelink").addClass("actif").fadeOut(2000);	
	moveCenterTo(-530,460);
	setTimeout(showBtnRetour,1000);
	
	if(centerPos != "etude")
	{	
		resetEtudeNav();
		loadEtude(etude);
	}	
	centerPos = "etude";
	
	return false;
}

function moveCenterTo(posX,barrePosX)
{
	var speed = 800;
	var trans = "easeOutExpo";
	
	$("#center_content").animate({left:posX},{duration:speed,easing:trans});
	$("#barremenu").animate({left:barrePosX},{duration:speed,easing:trans});	
}

function showBtnRetour()
{
	//$("#retour_btn").animate({left:398},{duration:800,easing:"easeOutQuart"});
	//$("#retour_btn").show(400);
	$("#retour_btn").animate({marginLeft:-570},{duration:800,easing:"easeOutQuart"});
	isBtnRetour = true;
}

function hideBtnRetour()
{
	//$("#retour_btn").animate({left:-70},{duration:500,easing:"easeOutQuart"});
	//$("#retour_btn").hide(400);
	$("#retour_btn").animate({marginLeft:0},{duration:800,easing:"easeOutQuart"});
	isBtnRetour = false;
}








//-------------------------------------------------------
//
//		PAN ETUDES LOAD CONTENTS
//
//-------------------------------------------------------
function loadEtude(etude)
{	
	// show le bouton retour
	if(!isBtnRetour) setTimeout(showBtnRetour,500);
	
	// recupere les datas etudes
	var etudeEnBref = etude.children('.enBref').html();		
	/*$("#pan1").html(etudeEnBref).hide().fadeIn(1000,function()
	{
		// add "voir les images" BTN
		addImageLink();											 
															 
	});	*/
	$("#pan1").html(etudeEnBref);
	addImageLink();	
}

function addImageLink()
{		
	$('.images_link').remove();

	var imageLink = '<p class="images_link"><a href="#">Aperçu rapide</a>...</p>';
	
	$("#pan1").append(imageLink);
	$('.images_link').fadeIn(1000);
	
	$('.images_link').click(function(){
		var part = $(".image");
		$(".part").removeClass("partOn");
		part.addClass("partOn");
		animHTab(part);
		loadPart(part);			
		return false;
	});
}

function loadImg()
{	
	var filesinfos = $('.etudeHide').eq(actuActif).children('.filesinfos');
	var file_img = filesinfos.children('.file_img').html();
	
	$("#pan2").html("<div class='loader'></div>");
	
	function loadingImg()
	{
				
		$("#pan2").load('_php/images.php?file='+file_img+'', function()
		{
			$("#pan2").addClass('isLoaded');
			$("#pan2 #images").fadeIn(2000);
			
			$('#images').cycle({
				fx: 'fade',		//	  fadeZoom,scrollUp,... http://malsup.com/jquery/cycle/
				timeout: 1500,
				startingSlide: 0,
				pause: 1,
				pauseOnPagerHover: 1,
				pager:  '#pager',
				pagerAnchorBuilder: function(idx, slide) {
					return '<li><a href="#">'+idx+'</a></li>';
				}
			});
			
		});	
	}
	setTimeout(loadingImg,600);
}

function loadVideo()
{	
	var filesinfos = $('.etudeHide').eq(actuActif).children('.filesinfos');
	var file_img = filesinfos.children('.file_img').html();
	//on ajoute l'image
	$("#pan2").html("<div class='loader'></div>");
	
	function loadingVideo()
	{
		$("#pan2").load('_php/video.php?file='+file_img+'', function()
		{
			$("#pan2").addClass('isLoaded');
			$("#pan2 #video").fadeIn(2000);
		});	
	}
	setTimeout(loadingVideo,600);	
}

function loadTechnos()
{	
	var filesinfos = $('.etudeHide').eq(actuActif).children('.filesinfos');
	var technos_tab = filesinfos.children('.technos_tab').html();
	//on ajoute l'image
	$("#pan3").load('_php/technos.php?tab='+technos_tab+'');	
}








//-------------------------------------------------------
//
//		ACCORDEON VERTICAL PORTFOLIO
//
//-------------------------------------------------------

function resetEtudeNav()
{
	$('#pan2 #images').cycle('stop');
	$("#pan2").empty();
	$("#pan2").removeClass("isLoaded");
	
	for(i=0; i<etudeParams[0]; i++)
	{
		var pos = etudeParams[0]-i;
		$("#etude .part").removeClass("partOn");
		$("#etude .part").eq(0).addClass("partOn");
		$("#etude .part").eq(i).animate({left: (-pos*etudeParams[1])+etudeParams[2]}, etudeParams[3]);
		etudeActif=0;
	}
	//console.info("resetEtudeNav");
}

function accordion()
{
	var config = {    
		 sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
		 interval: 0, // number = milliseconds for onMouseOver polling interval    
		 over: checkActuOn, // function = onMouseOver callback (REQUIRED)    
		 out: onMouseOutAcc // function = onMouseOut callback (REQUIRED)		 
		 // timeout: 1000,  number = milliseconds delay before onMouseOut   		
	};
	
	$(".AccordionPanelContent").hoverIntent(config );
	$(".AccordionPanelTab").hoverIntent(config );
	
	// init Accordeon
	acc1 = new Spry.Widget.Accordion("accordeonActus", {fixedPanelHeight:223,defaultPanel:0,enableAnimation:true,duration:400});
	
	// hover intent load etude
	

	
	
	
	// UP & DOWN actus
	varioActus = 0;
 	nbActus = $(".AccordionPanel").length;

	$("#actuUp").click(function()
	{	
		if(varioActus>0)
		{
			varioActus-=10;
			moveAccordeonTo(varioActus);	
		} 			
		return false;
	});
	
	$("#actuDown").click(function()
	{				
		if(varioActus>(-nbActus))
		{			
			varioActus+=10;
			moveAccordeonTo(varioActus);
		}	
		return false;
	});
}
// accordion out
function onMouseOutAcc(){
	
	//var actu = $(this).parent().attr("id").substr(9,10);
	//$(".moreinfo").eq(actu).animate({left: 500}, 400);
}

// accordion over
function checkActuOn()
{
	
	// on recupere le id de accpanel_id	
	var actu = $(this).parent().attr("id").substr(9,10);
	if(actu!=actuActif)
	{
		$(".moreinfo").animate({left: 500}, 200);
		setTimeout('$(".moreinfo").eq('+actu+').animate({left: 350}, 400)',200);
	}	
	//console.info(actu);
	
	// si le centre est sur actu
	if(centerPos == "etude")
	{		
		var etude = $(this).parent().next('.etudeHide').eq(0);

		// on charge le projet si différent de l'actuel.
		if(actu!=actuActif)
		{
			resetEtudeNav();
			loadEtude(etude);
		}
	}
	actuActif = actu;
}



function moveAccordeonTo(varioActus)
{
	var speed = 800;
	var posY = -(varioActus*19);
	
	$(".AccordionPanelContent").slideUp(400,function(){});
	
	$("#accordeonActus").animate({top:posY},speed,function(){														   
		if(varioActus ==0) 	acc1.openPanel(0);
		else 				acc1.openPanel((varioActus*2)+2);
		
		if(centerPos == "etude")
		{
			if(varioActus !=0) var etude = $('.etudeHide').eq(varioActus+1);
			else				var etude = $('.etudeHide').eq(0);
				
			loadEtude(etude);
		}
		
	});
	
	//check limits
	
	if(varioActus>0 && varioActus<nbActus-13)
	{
		$("#actuDown").animate({top:432}, "normal");
		$("#actuUp").animate({top:0}, "normal");
	}
	else
	{
		if(varioActus>nbActus-13)
		{			
			$("#actuUp").animate({top:0}, "normal");
			setTimeout('$("#actuDown").animate({top:460}, "normal");',600);
		}
		else if(varioActus<=0)
		{			
			$("#actuDown").animate({top:432}, "normal");
			setTimeout('$("#actuUp").animate({top:-20}, "normal");',600);
		}
	}
	//console.info("nbActus : " + nbActus, "varioActus : " + varioActus);
}




//-------------------------------------------------------
//
//		ACCORDEON HORIZONTAL ETUDES
//
//-------------------------------------------------------

function hNav()
{
	// init vars
	speed = 600;
	nbOng = $(".pan").length;
	ongWidth = $(".tab").width();
	panWidth = $("#etude").width() - (nbOng*ongWidth) - 1;
	marge = nbOng*ongWidth;
	
	// type d'evenements (hover ou click)
	onClick();
	//onMouseOver();	
	initNav();	
}

function initNav(){
	
	// donne la largeur des pan
	$(".pan").width(panWidth);

	etudeParams = [];
	etudeParams.push(nbOng,ongWidth,marge,speed);
	
	// positionne les parts
	for(i=0; i<nbOng; i++){
		$(".part").eq(i).attr("id",i).css("left",-panWidth +i*ongWidth).css("z-index",nbOng-i);
	}
	
	// definit l'onglet ouvert la premiere fois
	$(".part").eq(etudeActif).addClass("partOn");
	
	// ouvre l'onglet souhaité
	animHTab($(".part").eq(etudeActif));
}

//-----------------------------
// animHTab Engine
//-----------------------------
function animHTab(part)
{		
	var idOng=part.attr("id");
		
	etudeActif = idOng; //alert(etudeActif);
				
	for(i=0; i<nbOng; i++)
	{
		if(i>=idOng)
		{
			var pos = nbOng-i;
			$(".part").eq(i).animate({left: (-pos*ongWidth)+marge}, speed);
			
		}
		else if(i<idOng)
		{
			$(".part").eq(i).animate({left: -panWidth +i*ongWidth-1}, speed);
		}
	}	
}

//-----------------------------
// onClick des barres de menu
//-----------------------------
function onClick()
{
	$(".tab").click
	(
		function()
		{
			var part = $(this).parent();
			$(".part").removeClass("partOn");
			part.addClass("partOn");
			animHTab(part);
			loadPart(part);
		}
	);
}

//-----------------------------
// onClick des barres de menu
//-----------------------------
function onMouseOver()
{	
	var config = {    
		 sensitivity: 3, // number = sensitivity threshold (must be 1 or higher)    
		 interval: 100, // number = milliseconds for onMouseOver polling interval    
		 over: move, // function = onMouseOver callback (REQUIRED)    
		// timeout: 1000,  number = milliseconds delay before onMouseOut    
		 out: onMouseOutHNav // function = onMouseOut callback (REQUIRED)    
	};

	$(".tab").hoverIntent(config );
	
	function move(){
		var part = $(this).parent();
		$(".part").removeClass("partOn");
		part.addClass("partOn");
		animHTab(part);
		loadPart(part);
	}
	
	function onMouseOutHNav(){}
}


//-----------------------------
// check what to load
//-----------------------------
function loadPart(part)
{
	var filesinfos = $('.etudeHide').eq(actuActif).children('.filesinfos');
	var video = filesinfos.children('.video').html();	
	var videoON = filesinfos.children('.videoON').html();	
	
	if(part.hasClass("image") && !$("#pan2").hasClass("isLoaded"))
	{
		if(video != "" && videoON=="on") 	loadVideo();
		else 								loadImg();
	}
	else if(part.hasClass("techno"))
	{
		loadTechnos();
	}
}	








//-------------------------------------------------------
//
//		LIGHTBOX
//
//-------------------------------------------------------
function lightbox(){
	
	// check for maxHeight for black bkg to fit screen
	var windowHeight = $(window).height();
	var htmlHeight = $("body").height();
	if(windowHeight > htmlHeight) 	lboxHeight = windowHeight;
	else							lboxHeight = htmlHeight;
	
	var lbox = "\
	<div id='bkg_noir' style='height:"+lboxHeight+"px;'></div>\
	<div id='lightbox'>\
		<a href='#' class='fermer'></a>\
		<div id='lightContent'></div>\
	</div>\
	";
	
	$("a.lightbox").click(		
		function()
		{
			var page = $(this).attr("href");
			
			//add lightbox
			$("body").append(lbox);
			
			$("#lightbox").removeClass("small");
			$("#lightbox").removeClass("big");
			
			if(page == "__extranet.php") 		$("#lightbox").addClass("small");
			else if(page == "__googlemaps.php")	$("#lightbox").addClass("big");
			
			
			//load lightbox content
			//init close lightbox
			$("#lightContent").load(page+"?ajax=1", function(){
							
				$("#bkg_noir").fadeIn("normal", function(){$("#lightContent").slideDown("normal");});
				
				if(page == "__extranet.php") 
				{
					validData('#extranet');
				}
								
				initCloseLightbox();
			});
			
			return false;
		}
	);
}

function initCloseLightbox()
{	
	$("#lightbox a.fermer").click(function(){
									   
		closeLightbox();		  
		return false;
	});
	
	$("#bkg_noir").click(function(){
		closeLightbox();		  
		return false;
	});
}

function closeLightbox()
{
	
	$("#lightbox").fadeOut("normal",function(){
											 
		$(this).remove();
		$("#bkg_noir").fadeOut("fast",function(){
			$(this).remove();									   
		}); 
											 
	});	
	return false;
}




//--------------------------------------------------------------------
//		valid le formulaire 
//--------------------------------------------------------------------
function validData(form)
{	

	$(form).validate({
		submitHandler: function() { 
		
			submitData(form);
			return false;
		}
	});
	//
	return false;
}
//--------------------------------------------------------------------
//		envoie le formulaire
//--------------------------------------------------------------------
function submitData(form)
{
	var options = { 
        success:   insertData,  // post-submit callback  
        clearForm: false ,       // clear all form fields after successful submit 
        resetForm: false,
		dataType:'xml'
    }; 
    // bind form using 'ajaxForm'
    $(form).ajaxSubmit(options);
	$(form + " .dialog").removeClass("error").empty().html("Veuillez patienter pendant l'envoi...").slideDown("normal");

	return false;
}
//--------------------------------------------------------------------
//		Callback Formulaire
//--------------------------------------------------------------------
function insertData(backdata)
{	
	//console.info(backdata);
	var root = backdata.getElementsByTagName('root');
	var form=root[0].getAttribute("form");
	var ok=root[0].getAttribute("ok");
	
	// check for errors
	if(ok=="oui")
	{	
		closeLightbox();
		//window.open("extranet/","extranet");	
		window.location.replace("extranet/");
	}
	else
	{
		message="Accès extranet refusé : vérifiez votre login ou contactez Mediaction.";
		//affiche message in dialog box	
		$("#"+form + " .dialog").empty().html(message).slideDown("normal");
	}
}
