var loads 	= new Array();
var aide 	= new Array();
var onForm	= false;
var waitValidate = false;

window.onload=function(){
	for(var i=0;i<loads.length;i++)
		loads[i].call();		
}

function checkIframe(){
	var truc = "";
	if(top != self){
		try{
			YAHOO.util.Connect.asyncRequest('GET', 'checkIFrame.do?parentLocation='+document.referrer+'&frameLocation='+location.href, callbackIFrameCheck);	
		}
		catch(e){
			YAHOO.util.Connect.asyncRequest('GET', 'checkIFrame.do?parentLocation=DetectionImpossible&frameLocation='+location, callbackIFrameCheck);	
		}
	}
}
var iFrameCheckSuccess = function(o){	
	parent.location.replace("http://www.cofinoga.fr");
}
	
var iFrameCheckFailure = function(o){ 
	errorMessage('Un probleme est survenu lors de la connection au serveur.');
}
	
var callbackIFrameCheck =
{
	success:iFrameCheckSuccess,
	failure:iFrameCheckFailure
}


function unEscape(toEscape){
    var div = document.createElement('div');
    div.innerHTML = toEscape.replace(/<\/?[^>]+>/gi, '');
    return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
}

function getRow(elem){
	var row = elem;

	do{
		row =  row.parentNode;
	}while(row.parentNode != null && row.nodeName.toLowerCase() != "tr");
	
	if(row.nodeName.toLowerCase() == "tr")
		return row;
	else
		return false;
}

function trim(str){
	return $.trim(str);
}


function errorMessage(message){
	var errF 	= document.createElement("div");
	var cl1		= document.createElement("a");
	var cl2		= document.createElement("a");
	var tit		= document.createElement("h2");
	var p1		= document.createElement("p");
	var p2		= document.createElement("p");
	var ifr		= document.createElement("iframe");
	var im		= document.createElement("img");
	im.src 			= "images/close-error.gif";
	im.alt			= "Fermer";
	
	cl1.title		= "Fermer cette fen&ecirc;tre";
	tit.className	= "error";
	tit.innerHTML	= "Attention !";
	p1.innerHTML	= message;
	p2.className	= "close";
	cl2.innerHTML	= "Fermer cette fen&ecirc;tre";
	errF.id			= "error-form";
	ifr.id			= "error-formIframe";

	ifr.style.zIndex 	= "120";
	errF.style.zIndex 	= "150";
	ifr.style.position = "absolute";
	
	cl1.style.cursor = "pointer";
	cl2.style.cursor = "pointer";
	
	cl1.onclick = removeErrForm;
	cl2.onclick = removeErrForm;
	
	cl1.appendChild(im);
	p2.appendChild(cl2);
	errF.appendChild(cl1);
	errF.appendChild(tit);
	errF.appendChild(p1);
	errF.appendChild(p2);
		
	if(document.getElementById("error-form")){
		removeErrForm();
	}
	
	document.body.appendChild(ifr);
	document.body.appendChild(errF);
	ifr.style.height = (errF.offsetHeight-1)+"px";
	ifr.style.width = (errF.offsetWidth-1)+"px";
	centrer(errF);
	centrer(ifr);
}

function moveErrForm(){
	document.getElementById("error-form").style.top = "300px;";
	document.getElementById("error-formIframe").style.top = "300px;";
}


function removeErrForm(){
	document.body.removeChild(document.getElementById("error-form"));
	document.body.removeChild(document.getElementById("error-formIframe"));
}

