//******************************************
/* Projet  :			TMA XXNet
 * Fichier :		    script-crl.js
 * 
 * 04/02/2010 Mantis 0072 - Migration Eureka
 * 	          Modification :LGF
 * 
 * 
 **/
//***************************************

//**************************************************JUMP MENU
function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}


//**************************************************
//boxContentDivId 	est l'id la div dont on veut tester le contenu
//toHideDivId 		est l'id de la div ï¿½ masquer si boxContentDiv n'a pas d'aspect visuel
//testeurDivId 		est l'id d'une div de type <div id="testeur" style="margin:0px; padding:0px; "></div>
//**************************************************
function hideEmptyDiv(boxContentDivId, toHideDivId, testeurDivId) {
	boxContentDiv = document.getElementById(boxContentDivId);
	toHideDiv = document.getElementById(toHideDivId);
	testeurDiv = document.getElementById(testeurDivId);

	if (boxContentDiv!=null && toHideDiv!=null && testeurDiv!=null) {

		var str = boxContentDiv.innerHTML;
		str=replaceAll(str,"<br/>","");
		str=replaceAll(str,"<br>","");
		str=replaceAll(str,"<BR>","");
		str=replaceAll(str,"<BR/>","");

		//testeurDiv.innerHTML=boxContentDiv.innerHTML.replace('<br/>','').replace('<br>','').replace('<BR/>','').replace('<BR>','');
		testeurDiv.innerHTML=str;
		applyNoMargins(testeurDiv);

		if (testeurDiv.offsetHeight==0) {
			toHideDiv.style.display='none';
		}
		
		testeurDiv.innerHTML='';
	}
}
function replaceAll( str, toReplace, replacement ) {
     var idx = str.indexOf( toReplace );

     while ( idx > -1 ) {
         str = str.replace( toReplace, replacement );
         idx = str.indexOf( toReplace );
     }
    return str;
}
function applyNoMargins(noeud) {
	//fils[i].style="margin:0px; padding:0px; "
	//fils[i].style.marginBottom="0px";
	//fils[i].style.marginLeft="0px";
	//fils[i].style.marginRight="0px";
	//fils[i].style.marginTop="0px";
	
	if (noeud.style!=null) {
		noeud.style.margin="0";
		noeud.style.padding="0";
	}

	var fils = noeud.childNodes;
	var nbFils = fils.length;
	for(var i = 0; i < nbFils; i++){
		applyNoMargins(fils[i]);
	} 
}


//**************************************************Plier et d&eacute;plier du contenu
function show(portlet) {
		document.getElementById("hide_" + portlet).style.display="none";
		document.getElementById("show_" + portlet).style.display="";
}
function hide(portlet) {
		document.getElementById("show_" + portlet).style.display="none";
		document.getElementById("hide_" + portlet).style.display="";
}

function showSearch(portlet) {
		if(document.getElementById(portlet))
			document.getElementById(portlet).style.display="";
}
function hideSearch(portlet) {
		if(document.getElementById(portlet))
			document.getElementById(portlet).style.display="none";

}

function showhide(content) {
	var element = document.getElementById(content);
	var realID,el,elClassName;
	if (element!=null) {
		 if(content.indexOf('ShowCommand')!=-1){
		 	realID = content.substring(0,content.indexOf('ShowCommand'));
		 	if(document.getElementById(realID)){
		 	    el = document.getElementById(realID)
		 		elClassName = el.className;
		 		if(elClassName.indexOf(" showImage")==-1){
			 		if(elClassName.indexOf(" hideImage")!=-1){
			 			var tmp = elClassName.substring(0,elClassName.indexOf(" hideImage"));
			 			el.className = tmp+" showImage";
			 		}else{
			 			el.className = elClassName+" showImage";
			 		}
				}
		 	} 
		 }else if(content.indexOf('HideCommand')!=-1){
		 	realID = content.substring(0,content.indexOf('HideCommand'));
		 	if(document.getElementById(realID)){
		 	    el = document.getElementById(realID)
		 		elClassName = el.className;
		 		if(elClassName.indexOf(" hideImage")==-1){
			 		if(elClassName.indexOf(" showImage")!=-1){
			 			var tmp = elClassName.substring(0,elClassName.indexOf(" hideImage"));
			 			el.className = tmp+" hideImage";
			 		}else{
			 			el.className = elClassName+" hideImage";
			 		}
				}
		 	} 
		 }
	     if (element.style.display=="none") {
			element.style.display="";
		} else {
			element.style.display="none";
	     }
	} 
}


