function setPointer(theRow, thePointerColor)
{
    if (typeof(theRow.style) == 'undefined' || typeof(theRow.cells) == 'undefined') {
        return false;
    }

    var row_cells_cnt           = theRow.cells.length;
    for (var c = 0; c < row_cells_cnt; c++) {
        theRow.cells[c].bgColor = thePointerColor;
    }

    return true;
} // end of the 'setPointer()' function


function MM_findObj(n, d) { //v4.01
    var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
    if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
    for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
    if(!x && d.getElementById) x=d.getElementById(n); return x;
}


	  
function submitEP (nform)	{
    if (nform.login_email.value=='' || nform.login_pass.value=='')	{
        alert ('Vous devez *obligatoirement* renseigner les deux champs');
		return false;
	} else
        return true;
}

function MM_goToURL() { //v3.0
    var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
    for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}


  function PrixMax(inForm,selected) {
        //alert(selected);
        var selectedArray = eval(selected + "_Max");

        while (selectedArray.length < inForm.prix_max.options.length) {
            inForm.prix_max.options[(inForm.prix_max.options.length - 1)] = null;
        }
        for (var i=0; i < selectedArray.length; i++) {
            eval("inForm.prix_max.options[i]=" + "new Option" + selectedArray[i]);
        }
        if (inForm.devise.options[0].value == '') {
            inForm.devise.options[0]= null;
            if ( navigator.appName == 'Netscape') {
                if (parseInt(navigator.appVersion) < 4) {
                window.history.go(0);
                }
                else {
                if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
                    window.history.go(0);
                }
                }
            }
        }
  }

  function PrixMin(inForm,selected) {
        //alert(selected);
        var selectedArray = eval(selected + "_Min");

        while (selectedArray.length < inForm.prix_min.options.length) {
            inForm.prix_min.options[(inForm.prix_min.options.length - 1)] = null;
        }
        for (var i=0; i < selectedArray.length; i++) {
            eval("inForm.prix_min.options[i]=" + "new Option" + selectedArray[i]);
        }
        if (inForm.devise.options[0].value == '') {
            inForm.devise.options[0]= null;
            if ( navigator.appName == 'Netscape') {
                if (parseInt(navigator.appVersion) < 4) {
                window.history.go(0);
                }
                else {
                if (navigator.platform == 'Win32' || navigator.platform == 'Win16') {
                    window.history.go(0);
                }
                }
            }
        }
  }



function rechercheSubmit(nf)    {
    //Mise en place de l'action du formulaire.
    nf.action = 'resultat/' + CorrespRegion2CodeRegion(nf.region.value) + '/' + nf.country.value + '/index.html';
    //alert(nf.region.value + "/" + nf.country.value +" /" + nf.action);

    nf.submit();
}

