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_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_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_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function verifyCompatibleBrowser(){ 
    this.ver=navigator.appVersion ;
    this.dom=document.getElementById?1:0 ;
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
    this.ie4=(document.all && !this.dom)?1:0; 
    this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
 
    this.ns4=(document.layers && !this.dom)?1:0; 
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5) ;
    return this ;
} 
bw=new verifyCompatibleBrowser() ;
  
var speed=50 ;
 
var loop, timer ;
 
function ConstructObject(obj,nest){ 
    nest=(!nest) ? '':'document.'+nest+'.' ;
    this.el=bw.dom?document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?eval(nest+'document.'+obj):0; 
    this.css=bw.dom?document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?eval(nest+'document.'+obj):0; 
    this.scrollHeight=bw.ns4?this.css.document.height:this.el.offsetHeight ;
    this.clipHeight=bw.ns4?this.css.clip.height:this.el.offsetHeight ;
    this.up=MoveAreaUp;this.down=MoveAreaDown; 
    this.MoveArea=MoveArea; this.x; this.y; 
    this.obj = obj + "Object" ;
    eval(this.obj + "=this") ;
    return this ;
} 
function MoveArea(x,y){ 
    this.x=x;this.y=y ;
    this.css.left=this.x ;
    this.css.top=this.y ;
} 
 
function MoveAreaDown(move){ 
	if(this.y>-this.scrollHeight+objContainer.clipHeight){ 
    this.MoveArea(0,this.y-move) ;
    if(loop) setTimeout(this.obj+".down("+move+")",speed) ;
	} 
} 
function MoveAreaUp(move){ 
	if(this.y<0){ 
    this.MoveArea(0,this.y-move) ;
    if(loop) setTimeout(this.obj+".up("+move+")",speed); 
	} 
} 
 
function PerformScroll(speed){ 
	if(initialised){ 
		loop=true; 
		if(speed>0) objScroller.down(speed) ;
		else objScroller.up(speed) ;
	} 
} 
 
function CeaseScroll(){ 
    loop=false ;
    if(timer) clearTimeout(timer) ;
} 
var initialised; 
function InitialiseScrollableArea(){ 
    objContainer=new ConstructObject('divContainer') ;
    objScroller=new ConstructObject('divContent','divContainer'); 
    objScroller.MoveArea(0,0) ;
    objContainer.css.visibility='visible' ;
    initialised=true; 
} 

function mElement(elementName) {
	if (document.layers) {
	//we want 1 object (not nested)
		//simple layer reference
		if (mElement.arguments.length == 1) {
			var cEl = eval("document.layers['" + elementName + "']");
		
		//refer document in layer: document.layers[layername].document
				// use 'strange' spelling to minimise conflicts with existing objects
		} else if (mElement.arguments[1] == 'DoC') {
			var cEl = eval("document.layers['" + elementName + "'].document");
		//refer an image: document.images[imageName]
		} else if (mElement.arguments[1] == 'iMageZ') {
			var cEl = eval("document.images['" + elementName + "']");
		
		//nested objects
		} else if (mElement.arguments.length>1) {
			var cEl = "document.layers['" + mElement.arguments[1] + "']";//start the string
			for (var i=2;i<mElement.arguments.length;i++) {//leave the first argument, because that's the one you're after, the second because you used that one to start the string
				if ( (mElement.arguments[i] != 'DoC') && (mElement.arguments[i] != 'iMageZ') && (mElement.arguments[i] != 'ForMz') ) {
					//alert(mElement.arguments[i]);
					cEl = cEl + ".document.layers['" + mElement.arguments[i] + "']";//get the next layer
				}
			}
			if (mElement.arguments[mElement.arguments.length-1] == 'iMageZ')  {
				cEl = cEl + ".document.images['" + elementName + "']";//in case you need the images in the layer rather than the layer or doc
			} else if (mElement.arguments[mElement.arguments.length-1] == 'ForMz')  {
				cEl = cEl + ".document.forms['" + elementName + "']";//in case you need the form in the layer rather than the layer or doc
			} else {
				cEl = cEl + ".document.layers['" + mElement.arguments[0] + "']";//add first element (the one you're after)
				if (mElement.arguments[mElement.arguments.length-1] == 'DoC') {
				cEl = cEl + ".document";//in case you need the document in the layer rather than the layer itself
				}
			} 
			cEl = eval(cEl);//wrap up and make string into an object
		} else {
			var cEl = eval("document.layers['" + mElement.arguments[1] + "'].document." + elementName);
		}
	
	//old IE browsers:
	} else if (document.all) {
		var cEl = eval('document.all.' + elementName);
	
	//W3C standard:
	} else {
		var cEl = document.getElementById(elementName);
	}
	return cEl;
}

