$(document).ready(function() {

	
});

/* ********************** */
/* ****** CONFIG ******** */
/*
var nbref = 80;
var bigwidth = 432;
var bigmarge = 21;

var miniwidth = 70;
var minimarge = 50;


// mode apercu :
var shiftlenght = bigwidth + bigmarge;
var margemax = shiftlenght * (nbref - 1);	




var sliderStep = 10000;
*/

/* ****** CONFIG END **** */
/* ********************** */

var defautMargeTop = 405;

var defautMainMargeTop = 435;

var mousewellmodifier = 500;

var oldpos = -1;

// type de vue active
// 1 : apercu
// 2 : mini
// 3 : liste
var typeActif = 1;
var oldTypeActif = -1;

var projetID = 0;

var numPageActive = 0;
var oldNumPageActive = 0;

var detailProjetActif = false;

var dataSwitch = false;

var lastsort = 0;

var initsliderpos=0;

var initcontenueurpos=0;
var oldinitcontenueurpos=0;


var oldInvertAnim = false;
var invertAnim = false;

var animateNum = 0;

// decalage absolu de position pour la gestion du scroll dans les projet nouvelle orga
var superShift = 0;

// pour desactivation des fleches
var lastnumfleche = 0;

/*******************************************************************/


// fonction qui initialise le fonctionnement du contenu des pages references
function initContenuRef() {
		
	$("#slider1").slider({
		steps: 0,
		//stepping: 1,
		axis: "horizontal",
		//minValue: 0,
		//maxValue: 200,
		min: 0,
		max: 10000,
		startValue: 0,
		animate: 1,
		slide: function(e, ui) { 
			//$("#input1").val(ui.slider.curValue);
			
			scrollmove(ui.value,false);
			
		},
		slideClick: function(e, ui) { 
			//$("#input1").val(ui.slider.curValue);
			
			scrollmove(ui.value,true);
			
		}
	});
	
	
	// init compteur num de ref / total
	$("#numactif").html(1);
	$("#numtotal").html(nbref);
	

	//$("#lignegrise").css("display","none");

	if (typeActif == 1 || numPageActive == 50 ) {
		shiftlenght = bigwidth + bigmarge;
	} else {
		shiftlenght = miniwidth + minimarge;
	}
	
	// retour au mode apercu pour les detail de projet
	if (typeof(projetDetail)!='undefined') {
		if (projetDetail == true) {
			shiftlenght = bigwidth + bigmarge;
		}
	}
		
	// init de la mage max
	margemax = shiftlenght * (nbref - 1);

	pourcentOfOneRef = sliderStep / nbref;
	
	reinitMargeMax();
	
	
	if (flaginittablo == true) {
		inittablo(true);
	}
	
	if (typeof(preinitMode)!='undefined') {
		
		if (preinitMode == 2) {
			$("#lienshowapercu").css("color","");
			$("#lienshowmini").css("color","#A50000");
		}
		
		if (preinitMode == 3) {
			$("#lienshowapercu").css("color","");
			$("#lienshowliste").css("color","#A50000");
		}
		
	}
	
	
	if (initsliderpos > 0 && flaginittablo == false) {
		//alert("init slide : "+initsliderpos);
		$("#slider1").slider("moveTo",initsliderpos);
	}
	
	
	
	// mousewell
	$("#data_main").mousewheel(function(event, delta) {
		
		if (dataSwitch == true) {
			return false;
		}
		
		if (typeActif != 3 || numPageActive == 32 || numPageActive == 33 || numPageActive == 50) {
						
			if (delta > 0) {
				goleft();
			} else {
				goright();
			}
			
			/*
			// inversion du sens pour que la roulette vers le bas fasse
			// un décalage vers la droite et non vers la gauche
			delta = -delta;
			
			var moveto = (mousewellmodifier*delta) + $("#slider1").slider("value");

			//alert(moveto);
			$("#slider1").slider("moveTo",moveto,undefined,true);
			
			var pourcentpos = $("#slider1").slider("value")/sliderStep;
			var xpos = parseInt( (pourcentpos * margemax) + superShift);
			xpos = -xpos;
			
			$("#data_main").css("margin-left",xpos+"px");
			calcActivRef();
			
			*/
			
		}
		return false; // prevent default
	});

	
	
}






// appele quand le slider ce deplace

function scrollmove(pos, animer) {
	
	if (dataSwitch == true) {
		return;
	} 
	
	//var console = $("#console");

	//console.html("pos: "+pos+"<br/>"+console.html());
	
	// test queue
	var n = $("#data_main").queue("fx");
	//console.html("n: "+n.length+"<br/>"+console.html());
	if (n.length > 1) {
		$("#data_main").stop();
	}

	
	var pourcentpos = pos/sliderStep;
	
	//console.html("pourcent pos : "+pourcentpos+"<br/>"+console.html());

	var xpos = parseInt(pourcentpos * margemax);
	//console.html("xpos : "+xpos+"<br/>"+console.html());
	
	// on applique le supershift
	xpos = xpos + superShift;
	
	
	xpos = -xpos;
	
	
	var data = $("#data_main");
	
	
	//console.html("dif : "+Math.abs((oldpos - pos))+"<br/>"+console.html());

	//alert(oldpos - pos);
	
	//if ( Math.abs((oldpos - pos)) > 80 ) {
	if (animer) {
		data.animate({
			marginLeft: xpos+"px"
		},500, "swing", function() {
			// modification du texte n° en cours
			// fait aussi aussi effet sur goleft / right
			calcActivRef();
		});
	} else {
	
		data.css("margin-left",xpos+"px");
		// modification du texte n° en cours
		calcActivRef();
	}
	oldpos = pos;
	
	// modification du texte n° en cours
}



