/* Author:  Mathieu ZOUAOUA, Alterimage 2011

*/

var pa; // page active
var i;
var souligne = $('#menusouligne');
var ov, ovx, ovy;
var posx=0, posy=0, deltax=0;
var pages;


// Retourne true si la page active a une scrollbar Horizontale
function isScrollingW() {
	return $(document).width() > ($(window).width() + $(window).scrollLeft());
}

// Retourne true si la page active a une scrollbar Verticale
function isScrollingH() {
	return $(document).height() > ($(window).height() + $(window).scrollTop());
}


function souligneMenu(anim) {
	for (i=0; i<pages.length; i++) {
		if (pages[i][0].attr("id") == pa.attr("id")) {
			var w = pages[i][1].width();
			var ofs = pages[i][1].offset();
			var _top = ofs.top+28-$(window).scrollTop();
			var _left = ofs.left-$(window).scrollLeft();
			if (anim)
				souligne.animate({top: "".concat(_top,"px"), left: "".concat(_left,"px"), width: w}, 100, function(){});
			else
				souligne.css({top: "".concat(_top,"px"), left: "".concat(_left,"px"), width: w});
		}
	}
}


// Ajoute la classe active au lien actif, l'enleve aux inactifs.
function lienActif(){
	for ( i=0; i < pages.length; i++ ) {
		if (pa.attr("id")==pages[i][0].attr("id"))
			pages[i][1].addClass("active");
		else
			pages[i][1].removeClass("active");
	}
}

function pagesout() {
	for ( i=0; i < pages.length; i++ ) {
		if (pages[i][0].css('display') != 'none')
				pages[i][0].hide();
	}
}


function pageout(page) {
	page.animate({opacity:'0',left: '-1500px'}, 500, function() {page.hide();});
}

function overflow() {
	if ($.browser.msie) {
		ov = $('body').css('overflow');
		ovx = $('body').css('overflow-x');
		ovy = $('body').css('overflow-y');
		$('body').css('overflow','scroll');
		$('body').css('overflow-x','scroll');
		$('body').css('overflow-y','scroll');
	}
	else {
		ov = $('body').css('overflow');
		ovx = $('body').css('overflow-x');
		ovy = $('body').css('overflow-y');
		if ((!isScrollingW()) && (!isScrollingH())){
			$('body').css('overflow','hidden');
			$('body').css('overflow-x','hidden');
			$('body').css('overflow-y','hidden');
		}
		else if ((isScrollingH())&&(!isScrollingW())) {
			$('body').css('overflow','auto');
			$('body').css('overflow-x','hidden');
			$('body').css('overflow-y','scroll');
		}
		else if ((isScrollingW())&&(!isScrollingH())) {
			$('body').css('overflow','auto');
			$('body').css('overflow-x','scroll');
			$('body').css('overflow-y','hidden');
		}
		else {
			$('body').css('overflow','auto');
			$('body').css('overflow-x','auto');
			$('body').css('overflow-y','auto');
		}
	}
	return ov;
}

function resetoverflow() {
	if ($.browser.msie) {
		$('body').css('overflow','scroll');
		$('body').css('overflow-x','scroll');
		$('body').css('overflow-y','scroll');
	}
	else {
		$('body').css('overflow',ov);
		$('body').css('overflow-x',ovx);
		$('body').css('overflow-y',ovy);
	}
}

function setoverflow( type ) {
	$('body').css('overflow',type);
	$('body').css('overflow-x', type);
	$('body').css('overflow-y', type);
}
		
		
// Fait entrer une page, avec animation
function pagein(page, clb) {
	if (page.css('display') == 'none') {
        page.css({left: '1500px', opacity:'0'});
		page.show();
		page.animate({opacity:'1.0',left: '0'}, 500, function() {if (clb) clb();});
	}
}

// Fait sautiller une page
function wiggle(page, clb) {
	page.animate({top:'+=10px'},100,function() {
			page.animate({top:'-=20px'},100, function(){
				page.animate({top:'+=10px'},100, function(){
					if (clb)
						clb();
				})
			})
	});
}

