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

var bDetailEmission, bDetailProgramme = false;

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

function AddToolButton(sContainerID, oParams){
	var DOM = document.createElement && document.getElementById && document.getElementById(sContainerID);
	if(DOM){
		var cible=document.getElementById(sContainerID).getElementsByTagName('UL');
		
		// no container list? let's create it
		if(cible.length == 0) {
			var oUL = document.createElement('UL');
			document.getElementById(sContainerID).appendChild(oUL);
		}
		cible = document.getElementById(sContainerID).getElementsByTagName('UL');
		
		if(cible){
			var oLi = document.createElement("LI");
			var oLink = document.createElement("A");
			var oImg = document.createElement("IMG");
			
			with(oLink){
				id = oParams.linkId;
				title = oParams.imgAlt;
				href = oParams.linkHREF? oParams.linkHREF : "javascript:;";
				onclick = oParams.onclick? oParams.onclick : "";
			};
			with(oImg){
				src = oParams.imgSrc;
				alt = oParams.imgAlt;
				className = oParams.imgClass;
			};
			oLink.appendChild(oImg);
			oLi.appendChild(oLink);
			
			// insertion&hellip; avant un element existant
			if(oParams.insertBefore && document.getElementById(oParams.insertBefore)) {
				var oNext = document.getElementById(oParams.insertBefore).parentNode;
				cible[0].insertBefore(oLi,oNext);
			}
			else{
				// ou en fin de liste
				cible[0].appendChild(oLi);
			}
		}	// end if cible
	}	// end if DOM
};	// end AddToolButton()


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

function SmartSize() {
	var args=SmartSize.arguments;
	var maxResizeCounter = 10;
	var currResizeCounter = 0;
	if (document.getElementById&&document.getElementById("Tplus")&&document.getElementById("Tmoins")) {
		var cibleplus=document.getElementById("Tplus");
		var ciblemoins=document.getElementById("Tmoins");
		cibleplus.onclick=function() {
			if (currResizeCounter < maxResizeCounter) {
      			redim(args, +1, +1, currResizeCounter, maxResizeCounter);
        		currResizeCounter += 1;
			}
		};
		ciblemoins.onclick=function() {
			if (currResizeCounter > -3) {
				redim(args, -1, -2, currResizeCounter, maxResizeCounter);
				currResizeCounter -= 1;
			};
		};
	}
};

function redim(args, sign, signb, currResizeCounter, maxResizeCounter){
 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+sign)+"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";
		}
	}
}

// Thanx goes to Chris Heilmann
// from http://www.onlinetools.org/
function findimg() {
	var imgs,i;
	imgs=document.getElementsByTagName('img');
	for(i=0;i<imgs.length;i++) {
		if (/roll/.test(imgs[i].className)) {
			imgs[i].onmouseover=function(){roll(this);};
			imgs[i].onmouseout=function(){roll(this);};
		}
	}
}

function roll(o) {
	var src,ftype,newsrc;
	src=o.src;
	ftype=src.substring(src.lastIndexOf('.'), src.length);
	if(/_over/.test(src)) {
		newsrc=src.replace('_over','');
	} else {
		newsrc=src.replace(ftype, '_over'+ftype);
	}
	o.src=newsrc;
}


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

/* Mettre la page courante en favoris � MSIE; Opera, and Firefox */
function myBookmark() {
	//if (document.getElementById&&document.getElementById(sElementID)) {
	/*	var el=document.getElementById(sElementID);
		var operaStr="&lsaquo; Ctrl + T &rsaquo; pour ajouter aux favoris.";
		if (document.all&&!window.opera) {
			window.external.AddFavorite(document.location,document.title);
		} else if (window.sidebar) {
			window.sidebar.addPanel(document.title,document.location.href,"");
		} else if (window.opera && window.print) {
			el.title=operaStr;
			window.status=operaStr;
		}*/
		bookmarksite(document.title,document.location.href);
//	}
};

function bookmarksite(title,url) {
	if (window.sidebar) { // firefox
		window.sidebar.addPanel(title, url, "");
	}
	else if(window.opera && window.print){ // opera
		var elem = document.createElement('a');
		elem.setAttribute('href',url);
		elem.setAttribute('title',title);
		elem.setAttribute('rel','sidebar');
		elem.click();
	} 
	else if(document.all) {// ie
		window.external.AddFavorite(url, title);
	}
};


/* ______________________[ 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;
}

/* Get elements by class name(s) */
function getElementsByClassName(oElm, strTagName, oClassNames){
	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)
};


