
/** VBE 02/2006 **/
var curElement = null;
var startPos = new Array(0,0);
var leftImage=7;
var topImage=81;
/* Fonction permettant d'ouvrir la fenetre de modification des rendus*/
function openSymbo(){
    MMM_openBrWindow('palette.php','popr','scrollbars=no,width=380,height=500,top=50,left=50');
	show_Formulaire();
}

/* supprimer FDE sinon impossible de faire du debug
function NoError()
{
	return true;
}
window.onerror=NoError;
*/

/** VBE 02/2006 PAN **/
function startPanXY(evt) {
	var e = null;
	var panX=0;
	var panY=0;
	// IE
	if(document.all)
	{
		e = window.event;
		panX = e.x;
		panY = e.y;
		curElement = e.srcElement;
	}
	// Mozilla
	else
	{
		e = evt;
		panX = e.clientX;
		panY = e.clientY;
		curElement = e.currentTarget;
	}
	
	// position div carte
	panX -= leftImage;
	panY -= topImage;
	
	startPos = new Array(panX, panY);
	return false;
}

function getPanXY(evt) {
	var e = null;
	var panX=0;
	var panY=0;
	// IE
	if(document.all)
	{
		e = window.event;
		panX = e.x;
		panY = e.y;
	}
	// Mozilla
	else
	{
		e = evt;
		panX = e.clientX;
		panY = e.clientY;
	}
	
	// position div carte
	panX -= leftImage;
	panY -= topImage;
	
	document.getElementById("panX").value = panX - startPos[0];
	document.getElementById("panY").value = panY - startPos[1];
	
	document.getElementById("form1").submit();
	
	return false;
}
/** FIN PAN **/

/** VBE 02/2006 ZOOM RECTANGLE **/
/*
* startDraw : initialise du "drag&drop"
**/
function startDraw(evt)
{ 
	var e = null;
	var newX=0;
	var newY=0;
	// IE
	if(document.all)
	{
		e = window.event;
		newX = e.x;
		newY = e.y;
		curElement = e.srcElement;
	}
	// Mozilla
	else
	{
		e = evt;
		newX = e.clientX;
		newY = e.clientY;
		curElement = e.currentTarget;
	}
	
	// position div carte
	newX -= leftImage;
	newY -= topImage;

	// placement du calque
	document.getElementById("mask").style.top = newY+"px";
	document.getElementById("mask").style.left = newX+"px";
	document.getElementById("mask").style.width = "0px";
	document.getElementById("mask").style.height = "0px";
	document.getElementById("mask").style.visibility = 'hidden';
	startPos = new Array(newX, newY);
	return false;
} 
/*
* runDraw : "drag&drop" (+/-?)
**/
function runDraw(evt)
{ 
	var e = null;
	var newX=0;
	var newY=0;
	// IE
	if(document.all)
	{
		e = window.event;
		newX = e.x;
		newY = e.y;
	}
	// Mozilla
	else
	{
		e = evt;
		newX = e.clientX;
		newY = e.clientY;
	}
	
	newX -= leftImage;
	newY -= topImage;
	
	var width = newX - startPos[0];
	var height = newY - startPos[1];
	
	if(newX < startPos[0]) {
		document.getElementById("mask").style.left = newX+"px";
		width = startPos[0] - newX;
	}
	else {
		document.getElementById("mask").style.left = startPos[0]+"px";
	}
	
	if(newY < startPos[1]) {
		document.getElementById("mask").style.top = newY+"px";
		height = startPos[1] - newY;
	}
	else {
		document.getElementById("mask").style.top = startPos[1]+"px";
	}
	
	// resize du calque
	if(curElement!=null)
	{ 
		document.getElementById("mask").style.width = width+"px";
		document.getElementById("mask").style.height = height+"px";
		document.getElementById("mask").style.visibility = 'visible';
	}
	
	return false;
} 
/*
* endDraw : fin du drag&drop
**/
function endDraw(evt)
{ 
	curElement = null;
	getZone( 'mainmap', 'mask');
	return false;
} 

/*
* getPosX : retourne la position horizontale de l'objet
**/
function GetRealOffsetLeft(inOBJ)
{
 var oObj = inOBJ;
 var iVal = 0;
 while (oObj && oObj.tagName != "BODY") {
  iVal += oObj.offsetLeft;
  oObj = oObj.offsetParent;
 }
 return iVal;
}