function changeAction (nf)    {
    //Mise en place de l'action du formulaire.
    nf.action = 'resultat/' + nf.region.value + '/' + nf.country.value + '/index.html';
    //alert(nf.region.value + "/" + nf.country.value +" /" + nf.action);
}

  function promoteurSubmit (nf)    {
        //Mise en place de l'action du formulaire.
        nf.action = 'promoteur/c';
        nf.action += nf.prom_codepostal2.value;
        nf.action += '/index.html';
        //alert(nf.action);

        nf.submit();
  }
      



      
        /* Sources JS pour le calcul des simulations. */
        
        function CalculMensualite(montant, duree, taux)
        {
            var n, ia, m, divi1, puissia, mtop, divi2, mdown;
            //alert(montant);
            //alert(duree);
            //alert(taux)
            
            p = /,/gi;
            montant = montant.replace(p, ".");
            duree = duree.replace(p, ".");
            taux = taux.replace(p, ".");
            
            montant = parseFloat(montant);
            duree = parseFloat(duree);
            taux = parseFloat(taux);
            
            if (isNaN(montant)) { alert('Veuillez entrer un nombre valide dans le champ Montant'); }
            else
            {
            if (isNaN(taux)) { alert('Veuillez entrer un nombre valide dans le champ Taux'); }
            else
            {
            
            
            n = duree * 12; //alert(n);
            ia = (taux / 100) + 1; //alert(ia);
            divi1 = 1/12; //alert(divi1);
            puissia = Math.pow(ia, divi1); //alert(puissia);
            mtop = montant * (puissia - 1); //alert(mtop); 
            divi2 = -n/12; //alert(divi2);
            mdown = 1 - (Math.pow(ia, divi2)); //alert(mdown);
            
            m = mtop / mdown; //alert(m);
            if (isNaN(m)) { alert('Veuillez verifier la validite des donn?es que vous avez entrés'); }
            else
            {
            
            
            //alert(m);
            document.calco_1.mensualite.value= Math.ceil(m); }
            }
            }
        }
        
        function CalculDuree(montant, mensualite, taux)
        {
            var n, ia, m, divi1, puissia, mtop, divi2, mdown, a, b;
            p = /,/gi;
            montant = montant.replace(p, ".");
            mensualite = mensualite.replace(p, ".");
            taux = taux.replace(p, ".");
            
            montant = parseFloat(montant);
            mensualite = parseFloat(mensualite);
            taux = parseFloat(taux);
            
            if (isNaN(montant)) { alert('Veuillez entrer un nombre valide dans le champ Montant'); }
            else
            {
            if (isNaN(taux)) { alert('Veuillez entrer un nombre valide dans le champ Taux'); }
            else
            {
            if (isNaN(mensualite)) { alert('Veuillez entrer un nombre valide dans le champ Mensualite'); }
            else
            {
            //alert(montant);
            //alert(duree);
            //alert(taux);
            
            
            ia = (taux / 100); 
            
            a = -((montant/mensualite) * ( Math.pow((1+ia), 1/12) - 1)) +1; //alert(a);
            b = (1+ia); 
            
            n = Math.log(a) / Math.log(b); 
            
            duree = -12*n; //alert(duree);
            annee = Math.floor(duree /12);
            mois = Math.ceil(((duree/12) - Math.floor(duree /12))*12);
            if (mois == 12)
            {
            annee = annee+1;
            mois = 0;
            }
            if (isNaN(duree)) { alert('Vos mensualites sont trop faibles pour permettre un calcul realiste.'); }
            else
            {
            
            document.calco2.annee.value= Math.ceil(annee);
            document.calco2.mois.value= Math.ceil(mois);
            }
            }
            }
            }
        
        }

        function CalculMontant(revenu, duree, taux)
        {
            var M, n, ia, K;
            
            p = /,/gi;
            revenu = revenu.replace(p, ".");
            duree = duree.replace(p, ".");
            taux = taux.replace(p, ".");
            
            revenu = parseFloat(revenu);
            duree = parseFloat(duree);
            taux = parseFloat(taux);
            
            if (isNaN(revenu)) { alert('Veuillez entrer un nombre valide dans le champ Revenu'); }
            else
            {
                if (isNaN(duree)) { alert('Veuillez entrer un nombre valide dans le champ Duree'); }
                else
                {
                    if (isNaN(taux)) { alert('Veuillez entrer un nombre valide dans le champ Taux'); }
                    else
                    {
                    //alert(montant);
                    //alert(duree);
                    //alert(taux);
                    M = revenu * 0.33; 
                    n = duree * 12;
                    ia = (taux / 100); 
                    
                    K = M * ( 1 - Math.pow((1+ia), -n/12))/(Math.pow((1+ia), 1/12) -1); 
                    
                    
                    
                    document.calco3.emprunt.value= Math.ceil(K);
                    document.calco3.mensualite.value= Math.ceil(M);
                    }
                }
            }
        
        }
        /* Fin des sources JS pour le calcul des simulations */

        

        
        
        