//***************************************************AFFICHER INFO BULLE
function showMe(portlet) {
		document.getElementById(portlet).style.display="";
}
function hideMe(portlet) {
		document.getElementById(portlet).style.display="none";
}


/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \
|		
|		Copyright (c) 2007 conseil r?gional de Lorraine
|		Design + HTML/CSS/DOM JavaScript : Smart Agence
|		http://www.smartagence.com/
|		
\ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */


/* ______________________[ 01 | 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";
				}
			}
		}
	}
}


/* ______________________[ 02 | Lancement d?une impression pour les navigateurs compatibles ]________________________ */

function DirectPrint() {
	if (window.print) self.print();
}


/* ______________________[ 03 | Miscellaneous ]________________________ */

function OpenPopup(url,nom,option) {
	window.open(url,nom,option);
}


/* ______________________[ 04 | Ajout de la page courante aux favoris de Microsoft Internet Explorer ]________________________ */

/* 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 (window.sidebar) {
			el.onclick=function () {
				window.sidebar.addPanel(document.title,document.location.href,"");
			}
		} else if (navigator.userAgent.indexOf("Opera")!=-1) {
			el.title=operaStr;
			window.status=operaStr;
		}
	}
}


/* ______________________[ 05 | Plan du site ]________________________ */

/*
aqtree3clickable.js

Converts an unordered list to an explorer-style tree, with clickable
icons

To make this work, simply add one line to your HTML:
<script type="text/javascript" src="aqtree3clickable.js"></script>

and then make the top UL of your nested unordered list of class
"aqtree3clickable".

That's it. No registration function, nothing.

http://www.kryogenix.org/code/browser/aqlists/

Stuart Langridge, November 2002
sil@kryogenix.org

Inspired by Aaron's labels.js (http://youngpup.net/demos/labels/) and Dave Lindquist's menuDropDown.js (http://www.gazingus.org/dhtml/?id=109)

*/

function makeTreesC() {
     // We don't actually need createElement, but we do
    // need good DOM support, so this is a good check.
    if (!document.createElement) return;
    msie5 = navigator.userAgent.indexOf('MSIE 5.0'); 
    uls = document.getElementsByTagName("ul");
    if (msie5 == -1){
    for (uli=0;uli<uls.length;uli++) {
        ul = uls[uli];
        if (ul.nodeName == "UL" && ul.className == "treeview") {
            processULELC(ul);
        }
	   }
   }  
}

function processULELC(ul) {
    if (!ul.childNodes || ul.childNodes.length == 0) return;
    // Iterate LIs
    for (var itemi=0;itemi<ul.childNodes.length;itemi++) {
        var item = ul.childNodes[itemi];
        if (item.nodeName == "LI") {
            // Iterate things in this LI
            var a;
            var subul;
	    subul = "";
            for (var sitemi=0;sitemi<item.childNodes.length;sitemi++) {
                var sitem = item.childNodes[sitemi];
                switch (sitem.nodeName) {
                    case "A": a = sitem; break;
                    case "UL": subul = sitem; 
                               processULELC(subul);
                               break;
                }
            }
            if (subul) {
                associateELC(a,subul);
            } else {
                a.parentNode.className = "aq3bullet";
            }
        }
    } 
}

function associateELC(a,ul) {
	if (a.parentNode.className.indexOf('aq3open') == -1)
	a.parentNode.className = 'aq3closed';
	a.onclick = function () {
		this.parentNode.className = (this.parentNode.className=='aq3open') ? "aq3closed" : "aq3open";
		return false;
	}
}

	
/* Utility functions */