function tabbedmenuBehaviour(sIDContainer,sElementTag,sClassName) {
	if(document.getElementById(sIDContainer)) {
		var oTabbedMenu = getElementsByClassName(document.getElementById(sIDContainer),sElementTag,sClassName)[0];
		if(oTabbedMenu) {
			aChildNodes =  oTabbedMenu.childNodes;
			for(i = 0 ; i < aChildNodes.length ; i++) {
				if(!DOMUtils.isIgnorableNode(aChildNodes[i])) {
					if(aChildNodes[i].nodeType == 1) {	// element node only
						oLink = DOMUtils.getFirstChild(aChildNodes[i].getElementsByTagName("h4")[0]);
						oDiv = DOMUtils.getNextSibling(oLink.parentNode);
						oLink.onmouseover = function() {
							// retrait des classes "on"
							for(i = 0 ; i < aChildNodes.length ; i++) {
								if(!DOMUtils.isIgnorableNode(aChildNodes[i])) {
									aChildNodes[i].className = "off";
								}
							}
							this.parentNode.parentNode.className = "on";
						};
					}
				}
			}
		}
	}
};


function DetailEmission(e, oSrc, bShow) {
	if(!bShow) {	// masquage
		if(document.getElementById(oSrc.rel)) {
			oDetail.style.display = "none";
			bDetailProgramme = false;
		}
	}
	else {	// affichage
		oDetail = document.getElementById(oSrc.rel);
		if(oDetail && oDetail.style.display != "block") {
			oDetail.style.display = "block";
			bDetailProgramme = true;
		}
	}
};

function MoveDetailEmission(e) {
	if(oDetail && bDetailProgramme) {
		if (document.all) { // IE	
			var iWindowW = parseInt(document.documentElement.offsetWidth - 20);
			var iWindowH = parseInt(document.documentElement.offsetHeight - 20);
			var iMouseX = event.clientX + document.documentElement.scrollLeft;
			var iMouseY = event.clientY + document.documentElement.scrollTop;
			var iEmissionW = oDetail.offsetWidth;
			var iEmissionH = oDetail.offsetHeight;					
		}
		else { // bons navigateurs	
			var iWindowW = parseInt(document.documentElement.clientWidth);
			var iWindowH = parseInt(document.documentElement.clientHeight);
			var iMouseX = e.pageX;
			var iMouseY= e.pageY;
			var iEmissionW = oDetail.offsetWidth;
			var iEmissionH = oDetail.offsetHeight;	
		}
		// horizontal
		if((iEmissionW + iMouseX + 5) >= (iWindowW + document.documentElement.scrollLeft)) { // si d�passement � droite
			oDetail.style.left = iMouseX - iEmissionW - 5 +"px";
		}
		else {
			oDetail.style.left = iMouseX + 20 + "px";
		}
		
		// vertical
		if((iEmissionH + iMouseY + 10) >= (iWindowH + document.documentElement.scrollTop)){ // si d�passement en bas
			if((iMouseY - iEmissionH) <= (document.documentElement.scrollTop)) {
				oDetail.style.top = document.documentElement.scrollTop + 10 + "px"; // si d�passement en haut
			}
			else {
				oDetail.style.top = iMouseY- iEmissionH + "px"; 
			}
		}
		else {
			oDetail.style.top = iMouseY + 10 + "px";
		}
	}
};

function getPosition(oElement) {
	var iCurLeft = iCurTop = 0;
	if (oElement.offsetParent) {
		do {
			iCurLeft += oElement.offsetLeft;
			iCurTop += oElement.offsetTop;
		} while (oElement = oElement.offsetParent);
	}
	return [iCurLeft,iCurTop];
}


function randomContent() {
	var aArgs = randomContent.arguments;
	var iRandom;
	var aChildNodes;
	// boucle sur les arguments
	for(var i = 0 ; i < aArgs.length ; i++) {
		if(document.getElementById(aArgs[i].id) && document.getElementById(aArgs[i].id).className != "noRandom") {
			aChildNodes = document.getElementById(aArgs[i].id).childNodes;
			// # random
			do {
				iRandom = 1 + Math.floor(Math.random() * parseInt(aArgs[i].qty));
			} while(!document.getElementById(aArgs[i].prefix+iRandom));
			for(var j = 0; j <= aChildNodes.length ; j++) {
				if(aChildNodes[j] && !(DOMUtils.isIgnorableNode(aChildNodes[j])) && parseInt(aChildNodes[j].id.substring(1)) != iRandom) {
					aChildNodes[j].style.display = "none";	
				}
			}
		}
	}
};	// function RandomContent