function helpMessage(rubrique,bulle, espaceClient){
	var errF 	= document.createElement("div");
	var cl1		= document.createElement("a");
	var cl2		= document.createElement("a");
	var tit		= document.createElement("h2");
	var p1		= document.createElement("div");
	var p2		= document.createElement("p");
	// var ifr		= document.createElement("iframe");
//	var im		= document.createElement("img");
	
	cl1.title		= "Fermer cette fen&ecirc;tre";
	tit.className	= "error";
	tit.innerHTML	= "Aide";
	p1.innerHTML	= aide[rubrique];
	p2.className	= "close";
	cl2.innerHTML	= "Fermer cette fen&ecirc;tre";
	errF.id			= "error-form";
	// ifr.id			= "error-formIframe";

	// ifr.style.zIndex 	= "12";
	errF.style.zIndex 	= "15";
	// ifr.style.position = "absolute";
	p1.style.textAlign = "left";
	
	cl1.style.cursor = "pointer";
	cl2.style.cursor = "pointer";
	
	cl1.onclick = removeHelpForm;
	cl2.onclick = removeHelpForm;
	
//	cl1.appendChild(im);
	p2.appendChild(cl2);
	errF.appendChild(cl1);
	errF.appendChild(tit);
	errF.appendChild(p1);
	errF.appendChild(p2);
		
	if(document.getElementById("error-form")){
		removeHelpForm();
	}
	// document.body.appendChild(ifr);
	document.body.appendChild(errF);
	// ifr.style.height = (errF.offsetHeight-1)+"px";
	// ifr.style.width = (errF.offsetWidth-1)+"px";
	// spécificité de l'affichage pour l'aide sur l'espace client
	if(espaceClient) {
		var l = calculeOffsetLeft(bulle);
		var t = calculeOffsetTop(bulle);
		t -= 430;
		errF.style.left = l + "px";
		errF.style.top  = t +"px";	
	} else {
		nearMouse(errF,bulle);
	}
	// nearMouse(ifr,bulle);
	
}

function removeHelpForm(){
	document.body.removeChild(document.getElementById("error-form"));
	
	var iframe = document.getElementById("error-formIframe")
	if(iframe != null) document.body.removeChild(iframe);
}

function createElemWithName(elemType,name){
	if(document.all)
		return document.createElement("<"+elemType+" name='"+name+"'>");
	else{
		var elem = document.createElement(elemType);
		elem.setAttribute("name",name);
		return elem;
	}
}

function nearMouse(elem,orig){
	var l = calculeOffsetLeft(orig);
	var t = calculeOffsetTop(orig);
	l -= elem.offsetWidth;
	t += orig.offsetHeight;
	
	elem.style.left = l + "px";
	elem.style.top  = t +"px";
}

function centrer(elem){
	elem.style.position = "absolute";
	elem.style.zIndex = "900000";
	
	var scw,sch,sl,st;
	
	if (self.innerHeight) 
	{
		//MOZILLA
		scw = self.innerWidth;
		sch = self.innerHeight;
		sl = self.pageXOffset;
		st = self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		scw = document.documentElement.clientWidth;
		sch = document.documentElement.clientHeight;
		sl = document.documentElement.scrollLeft;
		st = document.documentElement.scrollTop;
	}
	else if (document.body) 
	{
		// IE
		scw = document.body.clientWidth;
		sch = document.body.clientHeight;
		sl = document.body.scrollLeft;
		st = document.body.scrollTop;
	}
	elem.style.left = (scw-elem.clientWidth)/2 + sl + "px";
	elem.style.top    = (sch-elem.clientHeight)/2 + st +"px";
}

function getScreenDims(){
	var scw,sch;
	
	if (self.innerHeight) 
	{
		scw = self.innerWidth;
		sch = self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		scw = document.documentElement.clientWidth;
		sch = document.documentElement.clientHeight;
	}
	else if (document.body) 
	{
		scw = document.body.clientWidth;
		sch = document.body.clientHeight;
	}
	return {width:scw,height:sch};
}

function checkQuitForm(){
	if(onForm)
		return confirm("Voulez-vous quitter la demande de credit ?");
	if(waitValidate){
		errorMessage("Pour recevoir votre contrat à domicile, merci de valider votre demande.\n"+
						"A bientôt sur cofinoga.fr");	
		return false;	
	}
	return true;
}

function effacer(){
	document.getElementById("dateNaissance").value="";
	document.getElementById("id2").value="N de compte";
}