function GetRealOffsetTop(inOBJ)
{
 var oObj = inOBJ;
 var iVal = 0;
 while (oObj && oObj.tagName != "BODY") {
  iVal += oObj.offsetTop;
  oObj = oObj.offsetParent;
 }
 return iVal;
}

/*
* getZone : retourne les coordonnées relatives
* à l'image de la zone selectionnée
**/
function getZone( img, mask )
{
	var src = document.getElementById(img);
	var target = document.getElementById(mask);
	
	var hauteur = (document.getElementById(mask).offsetHeight);
	var largeur = (document.getElementById(mask).offsetWidth);
	var x1 = (GetRealOffsetLeft(target)-GetRealOffsetLeft(src));
	var x2 = (x1 + largeur); 
	var y1 = (GetRealOffsetTop(target)-GetRealOffsetTop(src));
	var y2 = (y1 + hauteur);
	//var str = "X1 = "+ x1;
	//str += "\nX2 = "+ x2;
	//str += "\nY1 = "+ y1;
	//str += "\nY2 = "+ y2;
	//str += "\n";
	//alert(str);
	
	document.getElementById("zoomRectULX").value = x1;
	document.getElementById("zoomRectULY").value = y1;
	document.getElementById("zoomRectLRX").value = x2;
	document.getElementById("zoomRectLRY").value = y2;
	document.getElementById("form1").submit();
}
/** FIN ZOOM RECTANGLE **/