// clic sur un lien -> Affichage de la page correspondante
function mybind(lien, page) {
	lien.bind('click', function(e) {
		e.preventDefault();
		setTimeout( function() {
			
		if (page.queue() == 0 ) {
			ov = overflow();
			if (pa.attr("id")!=page.attr("id") ){
				pageout(pa);
				pagein(page, function() {resetoverflow(); souligneMenu();} );
			}
			else {
				wiggle(page, function() {resetoverflow(); souligneMenu();} );
			}
			pa = page;
			lienActif();
			souligneMenu(true);
		}
		else 
			wiggle(souligne);
		return false;
		}, 0);
	});
}

//capte le clic sur l'image active de contentflow pour supprimer la redirection vers l'image full res
function activeClic(item) {
	item.preventDefault();
}


// Recherches les pages du site, construit un index + le menu, et branche les evenements.
function initpages() {
	var id ;
	var jpages = $('.page');
	var nbpages = jpages.length;
	var p;
	var l;
	var html;
	var articles, article;
	pages = new Array(nbpages);


	l = $('#menu-list');//.children();
	// Contruit le menu
	for (i=0; i < nbpages; i++ ) {
		p = jpages.eq(i);
		id = p.attr("id").split("_")[1];
		html = "<li><a  class=\"text-shadow\" href=\"#\" id=\"lien_"+id+"\">"+p.attr("title")+"</a></li>";
		l.append( html );
	}

	// Construit l'index des pages, et le branchement d'evenements.
	for (i=0; i < nbpages; i++ ) {
		p = jpages.eq(i);
		id = p.attr("id").split("_")[1];
		pages[i] = new Array(2);
		pages[i][0] = p;
		pages[i][1] = $("#lien_"+id);
		mybind( pages[i][1], pages[i][0] );
	}
	
	// liens spéciaux d'articles
	articles = $('*[linkto]');
	for (i=0; i<articles.length; i++ ) {
		article = articles.eq(i);
		id = article.attr("linkto");
		if ( id ) {
			console.log(id);
			for (var j=0; j<nbpages; j++) {
				if (pages[j][0].attr("id") == id) {
					mybind( article, pages[j][0]);
					article.css({cursor: 'pointer' } );
				}
			}
		}
	}

}

// Chargé une fois la page prête à être manipulée.
// Initialise tout le code du site

$(document).ready(function() {
	setoverflow("hidden");

	$('.item').nm(); // Contentflow -> nyromodal
	$('.nm').nm(); // spécialements nyromodal
	
	initpages();
	
	var scroll = $("div#makeMeScrollable")
	scroll.hide();
	
	// Cache toutes les pages
	pagesout(false);

	// Charge la page principale
	for (i=0; i<pages.length; i++) {
		if (pages[i][0].hasClass("pageprincipale") ) {
			pa = pages[i][0];
			pages[i][0].show();
		}
	}
	
	
	// Evenement redimensionnement -> resouligne le menu sans animation
	$(window).resize(function(){souligneMenu(false);});
	$(window).scroll(function(){souligneMenu(false);});
	
	$('.left-column .main-article').css({top: '1000px', opacity:'0'});
	$('.middle-column .main-article').css({top: '1000px', opacity:'0'});
	$('.right-column .main-article').css({top: '1000px', opacity:'0'});
	$('.left-column .main-article').animate({top:'0px', opacity:'1'}, 1000);
	$('.middle-column .main-article').delay(500).animate({top:'0px', opacity:'1'}, 1000);
	$('.right-column .main-article').delay(1000).animate({top:'0px', opacity:'1'}, 1000, function() {	
		setoverflow("auto"); souligneMenu(false); 
	
		scroll.smoothDivScroll( {visibleHotSpots: "always"} );
		scroll.smoothDivScroll("showHotSpotBackgrounds");
		
	});
	

	//fondu d'entrée
	$( '#hide' ).fadeOut(1500, function() {souligneMenu(false);}); // Disparition du BG noir
	scroll.fadeIn(1500);
	$( 'footer' ).fadeIn(1500, function() {
		souligneMenu(false); 
//		$('.ContentFlowAddOn_slideshow .controlls .play').trigger('click');
	}); // Apparition du footer, puis déclenchement du slideshow !
});