function checkDateDispo(){
	var dateRef = new Date();
	if(dateRef.getMonth() == 0){		
		if(dateRef.getDate() > 22 && dateRef.getDate() < 28){
			var handleOK = function() {
		        this.hide();
				this.destroy();
			}
			var dlg = new YAHOO.widget.SimpleDialog("dlg", { visible:false, width: "20em", close: false, fixedcenter:true, modal:true, draggable:false });
			dlg.setHeader("Maintenance");
			dlg.setBody("Votre espace client est en cours de maintenance, vous pourrez le retrouver à partir du 25 Janvier 2007.<br />merci de votre compréhension.");
			dlg.cfg.queueProperty("icon",YAHOO.widget.SimpleDialog.ICON_WARN);
			dlg.cfg.queueProperty("buttons", [{ text:"OK", handler:handleOK, isDefault:true }]);
			dlg.render(document.body);
		    dlg.show();
			return false;
		}
	
	}
}
	/**
	
	0 : popup
	1 : message de maintenance
	2 : iFrame
	-1 : échoué
	*/
	
	//var modeEspaceClient = 0;
	//var secureForm;

	//var AjaxGetMaintenanceInfosSuccess = function(o){		
	//	var modeEC =  parseInt(o.responseText);
	//	modeEspaceClient = modeEC;
	//	doActionMaintenance();
   	//}
	
	/**
	*	M?thode qui sera d?clench?e si l'appel XmlHTTP 
	*	?choue.
	*	@param Object La reponse de XmlHTTP
	*/
	//var AjaxGetMaintenanceInfosFailure = function(o){ 
	//	modeEspaceClient = "1"; 	
	//	doActionMaintenance();
	//}
	
	/*function doActionMaintenance(){	
		var form = secureForm;
		if(modeEspaceClient == -1){
			checkDateClient();
		} else if(modeEspaceClient == 1){				
			form.action = "espace-client/maintenance.do";
			form.target = "_self";
			form.submit();
			return;
		} else if(modeEspaceClient == 2){
			form.action = "e-releve/accueil.do";
			form.target = "_self";
			form.submit();
			return;
		} else {
			var win = window.open('','compte','scrollbars=yes,toolbar=no,menubar=no,resizable=yes,top=200,left=400,width=550,height=500');
			form.submit();
			setTimeout("effacer()",300);
			return;
		}	
	}*/
	
	/**
	*	Objet pass? en param?tre lors de l'appel XmlHTTP.
	*/
	//var callbackAjaxGetMaintenanceInfos = {
	//	success:AjaxGetMaintenanceInfosSuccess,
	//	failure:AjaxGetMaintenanceInfosFailure
	//}


function clickValider(){
	if(checkQuitForm()){	
		if (document.getElementById("id1").value.length < 6 
			|| isNaN(document.getElementById("id1").value))
		{
			document.getElementById("id1").focus();
			document.getElementById("id1").select();
			alert("Saisir un entier");
			return false;
		}
		if (document.getElementById("id2").value.length < 11 
			|| isNaN(document.getElementById("id1").value))
		{
			document.getElementById("id2").focus();
			document.getElementById("id2").select();
			alert("Saisir un entier");
			return false;
		}
	
	
		if (document.getElementById("id1").value == "")
		{
			document.getElementById("id1").focus();
			document.getElementById("id1").select();
			alert("Il faut un prefixe de carte");
			return false;
		}
		if (document.getElementById("id2").value == "")
		{
			document.getElementById("id2").focus();
			document.getElementById("id2").select();
			alert("Il faut un numero de carte");
			return false;
		}
		//controle date de naissance
		if (document.getElementById("dateNaissance").value == "")
		{
			document.getElementById("dateNaissance").focus();
			document.getElementById("dateNaissance").select();
			alert("Il faut une date de naissance");
			return false;
		}
		var form = document.getElementById("secureForm");
		form.submit();
			
		return;
	} else {
		return false;	
	}
}

function getBaseHref() {
     var baseTag = document.getElementsByTagName("base");
      var baseId = baseTag[0].id;
      baseHref = baseTag[0].href;
      return baseHref;
}

var imgToChange;
var imgClick;
function chngImg(){
	changeImg('images/COF_lc_180X235.gif', 'affichage.do?forward=accueilCarteCof&menuActif=cartes&pageAjaxCarteCof=offrespartenaires&detailOffre=lacantiniere&titreOffre=OFFRE_LA_CANTINIERE');
	//initTimerBanniere();
	/*var zoneSV = document.getElementById('ZoneSV');
	zoneSV.style.display = 'block';
	var zone1001 = document.getElementById('Zone1001Dessous');
	zone1001.style.display = 'block';
	var zonePM = document.getElementById('ZonePM');
	zonePM.style.display = 'block';*/
}

function restoreImg(){
	var monimage = document.getElementById('visuel-contact');
	monimage.src = 'images/visuel-contact.gif';
	monimage.style.cursor="default";
	monimage.onclick = function(){};
}


