/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \
|		
|		Copyright (c) 2008
|		Design + HTML/CSS/DOM JavaScript : Smart Agence
|		http://www.smartagence.com/
|		
\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */


// Running jQuery in no conflict mode
var $jQ = jQuery.noConflict();


function IEPNGFix() {
	/*
 
Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.

Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="pngfix.js"></script>
<![endif]-->

*/

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

if ((version >= 5.5) && (document.body.filters)) 
{
   for(var i=0; i<document.images.length; i++)
   {
      var img = document.images[i]
      var imgName = img.src.toUpperCase()
      if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
      {
         var imgID = (img.id) ? "id='" + img.id + "' " : ""
         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
         var imgStyle = "display:inline-block;" + img.style.cssText 
         if (img.align == "left") imgStyle = "float:left;" + imgStyle
         if (img.align == "right") imgStyle = "float:right;" + imgStyle
         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
         var strNewHTML = "<span " + imgID + imgClass + imgTitle
         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
         + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
         img.outerHTML = strNewHTML
         i = i-1
      }
   }
}

};


/* ______________________[ 01 | Interactivité du menu principal (menu horizontal) ]________________________ */

/* A special thanks goes to Eric Shepherd for his ALA article about “Hybrid CSS Dropdowns”: http://www.alistapart.com/articles/hybrid/ 
and to Patrick Griffiths and Dan Webb for their htmldog.com article “Sons of Suckerfish”: http://www.htmldog.com/articles/suckerfish/ */

function SmartHover(who) {
	if (document.all&&document.getElementById&&document.getElementsByTagName&&document.getElementById(who)) {
		navRoot=document.getElementById(who);
		for (i=0;i<navRoot.childNodes.length;i++) {
			node=navRoot.childNodes[i];
			if (node.nodeName=="LI") {
				node.onmouseover=function() {this.className+=" over";}
				node.onmouseout=function() {this.className=this.className.replace(" over", "");}
			}
		}
	}
	SmartFocus(who);
}

function SmartFocus(who) {
	var navLnk=document.getElementById(who).getElementsByTagName("A");
	var navItm=document.getElementById(who).getElementsByTagName("LI");
	for (var n=0;n<navItm.length;n++) {
		if (navItm[n].className!="on") navItm[n].className="y";
	}
	for (var i=0;i<navLnk.length;i++) {
		navLnk[i].onfocus=function() {
			if (this.parentNode.parentNode.id==who) {
				this.parentNode.className+=" over";
			} else {
				this.parentNode.parentNode.parentNode.className+=" over";
			}
		}
		navLnk[i].onblur=function() {
			if (this.parentNode.parentNode.id==who) {
				this.parentNode.className=this.parentNode.className.replace(" over", "");
			} else {
				this.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.className.replace(" over", "");
			}
		}
	}
}


/* ______________________[ 02 | Gestion de la taille du texte d’un article ]________________________ */

function SmartSize() {
	var args=SmartSize.arguments;
	if (document.getElementById&&document.getElementById("Tplus")&&document.getElementById("Tmoins")) {
		var cibleplus=document.getElementById("Tplus");
		var ciblemoins=document.getElementById("Tmoins");
		cibleplus.onclick=function() {
			for (n=0;n<args.length;n++) {
				if (document.getElementById(args[n])) {
					var cibletxt=document.getElementById(args[n]);
					var sizestr=cibletxt.style.fontSize.substring(0,cibletxt.style.fontSize.length-2);
					var sizeinter=cibletxt.style.lineHeight.substring(0,cibletxt.style.lineHeight.length-2);
					sizestr=sizestr!=""?parseInt(sizestr):12;
					cibletxt.style.fontSize=sizestr+1+"px";
				}
			}
		}
		ciblemoins.onclick=function() {
			for (n=0;n<args.length;n++) {
				if (document.getElementById(args[n])) {
					var cibletxt=document.getElementById(args[n]);
					var sizestr=cibletxt.style.fontSize.substring(0,cibletxt.style.fontSize.length-2);
					var sizeinter=cibletxt.style.lineHeight.substring(0,cibletxt.style.lineHeight.length-2);
					sizestr=sizestr!=""?parseInt(sizestr):12;
					cibletxt.style.fontSize=sizestr-1+"px";
				}
			}
		}
	}
}


/* ______________________[ 03 | Lancement d’une impression pour les navigateurs compatibles ]________________________ */