function writeDiv(divName,content) {

	if(document.layers) {
		mElement(divName,'DoC').open();
		mElement(divName,'DoC').write(content);
		mElement(divName,'DoC').close();
	} else {
		mElement(divName).innerHTML = content + '\n';
	}
}

function centerPopup(windowWidth, windowHeight)
	{
	if (parseInt(navigator.appVersion) >= 4) window.moveTo((screen.width/2)-(windowWidth/2+10),(screen.height/2)-(windowHeight/2+20));
	return;
	}

function chg_calque(calque, classCSS, content)
	{
	content = '<span class="' + classCSS + '">' + content + '</span>';
	writeDiv(calque, content);
	InitialiseScrollableArea();
	}

function chg_home_logement(lstA,chgA,lstB,chgB,lstC,chgC)
	{
	if (chgA)
		{
		lstB.selectedIndex = 0;
		lstC.selectedIndex = 0;
		return true;
		}
	if (chgB)
		{
		lstA.selectedIndex = 0;
		lstC.selectedIndex = 0;
		return true;
		}
	if (chgC)
		{
		lstA.selectedIndex = 0;
		lstB.selectedIndex = 0;
		return true;
		}
	return false;
	}
	
function zoomImage(id, width, height)
	{
	MM_openBrWindow('affichage_zoom.php?id='+id,'affichage','width='+width+',height='+height);
	return;
	}
	
function redimPopup(width, height)
	{
	if (window.screen)
		{
    	//window.moveTo(0,0);
    	window.resizeTo(width+10, height+36);
		history.back();
		}
	}

function affIllustration(calque,id)
	{
	MM_showHideLayers(calque,'','show');
	document.frm.id_illustration.value = id;
	return;
	}
	
function cacheIllustration(calque)
	{
	MM_showHideLayers(calque,'','hide');
	return;
	}
	
function zoomNews(id)
	{
	MM_openBrWindow('zoom_news.php?id='+id,'news','scrollbars=yes,width=470,height=390');
	return;
	}

var theMonth = 0;      // set to 0 to initialize as integer variables
var theDay = 0;
var theYear = 0;
var dateCode = 0;      // set this variable to accept the verifyDate() return value

// ***** verifyDate()     ******************************************
// This function's return values are as follows:
//       RETURN 0 - THE DATE IS VALID
//       RETURN 1 - THE MONTH IS NOT VALID
//       RETURN 2 - THE DAY IS NOT VALID
//       RETURN 3 - THE YEAR IS NOT VALID
//		 RETURN 4 - THE DATE IS UNREADABLE

function verifyDate(enteredDay, enteredMonth, enteredYear) {
   retVal = 0;

   theDay = eval(enteredDay);
   theMonth = eval(enteredMonth);
   theYear = eval(enteredYear);
   
   if(enteredMonth == null && enteredYear == null)
      retVal = seperateDateString(enteredDay);
   else if (isMonthOK() == 0)
      retVal = 1;
   else if (isDayOK() == 0)
      retVal = 2;
   else if (isYearOK() == 0)
      retVal = 3;

   return retVal;
}