/*******************************************************************/

function goleft() {
	
	if (dataSwitch == true) {
		return;
	} 

	var data = $("#data_main");	
	var console = $("#console");	
	
	// si anim en cours on fais rien
	var n = data.queue("fx");
	if (n.length > 0) {
		return;
	}
	
	var margeleft = data.css("margin-left");
	margeleft = parseInt(margeleft.substr(0,(margeleft.length-2)));
	
	// on soustrai le supershift pour les calcul (rajouté plus loin avant anim)
	// note : margeleft est negatif, d'ou le +
	margeleft = margeleft + superShift;
	
	
	// test position apres scroll
	var reinitpos = margeleft % shiftlenght;
	
	var valtomove = 0;
	if (reinitpos == 0) {
		valtomove = margeleft+shiftlenght;
	} else {
		valtomove = margeleft - (reinitpos);
	}
	
	
	
	if (margeleft < 0) {

		// calcul de la valeur a bouger pour le slide
		var movescroll = (Math.abs(valtomove) * sliderStep) / margemax;
		//alert(valtomove+" | "+movescroll);
		$("#slider1").slider("moveTo",movescroll,undefined,true);

		// on rajoute le superShift
		// note : margeleft est negatif, d'ou le -
		valtomove = valtomove - superShift;
		
		data.animate({
			marginLeft: valtomove
		}, 300,"swing", function() {
			// modification du texte n° en cours
			calcActivRef();
		});
		
	}

	//actDesactLeftRight();
}

/*******************************************************************/

function goright() {
	
	if (dataSwitch == true) {
		return;
	} 

	var data = $("#data_main");		
	var console = $("#console");

	// si anim en cours on fais rien		
	var n = data.queue("fx");
	if (n.length > 0) {
		return;
	}
	
	// recuperation de la marge left actuel
	var margeleft = data.css("margin-left");
	margeleft = parseInt(margeleft.substr(0,(margeleft.length-2)));
	if (isNaN(margeleft)) {
		margeleft = 0;
	}
	
	// on soustrai le supershift pour les calcul (rajouté plus loin avant anim)
	// note : margeleft est negatif, d'ou le +
	margeleft = margeleft + superShift;
	

	// test position apres scroll (doit on bouger d'un cran complet ou juste en finir un)
	var reinitpos = margeleft % shiftlenght;
	
	var valtomove = 0;
	if (reinitpos == 0) {
		// mouvement complet
		valtomove = margeleft-shiftlenght;
	} else {
		// mouvent partiel pour reinit position
		valtomove = margeleft + -(shiftlenght + reinitpos);
	}
	
	
	
	// si on est pas au bou de la liste, on lance le déplacement		
	if (margeleft > -(margemax)) {
		
		// calcul de la valeur a bouger pour le slide
		var movescroll = (Math.abs(valtomove) * sliderStep) / margemax;
		$("#slider1").slider("moveTo",movescroll,undefined,true);
		
		
		// on rajoute le superShift
		// note : margeleft est negatif, d'ou le -
		valtomove = valtomove - superShift;
					
		data.animate({
			marginLeft: valtomove
		}, 300,"swing", function() {
			// modification du texte n° en cours
			calcActivRef();
		});
		
		
		
		
	}
	
	//actDesactLeftRight();
	
}

/*******************************************************************/



function actDesactLeftRight(force) {

	var nactif = parseInt($("#numactif").html());
	var ntot = parseInt($("#numtotal").html());
	
	if (nactif == ntot) {
		desactRight();
	} else if (nactif == 1) {
		desactLeft();
		
		if (force) {
			actRight();
		}
		
	} else {
		if (lastnumfleche == 1) {
			actLeft();
		}
		if (lastnumfleche == ntot || force) {
			actRight();
		}		
	}
	
	lastnumfleche = nactif;

}

function desactLeft() {
	var fleche = $("#flecheleft");
	
	// supr du roll
	$(fleche).attr("onmouseout","");
	$(fleche).unbind("mouseout");
	$(fleche).attr("src","/images/fleche_r_l_o.gif");
	$(fleche).parent().addClass("nocursor");
}


function desactRight() {
	var fleche = $("#flecheright");
	
	// supr du roll
	$(fleche).attr("onmouseout","");
	$(fleche).unbind("mouseout");
	$(fleche).attr("src","/images/fleche_r_r_o.gif");
	$(fleche).parent().addClass("nocursor");
}

function actLeft() {
	var fleche = $("#flecheleft");
	
	// supr du roll
	$(fleche).mouseout(function() {
		$(fleche).attr("src","/images/fleche_r_l.gif");
	});
	$(fleche).attr("src","/images/fleche_r_l.gif");
	$(fleche).parent().removeClass("nocursor");
}


function actRight() {
	var fleche = $("#flecheright");
	
	// supr du roll	
	$(fleche).mouseout(function() {
		$(fleche).attr("src","/images/fleche_r_r.gif");
	});
	//$(fleche).attr("onmouseout","this.src='/images/fleche_r_r.gif';");
	$(fleche).attr("src","/images/fleche_r_r.gif");
	$(fleche).parent().removeClass("nocursor");
}