function DirectPrint() {
	if (window.print) self.print();
}


/* ______________________[ 04 | Miscellaneous ]________________________ */

function OpenPopup(url,nom,option) {
	window.open(url,nom,option);
}

function SmartRescueForm() {
	var args=SmartRescueForm.arguments;
	for (n=0;n<args.length;n++) {
		var cibleSelectName=args[n];
		if (document.getElementById&&document.getElementById(cibleSelectName)) {
			var cibleSelect=document.getElementById(cibleSelectName);
			cibleSelect.className="show";
		}
	}
}


/* ______________________[ 05 | Gestion de l’ouverture/fermeture d’un <h2> » ]________________________ */

function SmartPlan(cible) {
	if (document.getElementById&&document.getElementById(cible)) {
		var root=document.getElementById(cible).getElementsByTagName("H2");
		for (a=0;a<root.length;a++) {
			if (root[a].nodeName=="H2") {
				SmartOpenClose(root[a]);
			}
		}
	}
}

function SmartOpenClose(who) {
	var args=SmartOpenClose.arguments;
	if (who.nextSibling&&who.nextSibling.className=="treeview") {
		var Sister=who.nextSibling;
		Sister.style.display="block";
		who.className="on";
	} 
	if (!document.all&&who.nextSibling.nextSibling&&who.nextSibling.nextSibling.className=="treeview") {
		var Sister=who.nextSibling.nextSibling;
		Sister.style.display="block";
		who.className="on";
	}
	who.onclick=function() {
		if (Sister) {
			Sister.style.display=Sister.style.display=="none"?"block":"none";
			who.className=who.className=="off"?"on":"off";
		}
	}
}


/* ______________________[ 06 | Ajout de la page courante aux favoris ]________________________ */

/* Mettre la page courante en favoris — MSIE and Firefox */
function AddBookmark(btn) {
	if (document.getElementById&&document.getElementById(btn)) {
		var el=document.getElementById(btn);
		var operaStr="« Ctrl + T » pour ajouter aux favoris.";
		if (document.all&&navigator.userAgent.indexOf("Opera")==-1) {
			el.onclick=function() {
				window.external.AddFavorite(document.location,document.title);
			}
		} else if (navigator.userAgent.indexOf("Firefox")!=-1) {
			el.onclick=function () {
				window.sidebar.addPanel(document.title,document.location,"");
			}
		} else if (navigator.userAgent.indexOf("Opera")!=-1) {
			el.title=operaStr;
			window.status=operaStr;
		}
	}
}

/* Get elements by class name(s) */
function getElementsByClassName(oElm, strTagName, oClassNames){		//src element, target element tag, class name(s)
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
};

/* ______________________[ 07 | <select/> au clavier ]________________________ */

/* Thanks goes to Cameron Adams from http://www.themaninblue.com/ */

function initSelect(whichSelect) {
	if (document.getElementById&&document.getElementById(whichSelect)) {
		var theSelect=document.getElementById(whichSelect);
		theSelect.changed=false;
		theSelect.onfocus=selectFocussed;
		theSelect.onchange=selectChanged;
		theSelect.onkeydown=selectKeyed;
		theSelect.onclick=selectClicked;
		return true;
	}
}

function selectChanged(theElement) {
	var theSelect;
	if (theElement&&theElement.value) {
		theSelect=theElement;
	} else {
		theSelect=this;
	}
	if (!theSelect.changed) {
		return false;
	}
	if (theSelect.value&&theSelect.value!="0") window.location=theSelect.value;
	return true;
}

function selectClicked() {
	this.changed=true;
}

function selectFocussed() {
	this.initValue=this.value;
	return true;
}

function selectKeyed(e){
	var theEvent;
	var keyCodeTab="9";
	var keyCodeEnter="13";
	var keyCodeEsc="27";
	if (e) {
		theEvent=e;
	} else {
		theEvent=event;
	}
	if ((theEvent.keyCode==keyCodeEnter||theEvent.keyCode==keyCodeTab)&&this.value!=this.initValue) {
		this.changed=true;
		selectChanged(this);
	} else if (theEvent.keyCode==keyCodeEsc) {
		this.value=this.initValue;
	} else {
		this.changed=false;
	}
	return true;
}


/* ______________________[ 08 | Lancement des scripts ]________________________ */