// FONCTION DE POSITIONNEMENT : !! Ne pas chercher  comprendre !!
        function WZDD() {
            this.n = navigator.userAgent.toLowerCase();
            this.db = (document.compatMode && document.compatMode.toLowerCase() != "backcompat")?
                document.documentElement
                : (document.body || null);
            this.op = !!(window.opera && document.getElementById);
            this.op6 = !!(this.op && !(this.db && this.db.innerHTML));
            if (this.op && !this.op6) document.onmousedown = new Function('e',
                'if (((e = e || window.event).target || e.srcElement).tagName == "IMAGE") return false;');
            this.ie = !!(this.n.indexOf("msie") >= 0 && document.all && this.db && !this.op);
            this.iemac = !!(this.ie && this.n.indexOf("mac") >= 0);
            this.ie4 = !!(this.ie && !document.getElementById);
            this.n4 = !!(document.layers && typeof document.classes != "undefined");
            this.n6 = !!(typeof window.getComputedStyle != "undefined" && typeof document.createRange != "undefined");
            this.w3c = !!(!this.op && !this.ie && !this.n6 && document.getElementById);
            this.ce = !!(document.captureEvents && document.releaseEvents);
            this.px = (this.n4 || this.op6)? '' : 'px';
            this.tiv = this.w3c? 40 : 10;
        }
        var dd = new WZDD();

        
        dd.getPageXY = function(d_o) {
            if (dd.n4 && d_o)  {
                dd.x = d_o.pageX || 0;
                dd.y = d_o.pageY || 0;
            } else {
                dd.x = dd.y = 0;
                while (d_o) {
                    dd.x += dd.Int(d_o.offsetLeft);
                    dd.y += dd.Int(d_o.offsetTop);
                    d_o = d_o.offsetParent || null;
                }
            }
        };
        
        dd.getCssXY = function(d_o) {
            if (d_o.div) {
                if (dd.n4) {
                    d_o.cssx = d_o.div.x;
                    d_o.cssy = d_o.div.y;
                }
                else if (dd.ie4) {
                    d_o.cssx = d_o.css.pixelLeft;
                    d_o.cssy = d_o.css.pixelTop;
                }
                else {
                    d_o.css.left = d_o.css.top = 0 + dd.px;
                    dd.getPageXY(d_o.div);
                    d_o.cssx = d_o.x - dd.x;
                    d_o.cssy = d_o.y - dd.y;
                    d_o.css.left = d_o.cssx + dd.px;
                    d_o.css.top = d_o.cssy + dd.px;
                }
            } else {
                d_o.cssx = 0;
                d_o.cssy = 0;
            }
        };
        dd.getScrollX = function() {
            return dd.Int(window.pageXOffset || (dd.db? dd.db.scrollLeft : 0));
        };
        
        dd.getScrollY = function() {
            return dd.Int(window.pageYOffset || (dd.db? dd.db.scrollTop : 0));
        };
        dd.Int = function(d_x, d_y) {
            return isNaN(d_y = parseInt(d_x))? 0 : d_y;
        };


     // FONCTIONS D'ABSTRACTION
     // COMPATIBILITE ENTRE NAVIGATEURS


    function addEvent(source, type, callback) {
        // fonction d'abstraction pour enregistrer un gestionnaire d'evenement
        // comprend le modele DOM standard, le modele prorietaire de MSIE, et l'ancien modele HTML
        // source : objet sur lequel ajouter le gestionnaire d'evenement
        // type : type d'evenement
        // callback : fonction qui traitera l'evenement
        if (source.addEventListener){ // code standard DOM
            source.addEventListener(type, callback, false);
            return true;
        } else if (source.attachEvent){ // code propritaire MSIE
            var r = source.attachEvent("on"+type, callback);
            return r;
        } else { // code navigateur sans support DOM-event
            eval('source.on' + type + '= callback') ;
        }
    }
        
    function getStandardEvent(e) {
        // fonction d'abstraction pour recuperer un objet standard pour l'evenement en cours
        // comprend le modele DOM standard et le modele proprietaire de MSIE
        // e : parametre recu lors de l'appel du gestionnaire d'evenement (objet d'evenement)
        // retour : objet d'evenement standard
        if (e == null && window.event) {
            // cas particulier de MSIE pour recuperer l'evenement en cours
            e = window.event ;
        }
        if (e.target == null && e.srcElement) {
            // cas particulier de MSIE pour recuperer la balise DOM cible
            e.target = e.srcElement ;
        }
        if (! e.preventDefault ){
            // cas particulier de MSIE pour empecher l'action par defaut du navigateur
            e.preventDefault = function () { this.returnValue = false ; } ;
        }
        return e ;
    }
    
    
    
    
    
    
    

    // FONCTIONS UTILITAIRES ET/OU GENERIQUES
    function hasClass(element, className) {
        // verifie si un element appartient ou pas a une classe determinee
        // retour : true si l'element appartient a la classe, false sinon
        return ((' '+element.className+' ').indexOf(' '+className+' ') != -1) ;
    }
    
    
    
    
    
    
     // FONCTIONS SPECIALISEES : affichage des liens d'aide sous forme de popup
 
   function openTradPopup(e) {
       // gestionnaire d'evenement actif lors d'un clic sur les liens
       // ouvre le lien dans une popup et pas dans une page normale
       // e : evenement de clic
   
        //e = getStandardEvent(e);
        var link =  e.target;
        
        if (verrou == false) {
            
            verrou = true;
            link.style.cursor = "default";
            
            var div    = document.createElement('div');
            div.className = "dialogue_lang";
            div.id = "dialogue_" + link.getAttribute('id');
            
            //x = dd.Int(e.pageX || e.clientX || 0);
            //y = dd.Int(e.pageY || e.clientY || 0);
            
            if (dd.ie) {
                x += dd.getScrollX() - (dd.ie && !dd.iemac)*1;
                y += dd.getScrollY() - (dd.ie && !dd.iemac)*1;
            }
        
        		
            div.style.left= (mX)+'px';
            div.style.top= (mY)+'px';
           

            var divMessage  = document.createElement('div');
            divMessage.id = "dialogue-message";
            //divMessage.appendChild(document.createTextNode(link.getAttribute('id')));
        
            var theTEXT = document.createElement('h1');
            theTEXT.appendChild(document.createTextNode(link.getAttribute('id')));
            
            var theA = document.createElement('a');
            theA.accessKey = "q";
            theA.onclick = function(e) {
                document.getElementsByTagName("body")[0].removeChild(div);
                verrou = false;
            };
            theA.href = "javascript:void(0)";
            theA.appendChild(document.createTextNode("Annuler"));
        
            theSpace = document.createTextNode(" - ");
        
            var theB = document.createElement('a');
            theB.accessKey = "t";
            theB.onclick = function(e) {
                window.open("./traduction/traduction.php?id="+link.getAttribute('id')+"&popup","","width=800,height=600");
                // ferme la popup de traduction
                var dialogue = window.document.getElementById('dialogue_' + link.getAttribute('id'));
                document.getElementsByTagName("body")[0].removeChild(dialogue);
                // libre le verrou
                verrou = false;
            };
            theB.href = "javascript:void(0)";
            theB.appendChild(document.createTextNode("Traduire"));
                    
            div.appendChild(divMessage);
            div.appendChild(theTEXT);
            div.appendChild(theA);
            div.appendChild(theSpace);
            div.appendChild(theB);
            
            
            document.getElementsByTagName("body")[0].appendChild(div);
        } 
       
        e.preventDefault()  ;
        
        return false ;
        
    }
    
    function startTimer (e) {
        mX = dd.Int(e.pageX || e.clientX || 0);
        mY = dd.Int(e.pageY || e.clientY || 0);
        //alert(mX+','+mY);
        event = getStandardEvent(e);
        var link =  e.target;
        link.style.cursor = "pointer";
        timer = setTimeout("openTradPopup(event)", 1000);
    }

    function stopTimer (e) {
        clearTimeout(timer);
    }
    
    function prepareTradLinks() {

      // explore le document pour rechercher les span class="lang"
      // pour chaque span, enregistre un gestionnaire d'evenement pour le onmouseover
       
        var link, list, i ;
        list = document.getElementsByTagName('span') ;
        
        for(i=0; i<list.length; i++) {
            link = list.item(i) ;
            if ( link.getAttribute('class')  &&  hasClass(link, 'lang') ) {
                    addEvent(link, 'mouseover', startTimer) ;
                    addEvent(link, 'mouseout', stopTimer) ;
            }
        }   
    }
        
    // differe l'exploration du document
    // pour que la recherche des liens ne commence
    // que quand la page est totalement chargee
    if (document.getElementById) {
           addEvent(window, 'load', prepareTradLinks) ;
    }
    
    