/*******************************************************************/

function showapercu() {

	if (dataSwitch == true) {
		return;
	} 

	if (typeActif == 1) {
		return;
	}
	
	// flag switch en cour
	dataSwitch = true;
	
	// reset slider & pos
	//resetSliderPos();
	$("#slider1").slider("moveTo",0,undefined,true);

	oldTypeActif = typeActif;
	// active le liens
	setModeLinkClass(1);
	
	var mouvemar = 0;
	
	$("#data_main").animate({
		marginLeft: -mouvemar
	}, 3000,"easeOutQuart", function() {
		
		
		// reinit des vars
		typeActif = 1;
				
		superShift = 0;
		
		nbref = nbrefapercu;
		shiftlenght = bigwidth + bigmarge;
		margemax = shiftlenght * (nbref - 1);	
				
		reinitMargeMax();
		
		// si retour du mode 3, on reaffiche le scroll
		if (oldTypeActif == 3) {
			$("#lignegrise").fadeOut(500);
			$("#tabnavsub").fadeIn(500);
		}

		
		// changement curseur		
		$("#lienshowapercu").addClass("nocursor");
		$("#lienshowmini").removeClass("nocursor");
		$("#lienshowliste").removeClass("nocursor");

		// fin du switch
		dataSwitch = false;
	});
	
	
	
	
}	




function showmini() {

	if (dataSwitch == true) {
		return;
	} 
	
	if (typeActif == 2) {
		return;
	}

	// flag switch en cour
	dataSwitch = true;
	
	// reset slider & pos
	//resetSliderPos();
	$("#slider1").slider("moveTo",0,undefined,true);

	oldTypeActif = typeActif;
	// active le liens
	setModeLinkClass(2);
	
	//var mouvemar = parseInt(margemax+1173);
	var mouvemar = ((bigwidth + bigmarge) * nbrefapercu) + 700;
	
	$("#data_main").animate({
		marginLeft: -mouvemar
	//}, 3000,"easeInOutQuint", function() {
	}, 3000,"easeOutQuart", function() {
	// easeOutQuart
	// easeInOutExpo
		
		
		typeActif = 2;		
		
		superShift = mouvemar;
		
		nbref = nbrefmini;
		shiftlenght = miniwidth + minimarge;
		margemax = shiftlenght * (nbref - 1);
				
		reinitMargeMax();
		
		// si retour du mode 3, on reaffiche le scroll
		if (oldTypeActif == 3) {
			$("#lignegrise").fadeOut(500);
			$("#tabnavsub").fadeIn(500);
		}

		
		// changement curseur		
		$("#lienshowapercu").removeClass("nocursor");
		$("#lienshowmini").addClass("nocursor");
		$("#lienshowliste").removeClass("nocursor");

		// fin du switch
		dataSwitch = false;
	});
	
	
	
	
}	





function showliste() {

	if (dataSwitch == true) {
		return;
	} 
	
	if (typeActif == 3) {
		return;
	}

	// flag switch en cour
	dataSwitch = true;
	
	// reset slider & pos
	//resetSliderPos();
	$("#slider1").slider("moveTo",0,undefined,true);
	
	oldTypeActif = typeActif;
	
	// active le liens
	setModeLinkClass(3);

	inittablo(false);
	
	var mouvemar = ((miniwidth + minimarge) * (nbrefmini)) + ((bigwidth + bigmarge) * (nbrefapercu)) + 1400;

	//var mouvemar = parseInt(margemax+1173);
	
	$("#data_main").animate({
		marginLeft: -mouvemar
	}, 3000,"easeOutQuart", function() {
		
		// masquer le scroll
		$("#tabnavsub").fadeOut(500);
		$("#lignegrise").fadeIn(500);
		
		
		typeActif = 3;
		
		superShift = mouvemar;
		
		nbref = 1;
				
		reinitMargeMax();
		
		
		// changement curseur		
		$("#lienshowapercu").removeClass("nocursor");
		$("#lienshowmini").removeClass("nocursor");
		$("#lienshowliste").addClass("nocursor");

		// fin du switch
		dataSwitch = false;
	});
	
	
	
	
}	

/*******************************************************************/

// RAS du slider
function resetSliderPos() {
	$("#slider1").slider("moveTo",0,undefined,true);
	$("#data_main").animate({
		marginLeft: 0
	}, 500);
}



// calcul du n° de la ref active
function calcActivRef() {
	var console = $("#console");
	
	var margeleft = $("#data_main").css("margin-left");
	if (margeleft == undefined) {
		return;
	}
	
	tmpXpos = Math.abs( parseInt(margeleft.substr(0,(margeleft.length-2))) );
	if (isNaN(tmpXpos)) {
		tmpXpos = 0;
	}
	
	// on soustrai le superShift pour le calcul
	tmpXpos = tmpXpos - superShift;

	// caclul
	//if (typeActif == 1) {
		
		var numActif = Math.floor(tmpXpos / shiftlenght);			
		var numActifReste = tmpXpos / shiftlenght - numActif;
		
		//console.html("numActifReste : "+numActifReste+"<br/>"+console.html());
		if (numActifReste > 0.65) {
			$("#numactif").html(numActif+2);	
		} else {
			$("#numactif").html(numActif+1);
		}
		
		
	//}

	actDesactLeftRight(false);
}