function changeImg(nomImg, url){
	imgToChange = nomImg;
	
	imgClick = function(){ouvrirPopUp(url);}
	var monimage = document.getElementById('visuel-contact');
	monimage.src = imgToChange;
	monimage.style.cursor="pointer";
	if(nomImg.indexOf("bhv") != -1)
		monimage.onclick = imgClick;
	else
		monimage.onclick = function(){location.replace(url)};
}
var test=false;
function setFlashSmiles() {
	
	var browserName=navigator.appName;
	
	var monimage = document.getElementById('visuel-contact');
	monimage.style.display = 'none';
var objetFlash;

if (!test)
{
var objetFlash=document.createElement("object");

var paramMovie=document.createElement("param");

var paramQuality=document.createElement("param");

var paramAllowScriptAccess=document.createElement("param");

var paramEmbed=document.createElement("embed");


paramEmbed.setAttribute("src","images/180x235_smiles-cofinoga.swf");
paramEmbed.setAttribute("quality","high");
paramEmbed.setAttribute("width","180");
paramEmbed.setAttribute("height","235");
paramEmbed.setAttribute("name","flashSmiles");
paramEmbed.setAttribute("align","middle");
paramEmbed.setAttribute("allowScriptAccess","sameDomain");
paramEmbed.setAttribute("type","application/x-shockwave-flash");
paramEmbed.setAttribute("pluginspage","http://www.macromedia.com/go/getflashplayer");


paramMovie.setAttribute("name","movie");

paramMovie.setAttribute("value","images/180x235_smiles-cofinoga.swf");

paramQuality.setAttribute("name","quality");

paramQuality.setAttribute("value","high");

paramAllowScriptAccess.setAttribute("name","allowScriptAccess");

paramAllowScriptAccess.setAttribute("value","sameDomain");


objetFlash.appendChild(paramMovie);

objetFlash.appendChild(paramQuality);

objetFlash.appendChild(paramAllowScriptAccess);
if (browserName !="Microsoft Internet Explorer")
{
objetFlash.appendChild(paramEmbed);
}

document.getElementById("ZoneSmiles").appendChild(objetFlash);


objetFlash.setAttribute("id","flashSmiles");
objetFlash.setAttribute("type","application/x-shockwave-flash");

objetFlash.setAttribute("data","images/180x235_smiles-cofinoga.swf");
	
objetFlash.setAttribute("classid", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000");
objetFlash.setAttribute("width","180");
objetFlash.setAttribute("height","235");
objetFlash.setAttribute("id","flashSmiles");
objetFlash.setAttribute("align","middle");
test=true;
}	
	
	var zoneSmiles = document.getElementById('ZoneSmiles');
	zoneSmiles.style.display = 'block';
	
}




var flagTimerBanniere = null;
var intervalTimerBanniere;
function doTimerBanniere(){
	if(flagTimerBanniere){ // BHV
		changeImg('images/cofinoga_bhv_octobre.jpg', "http://www.bhv.fr");
	} else { // SonVidéo
		changeImg('images/animation-cofinoga.gif', "affichage.do?forward=accueilCarteCof&menuActif=cartes&pageAjaxCarteCof=offrespartenaires&detailOffre=son-video&titreOffre=OFFRE_SON_VIDEO");
	}
	flagTimerBanniere = !flagTimerBanniere;
}

function initTimerBanniere(){
	flagTimerBanniere = false;
	if(intervalTimerBanniere != null){
		clearInterval(intervalTimerBanniere);
	}
	intervalTimerBanniere = setInterval("doTimerBanniere()",4000);
}

aide["form1"] = "<b>Date de naissance&nbsp;:&nbsp;</b>En chiffres. Par exemple : 11/03/1965<br/><b>D&eacute;partement de naissance&nbsp;:&nbsp;</b>99 si vous &ecirc;tes n&eacute;s &agrave; l&rsquo;&eacute;tranger<br/><b>Justificatif d&rsquo;identit&eacute;</b>&nbsp;:&nbsp;Une photocopie de votre pi&egrave;ce d&rsquo;identit&eacute; vous sera demand&eacute;e lors de l&rsquo;enregistrement de votre dossier<br/><b>Date de d&eacute;livrance</b>&nbsp;:&nbsp;En chiffres. Par exemple : 11/03/1965<br/><b>Date de fin de validit&eacute;</b>&nbsp;:&nbsp;En chiffres. Par exemple : 11/03/1965";
aide["form2"] = "<b>Date de naissance&nbsp;:&nbsp;</b>En chiffres. Par exemple : 11/03/1965<br/><b>D&eacute;partement de naissance&nbsp;:&nbsp;</b>99 si vous &ecirc;tes n&eacute;s &agrave; l&rsquo;&eacute;tranger<br/>";
aide["form3"] = "<b>T&eacute;l&eacute;phone : </b>Sans espace. Par exemple : 0123456789<br/><b>Adresse du co-emprunteur : </b>A remplir seulement si elle est diff&eacute;rente de la v&ocirc;tre<br/>";
aide["form4_block1"] = "<b>Autres revenus : </b>Ex. : APL, rentes, pension ...<br/>";
aide["form4_block2"] = "<b>Autres : </b>Ex. : pension, ...<br/>";
aide["form5"] = "Pour consulter votre dossier, vous devez choisir un identifiant et un mot de passe.";
aide["espaceClient"] = "<div class='presentation'><ul><li><b>En cas d'&eacute;chec, merci de v&eacute;rifier :</b></li><li>Que vous saisissez la date de naissance du titulaire du compte</li><li>Que cette date de naissance correspond au format JJMMAAAA (ex : 29 ao&ucirc;t 1964 doit &ecirc;tre saisi 29081964)</li><li>Que votre num&eacute;ro de compte comporte bien 17 chiffres en comptant les 6 premiers (306005xxxxxxxxxxx)</li><li>Si vos difficult&eacute;s persistent, merci d'en informer le <a href='contact/ContactQuestion.do?sujet=1&espaceClient=oui'>webmaster</a></li></ul></div>";
aide["espaceClientNL"] = "<div class='presentation'><ul><li style='list-style-image: none;'><b>En cas d'&eacute;chec, merci de v&eacute;rifier :</b></li><li style='list-style-image: none;'>Que vous saisissez la date de naissance du titulaire du compte</li><li style='list-style-image: none;'>Que cette date de naissance correspond au format JJMMAAAA (ex : 29 ao&ucirc;t 1964 doit &ecirc;tre saisi 29081964)</li><li style='list-style-image: none;'>Que votre num&eacute;ro de compte comporte bien 17 chiffres en comptant les 6 premiers (306005xxxxxxxxxxx)</li><li style='list-style-image: none;'>Si vos difficult&eacute;s persistent, merci d'en informer le <a href='contact/ContactQuestion.do?sujet=1&espaceClient=oui'>webmaster</a></li></ul></div>";
aide["espaceClientSecurite"] = "<div class='presentation'><p><b>La s&eacute;curit&eacute;</b></p><p><b>Qu'est-ce que SSL (Secure Socket Layer) ?</b></p><p> SECURE SOCKET Layer (SSL) est un protocole d'authentification et de cryptage des donn&eacute;es. Cette technologie a &eacute;t&eacute; d&eacute;velopp&eacute;e par NETSCAPE, et est aujourd'hui adopt&eacute;e par tous les revendeurs de mat&eacute;riels informatiques et logiciels WEB (en particulier, tous les serveurs WEB courants, et tous les navigateurs courants du march&eacute;, comme Microsoft Internet Explorer et NETSCAPE NAVIGATOR).<br /><br />COFINOGA utilise ce protocole qui permet les fonctions essentielles d'authentification, de chiffrement et d'int&eacute;grit&eacute; des donn&eacute;es, afin de s&eacute;curiser les transactions. </p></div>";
aide["espaceClientAide"] = "<div class='presentation'><p><b>Pour vous connecter, vous devez:</b></p><p>1- Etre muni de votre n° de compte composé de 17 chiffres en comptant les 6 premiers déjà renseignés (306005 xxxxxxxxxxx)<br />2- Saisir sur le clavier numérique qui s'affiche :<br/> <ul><li>votre date de naissance sous la forme JJMMAAAA (exemple 01011950) pour votre 1ère connexion</li></ul><p class=\"ou\">OU</p><ul><li>votre code secret choisi (6 caractères) pour les connexions  suivantes</li></ul><p>3- Si vous avez reçu un code secret temporaire, vous devrez choisir vos nouveaux codes d'accès (code secret et couple question/réponse secrète)<br/>4- Si vous avez oublié votre code secret, cliquez <a href=\"AuthRenforcee/perte-de-votre-code-secret.do\">ici</a><br/>5- Si vous rencontrez des difficultés, contactez votre webmaster en cliquant <a href='contact/ContactQuestion.do?sujet=1&espaceClient=oui'>ici</a>.</p></div>";	 	
	 	
aide["carteForm1"] = "<b>Date de naissance&nbsp;:&nbsp;</b>En chiffres. Par exemple : 11/03/1965<br/><b>Nom et Prenom&nbsp;:&nbsp;</b><br />Ni accent ni apostrophe";	 	
aide["carteForm1-bis"] = "<b>T&eacute;l&eacute;phone : </b>Sans espace. Par exemple : 0123456789<br/>";	 
aide["carteForm2"] = "<b>Autres revenus : </b>Ex. : APL, rentes, pension ...<br/><b>Salaire: </b>Ex.: 1300 (sans virgule, sans espace, sans &euro;)<br/>";
aide["carteForm2-bis"] = "<b>Autres : </b>Ex. : pension, ...<br/><b>Loyer: </b>Ex.: 300 (sans virgule, sans espace, sans &euro;)<br/>";		 				

/*function ouvrirPopUpBHV() {
window.open("http://www.bhv.fr", "PointsCiel", "width=800, height=700, left=0, top=0, resizable=1, scrollbars=1");
return;
}*/	

function ouvrirPopUp(url) {
window.open(url, "PointsCiel", "width=800, height=700, left=0, top=0, resizable=1, scrollbars=1");
return;
}
	
	 	
function goTop(){
	document.documentElement.scrollTop = 0;
}	

function goToAnchor(dest){
	var t = calculeOffsetTop(document.getElementById(dest));
	document.documentElement.scrollTop = t;
}
	 	
function changeXiti(newTitle){
	var ximgs = document.getElementById('xiti').getElementsByTagName("img");
	for(var i = 0; i< ximgs.length; i = i+1){
		ximgs[i].src = ximgs[i].src.replace(new RegExp(/p=[\S]*[^&]/),'p='+newTitle);
	}
	
	pageTracker._trackPageview(newTitle); 
}	

function loadXitiTag(contenu){
	var index = contenu.lastIndexOf("|TITRE_XITI_FIXED");
	if( index != -1){
		var temp = contenu.substring(0,index);
		var indexFirst = temp.lastIndexOf("|");
		changeXiti(temp.substring(indexFirst+1, temp.length));
		return temp.substring(0,indexFirst);
	}
	return contenu;	
}

function formatTel(tel){
  var telF = "";
  for(var i=0;i<tel.length;i++){
  	telF += tel.charAt(i);
  	if((i+1)%2==0)
  		telF+=".";
  }
  return telF;
	
}

/**
	*	M?thode permettant de calculer l'offsetTop global d'un objet
	*	(le sien plus celui de tous ses parents).
	*	@param Element L'?l?ment pour lequel on veut faire le calcul
	* 	@return int	L'offsetTop
	*/
	function calculeOffsetTop(r){
	  return calculeOffset(r,"offsetTop")
	}
	
	/**
	*	M?thode permettant de calculer l'offsetLeft global d'un objet
	*	(le sien plus celui de tous ses parents).
	*	@param Element L'?l?ment pour lequel on veut faire le calcul
	*	@return int	L'offsetLeft
	*/
	function calculeOffsetLeft(r){
	  return calculeOffset(r,"offsetLeft")
	}
	
	/**
	*	M?thode permettant de calculer l'offsetTop ou l'offsetLeft global d'un objet
	*	(le sien plus celui de tous ses parents).
	*	@param Element L'?l?ment pour lequel on veut faire le calcul
	*	@param String Ce qu'on veut calculer (offsetTop ou offsetLeft)
	*	@return int Le r?sultat
	*/
	function calculeOffset(element,attr){
	  var offset=0;
	  while(element){
	    offset+=element[attr];
	    element=element.offsetParent
	  }
	  return offset
	} 
	
	function numberFormat(nombre,decimals){
		var tempm = String(nombre.toFixed(decimals));
		tempm = tempm.replace(".",",");
		tempm += '';
		x = tempm.split(',');
		x1 = x[0];
		x2 = x.length > 1 ? ',' + x[1] : '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(x1)) {
			x1 = x1.replace(rgx, '$1' + ' ' + '$2');
		}
		return x1 + x2;
	}
	
	/**
	* Gestion Communes / Départements
	*/
	
	
	var commDeptSuccess = function(o){	
		document.getElementById(o.argument.destId).innerHTML =  o.responseText;
		if(o.argument.todo){
			o.argument.todo();
		}
		if(o.argument.onChange){
			document.getElementById(o.argument.listeId).onchange = o.argument.onChange;
		}
		else{
			document.getElementById(o.argument.listeId).hiddenCP = o.argument.hiddenCP;
			document.getElementById(o.argument.listeId).hiddenName = o.argument.hiddenName;
			document.getElementById(o.argument.listeId).onchange = function(){
				setCommune(this,this.hiddenCP,this.hiddenName);
			}
		}
   	}
   	
	var commDeptFailure = function(o){ 
		errorMessage('Impossible de récupérer les communes du département');
	}
	
	var callbackCommDept = function()
	{
		this.success = commDeptSuccess;
		this.failure = commDeptFailure;
		this.argument = "";
	}
	
	var commDeptFromHiddensSuccess = function(o){	
		document.getElementById(o.argument.destId).innerHTML =  o.responseText;
		selectComm(o.argument.villeSel,o.argument.cpHid,o.argument.villeHid);
		document.getElementById(o.argument.villeSel).hiddenCP = o.argument.cpHid;
		document.getElementById(o.argument.villeSel).hiddenName = o.argument.villeHid;
		document.getElementById(o.argument.villeSel).onchange = function(){
				setCommune(this,this.hiddenCP,this.hiddenName);
		}
   	}
   	
	var commDeptFromHiddensFailure = function(o){ 
		errorMessage('Impossible de récupérer les communes du département');
	}
	
	var callbackCommDeptFromHiddens = function()
	{
		this.success = commDeptFromHiddensSuccess;
		this.failure = commDeptFromHiddensFailure;
		this.argument = "";
	}
	
	/**
	* Méthode qui fournit un select avec les villes d'un département
	* @param dept Le select des département (l'objet, pas l'id)
	* @param hiddenCP L'id du champ caché ou on mettra le code postal
	* @param hiddenName L'id du champ caché ou on mettra la ville
	* @param destId L'id de l'élément contenant le select des villes
	* @param listeId L'id que la liste des villes aura
	* @param callbackFunc - Optionnel - L'objet de callback, par défaut callbackCommDept
	* @param changeAction - Optionnel - Une fonction a mettre sur le onchange de la liste des communes, par défaut, met à jour ville et cp masqués
	*/
	function commDept(dept,hiddenCP,hiddenName,destId,listeId,callbackFunc,changeAction){
		var deptId = dept.options[dept.selectedIndex].value;
		if(callbackFunc == null){
			callbackFunc = new callbackCommDept();
			callbackFunc.argument = {destId:destId, listeId:listeId, hiddenCP:hiddenCP, hiddenName:hiddenName};
		}
		if(changeAction != null){
			callbackFunc.argument.onChange = changeAction;
		}
					
		if(deptId != "-1"){
			if(deptId != "99"){
				//document.getElementById(hiddenName).type = "hidden";
				var nInp = createElemWithName("input",document.getElementById(hiddenName).name);
				nInp.type = "hidden";
				nInp.value = document.getElementById(hiddenName).value;
				document.getElementById(hiddenName).parentNode.replaceChild(nInp,document.getElementById(hiddenName));
				nInp.id = hiddenName;
				document.getElementById(listeId).style.display = "";
				validator.changeRuleField(hiddenName,listeId);
				destination = addJsessionIdToURL('utils/departementCommune.do?method=getCommunesOfDepartement&idDept='+deptId+'&listeId='+listeId);
				YAHOO.util.Connect.asyncRequest('POST', destination, callbackFunc);
			}
			else{
				document.getElementById(listeId).style.display = "none";
				var nInp = createElemWithName("input",document.getElementById(hiddenName).name);
				nInp.type = "text";
				nInp.value = document.getElementById(hiddenName).value;
				document.getElementById(hiddenName).parentNode.replaceChild(nInp,document.getElementById(hiddenName));
				nInp.id = hiddenName;
				document.getElementById(hiddenCP).value = "99";
				//validator.changeRuleField(listeId,hiddenName);
				validator.removeRules(listeId);
				validator.addRules(hiddenName,"required regexp=^[a-zA-Z ]*$§","Ville de Naissance");
			}
		} else {
			commDeptReplaceListe(destId,listeId);
			if(document.getElementById(hiddenName).type == "text"){
				document.getElementById(hiddenName).value ="";
				var nInp = createElemWithName("input",document.getElementById(hiddenName).name);
				nInp.type = "hidden";
				nInp.value = document.getElementById(hiddenName).value;
				document.getElementById(hiddenName).value = "";
				document.getElementById(hiddenName).parentNode.replaceChild(nInp,document.getElementById(hiddenName));
				nInp.id = hiddenName;
				document.getElementById(listeId).style.display = "";
				validator.changeRuleField(hiddenName,listeId);
			}
		}
	}
	
	function commDeptReplaceListe(destId,listeId, hiddenName){
		var sel = document.createElement("select");
		sel.id = listeId;
		sel.options[0] = new Option("Choisir un département pour remplir","-1");
		var dest = document.getElementById(destId);
		dest.replaceChild(sel,document.getElementById(listeId));
	}
	
	/**
	* Affecte aux champs cachés les valeurs correspondantes
	* @param sel Le select des département (l'objet, pas l'id)
	* @param hiddenCP L'id du champ caché ou on mettra le code postal
	* @param hiddenName L'id du champ caché ou on mettra la ville
	*/
	function setCommune(sel,hiddenCP,hiddenName){
		if(sel.selectedIndex != 0){
			var val = sel.options[sel.selectedIndex].value;
			var vals = val.split("|");
			document.getElementById(hiddenCP).value = vals[0];	
			//alert(vals[0] +" "+vals[1]);  //TODO à enlever
			document.getElementById(hiddenName).value = vals[1];
		}
	}
	
	/**
	* Affecte au select des ville la bonne option en fonction des champs cachés
	* @param selId L'id du select des département 
	* @param hiddenCP L'id du champ caché ou est le code postal
	* @param hiddenName L'id du champ caché ou est la ville
	* @param destId L'id de l'élément contenant le select des villes
	* @param listeId L'id que la liste des villes aura
	*/
	function setCommuneFromHiddens(selId,hiddenCP,hiddenName,destId,listeId){
		var sel = document.getElementById(selId);
		var cp = document.getElementById(hiddenCP);
		var vil = document.getElementById(hiddenName);
		
		if(trim(cp.value) != "" && trim(vil.value) != ""){
				
			var commDeptInfos = {
				villeSel: listeId,
				villeHid: hiddenName,
				cpHid: hiddenCP,
				destId: destId
			};
			
			var callb = new callbackCommDeptFromHiddens();
			callb.argument = commDeptInfos;
			
			var dept = cp.value.substring(0,2);
			var find = false;
			var cmpt = 0;
			do{
				if(dept == sel.options[cmpt].value){
					sel.options[cmpt].selected = true;
					find = true;
				}
				cmpt++;
			}while(cmpt<sel.options.length && !find);
			commDept(sel,hiddenCP,hiddenName,destId,listeId,callb);
		}
	}
	
	function selectComm(villeSel,cpHid,villeHid){
		
		var sel = document.getElementById(villeSel);
		var cp = document.getElementById(cpHid);
		var vil = document.getElementById(villeHid);
		
		
		var goodVal = cp.value+"|"+vil.value;
		
		var find = false;
		var cmpt = 0;
		do{
			if(goodVal == sel.options[cmpt].value){
				sel.options[cmpt].selected = true;
				find = true;
			}
			cmpt++;
		}while(cmpt<sel.options.length && !find);
	}
	

