/*
 * Fonctions systeme CMS
 *
 * Changelog:	NG 20080314 - v1.0, integration sous forme de .js
 *		NG 20080317 - v1.1, correction sur showAndHide()
 */

/*
Change le SRC d'une image (rollover)
	@obj:		Element HTML image
	@url:		URL du src
	@returns:	void
*/
function rollImg(obj, url) {
	obj.src = url;
}

/*
Echange le contenu d'un DIV
	@target:	ID du DIV
	@from:		1er contenu
	@to:		2nd contenu
	@returns:	void
*/
function swapTxt(target, from, to) {
	var elt = document.getElementById(target);
	if (elt != null) {
		if (elt.innerHTML == from) {
			elt.innerHTML = to;
		} else {
			elt.innerHTML = from;
		}
	}
}

/*
Cache ou montre un DIV
	@target:	ID du DIV
	@display:	Style de display a utiliser pour afficher le DIV (inline, block, ...)
	@returns:	void
*/
function showAndHide(target, display) {
	var elt = document.getElementById(target);
	if (elt != null) {
		if (elt.style.display == display) {
			elt.style.display = 'none';
		} else {
			elt.style.display = display;
		}
	}
}

/*
AJAX: Constantes pour les types de noeuds
*/
ajaxELEMENT_NODE = 1;
ajaxATTRIBUTE_NODE = 2;
ajaxTEXT_NODE = 3;
ajaxCDATA_SECTION_NODE = 4;
ajaxENTITY_REFERENCE_NODE = 5;
ajaxENTITY_NODE = 6;
ajaxPROCESSING_INSTRUCTION_NODE = 7;
ajaxCOMMENT_NODE = 8;
ajaxDOCUMENT_NODE = 9;
ajaxDOCUMENT_TYPE_NODE = 10;
ajaxDOCUMENT_FRAGMENT_NODE = 11;
ajaxNOTATION_NODE = 12;

/*
AJAX: Retourne un objet XMLHttpRequest fonction du navigateur
	@returns:	void
*/
function ajaxGetXmlHttpRequest() {
	var xhr = null;
	if (window.XMLHttpRequest) {
		//Firefox ou IE >= 7.0
		xhr = new XMLHttpRequest();
		} else if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					// Ancienne version IE
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	}
	return xhr;
}

/*
AJAX: Lit le contenu textuel d'un noeud, les CDATA etant pris en compte
	@elt:		Objet Node a lire
	@returns:	Une chaine contenant au contenu texte du noeud
*/
function ajaxGetNodeText(elt) {
	var out = '';
	for(i=0; i<elt.childNodes.length;i++) {
		var currentNode = elt.childNodes[i];
		if (currentNode.nodeType == ajaxTEXT_NODE || currentNode.nodeType == ajaxCDATA_SECTION_NODE) {
			out += currentNode.nodeValue;
		}
	}
	return out;
}

/*
Gestion des FAQ: Montre une reponse
	@idCs:		Identifiant de la FAQ
	@width:		Largeur du DIV de reponse
	@height:	Hauteur du DIV de reposne
	@returns:	void
*/				
function showToolTip(idCs, width, height) {
	var idQuestion = 'a_' + idCs;
	var idReponse = 'tip_' + idCs;
	question = document.getElementById(idQuestion);
	reponse = document.getElementById(idReponse);
	
	if (reponse != null && question != null) {
	
		/* positionnement de la question */
		var top = question.offsetTop;
		var left = question.offsetLeft;
		
		/* positionnement de la reponse */
		reponse.style.width = width + 'px';
		reponse.style.height = height + 'px';
		reponse.style.left = (left+10) + 'px';
		reponse.style.top = (top+35) + 'px';
		reponse.style.visibility='visible';
	}
}

/*
Gestion des FAQ: Cache une reponse
	@idCs:		Identifiant de la FAQ
	@width:		Largeur du DIV de reponse
	@height:	Hauteur du DIV de reposne
	@returns:	void
*/			
function hideToolTip(idCs) {
	var idReponse = 'tip_' + idCs;
	reponse = document.getElementById(idReponse);
	if (reponse != null) {
		reponse.style.display='hidden';
	}
}

/*
Calendrier WS RESO: Navigue sur une date
	@dateChoisie:	Date sur laquelle naviguer
	@returns:	void
*/
function submitPage(dateChoisie){
	document.frm.dateChoisie.value=dateChoisie;
	document.frm.submit();
}

/*
Calendrier WS RESO: Change de mois
	@indicateur:	0 pour reculer, 1 pour avancer
	@returns:	void
*/
function changeMonth(indicateur){
	document.frm.changeMonth.value=indicateur;
	document.frm.submit();
}