// ajoute une div au dessus du contenu, pour la partie projet
function adddiv(data) {

	$("#data_main").prepend(data);
	
	var margeTop = $("#data_main").css("margin-top");
	
	if (isNaN(margeTop) || margeTop == 0) {
		margeTop = 0+"px";
	}
	
	margeTop = parseInt(margeTop.substr(0,(margeTop.length-2)));
	margeTop = margeTop - defautMargeTop;

	$("#data_main").css("margin-top", margeTop+"px");
}


//ajoute une div au dessus du contenu dans le cas d'un changement de contenu principal
function addmaindiv(data) {

	$("#masterslide").prepend(data);
	
	var margeTop = $("#masterslide").css("margin-top");
	
	if (isNaN(margeTop) || margeTop == 0) {
		margeTop = 0+"px";
	}
	
	margeTop = parseInt(margeTop.substr(0,(margeTop.length-2)));
	margeTop = margeTop - defautMainMargeTop;
	
	
	$("#masterslide").css("margin-top", margeTop+"px");
}

// ajoute le contenu, en bas
function addmaindivbot(data) {
	$("#masterslide").append(data);
}



// créé le code html de la patie loading
function addload() {

	$("#data_main").prepend('<div style="width:100%;height:425px;" id="loadingdiv"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:350px;"><tr><td align="center" valign="middle"><img src="/images/preloader_l-arrosoir.gif" alt="Chargement" /></td></tr></table></div>');
	
	var margeTop = $("#data_main").css("margin-top");
	
	if (isNaN(margeTop) || margeTop == 0) {
		margeTop = 0+"px";
	}
	
	margeTop = parseInt(margeTop.substr(0,(margeTop.length-2)));
	margeTop = margeTop - (defautMargeTop + 20);

	$("#data_main").css("margin-top", margeTop+"px");
}


//créé le code html de la patie loading pour le main
function addmainload() {

	$("#masterslide").prepend('<div style="width:100%;height:435px;" id="loadingdiv"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:405px;"><tr><td align="center" valign="middle"><img src="/images/preloader_l-arrosoir.gif" alt="Chargement" /></td></tr></table></div>');
	
	var margeTop = $("#masterslide").css("margin-top");
	
	if (isNaN(margeTop) || margeTop == 0) {
		margeTop = 0+"px";
	}
	
	margeTop = parseInt(margeTop.substr(0,(margeTop.length-2)));
	margeTop = margeTop - defautMainMargeTop;


	$("#masterslide").css("margin-top", margeTop+"px");
}

//créé le code html de la patie loading pour le main vers le bas
function addmainloadbot() {
	$("#masterslide").append('<div style="width:100%;height:435px;" id="loadingdiv"><table cellpadding="0" cellspacing="0" border="0" style="width:100%;height:405px;"><tr><td align="center" valign="middle"><img src="/images/preloader_l-arrosoir.gif" alt="Chargement" /></td></tr></table></div>');
}


// suppression des vieux contenu apres un loading
function destroyDiv() {
	if (typeActif == 1) {

		$("#data_apercu + div").remove();
		$("#data_apercu + script").remove();
		$("#data_apercu + div").remove();
	}
	if (typeActif == 2) {
		$("#data_mini + div").remove();
		$("#data_apercu + script").remove();
		$("#data_mini + div").remove();
	}
	if (typeActif == 3) {
		$("#data_liste + div").remove();
		$("#data_apercu + script").remove();
		$("#data_liste + div").remove();
	}
	
}

function destroyDiv2() {
	// test debug
	//alert($("#slider1").offset().left+" "+$("#slider1").offset().top+" "+$("#slider1").position().left+" "+$("#slider1").position().top);
	
	$("#loadingdiv + div").remove();
	$("#loadingdiv + div").remove();
	$("#loadingdiv + div").remove();
	$("#loadingdiv + script").remove();
	$("#loadingdiv + div").remove();
	$("#loadingdiv + div").remove();
	$("#loadingdiv + div").remove();
	$("#loadingdiv + div").remove();
	$("#loadingdiv").remove();
		
	// HACK pour slider sur IE6
	$("#slider1").css('position','relative');
}

function destroyDiv3() {


	$("#masterslide div:first").remove();
	$("#masterslide div:first").remove();
	
	$("#masterslide").css("margin-top","0px");
	
}


// reinitialisation de la variabme margemax apres un loading ajax
function reinitMargeMax() {
	$("#numactif").html(1);
	$("#numtotal").html(nbref);
	margemax = shiftlenght * (nbref - 1);
	
	actDesactLeftRight(true);
}



// initialise les bonne classe pour les entetes de tablo
// tab = N° du tab a ordoner (de 1 a 4)
// ordre = l'ordre, 1 = down, 2 = up
function resetSortTabHead(tab,ordre) {

	$("#ordre1").removeClass("headerSortUp");
	$("#ordre1").removeClass("headerSortDown");
	$("#ordre2").removeClass("headerSortUp");	
	$("#ordre2").removeClass("headerSortDown");
	$("#ordre3").removeClass("headerSortUp");
	$("#ordre3").removeClass("headerSortDown");
	$("#ordre4").removeClass("headerSortUp");
	$("#ordre4").removeClass("headerSortDown");
	$("#ordre7").removeClass("headerSortUp");
	$("#ordre7").removeClass("headerSortDown");
	
	if (ordre == 1) {
		$("#ordre"+tab).addClass("headerSortDown");
	}

	if (ordre == 2) {
		$("#ordre"+tab).addClass("headerSortUp");
	}
	
}