function loadZE(region,current) {

	var opt = {
		    method: 'post',
		    parameters: 'region=' + region + '&current=' + current, 
		    onSuccess: function(t) {
		    	$('select_country').innerHTML = t.responseText;
		    }
		}

	new Ajax.Request('lib/ajax/load_ze.ajax.php', opt);
	
	
}
   
   
    
function loadPromoteur(region,ze,current) {

	var opt = {
		    method: 'post',
		    parameters: 'code_ze=' + ze + '&region=' + region + '&current=' + current, 
		    onSuccess: function(t) {
		    	$('select_promoteur').innerHTML = t.responseText;
		    }
		}

	new Ajax.Request('lib/ajax/load_promoteur.ajax.php', opt);
	
	
}

function loadCalculette(calculette) {
	var opt = {
			method: 'post',
			parameters: 'calculette=' + calculette,
			onComplete: function(t) {
				$('frame_calculette').innerHTML = t.responseText;
			}
		}
	new Ajax.Request('lib/ajax/load_calculette.ajax.php', opt);
	
}
var idRegionCurrent;
var idRegionTime = 1;


function showInfoBulle(x,y,region) {
    if (idRegionTime!=1) {clearTimeout(idRegionTime);}
    posx = x;
    posy = y;
    idregion = region;
	idRegionTime = setTimeout('displayInfoBulle(posx,posy,idregion)', 200);
}
function displayInfoBulle(x,y,region) {
	if (idRegionCurrent != region) {
    	if (x<215) {
    		posx = parseInt(x) + 200 ;
    		cote='gauche';
    	} else {
    		cote = '';
    		posx = parseInt(x)-230 ;
    	}
    	posy = parseInt(y)+ 115; 
    	// posx and posy contain the mouse position relative to the document
    	// Do something with this information
    	$('bullebody').style.top = posy + 'px' ;
    	$('bullebody').style.left = posx + 'px' ;
    	$('bullebody').style.visibility = 'visible';
    	var opt = {
    		method: 'post',
    		parameters: 'region=' + region + '&cote=' + cote,
    		onComplete: function(t) {
    			$('bullebody').innerHTML= t.responseText;
    			if (x<215) {
    				$('position_bulle').style.display='none';
    				$('position_bulle2').style.display='block';
    			} else {
    				$('position_bulle2').style.display='none';
    				$('position_bulle').style.display='block';
    			}
    		}
    	}
    	new Ajax.Request('./info_bulle.inc.php', opt);
    	idRegionCurrent = region;
    }
}

function hideInfoBulle(region) {	
	$("bullebody").style.visibility='hidden';
	$('bullebody').innerHTML= '';
	if (idRegionTime!=1) {
	   clearTimeout(idRegionTime);
    }
}

$$('mapCarteFrance').each(
    function (e) {
       Event.observe(e, 'mouseover', console.log(e) );
        
    });
    
function NewWindow(mypage,myname,w,h,scroll,pos){
    if(pos=="random") {
        LeftPosition=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;
        TopPosition=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;
    }
    if(pos=="center") {
        LeftPosition=(screen.width)?(screen.width-w)/2:100;
        TopPosition=(screen.height)?(screen.height-h)/2:100;
    }
    else if((pos!="center" && pos!="random") || pos==null) {
        LeftPosition=0;TopPosition=20
    }
    settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=no,directories=no,status=no,menubar=no,toolbar=no,resizable=yes';
    win=window.open(mypage,myname,settings);
}