function addEvent(obj, evType, fn){
  /* adds an eventListener for browsers which support it
     Written by Scott Andrew: nice one, Scott */
  if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
  } else if (obj.attachEvent){
	var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
	return false;
  }
}

function toggleEncart(encartID,style, defaultClass){
   var showImgID = encartID+'ShowCommand';
   var hideImgID = encartID+'HideCommand';
   var el = document.getElementById(encartID)
   var elShow = document.getElementById(showImgID)
   var elHide = document.getElementById(hideImgID)
   if(el){
       if(el.className.indexOf("showImage")!=-1){
           el.className=defaultClass+" hideImage"
           // forced collapse edit
           if(elShow && elHide){
               elShow.style.display="none"
               elHide.style.display=""
           }
       }else if(el.className.indexOf("hideImage")!=-1){
           el.className=defaultClass+" showImage"
           if(elShow && elHide){
               elShow.style.display=""
               elHide.style.display="none"
           }
       }
   }
   
   //Mantis 0072 - Migration Eureka début des modifications
   //Effect.toggle(encartID,style);
   	toggle(encartID);
   //Mantis 0072 - Migration Eureka fin des modifications
}

//Mantis 0072 - Migration Eureka début des modifications

function toggle(element) {
    var element = document.getElementById(element);  
    if ( element.style.display != 'none' ) 
                   element.style.display = 'none';
    else 
                   element.style.display = '';
}
//Mantis 0072 - Migration Eureka fin des modifications

function isOpen(encartID) {
    var el = document.getElementById(encartID)
    if(el.className.indexOf("showImage")!=-1){
        return true;
    }
}

function closeEncart(encartID,style, defaultClass){
    if (isOpen(encartID)) {
    //var el = document.getElementById(encartID)
    //if(el.className.indexOf("showImage")!=-1){
        toggleEncart(encartID,style, defaultClass)
    }
}
function openEncart(encartID,style, defaultClass){
    if (!isOpen(encartID)) {
    //var el = document.getElementById(encartID)
    //if(el.className.indexOf("hideImage")!=-1){
        toggleEncart(encartID,style, defaultClass)
    }
}

function keepMeShown(id){
	var el = document.getElementById(id);
	if(el){
		el.value="always";
	}
}
function encart_state_changeState(form,id,pid){
	var myForm = eval(form);
	if(id){
		myForm.encart_id.value = id;
	}
	if(pid){
		myForm.encart_pid.value=pid;
	}
	myForm.submit();
}

function rec_show_result(form,hash){
	var myForm = eval(form);
	if(hash){
		var newaction = myForm.action+"#"+hash;
		myForm.action = newaction;
	}
	myForm.submit();
}

function save_encart_status_in_request(form) {
    var myForm = eval(form);
    var params = "";

    params = addNeededEncartStatus(params, "enteteContenuPied");
    params = addNeededEncartStatus(params, "discipline");
    params = addNeededEncartStatus(params, "modeAcces");
    params = addNeededEncartStatus(params, "formation");
    params = addNeededEncartStatus(params, "motcle");
    params = addNeededEncartStatus(params, "etablissement");
    params = addNeededEncartStatus(params, "competences");

    //alert(params);

    //var el = document.getElementById("competences");
    //if (el!=null) {
    //    params = addEncartStatus(params, "competences");
    //}
    
    //alert(params);

    myForm.action = myForm.action + params
    myForm.submit();
}
function addNeededEncartStatus(params, encartId) {
    var el = document.getElementById(encartId);
    if (el!=null) {
        params = addEncartStatus(params, encartId);
    }
    return params;
}

function addEncartStatus(params, encartId) {
    if (params.length!=0) {
        params+="&";
    } else {
        params+="?";
    }
    if (isOpen(encartId)) {
        params+=encartId+"=open"
    } else {
        params+=encartId+"=close"
    }
    return params;
}