// applique la class pour la bonne couleur sur les liens apercu, mini, liste
function setModeLinkClass(n) {
	
	// retour au noir
	var datatoanim = "";
	
	if (oldTypeActif==1 || oldTypeActif==4) {
		datatoanim = "#lienshowapercu";
	}
	if (oldTypeActif==2) {
		datatoanim = "#lienshowmini";
	}
	if (oldTypeActif==3) {
		datatoanim = "#lienshowliste";
	}
	
	$(datatoanim).animate( {
		color: "#999999"
	},500,"", function() {
		$(datatoanim).css("color","");
	});
	
	
	// passage au rouge
	var datatoanim2 = "";
	if (n==1) {
		datatoanim2 = "#lienshowapercu";
	}
	if (n==2) {
		datatoanim2 = "#lienshowmini";
	}
	if (n==3) {
		datatoanim2 = "#lienshowliste";
	}
	
	$(datatoanim2).animate( {
		color: "#A50000"
	},500);

}



function inittablo(start) {

	/****************/
	/*** JS TABLO ***/
	/****************/

	$('#tabcontenu').jScrollPane( {
		showArrows: false,
		animateTo: true,
		scrollbarWidth: 4,
		scrollbarMargin: 10
	} );

	
	$("#table1").tablesorter( {
		sortList: [[0,0]]		
	} );
	$("#ordre1").addClass("headerSortDown");
	
	/*
	var col1order = 0;
	var col2order = 0;
	var col3order = 0;
	var col4order = 0;
	*/
	var col1order;
	var col2order;
	var col3order;
	var col4order;
	var col7order;
	
	//var sorting = [[0,0]];
	var sorting = -1;
	
	if (lastsort == 1) {
		if (col1order == 0) {
			sorting = [[0,0]];
			col1order = 1;
			resetSortTabHead(1,1);
		} else {
			sorting = [[0,1]];
			col1order = 0;
			resetSortTabHead(1,2);
		}
	} 
	
	if (lastsort == 2) {
		if (col2order == 0) {
			sorting = [[1,0]];
			col2order = 1;
			resetSortTabHead(2,1);
		} else {
			sorting = [[1,1]];
			col2order = 0;
			resetSortTabHead(2,2);
		}
	} 
	
	if (lastsort == 3) {
		if (col3order == 0) {
			sorting = [[2,0]];
			col3order = 1;
			resetSortTabHead(3,1);
		} else {
			sorting = [[2,1]];
			col3order = 0;
			resetSortTabHead(3,2);
		}
	} 
	
	if (lastsort == 4) {
		if (col4order == 0) {
			sorting = [[3,0]];
			col4order = 1;
			resetSortTabHead(4,1);
		} else {
			sorting = [[3,1]];
			col4order = 0;
			resetSortTabHead(4,2);
		}
	} 
	
	if (lastsort == 7) {
		if (col7order == 0) {
			sorting = [[3,0]];
			col7order = 1;
			resetSortTabHead(7,1);
		} else {
			sorting = [[3,1]];
			col7order = 0;
			resetSortTabHead(7,2);
		}
	} 
	
	if (sorting != -1) {		
		$("#table1").tablesorter( {
			sortList: sorting		
		} );	 	
	} 
	
	$("#link-ordre1").click(function() {         
		// set sorting column and direction, this will sort on the first and third column the column index starts at zero         
		var sorting;
		if (col1order == 0) {
			sorting = [[0,0]];
			col1order = 1;
			resetSortTabHead(1,1);
		} else {
			sorting = [[0,1]];
			col1order = 0;
			resetSortTabHead(1,2);
		}
		
		lastsort = 1;
		// sort on the first column
		$("#table1").trigger("sorton",[sorting]);
		// return false to stop default link action
		return false;
	}); 
	
	$("#link-ordre2").click(function() {
		var sorting;
		if (col2order == 0) {
			sorting = [[1,0]];
			col2order = 1;
			resetSortTabHead(2,1);
		} else {
			sorting = [[1,1]];
			col2order = 0;
			resetSortTabHead(2,2);
		}
		
		lastsort = 2;
		
		$("#table1").trigger("sorton",[sorting]);
		return false;
	});  
	
	$("#link-ordre3").click(function() {
		var sorting;
		if (col3order == 0) {
			sorting = [[3,0]];
			col3order = 1;
			resetSortTabHead(3,1);
		} else {
			sorting = [[3,1]];
			col3order = 0;
			resetSortTabHead(3,2);
		}
		
		lastsort = 3;
		
		$("#table1").trigger("sorton",[sorting]);
		return false;
	});  
	
	$("#link-ordre4").click(function() {
		var sorting;
		if (col4order == 0) {
			sorting = [[2,0]];
			col4order = 1;
			resetSortTabHead(4,1);
		} else {
			sorting = [[2,1]];
			col4order = 0;
			resetSortTabHead(4,2);
		}
		
		lastsort = 4;
		
		$("#table1").trigger("sorton",[sorting]);
		return false;
	});  
	
	$("#link-ordre7").click(function() {
		var sorting;
		if (col7order == 0) {
			sorting = [[4,0]];
			col7order = 1;
			resetSortTabHead(7,1);
		} else {
			sorting = [[4,1]];
			col7order = 0;
			resetSortTabHead(7,2);
		}
		
		lastsort = 7;
		
		$("#table1").trigger("sorton",[sorting]);
		return false;
	}); 

	/****************/
	/* JS TABLO END */
	/****************/
	
	if (initsliderpos > 0 && start == true) {			
		$('#tabcontenu')[0].scrollTo(initsliderpos);
	}
	
	
}