function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
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 MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  if ((obj=MM_findObj(args[i]))!=null) { 
    v=args[i+2];
    if (obj.style) { 
	obj=obj.style; 
	v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_goToURL() { //v3.0 mod
  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 MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

function MMM_openBrWindow(theURL,winName,features) { 
/*alert(theURL);
alert(winName);
alert(features);*/

 	win = window.open(theURL,winName,features);
   	win.focus();
  	//top.document.frames[0].GI_openBrWindow(win);
}

function MM_openBrWindow(theURL,winName,features) { 
  var win;
  winName=winName.replace(/ /g,'');
  //features = features.replace(/resizable=yes/g,'resizable');
  win = window.open(theURL,winName,features);
   win.focus();
}


function show_Formulaire() { 
	MM_showHideLayers('formulaire','','show');
}
MM_reloadPage(true);

/* _____________________________________________________________________________________________
  |                                             I-DETECTION DU NAVIGATEUR                       |
  |_____________________________________________________________________________________________|
*/
var ie=document.all;
var ns6=document.getElementById&&!document.all;
/* _____________________________________________________________________________________________
  |                                             II-FONCTION DIVERSES                            |
  |_____________________________________________________________________________________________|
                    
*/
function openHelp(){
   MM_openBrWindow('aide_moteur_recherche.htm','fiche','location=yes,scrollbars=yes,width=465,height=448,top=50,left=360');
}
function find(){
	document.form1.submit();
}

function EffaceCookie(nom)
{
date=new Date;
date.setFullYear(date.getFullYear()-1);
EcrireCookie(nom,null,date);
}






/* _____________________________________________________________________________________________
  |                           III-GESTION DES LISTES DE RESULTATS                               |
  |_____________________________________________________________________________________________|

*/
var num_ini=0;
/*                    _____________________________________________________________________
                          |    II-2)FONCTION POUR FAIRE AVANCE LES VALEURS DE LA LISTE          |
                          |_____________________________________________________________________|
*/
function Avance(nb_liste,nb_resultat){
	
  //Première étape, on affiche le bouton précédent au premier appel de la fonction
  if(num_ini==0){
      if (ie) {
        objet = document.all["precedent"];
      } else if (ns6) {
        objet = document.getElementById("precedent");
      }
      objet.style.visibility="visible";
  }
 
  //Deuxième étape , on affiche la liste au num_ini suivant en masquant celle_affichée
  var nom_liste="resultat_"+num_ini;
  if (ie) {
     objet = document.all[nom_liste];
  } else if (ns6) {
     objet = document.getElementById(nom_liste);
  }
  objet.style.display="none";

  num_ini=num_ini+1;
  nom_liste="resultat_"+num_ini;
  if (ie) {
     objet = document.all[nom_liste];
  } else if (ns6) {
     objet = document.getElementById(nom_liste);
  }
  objet.style.display="";

  //Troisième étape, on remet à jour la valeur Affiché dans le champs Affiché de X à Y bourrin!!!
  if (ie) {
     objet = document.all["Num_ini"];
  } else if (ns6) {
     objet = document.getElementById("Num_ini");
  }
  
  objet.value=num_ini*50;
  objet.width=(objet.value.length)*6;
  objet.size=objet.value.length+1;
	
  if (ie) {
     objet = document.all["Num_fin"];
  } else if (ns6) {
     objet = document.getElementById("Num_fin");
  }
  objet.value=(num_ini+1)*50;
  objet.width=(objet.value.length)*6;
  objet.size=objet.value.length+1;	

  //Quatrième étape, on masque le bouton suivant lorsque l'on est à la dernière page soit num_ini=nb_liste-1
  if(num_ini==nb_liste-1){
      if (ie) {
        objet = document.all["suivant"];
      } else if (ns6) {
        objet = document.getElementById("suivant");
      }
      objet.style.visibility="hidden";

      //Il faut aussi afficher la bonne valeur dans les index de pages (Affiché X à nb_resultat)
      if (ie) {
        objet = document.all["Num_fin"];
      } else if (ns6) {
        objet = document.getElementById("Num_fin");
      }
      objet.value=nb_resultat;
  	  objet.width=(objet.value.length)*6;
  	  objet.size=objet.value.length+1;
  }
	
}
/*                         _____________________________________________________________________
                          |    II-2)FONCTION POUR FAIRE RECULER LES VALEURS DE LA LISTE         |
                          |_____________________________________________________________________|
*/
function Recule(nb_liste,nb_resultat){
  //Première étape, on masque le bouton si on est à num_ini=0;
  if(num_ini==1){
     if (ie) {
        objet = document.all["precedent"];
      } else if (ns6) {
        objet = document.getElementById("precedent");
      }
      objet.style.visibility="hidden";
  }
  /*Deuxième étape, le problème vient de ce que si on est allé en bout de course, alors on a
  masquer le bouton suivant et il ne s'affiche plus!!! On détecte ce cas et on réaffiche le bouton!*/
  if(num_ini==nb_liste-1){
     if (ie) {
        objet = document.all["suivant"];
      } else if (ns6) {
        objet = document.getElementById("suivant");
      }
      objet.style.visibility="visible";
  }

  //Troisème étape, on affiche la liste précédent et on masque la liste courante
  var nom_liste="resultat_"+num_ini;
  if (ie) {
     objet = document.all[nom_liste];
  } else if (ns6) {
     objet = document.getElementById(nom_liste);
  }
  objet.style.display="none";
  
  num_ini=num_ini-1;
  nom_liste="resultat_"+num_ini;
  if (ie) {
     objet = document.all[nom_liste];
  } else if (ns6) {
     objet = document.getElementById(nom_liste);
  }
  objet.style.display="";

  //Quatrième étape, on remet à jour la valeur Affiché dans le champs Affiché de X à Y!!!
  if (ie) {
     objet = document.all["Num_ini"];
  } else if (ns6) {
     objet = document.getElementById("Num_ini");
  }
  objet.value=num_ini*50;
  objet.width=(objet.value.length)*6;
  objet.size=objet.value.length+1;

  if (ie) {
     objet = document.all["Num_fin"];
  } else if (ns6) {
     objet = document.getElementById("Num_fin");
  }
  objet.value=(num_ini+1)*50;
  objet.width=(objet.value.length)*6;
  objet.size=objet.value.length+1;
}

/* FDE remplacement de la fonction explode pour separer le texte par rapport a un symbol */
function explodeSymb(symb,string){
var ordr = new Array();
var llast = string.lastIndexOf(symb);// Dernière occurence de symb dans string
ordr[0] = string.substring( 0 , llast );
ordr[1] = string.substring( llast , string.length );
return ordr;
}

/* FDE remplacement de la fonction explode a une position donnée*/
function explodePos(position,string){
var ordr2 = new Array();
ordr2[0] = string.substring( 0 , position );
ordr2[1] = string.substring( position , string.length );
return ordr2;
}


/* _____________________________________________________________________________________________
  |                           ENVOIE DU FORMULAIRE AVEC UN RESULTAT SELECTIONNE                 |
  |_____________________________________________________________________________________________|
*/

/*
function Submit(){
	var objet =new Array();
	var i,j;
	var nom_commune;

	//Récupération de la liste courante
	var nom_liste="resultat_"+num_ini;
  	if (ie) {
      objet = document.all[nom_liste];
  	} else if (ns6) {
     objet = document.getElementById(nom_liste);
  	}

	if(objet.selectedIndex!=-1){
		nom_commune=document.form2.elements[nom_liste].options[objet.selectedIndex].text;
		opener.document.form1.textfield.value=nom_commune;
		document.form2.textfield.value=nom_commune;
	

		//On va sélectionner le département dans lequel est le toponyme 
		//à partir de son numéro INSEE
		
		for(j=0; j<opener.document.form1.select.options.length; j++){
			if(opener.document.form1.select.options[j].selected==true){
				opener.document.form1.select.options[j].selected=false;
			}

			if(nom_commune.substring(nom_commune.indexOf('(')+1,nom_commune.indexOf('(')+3)==opener.document.form1.select.options[j].value){
				opener.document.form1.select.options[j].selected=true;
			}
		}
		

		MM_openBrWindow('fiche.php?select_resultat='+document.form2.elements[nom_liste].options[objet.selectedIndex].value,'popi3','scrollbars=yes,width=465,height=448,top=50,left=360');
	}
}*/


// **************************************************************
// * fonction utilisée pour ouvrir la fiche communale
// * Modifié suite à la refonte du site (FDE 25082006).
// *************************************************************
function Submit(){
	var objet =new Array();
	var i,j;
	var nom_commune;

	//Récupération de la liste courante
	var nom_liste="resultat_"+num_ini;
  	if (ie) {
      objet = document.all[nom_liste];
  	} else if (ns6) {
     objet = document.getElementById(nom_liste);
  	}

	if(objet.selectedIndex!=-1){
		nom_commune=document.form2.elements[nom_liste].options[objet.selectedIndex].text;
		opener.document.form1.textfield.value=nom_commune;
		document.form2.textfield.value=nom_commune;
      rand = Math.ceil(Math.random()*1000000);
		MM_openBrWindow('fiche.php?select_resultat='+document.form2.elements[nom_liste].options[objet.selectedIndex].value,'popi3'+rand,'resizable=yes, scrollbars=yes,width=465,height=560,location=yes,top=50,left=360');
	}
}


/* ancienne version
function Submit2(){
	var objet =new Array();
	var i,j;
	var nom_commune;

	//Récupération de la liste courante
	var nom_liste="resultat_"+num_ini;
  	if (ie) {
      objet = document.all[nom_liste];
  	} else if (ns6) {
     objet = document.getElementById(nom_liste);
  	}

	if(objet.selectedIndex!=-1){
		nom_commune=document.form2.elements[nom_liste].options[objet.selectedIndex].text;
		//si le nom de commune est trop long, affichage sur 2 lignes
		if(nom_commune.indexOf(")",0) == -1) {
			nom_commune = nom_commune+document.form2.elements[nom_liste].options[objet.selectedIndex+1].text;
		}
		opener.document.form1.textfield.value=nom_commune;
		document.form2.textfield.value=nom_commune;

		//On va sélectionner le département dans lequel est le toponyme 
		//à partir de son numéro INSEE
		
		for(j=0; j<opener.document.form1.select.options.length; j++){
			if(opener.document.form1.select.options[j].selected==true){
				opener.document.form1.select.options[j].selected=false;
			}

			if(nom_commune.substring(nom_commune.indexOf('(')+1,nom_commune.indexOf('(')+3)==opener.document.form1.select.options[j].value){
				opener.document.form1.select.options[j].selected=true;
				if (j < 10)
					opener.document.form1.select.value="0"+j;
				else
					if (j < 20)
						opener.document.form1.select.value=j;
					else
						if (j == 20)
							opener.document.form1.select.value="2A";
						else
							if (j == 21)
								opener.document.form1.select.value="2B";
							else
								if (j > 21)
									opener.document.form1.select.value=j-1;
			}
		}
	}
}
*/

function Submit2()
{
	var objet = new Array();
	var texte = new Array();
	
	var i,j;
	var nom_commune;

	//Récupération de la liste courante
	var nom_liste="resultat_"+num_ini;
  	if (ie) {
      		objet = document.all[nom_liste];
  	} else if (ns6) {
     			objet = document.getElementById(nom_liste);
  	}

//alert(nom_liste);

	if(objet.selectedIndex!=-1)
	{
		nom_commune=document.form2.elements[nom_liste].options[objet.selectedIndex].text;
		//alert(tabX[num_ini][0]);
		//alert(tabX[0][0]);

		//alert(tabX[num_ini][objet.selectedIndex]);
		//alert(tabY[num_ini][objet.selectedIndex]);

		//si le nom de commune est trop long, affichage sur 2 lignes ...
		//FDE : ... dans la liste d'origine de la fenetre qui est ouverte
		if(nom_commune.indexOf(")",0) == -1) {
			nom_commune = nom_commune+document.form2.elements[nom_liste].options[objet.selectedIndex+1].text;
		}

		// ** FDE affichage du resultat dans la liste de choix de la page principale
		//FDE : enregistrement de la selection dans un champ caché
		opener.document.form1.textfield.value=nom_commune;


		// FDE si le nom est trop grand pr tenir dans la case de l'interface principale, 
		// le reste est mis dans une deuxieme case
		/*if (nom_commune.length <=30)
		{
			texte= explodeSymb("(", nom_commune);
		}
		else
		{
			texte=explodePos(30, nom_commune);
		}*/
		
		//Separe la chaine du code postal texte[0]: chaine, texte[1]: CP
		texte= explodeSymb("(", nom_commune);
		
		if (texte[0].length > 30)
		{
			texteNom=explodePos(30, texte[0]);
			opener.document.form1.textfield_city1.value=texteNom[0];
			opener.document.form1.textfield_city2.value=texteNom[1];
  		opener.document.form1.textfield_city3.value=texte[1];
		}
		else
		{
		  opener.document.form1.textfield_city1.value=texte[0];
			opener.document.form1.textfield_city2.value=texte[1];

		}

		//Affichage des div de l'interface contenant les les deux cases et le boutons ok
		opener.document.getElementById("ok_2").style.visibility = 'visible';
		opener.document.getElementById("extra3").style.visibility = 'visible';
		

		//Remplissage des cases correpondante dans l'interface principale
		/*opener.document.form1.textfield_city1.value=texte[0];
		opener.document.form1.textfield_city2.value=texte[1];*/

		opener.document.form1.coordX.value=tabX[num_ini][objet.selectedIndex];
		opener.document.form1.coordY.value=tabY[num_ini][objet.selectedIndex];

		
		if ( tabX[num_ini][objet.selectedIndex] != "..." && tabY[num_ini][objet.selectedIndex] != "..." && tabX[num_ini][objet.selectedIndex]!="" && tabY[num_ini][objet.selectedIndex] != "" && tabX[num_ini][objet.selectedIndex] != "0.00000" && tabY[num_ini][objet.selectedIndex] != "0.00000" )
		{
			//Cadre autour du point zoomer
			TLX=parseFloat(tabX[num_ini][objet.selectedIndex],10)-8000;
			TLY=parseFloat(tabY[num_ini][objet.selectedIndex],10)+5000;
			BRX=parseFloat(tabX[num_ini][objet.selectedIndex],10)+2000;
			BRY=parseFloat(tabY[num_ini][objet.selectedIndex],10)-5000;

			//alert(TLX); alert(TLY); alert(BRX); alert(BRY);

			opener.document.ECWView1.SetExtents(TLX,TLY,BRX,BRY);
		}
		else
		{
			alert("La commune n'est pas localisable");	
		}

		//alert(tabX[objet.selectedIndex]);
		//alert(tabY[objet.selectedIndex]);
	}
}

/* _____________________________________________________________________________________________
  |                           Appele par le page de nav pour ouvrir le moteur                   |
  |_____________________________________________________________________________________________|
*/

function open_moteur(){
//    MMM_openBrWindow('moteur.php?dept='+document.form1.select.value,'popr','scrollbars=no,width=277,height=560,top=50,left=50');
//alert('aaa');
 MMM_openBrWindow('moteur.php','popr','scrollbars=no,location=yes,width=277,height=590,top=50,left=50');
	show_Formulaire();
}
/* fde 06072006*/ 
function open_requetePopulation(){
MMM_openBrWindow('requetePopulation.php','popr','scrollbars=no,location=yes,width=350,height=630,top=50,left=50');
show_Formulaire();
}
/* fde 06072006*/ 
function open_requeteAdministration(){
MMM_openBrWindow('requeteAdministration.php','popr','scrollbars=no,location=yes,width=420,height=630,top=50,left=50');
show_Formulaire();
}
//fermeture de popupsss

// global variable
var _arrChildWnd = new Array();

function GI_openBrWindow(win) 
{
  _arrChildWnd[_arrChildWnd.length]= win;
}


function ClosePopups()
{

var name = navigator.appName 


if (name != "Microsoft Internet Explorer")

alert("Fermez toutes les fenêtres manuellement")


  var win;
  for (var i in _arrChildWnd) {
    win = _arrChildWnd[i];
    if (win) {
      win.close();
    }
  }
}