window.onload=function() {
	IEPNGFix();
	SmartSize("ColB","ColC","ColD","ColContenu","ColContextuel");
	SmartRescueForm("","","","","");
	/* IE 5-6 background flicker fix */
	try {document.execCommand('BackgroundImageCache', false, true);}
	catch(e) { }
}




/* ______________________[ MooTools parts ]________________________ */

//	We add MooTools stuff BEFORE jQuery to avoid strange script misbehaviours

function startGallery() {
	if(window.gallery) {
		try {
			var myGallery = new gallery($('myGallery'), {
				timed:true,delay: 5000,
				showArrows: true,
				showCarousel: false,
				textShowCarousel: 'Photos',
				embedLinks:true,
				lightbox:true
			});
			var mylightbox = new Lightbox();
		} catch(error){
			window.setTimeout("startGallery();",2500);
		}
	}else{
		window.gallery=true;
		
		if(this.ie){
		window.setTimeout("startGallery();",3000);
		}else{
		window.setTimeout("startGallery();",100);
		}
	}
}

function addMultiBox() {
		var box = {};
		box = new MultiBox('multibox', {descClassName: 'multiboxDesc',
						   onOpen:function() {$jQ("#SlideShow").cycle("pause");},
						   onClose:function() {$jQ("#SlideShow").cycle("resume");}
				});
};


window.addEvent('load',function() {
		addMultiBox();
		startGallery();
});

function plansite(){
	if( $jQ('div#plansite').length < 0 ) {
		return;
	}
	var txtOC = '<a href="javascript:;" class="openclose"><span>afficher ou masquer</span></a>'
	var allUL = $jQ('div#plansite ul li ul');
		allUL.css("display","none");
		allUL.each(function(){
			var li = $jQ(this).parents("li:first");
				li.addClass("toggle");
			var a = li.find('a:first');
			a.before(txtOC);		
		}); 
		var allOC = $jQ('div#plansite ul li a.openclose');
			allOC.each(function(){
				var OC = $jQ(this);		
				var ul = OC.nextAll("ul");
					OC.click(function(){								 
						ul.slideToggle(500,function(){
							OC.toggleClass("on");
						});
					});
			});
	if( $jQ('p#tous').length > 0 ) {
		$jQ('p#tous a').click(function(){
			var a = $jQ(this);
				if( a.is(":contains('afficher')") ) {
					allUL.css("display","block");
					allOC.addClass("on");
					a.text("Tout masquer");
				}else {
					allUL.css("display","none");
					allOC.removeClass("on");
					a.text("Tout afficher");
				}
			return false;
		});
	}
}


/* ______________________[ jQuery parts ]________________________ */

$jQ(document).ready(function(){
	// we do not support MSIE < 6
	if(!$jQ.browser.msie || $jQ.browser.msie && $jQ.browser.version >= 6) {		
		jQ_CollapsibleBanner();
		$jQ("#SlideShow").cycle({fx: "scrollLeft",timeout:4000});
	}
	else {	// non-animated version for IE < 6
		CollapsibleBanner();
	}
	//$jQ("#SlideShow a").remove();
	if($jQ("#plansite")){plansite();}
});
 
 
function jQ_CollapsibleBanner() {
	var bExpand = false;
	var iHeight = $jQ("#Bandeau img").height();
 	$jQ("#Bandeau").append('<a rel="resize" class="bt"><span>Replier</span></a>');
	$jQ("#Bandeau a[rel=resize]").click(function() {
		if(bExpand) {
			$jQ("#Bandeau").animate({height:iHeight},"fast");
			$jQ(this).removeClass("folded").html("<span>Replier</span>");
			bExpand = false;
		}
		else {
			$jQ("#Bandeau").animate({height:"40px"},"fast");
			$jQ(this).addClass("folded").html("<span>D&eacute;plier</span>");
			bExpand = true;
		}
	});
};

/* For IE 5.x */
function CollapsibleBanner() {
	var oBandeau = document.getElementById("Bandeau");
	oBandeau.innerHTML += '<a rel="resize"><span>Replier</span></a>';
	var oLink = oBandeau.getElementsByTagName("a")[0];
	var bExpand = false;
	oLink.onclick = function() {
		if(bExpand) {
			oBandeau.className = "";
			this.innerHTML = "<span>Replier</span>";
			bExpand = false;
		}
		else {
			oBandeau.className = "folded";
			this.innerHTML = "<span>D&eacute;plier</span>";
			bExpand = true;
		}
	};
};



