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


function $id(sID) {
	return document.getElementById(sID);
}

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 && version < 7.0) && (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 && $id(who)) {
		navRoot=$id(who);
		if(navRoot != null) {
			for (i=0;i<navRoot.childNodes.length;i++) {
				node=navRoot.childNodes[i];
				if (node.nodeName=="LI") {
					node.onmouseover=function() {this.className+=" over";toggleBlock(this,true);}
					node.onmouseout=function() {this.className=this.className.replace(" over", "");toggleBlock(this,false);}
				}
			}
		}
		SmartFocus(who);
	}
}

function SmartFocus(who) {
	var navLnk=$id(who).getElementsByTagName("A");
	var navItm=$id(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&&$id("Tplus")&&$id("Tmoins")) {
		var cibleplus=$id("Tplus");
		var ciblemoins=$id("Tmoins");
		cibleplus.onclick=function() {
			for (n=0;n<args.length;n++) {
				if ($id(args[n])) {
					var cibletxt=$id(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 ($id(args[n])) {
					var cibletxt=$id(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";
				}
			}
		}
	}
};


function SmartDL() {
	var args=SmartDL.arguments;
	if(typeof args[0] === "object") {
		SmartDLEffect(args[0],args[1],args[2]);
	} else if (document.getElementById && $id(args[n])) {
		for (n=0;n<args.length;n+=2) {
			SmartDLEffect($id(args[n]),args[n+1]);
		}
	}
};


function SmartDLEffect(oRoot,ClickFx) {
	var root=oRoot.getElementsByTagName("DT");
	var Sister;
	for (a=0;a<root.length;a++) {
		Sister = null;
		if (root[a].nextSibling.nodeName=="DD") {Sister=root[a].nextSibling;}
		else if (root[a].nextSibling.nextSibling.nodeName=="DD") {Sister=root[a].nextSibling.nextSibling;}
		if (root[a].className!="on") {
			Sister.className="off";
		}
		else {
			Sister.className="on";
		} 
		SmartOpenClose(root[a],Sister,ClickFx);
	}
};

function SmartOpenClose(who,Sister,ClickFx) {
	if (ClickFx==1) {
		who.onclick=function() {
			who.className=(who.className=="on"?"off":"on");
			Sister.className=(Sister.className=="on"?"off":"on");
		}
	} else {
		who.onclick=function() {
			for (a=0;a<who.parentNode.childNodes.length;a++) {
				if (who.parentNode.childNodes[a].nodeName=="DT") {who.parentNode.childNodes[a].className="";}
				else if (who.parentNode.childNodes[a].nodeName=="DD") {who.parentNode.childNodes[a].className="off";}
			}
			AllDT=who.parentNode.getElementsByTagName("DT");
			AllDD=who.parentNode.getElementsByTagName("DD");
			for (b=0;b<AllDT.length;b++) {
				AllDT[b].className="off";
			}
			for (c=0;c<AllDD.length;c++) {
				AllDD[c].className="off";
			}
			who.className="on";
			Sister.className=(Sister.className==" on"?"":"on");
		}
	}
};

/* ______________________[ 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&&$id(cibleSelectName)) {
			var cibleSelect=$id(cibleSelectName);
			cibleSelect.className="show";
		}
	}
}

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

/* Mettre la page courante en favoris — MSIE and Firefox */
function AddBookmark(btn) {
	if (document.getElementById&&$id(btn)) {
		var el=$id(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&&$id(whichSelect)) {
		var theSelect=$id(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;
}


function toggleBlock(oListItem,bDisplay) {
	if($id("D"+oListItem.id)) {
		if(bDisplay) {
			$id("D"+oListItem.id).className +=" on";
		} else {
			$id("D"+oListItem.id).className = $id("D"+oListItem.id).className.replace(" on","");
		}
	}
};



function toggleFAQ(aFAQList,oRef) {
	var aDT;
	var aDD;
	for(i=0;i<aFAQList.length;i++) {
		aDT = aFAQList[i].getElementsByTagName("dt");
		aDD = aFAQList[i].getElementsByTagName("dd");
		switch(oRef.className) {
			case "show":
				for(var j=0;j<aDT.length;j++) {
					aDT[j].className = "on";
					aDD[j].className = "on";
				}
			break;
			case "hide":
				for(var j=0;j<aDT.length;j++) {
					aDT[j].className = "";
					aDD[j].className = "";
				}
			break;
		}
	}
	oRef.className = (oRef.className == "show" ? "hide":"show");
	oRef.innerHTML = (oRef.className == "show" ? "Show all":"Hide all");
};


function FormHelper(sElementID,sHTMLHelpText) {
	if(document.getElementById && document.createElement && $id(sElementID)) {
		var oTargetElement = $id(sElementID);
		if(oTargetElement.value == "") {
			oTargetElement.value = sHTMLHelpText;
		}
		switch(oTargetElement.tagName) {
			case "INPUT":
				oTargetElement.value = sHTMLHelpText;
				oTargetElement.onfocus = function() {
					if(this.value == sHTMLHelpText) {
						this.value = '';
					}
				};
				oTargetElement.onblur = function() {
					if(this.value == '') {
						this.value = sHTMLHelpText;
					}
				};
			break;
		}
	}
};


function firstAndLastChild(oContainer,sTag) {
	if(document.all && oContainer) {
		var aElementList = oContainer.getElementsByTagName(sTag);
		for(i=0;i<aElementList.length;i++) {
			if(!document.body.style.minHeight) {	// not IE7
				if(aElementList[i] === aElementList[i].parentNode.firstChild) {
					aElementList[i].className += " first-child";
				}
			}
			if(aElementList[i] === aElementList[i].parentNode.lastChild) {
				aElementList[i].className += " last-child";
			}
		}
	}
};



function SmartImageHover(sClass) {
	var aImg = getElementsByClassName($id("Global"),"img",sClass);
	for(i=0 ; i < aImg.length ; i++) {
		var sExt;
		var oldPath;
		var sSrc;
		sExt = aImg[i].src.substring(aImg[i].src.lastIndexOf('.'), aImg[i].src.length);
		aImg[i].onmouseover = function() {
			sSrc = this.src.replace("uploads/tx_macinabanners","fileadmin/site_silmo/templates2008/medias");
			this.src = sSrc.replace(sExt,"_on"+sExt);
		};
		aImg[i].onmouseout = function() {
			sSrc = this.src.replace("fileadmin/site_silmo/templates2008/medias","uploads/tx_macinabanners");
			this.src = sSrc.replace("_on"+sExt,sExt);
		};
	}
}

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

window.onload=function() {
	firstAndLastChild($id("ColMenu"),"li");
	/* IE 5-6 background flicker fix */
	try {document.execCommand('BackgroundImageCache', false, true);}
	catch(e) { }
//	IEPNGFix();		// alpha-layered PNG fix for MSIE 5.5 + 6
	oBody = document.getElementsByTagName("body")[0];
	oBody.className += " jsOn";
	SmartHover("NavigationPrincipale");
	SmartHover("OptionMenu");
	SmartSize("ColA","ColB","ColC","ColMenu","ColContenu","ColContextuelle");
	SmartImageHover("roll");
	
	if($id("Exposant")) {
		FormHelper("Exposant",$id("Exposant").value);
	}
	
	var aFAQ = getElementsByClassName($id("ColContenu"), "dl","FAQ");
	if(aFAQ.length > 0) {
		var oP = document.createElement("p");
		oP.id = "toggle";
		oP.innerHTML = '<a href="javascript:;" class="show">Show all</a>';
		oP.getElementsByTagName("a")[0].onclick = function() {
			toggleFAQ(aFAQ,this);
		};
		$id("ColContenu").insertBefore(oP,$id("ColContenu").getElementsByTagName("h3")[0]);
		for(i=0;i<aFAQ.length;i++) {
			SmartDL(aFAQ[i],1);
		}
	}
//	SmartRescueForm("","","","","");
	if(document.getElementById && $id("SiteMap")) {
		new SiteMapManager("SiteMap").setToggleSwitch(true, "SiteMap").apply();
	}
	
	if(document.all && parseFloat(navigator.appVersion.split("MSIE")[1]) < 7 && $id("optin")) {
		$id("optin").nextSibling.className += " nofloat";
	}
	
	if( document.getElementById("addCmt") ) {
		var cmt = document.getElementById("addCmt");	
		cmt.onclick = function(){	
			var data = this.firstChild.nodeValue;
			var nomClassCmt = "close";
			if(/Add/.test(data)) {
				//data = data.replace("Ajouter","Fermer");
				data = "Close the comment";
				if(document.getElementById("formBlocCmt")) {
					document.getElementById("formBlocCmt").reset();
				}	
				nomClassCmt = "close";
			}else if(/Close/.test(data)){
				//data = data.replace("Close","Add comment");
				data = "Add the comment";
				nomClassCmt = "open";
			}
			this.firstChild.nodeValue = data;
			
			if( document.getElementById("blocCmt") ) {
				var blocCmt = document.getElementById("blocCmt");		
				var nomClass = blocCmt.className;
				if(/close/.test(nomClass) && (nomClassCmt == "close") ) {
					nomClass = nomClass.replace("close","open");
				}else if(/open/.test(nomClass) && (nomClassCmt == "open") ){
					nomClass = nomClass.replace("open","close");
				}
				blocCmt.className = nomClass;
			}			
			return false;
		}
	}
};

/*_______jquery stuff_________*/
// jQuery stuff
	
var $jQ = jQuery.noConflict();
$jQ(document).ready(function() {
    var cookieDisplay = Cookies["display"];
  	if( !cookieDisplay ) {
  		$jQ("#hidden_link").fancybox({ 'frameWidth': 820, 'frameHeight': 570, 'overlayOpacity':0.4, 'overlayShow': true, 'overlayColor':'#000',callbackOnClose: function(){/*callbackbox();*/}});
  		$jQ("#hidden_link").trigger('click');
  		Cookies.create("display","show");
    }	
});