function seperateDateString(dateString) {
   var retVal = 0;
   var slash1 = 0;     //character index of 1st slash
   var slash2 = 0;     //character index of 2nd slash
   var numSlashes = 0; //make sure there are two slashes

   for (slash1; slash1 < dateString.length && numSlashes == 0; slash1++) {
      if (dateString.charAt(slash1) == '/' || dateString.charAt(slash1) == '-') 
	     numSlashes++;
   }

   for (slash2 = slash1; slash2 < dateString.length && numSlashes == 1; slash2++) {
      if (dateString.charAt(slash2) == '/' || dateString.charAt(slash2) == '-')
	     numSlashes++;
   }

   if (numSlashes == 2) {
   
   	  if ((slash1-1)!=2)
	  	return 4;
   	  if ((slash2-1)!=5)
	  	return 4;
	  
	  theDay = eval(dateString.substring(0, slash1 - 1));
	  theMonth = eval(dateString.substring(slash1, slash2 - 1));
	  theYear = eval(dateString.substring(slash2, dateString.length));
	  
      retVal = verifyDate(theDay, theMonth, theYear);
   }
   else 
     retVal = 4;

   return retVal;
}


// ***** isMonthOK()     *******************************************
// This function checks theMonth variable set by verifyDate(). It
// returns 0 if the month is invalid, 1 if the month IS valid.
// This function should only be called by verifyDate()
function isMonthOK() {
   var retVal = 0;
   
   if(theMonth <= 12 && theMonth != 0) 
	  retVal = 1;
   else 
     retVal = 0;
   
   return retVal;
}

// ***** isDayOK()     *********************************************
// This function checks theDay variable set by verifyDate(). It
// returns 0 if the day is invalid, 1 if the day IS valid.
// theMonth variable is considered because there are different number
// of days in each month. Leap-year is also considered (divisible by 4).
// This function should only be called by verifyDate()
function isDayOK() {
   var retVal = 0;
   
   if(theMonth == 1 || theMonth == 3 || theMonth == 5 || theMonth == 7
       || theMonth == 8 || theMonth == 10 || theMonth == 12) {
	   if (theDay >= 1 && theDay <= 31) 
	      retVal = 1;
	   else 
         retVal = 0;
   }
   else if (theMonth == 2) {
      if (theDay >= 1 && theDay <=28) 
	     retVal = 1;
	  else if (theDay == 29 && (theYear % 4) == 0) 
	     retVal = 1;  // valid leap-year
      else if (theDay == 29 && (theYear % 4) != 0) 
		 retVal = 0;
	  else 
		 retVal = 0;
   }
   else {
      if (theDay >= 1 && theDay <= 30) 
	     retVal = 1;
	  else 
         retVal = 0;
   }
   return retVal;
}

// ***** isYearOK()     ****************************************************
// This function checks theYear variable set by verifyDate(). It
// returns 0 if the year is invalid, 1 if the year IS valid.
// This function should only be called by verifyDate()
function isYearOK() {
   var retVal = 0;
   
   /*if (theYear <= 50 && theYear >= 0)
      theYear += 2000;
   else if (theYear <= 99 && theYear >= 51)
      theYear += 1900;*/

   if (theYear >= 1900 && theYear <= 2050) 
      retVal = 1;
   else 
	  retVal = 0;

   return retVal;
}

function verif_email(elm)
	{
	if ((elm.indexOf("@") != "-1") && (elm.indexOf(".") != "-1") && (elm != ""))
	    return true;
	return false;
}