/*function rec_submit_saving_cfg(form,encartId){
    alert('rec_submit_saving_cfg')
    var myForm = eval(form);
    if (isOpen(encartId)) {
        alert('isOpen(encartId)=true')
        myForm.action = myForm.action + "?" + encartId +"=open"
    } else {
        alert('isOpen(encartId)=false')
        myForm.action = myForm.action + "?" + encartId +"=close"
    }
    alert('submit')
    myForm.submit();
}   */
/* ______________________[ 06 | Lancement des scripts ]________________________ */

window.onload=function() {
	AddBookmark("Favoris");
	makeTreesC();
}


// the tooltip object
var tooltip = {
    // setup properties of tooltip object
    id:"tooltip",
    offsetx : 10,
    offsety : 10,
    _x : 0,
    _y : 0,
    _tooltipElement:null,
    _saveonmouseover:null
}

/**
* Open ToolTip. The title attribute of the htmlelement is the text of the tooltip
* Call this method on the mouseover event on your htmlelement
* ex :  <div id="myHtmlElement" onmouseover="tooltip.show(this)"...></div>
*/
tooltip.showT = function (htmlelement) {

    // we save text of title attribute to avoid the showing of tooltip generated by browser
    var text=htmlelement.getAttribute("title");
    htmlelement.setAttribute("title","");
    htmlelement.setAttribute("title_saved",text);

	if(document.getElementById){
        this._tooltipElement = document.getElementById(this.id);
	}else if ( document.all ) {
        this._tooltipElement = document.all[this.id].style;
	}

    this._saveonmouseover = document.onmousemove;
    document.onmousemove = this.mouseMove;

    //this._tooltipElement.innerHTML = text;

    this.moveTo(this._x + this.offsetx , this._y + this.offsety);

    if(this._tooltipElement.style){
        this._tooltipElement.style.visibility ="visible";
    }else{
        this._tooltipElement.visibility = "visible";
    }
   return false;
}

/**
* hide tooltip
* call this method on the mouseout event of the html element
* ex : <div id="myHtmlElement" ... onmouseout="tooltip.hide(this)"></div>
*/
tooltip.hideT = function (htmlelement) {
    htmlelement.setAttribute("title",htmlelement.getAttribute("title_saved"));
    htmlelement.removeAttribute("title_saved");

    if(this._tooltipElement.style){
        this._tooltipElement.style.visibility ="hidden";
    }else{
        this._tooltipElement.visibility = "hidden";
    }
    document.onmousemove=this._saveonmouseover;
}



// Moves the tooltip element
tooltip.mouseMove = function (e) {
   // we don't use "this" because this method is assign to an event of document
   // and so is dereferenced
    if(e == undefined)
        e = event;

    if( e.pageX != undefined){ // gecko, konqueror,
        tooltip._x = e.pageX;
        tooltip._y = e.pageY;
    }else if(event != undefined && event.x != undefined && event.clientX == undefined){ // ie4 ?
        tooltip._x = event.x;
        tooltip._y = event.y;
    }else if(e.clientX != undefined ){ // IE6,  IE7, IE5.5
        if(document.documentElement){
            tooltip._x = e.clientX + ( document.documentElement.scrollLeft || document.body.scrollLeft);
            tooltip._y = e.clientY + ( document.documentElement.scrollTop || document.body.scrollTop);
        }else{
            tooltip._x = e.clientX + document.body.scrollLeft;
            tooltip._y = e.clientY + document.body.scrollTop;
        }
    /*}else if(event != undefined && event.x != undefined){ // IE6,  IE7, IE5.5
        tooltip.x = event.x + ( document.documentElement.scrollLeft || document.body.scrollLeft);
        tooltip.y = event.y + ( document.documentElement.scrollTop || document.body.scrollTop);
    */
    }else{
        tooltip._x = 0;
        tooltip._y = 0;
    }
    tooltip.moveTo( tooltip._x +tooltip.offsetx , tooltip._y + tooltip.offsety);

}

// Move the tooltip element
tooltip.moveTo = function (xL,yL) {
    if(this._tooltipElement.style){
        this._tooltipElement.style.left = xL +"px";
        this._tooltipElement.style.top = yL +"px";
    }else{
        this._tooltipElement.left = xL;
        this._tooltipElement.top = yL;
    }
}