function executeWhenDOMReady() {
	tabbedmenuBehaviour("Bloc1","ul","tabbedMenu");
	tabbedmenuBehaviour("ColB","ul","tabbedMenu");
	initSelect("selectEmission1");
	initSelect("selectAnimateur1");
  initSelect("orgaRegion");
//	randomContent({id:"IndexEmissions",prefix:"e",qty:24},{id:"IndexAnimateurs",prefix:"a",qty:19});
};

/* ______________________[ 08 | compl�tion de valeur de champs automatique ]________________________ */

function ChampComplete (eleVal, ele) {
	Val=ele.value;
	ele.onfocus=function() {eleVal==this.value?this.value='':false}
	ele.onblur=function() {if(this.value=='')this.value=eleVal}
};

function AutoChamps() {
  var chpsId = AutoChamps.arguments;
  for (var i=0;i<chpsId.length;i++){
		if($id(chpsId[i])) {
		ChampComplete($id(chpsId[i]).value, $id(chpsId[i]));
		}
	}
};

/* ______________________[ 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", "");}
			}
		}
	}
	if($id(who)) {
		SmartFocus(who);
	}
};

function SmartFocus(who) {
	var navLnk=document.getElementById(who).getElementsByTagName("A");
	if (document.getElementById(who).getElementsByTagName("UL")) {
		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", "");
			}
		}
	}
};

/* Roll over */
function findimg() {
	var imgs,i;
	imgs=document.getElementsByTagName('img');
	for(i=0;i<imgs.length;i++) {
		if (/roll/.test(imgs[i].className)) {
			imgs[i].onmouseover=function(){roll(this);};
			imgs[i].onmouseout=function(){roll(this);};
		}
	}
};

function roll(o) {
	var src,ftype,newsrc;
	src=o.src;
	ftype=src.substring(src.lastIndexOf('.'), src.length);
	if(/_over/.test(src)) {
		newsrc=src.replace('_over','');
	} else {
		newsrc=src.replace(ftype, '_over'+ftype);
	}
	o.src=newsrc;
};

function checkSelect(sID) {
	if($id(sID)) {
		$id("journaliste").style.display = "none";
		$id(sID).onchange = function(e) {
			if(this.options.selectedIndex == 2) {
				$id("journaliste").style.display = "inline";
			} else {
				$id("journaliste").style.display = "none";
			}
		};
	}
};

function popIt (idForm,theUrl) {
   my_form = document.forms[idForm];
   window.open(theUrl, "popup", "height=150,width=500,toolbar=0,location=0,directories=0,status=0,scrollbars=0,resizable=0,copyhistory=0, menuBar=0, width=500, height=550");
   my_form.target = "popup";
   my_form.submit();
};
function select_auto_dep () {
 		/*$("jquery_auto_dep").onchange = function(e) {
			alert("aa");
		};*/
		switchDept("departement","region");
};

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

// lancement d�s le chargement du DOM, sans attendre les images
//DOM.Ready.onDOMReady(executeWhenDOMReady);

window.onload=function() {
	document.getElementsByTagName("body")[0].className += " jsOn";
	executeWhenDOMReady();
	
	SmartHover("NavigationPrincipale");
	SmartHover("menuSecondaire");
	/* IE 5-6 background flicker fix */
	try {document.execCommand('BackgroundImageCache', false, true);}
	catch(e) { }
	//AddToolButton("ToolBox",{linkId:"Print",linkHREF:"javascript:DirectPrint();",imgSrc:"img/toolbox/print.gif",insertBefore:"AddMyFavorites",imgAlt:"Imprimer cette page",imgClass:"roll"});
	AddToolButton("ToolBox",{linkId:"Bookmark",linkHREF:"javascript:myBookmark();",imgSrc:"img/toolbox/bookmark.gif",insertBefore:"Print",imgAlt:"Ajouter aux favoris",imgClass:"roll"});
	AddToolButton("ToolBox",{linkId:"Tmoins",imgSrc:"img/toolbox/txt_smaller.gif",imgAlt:"Texte plus petit",insertBefore:"Bookmark",imgClass:"roll"});
	AddToolButton("ToolBox",{linkId:"Tplus",imgSrc:"img/toolbox/txt_bigger.gif",imgAlt:"Texte plus grand",insertBefore:"Tmoins",imgClass:"roll"});
	findimg();
	SmartSize("ColContenu", "ColContextuelle");
	AutoChamps("SearchQuery","Keyword","Ref");

	var box = {};
	box = new MultiBox('multibox', {descClassName: 'multiboxdesc', useOverlay: true});

	if(document.getElementById("map_canvas")) {initialize();};
	findimg();
	
	checkSelect("destselect");
	
	if($id("plansite")) {
		var oSiteMap = new SiteMapManager("plansite").setTitleFolding(true,"h3").apply();
	}
	select_auto_dep () ;
};