// utilisé sur la liste des projet
function sendClick(url) {
	
	if (typeActif == 3) {			
		var newloc = url.href + "/" + typeActif + "/" + Math.abs(parseInt($("#tabcontenu").css("top")));
	} else {
		var newloc = url.href + "/" + typeActif + "/" + $("#slider1").slider("value");
	}
		
	
	//alert(newloc);
	window.location=newloc;
	return false;
}

// utilisé sur le detail des projet pour le retour
function sendClick2(url) {
	
	var newloc = url.href + "/" + typeActif + "/" + oldinitsliderpos;	
	
	//alert(newloc);
	window.location=newloc;
	return false;
}




/*
 * Function pour switcher d'une page à une autre en mode ajax
 * 
 * variable de base : numPageActive = n° de la page active
 */

function switchPage(num) {

	// desactive si lien actif
	if (numPageActive == num) {
		return false;
	}

	// DEBUG
	//alert(unFocus.History.getCurrent());
	
	// verouiller le changement si chargement en cours
	if (dataSwitch == true) {
		return;
	}
	// flag switch en cour
	dataSwitch = true;


	// sauvegarde de la position de la nav ref (on utilise l'ancien n° de page active)
	if (numPageActive==30 || numPageActive==31) {
		if (typeActif == 3) {
			initsliderpos = 0;
			oldinitsliderpos = Math.abs(parseInt($("#tabcontenu").css("top")));
			//var newloc = url.href + "/" + typeActif + "/" + Math.abs(parseInt($("#tabcontenu").css("top")));
		} else {
			initsliderpos = 0;
			oldinitsliderpos = $("#slider1").slider("value");
			initcontenueurpos = 0;
			oldinitcontenueurpos = parseInt($("#data_main").css("margin-left"));
			
			//var newloc = url.href + "/" + typeActif + "/" + $("#slider1").slider("value");
		}
	}
	
	
	// cas du retour d'une page detail projet
	if (detailProjetActif == true) {
		detailProjetActif = false;
		setProjectName("");
		
		if (oldinitsliderpos > 0) {
			initsliderpos = oldinitsliderpos;
			initcontenueurpos = oldinitcontenueurpos;
		} else {
			initsliderpos = 0;
		}
		
		oldinitsliderpos = 0;
		oldinitcontenueurpos = 0;
	}
	
	
	
	
	// changement de couleur de la NAV
	switchNavColor(num);
	
	// changement de l'image en haut a droite
		
	
	// changement de couleur du logo
	switchLogoColor(num);
	
	// changement de contenu
	switchContenu(num);
	
	

	
	oldNumPageActive = numPageActive;
	numPageActive = num;
	
	
	/*
		// en cas d'erreur on retourne en arriere
		var tmpactiv = numPageActive;
		numPageActive = num;
		
		switchNavColor(tmpactiv);
		switchLogoColor(tmpactiv);
		
		numPageActive = tmpactiv;
		dataSwitch = false;
	*/
	
	
	// previen le changement de page du lien
	return false;
}


// permet de changer de contenu dans les pages interne d'apropos
function switchSubPage(num) {


	// desactive si lien actif
	if (numPageActive == num) {
		return false;
	}

	// verouiller le changement si chargement en cours
	if (dataSwitch == true) {
		return;
	}
	
		
	
	// flag switch en cour
	dataSwitch = true;
		
	// changement de contenu
	switchContenu(num);
	
	
	numPageActive = num;
	
	/*
		// en cas d'erreur on retourne en arriere
		var tmpactiv = numPageActive;
		numPageActive = num;
		
		switchNavColor(tmpactiv);
		switchLogoColor(tmpactiv);
		
		numPageActive = tmpactiv;
		dataSwitch = false;
	*/
		
	// previen le changement de page du lien
	return false;
}


// switch de page pour entrer dans le detain d'un projet
function switchPageProjet(num,id) {
	
	projetID = id;
	switchPage(num);
	
}




// permet de changer la couleur du menu
function switchNavColor(num) {
	
	// on ne change pas de couleur si on est dans le meme "groupe" de menu
	if ( Math.floor(num/10) == Math.floor(numPageActive/10) ) {
		return;
	}
	
	
	// si un des menu est actif
	if (numPageActive > 0) {
		
		var numNav = 0;
		if (numPageActive >= 10 && numPageActive < 20) {
			numNav = 0;
		}
		if (numPageActive >= 20 && numPageActive < 30) {
			numNav = 1;
		}
		if (numPageActive >= 30 && numPageActive < 40) {
			numNav = 2;
		}
		if (numPageActive >= 50 && numPageActive < 60) {
			numNav = 3;
		}
		if (numPageActive >= 60 && numPageActive < 70) {
			numNav = 4;
		}
		
		// retour a 0 du menu
		if (numNav > 0) {
			var oldNumNav = numNav;
			$("#navLien"+numNav).animate({
				color: "#999999"
			},500,"",function() {
				$("#navLien"+oldNumNav).removeClass().css("color","");
			});		
		}
	}
	
	// si on part sur une page avec menu actif
	if (num > 0) {
		var numNav = 0;
		var color;
		var classname;
		if (num >= 10 && num < 20) {
			numNav = 0;
		}
		if (num >= 20 && num < 30) {
			numNav = 1;
			//color = "#683266";
			color = "#8E0765";
			classname = "violet";
		}
		if (num >= 30 && num < 40) {
			numNav = 2;
			//color = "#cc3300";
			color = "#A50000";
			classname = "rouge";
		}
		if (num >= 50 && num < 60) {
			numNav = 3;
			//color = "#cd6600";
			color = "#8C2C02";
			classname = "orange";
		}
		if (num >= 60 && num < 70) {
			numNav = 4;
			//color = "#349b9a";
			color = "#2E5654";
			classname = "blue";
		}
		
		// retour a 0 du menu
		if (numNav > 0) {			
			$("#navLien"+numNav).animate({
				color: color
			},500,"",function() {
				$("#navLien"+numNav).addClass(classname).css("color","");
			});		
		}
	}	
	
}