// Fonction qui encode les url pour passer outre les moteurs de recherche
// Fournie dans l'état par le client
baseURL="http://www.cofinoga.fr";t2="docu";t3="ion=";t4="ment.locat"
function navcof() {
	
	if (checkQuitForm()) {
		var monurl = t2 + t4 + t3 + "'" + baseURL+ "/";
	
	    for (i=0; i < arguments.length; i++) {
	
	    	monurl += arguments[i];
	 	}
	
	    monurl += "'";
	
	    eval(monurl);
	}
}

// Change dynamiquement la couleur de texte d'un id en fonction du passage du pointeur
// on = true ==> onMouseOver, false ==> onMouseOut
function changeStyleOverOut(id, on){
	
	if (document.getElementById) {
		
		var nodeObj = document.getElementById(id)
	   	
	   	if (on) {
	   		nodeObj.style.color = '#C3006F';
	   	}
	   	else {
	   		nodeObj.style.color = '#FFFFFF';
	   	}
   	}
}

// Fonction utilisée pour afficher/masquer le bloc des liens supplementaires
// Dynamo
function _HS(obj)
{
	var o=document.getElementById(obj);
	if(o.style.display=="block"){
		o.style.display="none" ;
	} else {
		o.style.display="block";
	}
	$("#"+obj+" a").each(function(){
		$(this).attr("href", $("base").attr('href')+$(this).attr("href"));
	});
}