function verif_inscription()
	{
	var objForm = document.frm;
	
	if (objForm.nom_demandeur.value=='')
		{
		alert('Le champ "NOM DEMANDEUR" est obligatoire...');
		objForm.nom_demandeur.focus();
		return false;
		}
	if (objForm.prenom_demandeur.value=='')
		{
		alert('Le champ "PRENOM DEMANDEUR" est obligatoire...');
		objForm.prenom_demandeur.focus();
		return false;
		}
	if (objForm.datenaissance_demandeur.value=='')
		{
		alert('Le champ "DATE DE NAISSANCE DEMANDEUR" est obligatoire...');
		objForm.datenaissance_demandeur.focus();
		return false;
		}
	if ((objForm.datenaissance_demandeur.value!='') && (seperateDateString(objForm.datenaissance_demandeur.value)!=0))
		{
		alert('Le champ "DATE DE NAISSANCE DEMANDEUR" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datenaissance_demandeur.focus();
		return false;
		}
	if (objForm.nationalite_demandeur.value=='')
		{
		alert('Le champ "NATIONALITE DEMANDEUR" est obligatoire...');
		objForm.nationalite_demandeur.focus();
		return false;
		}
	if ((objForm.datenaissance_codemandeur.value!='') && (seperateDateString(objForm.datenaissance_codemandeur.value)!=0))
		{
		alert('Le champ "DATE DE NAISSANCE CO-DEMANDEUR" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datenaissance_codemandeur.focus();
		return false;
		}
	if (objForm.adresse_demandeur.value=='')
		{
		alert('Le champ "ADRESSE DEMANDEUR" est obligatoire...');
		objForm.adresse_demandeur.focus();
		return false;
		}
	if (objForm.telperso_demandeur.value=='')
		{
		alert('Le champ "TELEPHONE PERSONNEL DEMANDEUR" est obligatoire...');
		objForm.telperso_demandeur.focus();
		return false;
		}
	if (!verif_email(objForm.email_demandeur.value))
		{
		alert('Le champ "E-MAIL DEMANDEUR" est obligatoire ou n\'a pas un format valide...');
		objForm.email_demandeur.focus();
		return false;
		}
	if (objForm.nbpersonne_logement.value=='')
		{
		alert('Le champ "NOMBRE DE PERSONNES A LOGER" est obligatoire...');
		objForm.nb_personne_logement.focus();
		return false;
		}
	if (objForm.nbenfant_logement.value=='')
		{
		alert('Le champ "NOMBRE D\'ENFANTS OCCUPANT LE LOGEMENT" est obligatoire...');
		objForm.nbenfant_logement.focus();
		return false;
		}
	if ((objForm.datenaissance_enfant_1.value!='') && (seperateDateString(objForm.datenaissance_enfant_1.value)!=0))
		{
		alert('Le champ "DATE DE NAISSANCE 1er ENFANT" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datenaissance_enfant_1.focus();
		return false;
		}
	if ((objForm.datenaissance_enfant_2.value!='') && (seperateDateString(objForm.datenaissance_enfant_2.value)!=0))
		{
		alert('Le champ "DATE DE NAISSANCE 2ème ENFANT" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datenaissance_enfant_2.focus();
		return false;
		}
	if ((objForm.datenaissance_enfant_3.value!='') && (seperateDateString(objForm.datenaissance_enfant_3.value)!=0))
		{
		alert('Le champ "DATE DE NAISSANCE 3ème ENFANT" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datenaissance_enfant_3.focus();
		return false;
		}
	if ((objForm.datenaissance_enfant_4.value!='') && (seperateDateString(objForm.datenaissance_enfant_4.value)!=0))
		{
		alert('Le champ "DATE DE NAISSANCE 4ème ENFANT" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datenaissance_enfant_4.focus();
		return false;
		}
	if (objForm.commune_demande.value=='')
		{
		alert('Le champ "COMMUNE(S) SOUHAITEE(S)" est obligatoire...');
		objForm.commune_demande.focus();
		return false;
		}
	if ((objForm.datelocataire_hbvs.value!='') && (seperateDateString(objForm.datelocataire_hbvs.value)!=0))
		{
		alert('Le champ "DATE LOCATAIRE HBVS" n\'a pas un format valide [jj/mm/aaaa]...');
		objForm.datelocataire_hbvs.focus();
		return false;
		}
				
	return true;
	}
	
function inscription()
	{
	MM_openBrWindow('devloc_inscription.php','inscription','scrollbars=yes,menubar=yes,width=640,height=450');
	return;
	}
	
function zoom_realisation(id)
	{
	MM_openBrWindow('zoom_realisation.php?id='+id,'zoomReal','scrollbars=yes,width=335,height=250');
	return;
	}
	
function zoom_logement(id)
	{
	MM_openBrWindow('zoom_logement.php?id='+id,'zoomLog','scrollbars=yes,width=335,height=150');
	return;
	}
	
function popup_flash_charges()
	{
	MM_openBrWindow('popup_flash_charges.php','flashCharges','width=400,height=420');
	return;
	}
	
function liens_utiles()
	{
	MM_openBrWindow('liens_utiles.php','liens','scrollbars=yes,width=230,height=250');
	return;
	}
	
function mentions_legales()
	{
	MM_openBrWindow('mentions_legales.php','mentions','scrollbars=yes,width=470,height=390');
	return;
	}