//permet de changer la couleur du menu
function switchLogoColor(num) {
	
	// on ne change pas de couleur si on est dans le meme "groupe" de menu
	if ( Math.floor(num/10) == Math.floor(numPageActive/10) ) {
		return;
	}
	
	$("#l-arrosoir-logo img").fadeOut(500, function() {
	
	
		// si on part sur une page avec menu actif
		if (num > 0) {
			var color;
			if (num >= 10 && num < 20) {
				color = "vert";
			}
			if (num >= 20 && num < 30) {
				color = "violet";
			}
			if (num >= 30 && num < 40) {
				color = "rouge";
			}
			if (num >= 50 && num < 60) {
				color = "orange";
			}
			if (num >= 60 && num < 70) {
				color = "blue";
			}
			
			// retour a 0 du menu
			$("#l-arrosoir-logo img").attr("src","/images/l-arrosoir-"+color+".gif");
			$("#l-arrosoir-logo img").fadeIn(2000);
		}	

	});
	
}


//permet de changer le nom du projet actif, ou de le supprimer
function setProjectName(projet) {
	
	if (projet == "") {
		$("#nomDuProjet").fadeOut(500,function() {
			$("#nomDuProjet").html("");
		});		
	}
	
	
}



// changement du contenu de la page
function switchContenu(num) {

	animateNum = num;
	
	// DEBUG	
	//alert(num + " | "+numPageActive);
	
	// dans le cas d'un retour projet, vers liste, alors on force l'anim vers le bas
	if ((num == 30 || num == 31) && (numPageActive == 32 || numPageActive == 33)) {
		invertAnim = false;
	} else if ((num == 50 || num == 51) && (numPageActive == 30 || numPageActive == 31)) { // inversion a cause de l'inversion du menu actu/projet
		invertAnim = false;
	} else if ((num == 30 || num == 31) && (numPageActive == 50 || numPageActive == 51)) { // inversion a cause de l'inversion du menu actu/projet
		invertAnim = true;
	} else if ((num == 50 || num == 51) && (numPageActive == 32 || numPageActive == 33)) { // inversion a cause de l'inversion du menu actu/projet
		invertAnim = false;
	} else if ((num == 20 || num == 21) && (numPageActive == 0 || numPageActive == 10 || numPageActive == 11)) {
		invertAnim = true;
	} else {
		if (numPageActive > animateNum) {
			//invertAnim = true;
			invertAnim = false;
		} else {
			invertAnim = true;
		}
	}
	
	
	
	// ajout du loader
	if ( (num == 32 || num == 33) || (invertAnim == true) ) {
		addmainloadbot();
		var animHideLoad = "-"+defautMainMargeTop+"px";
	} else {	
		addmainload();
		var animHideLoad = "0px";
	}
	
	
	
	// masqué le contenu actuel
	$("#masterslide").animate({
		marginTop: animHideLoad
	},1000,"easeInOutQuad", function() {
			
		var getPage = "";
		var ajaxsubid = 0;
		
		oldInvertAnim = invertAnim;		
		
		switch (num) {
		case 10:
			getPage = "";
			break;
		case 11:
			getPage = "";
			break;
			
		case 20:
			getPage = "get_apropos.php";
			ajaxsubid = 10;
			break;
		case 21:
			getPage = "";
			ajaxsubid = 11;
			break;			
		case 22:
			getPage = "get_apropos_concep.php";
			ajaxsubid = 12;
			break;
		case 23:
			getPage = "";
			ajaxsubid = 13;
			break;
		case 24:
			getPage = "get_apropos_dev.php";
			ajaxsubid = 14;
			break;
		case 25:
			getPage = "";
			ajaxsubid = 15;
			break;
		case 26:
			getPage = "get_apropos_com.php";
			ajaxsubid = 16;
			break;
		case 27:
			getPage = "";
			ajaxsubid = 17;
			break;
			
		case 30:
			getPage = "get_mainprojet.php";
			break;
		case 31:
			getPage = "";
			break;
			
		case 32:
			getPage = "get_projet_detail.php";
			//preinitMode = typeActif;
			invertAnim = true;
			break;
		case 33:
			getPage = "";
			//preinitMode = typeActif;
			invertAnim = true;
			break;
			
		case 50:
			getPage = "get_mainactu.php";
			break;
		case 51:
			getPage = "";
			break;
			
		case 60:
			getPage = "get_contact.php";
			break;
		case 61:
			getPage = "";
			break;
		
		}
		
		// si error, on rollback
		if (getPage == "") {
			
			if (invertAnim == true) {
				$("#masterslide").animate({
					marginTop: defautMainMargeTop+"px"
				},1000,"easeInOutQuad", function() {
					$("#loadingdiv").remove();
				});
			} else {
				$("#masterslide").animate({
					marginTop: "-"+defautMainMargeTop+"px"
				},1000,"easeInOutQuad", function() {
					$("#loadingdiv").remove();
					$("#masterslide").css("margin-top", "0px");
				});
			}
			
			
		}
		

		
		
		
		//chargement du contenu			
		$.ajax({
		   type: "GET",
		   url: "/"+getPage,
		   dataType: "html",
		   data: "ajaxPageId="+ajaxsubid+"&typeActif="+typeActif+"&pid="+projetID,
		   success: function(data,textStatus) {
							
				//DEBUG : 
				//alert(invertAnim);
				//alert(numPageActive);
			
				// ajout des donée recuperé				
				if (invertAnim == true) {
					addmaindivbot(data);
				} else {
					addmaindiv(data);
				}
				
				
				
				
				// petit hack pour le detail des projet
				// on vide la div avec la liste des projet avant d'init, sinon des div avec les meme ID sont avant dans le code
				// et l'init ce fait sur la liste des projet.
				// AJOUTE sur toute les pages avec la nav "projet" et les num de ref
				if (num >= 30 && num < 60 && invertAnim == true) {
					$("#superconteneur").html("");
				}
				
				
				if (num >= 30 && num < 60) {
					initContenuRef();
				}
				
				
				// bon positionnement pour le retour d'un projet
				if (num == 30 || num == 31) {
										
					if (initcontenueurpos < 0) {
						// positionnement en cas de retour d'un projet
						mouvemar = initcontenueurpos;
						
						if (typeActif == 1) {
							superShift = 0;
						}
						
						if (typeActif == 2) {
							superShift = ((bigwidth + bigmarge) * nbrefapercu) + 700;
							
							nbref = nbrefmini;
							shiftlenght = miniwidth + minimarge;
							margemax = shiftlenght * (nbref - 1);

							reinitMargeMax();
						}
						
						
					} else {
						// postionnement par defaut en fonction du type a affiche
						
						if (typeActif == 1) {
							var mouvemar = 0;		
						}
						if (typeActif == 2) {
							var mouvemar = ((bigwidth + bigmarge) * nbrefapercu) + 700;
							superShift = mouvemar;
							mouvemar = -mouvemar;
							
							nbref = nbrefmini;
							shiftlenght = miniwidth + minimarge;
							margemax = shiftlenght * (nbref - 1);
							
							reinitMargeMax();
						}						
					}

					if (typeActif == 3) {
						var mouvemar = ((miniwidth + minimarge) * (nbrefmini)) + ((bigwidth + bigmarge) * (nbrefapercu)) + 1400;
						superShift = mouvemar;
						mouvemar = -mouvemar;
					}

					$("#data_main").css("margin-left", mouvemar);
				}
				
				
				if (typeActif == 3 && (num == 30 || num ==31) ) {
				
					$("#tabnavsub").fadeOut(500);
					$("#lignegrise").fadeIn(500);

					// active le liens
					//setModeLinkClass(3);

					// activation du table

					inittablo(true);
					
				}
				
				
				// curseur sur bouton type liste
				if ((num==30 || num==31) && typeActif==1) {					
					$("#lienshowapercu").addClass("nocursor");
					$("#lienshowmini").removeClass("nocursor");
					$("#lienshowliste").removeClass("nocursor");
				}
				if ((num==30 || num==31) && typeActif==2) {					
					$("#lienshowapercu").removeClass("nocursor");
					$("#lienshowmini").addClass("nocursor");
					$("#lienshowliste").removeClass("nocursor");
				}
				if ((num==30 || num==31) && typeActif==3) {					
					$("#lienshowapercu").removeClass("nocursor");
					$("#lienshowmini").removeClass("nocursor");
					$("#lienshowliste").addClass("nocursor");
				}
				

				calcActivRef();
				
				//alert("pause");
				
				// retour de la fenetre
				if (invertAnim == true) {
					var moveRetour = "-"+(defautMainMargeTop*2)+"px";
				} else {
					var moveRetour = "0px";
				}
				
				$("#masterslide").animate({
					marginTop: moveRetour
				},1000,"easeInOutQuad", function() {
					// quand retour fini, on supprime l'ancien contenu qui est en dessous
										
					if (invertAnim == true) {
						destroyDiv3();
					} else {
						destroyDiv2();
					}
					
					// fin du switch
					dataSwitch = false;
					
				});
		     
		   },
		   error: function(XMLHttpRequest, textStatus, errorThrown) {
			   
			   if (invertAnim == true) {
				   $("#masterslide").animate({
						marginTop: defautMainMargeTop+"px"
					},1000,"easeInOutQuad", function() {
						$("#loadingdiv").remove();
					});
				} else {
					$("#masterslide").animate({
						marginTop: "-"+defautMainMargeTop+"px"
					},1000,"easeInOutQuad", function() {
						$("#loadingdiv").remove();
						$("#masterslide").css("margin-top", "0px");
					});
				}
			   
			  
		   }
		 });
						
		
		
		
		
	});
	
	
	
}
