
/*########################### COOKIES RELATED ###########################*/

function showCookieNotExist() {
	ProGoodsPopup = window.open ('<%= response.encodeUrl (request.getContextPath () + "/mySearchNoCookie_"+language+".jsp") %>', '<bean:message key="legal_coordo"/>', 'resizable=yes,scrollbars=yes,status=yes,width=600,height=650');
	ProGoodsPopup.focus();
}

//BIM box that appears on the home page when there is no BMP cookie
function ShowBIMPopup(language) {
    var Freq = 3;
    var ShowOrNot = Math.floor(Freq * Math.random()+1);
    if (ShowOrNot == 1)
    {
      visited=getCookie('BIMvisited');
      if (visited==null)
      {
        setCookie('BIMvisited','yes',45);
        document.write('<'+'script language="JavaScript" src="http://bimonline.insites.be/' + language + '/start.asp?siteid=595&TagID=1"></SCR'+'IPT>');
      }
    }
}

function getCookie(NameOfCookie){
    if (document.cookie.length > 0) {              
    begin = document.cookie.indexOf(NameOfCookie+"=");       
    if (begin != -1) {           
      begin += NameOfCookie.length+1;       
      end = document.cookie.indexOf(";", begin);
      if (end == -1) end = document.cookie.length;
        return unescape(document.cookie.substring(begin, end));
    } 
  }
  return null;
}

function setCookie(NameOfCookie, value, expiredays) {
	var ExpireDate = new Date ();
	ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));

	  document.cookie = NameOfCookie + "=" + escape(value) + 
	  ((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString());
	}
/*########################### REDAC CONTENT TAG SYSTEM ###########################*/
function choiceRedac(idDiv) {
	hiddenAll();
	if(document.getElementById(idDiv) != undefined){
		document.getElementById(idDiv).style.display='';
		document.getElementById('tab_' + idDiv).className = 'ongletActif2';
	}
}
function hiddenAll() {
	for ( var int = 0; int < 4; int++) {
		if (document.getElementById('redac_' + int) != undefined){
			document.getElementById('redac_' + int).style.display='none';
			document.getElementById('tab_redac_' + int).className = 'onglet';
		}
	}
}

/*########################### SEARCH FORMS COMMON FUNCTIONS ###########################*/

//Shows the waiting page
function hiddenSearch() {
document.getElementById('searchFormCell1').style.display='none';
document.getElementById('waitCell2').style.display='block';
}

function activeRadioLink(radioObj) {
  parent.location = '/vlan-immo/search_form.do?init=1&type='+radioObj.value;
}

function activeTabLink(radioObj) {
  parent.location = '/vlan-immo/search_form.do?init=1&type='+radioObj;
}

function show(leCalk , im ) {
  if ( navigator.userAgent.indexOf('MSIE')!=-1 ){
    document.getElementById(leCalk).style.display="block";
    document.getElementById(im).style.display="none";
  } else {
    document.getElementById(leCalk).style.display="table-row";
    document.getElementById(im).style.display="none";
  }
}

function onClickSelectOne(id) {
  document.getElementById(id).className = 'formboxGreyPostCodeFirstClic';
  document.getElementById(id).value = '';
}

function onClickSelect(id) {
  document.getElementById(id).className = 'formboxGreyPostCodeSelectClic';
  document.getElementById(id).value = '';
}

function onKeySelectOne(id) {
	if (document.getElementById(id) != undefined){
		if (document.getElementById(id).value == '' ) {
			document.getElementById('butt1').disabled=false ;
		}
		else
			document.getElementById('butt1').disabled=true ;
		}
}

//Displays the priceMin and priceMax when the form is loaded
function passPrice (price,id){
  document.getElementById(id).value = price;
}

/*########################### NEW PROJECT FUNCTIONS ###########################*/
function checkAndSetProject(){
  var newHouse = document.getElementById('newHouse');
  var newFlat  = document.getElementById('newFlat');
  var newAll   = document.getElementById('newAll');
  var House = document.getElementById('House');
  var Flat  = document.getElementById('Flat');
  var All   = document.getElementById('All');
   
  if ((newHouse != null && newHouse != undefined && newHouse.selected) 
		  || (newFlat != null && newFlat != undefined && newFlat.selected) 
		  || (newAll != null && newAll != undefined &&  newAll.selected)){
    document.getElementById('project').value = 'true';
  }else{
    if ((House != null && House != undefined && House.selected) 
		  || (Flat != null && Flat != undefined && Flat.selected) 
		  || (All != null && All != undefined &&  All.selected)){
      document.getElementById('project').value = 'false';
    }else{
      document.getElementById('project').value = '';
    }
  }
}

function projectSelect(){
  var project  = document.getElementById('project');
  if (project != undefined && project.value == 'true'){
    if (document.getElementById('goodType').value == '010'){
    	if (document.getElementById('newHouse') != null && document.getElementById('newHouse') != undefined){
   		  document.getElementById('newHouse').selected = true;
     	}
    } else {
      if (document.getElementById('goodType').value == '020'){
    	  if (document.getElementById('newFlat') != null && document.getElementById('newFlat') != undefined){
    		  document.getElementById('newFlat').selected = true;
      		}
      }
    }
  } else{
    if (document.getElementById('goodType').value == '010'){
    	if (document.getElementById('House') != null && document.getElementById('House') != undefined){
    		document.getElementById('House').selected = true;
    	}
    } else {
      if (document.getElementById('goodType').value == '020'){
    	 if (document.getElementById('Flat') != null && document.getElementById('Flat') != undefined){
    		  document.getElementById('Flat').selected = true;
      	}
      }
    }
  }
}

/*########################### GOOD PROPERTIES DISPLAY FILTERING ###########################*/
//Filter the display of number of rooms
function filterEquipment(actionName){
	var property = document.getElementById('goodType');
	var transType = document.getElementById('styleTypeTransaction');
	var furnishedZone = document.getElementById('furnishedZone');
	var furnished = document.getElementsByName('furnished');
	var intDesc_meuble = false;
	if (document.forms[actionName] != undefined)
		 intDesc_meuble = document.forms[actionName].intDesc_meuble;
	
    if (property != undefined && transType != undefined){
    	//For flats and student rooms furnished field should appear for renting
    	if ((transType.value == '1') && (property.value == '020' || property.value == '200')){
    		furnishedZone.style.display ='';
    	}else{
    		if (intDesc_meuble != undefined)
    			intDesc_meuble.value='false';
    		if (furnished != undefined)
    			intDesc_meuble.value='';
    		furnishedZone.style.display='none';
    	}
    }
}

//Filter the display of number of rooms
function filterRooms(){
	var property = document.getElementById('goodType');
	var numberOfRooms = document.getElementById('intDesc_nombreDeChambres');
	var nbRoomsZone = document.getElementById('nbRoomsZone');
	
	if (property != undefined){
		//For 030-Piece of Land, 040-Company\Offices\Industy, 050-Business, 070-Garage, 200-Studentflat and 220-Other types, no value for "numberOfBedrooms" 
    	if (property.value == '030' || property.value == '040' || property.value == '050' || property.value == '070' || property.value == '200'){
    		 numberOfRooms.options[0].selected = true;
    		 nbRoomsZone.style.display='none';
    	}else{
    		nbRoomsZone.style.display='';
    	}
    }
}

//Helps to filter wrong properties
function filterDisplayedProperties(actionName){
	filterRooms();
	filterEquipment(actionName);
}

function setFurnished(actionName) {
    box = document.forms[actionName].furnished;
    if (box.checked==false) {
      document.forms[actionName].intDesc_meuble.value='false';
    } else {
      document.forms[actionName].intDesc_meuble.value='true';
    }
}

//Remove the province name when the page is loaded (but uses Bruxelles for FR/EN/DE anw antwerpen voor NL)
function handleBlanco(actionName){
	var realProvinceId = document.forms[actionName].realProvinceId;
	var idPays = document.forms[actionName].idPays;
	var provinceField = document.getElementById('selectProvince');
	
 	if (realProvinceId.value == "-1" && "0" == idPays.value){
    	provinceField.value="-1";
  	}
}

//Handle all the changes to do when the good type is changed
function handleGoodTypeChange(langForJava, actionName){
	//Handle newprojects fields to display ('new house', 'new flat') or not
	checkAndSetProject();
	
	//Call the iframe that handles the WIKs asynchonously 
	go_Update(langForJava,document.getElementById('selectProvince'));
	
	//Prevent multiple call to the region script on mouse wheel move by giving the focus to another element
   	document.getElementById('butt1').focus();
   	
   	filterDisplayedProperties(actionName);
}   

/*########################### CITIES AUTO COMPLETER SCRIPT ###########################*/
function city_script(searchCity, index){
  var indexi = index + 1;
  var cpIndex = 'cp' + indexi;
  var autoCityIndex = 'autocity' + indexi;
  var cp = document.getElementById(cpIndex);
  var autocity = document.getElementById(autoCityIndex);
  var butt1 = document.getElementById('butt1');
  
      if ( navigator.userAgent.indexOf('MSIE')!=-1 ){
      	cp.style.display="block";
      } else {
      	cp.style.display="table-row";
      }
      
      if(autocity.value != ""){
        for(i=indexi ; (document.getElementById('autocity'+i) != null && document.getElementById('autocity'+i).value != "") ; i++){
        	var autocityIndexi = 'autocity'+i;
		 	var cpIndexi =  'cp'+i;
		 	var cpi = document.getElementById(cpIndexi);
		 	var autocityi = document.getElementById(autocityIndexi);
		 	
		 
          if (navigator.userAgent.indexOf('MSIE')!=-1){
              cpi.style.display="block";
          } else {
              cpi.style.display="table-row";
          }
          
          if(autocityi.value == ""){
	          autocityi.value ='' ;
	          butt1.disabled=false ;
          }else{
              autocityi.value = autocityi.value ;
              butt1.disabled=false ;
          }
        }
      }else{
        cp.value = '' ;
        butt1.disabled=false ;
      }
}

function getCityName(index, searchCity, langForJava){
	new Gama.Form.AutoSelect("autocity"+index,"autocity_choices" + (index == 0 ? "" : index),"currentPostcode"+index, searchCity,
		{
		    frequency: 0.001 ,
		    minChars: 2 ,
		    afterUpdateElement :
		    function(selected){
	       		if (index == 0){           
	           		currentCP0 = document.getElementById('currentPostcode0').value;
	           		if (document.getElementById('cityId'+currentCP0) != undefined){
	           			go_Update(langForJava,document.getElementById('cityId'+currentCP0));
	           		}
				}
	            
	            if(index < 6){
	            	city_script(searchCity, index);
	            } else {
	            	document.getElementById('butt1').disabled=false;
	            }
	        }
     	}
     );
}

/*########################### EMAIL ALERTS FUNCTION ###########################*/

function disableRadioGroup(radioName,form, value) {
	formObject = form.elements[radioName];
	for (i=0; i < formObject.length; i++ ) {
		formObject[i].disabled=value;
	}
}


/*########################### SEARCH PROCEDURES ###########################*/
/* Please put all the procedures here so that we can control them ! */

//What's done when you click on the 'search' button
function performOnFormSubmission(){
	hiddenSearch();
	checkAndSetProject();
}

//What's done when the search box is loaded
function performOnPageLoaded(actionName){
	//Handle the blanco
	handleBlanco(actionName);
	
	//Check if it is a project or not
  	projectSelect();
  	
  	//Block bad properties
  	filterDisplayedProperties(actionName);
}

//What's done when we select a province in the search box
function performOnProvinceSelection(language, target){
	go_Update(language, target);
	document.getElementById('butt1').focus();
}




/*########################### GOOGLE MAP FUNCTIONS ###########################*/
function initialize(help1, help2, imagePath, doc) {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(doc);
    map.setCenter(new GLatLng(50.408517, 4.449462), 7);

    var otherOpts = {
      buttonStartingStyle: {background: '#FFF', paddingTop: '2px', paddingLeft: '2px',paddingRight:'2px',paddingBottom:'2px', border:'1px solid black'},
      buttonHTML: '<img title="' + help1 + '" src="' + imagePath + '/newdesign/bouton_zoom.jpg">',
      buttonStyle: {width:'60px', height:'20px'},
      buttonZoomingHTML: '' + help2,
      buttonZoomingStyle: {background:'yellow',width:'75px', height:'100%'},
      backButtonHTML: '<img title="Zoom Back Out" src="' + imagePath + '/newdesign/bouton_zoom.jpg">',
      backButtonStyle: {display:'none',marginTop:'5px',width:'25px', height:'23px'},
      backButtonEnabled: false,
      overlayRemoveTime: 1500}

    map.addControl(new DragZoomControl({}, otherOpts, {}), new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,15)));
    map.addControl(new GLargeMapControl());
    document.getElementById('VisibiliteDeLaCarte').value = map.getBounds();

    GEvent.addListener(map, 'move', function() {
      var bounds = map.getBounds();
      var southWest = bounds.getSouthWest();
      var northEast = bounds.getNorthEast();
      document.getElementById('VisibiliteDeLaCarte').value = map.getBounds();
      document.getElementById('Ne').value = northEast;
      document.getElementById('Sw').value = southWest;
    })
  }else{
    alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps');
  }
}

/*########################### PIERRE & VACANCES FUNCTIONS ###########################*/
function importXML(xmlSrc){
	// Creation de l'objet XML FF / IE / Alert si non compatible
	if (document.implementation && document.implementation.createDocument){
		xmlDoc = document.implementation.createDocument("", "", null);
		xmlDoc.onload = function(){ innerXML(); }
	} else if (window.ActiveXObject){
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.onreadystatechange = function () {
			if (xmlDoc.readyState == 4){ innerXML(); }
		}
	} else {
		alert('Votre navigateur est trop vieux pour éxécuter ce script, désolé.');
		return;
	}
	xmlDoc.load(xmlSrc);
}

// Que faire l'importation ???!!!
function innerXML(){
	
	var isOpenList = false;
	var alternate = ' class="bg_gc"';
	htmlRender = '';
	
	// Cible sur la racine du XML, getTag car firstChild sous IE
	var xmlRoot = xmlDoc.getElementsByTagName('carto')[0];
	for(i=0; i<xmlRoot.childNodes.length; i++){
		// Parse les espaces qui sont des noeud text pour FF... :/
		if(xmlRoot.childNodes[i].nodeType == 1){
			
			var idPays = xmlRoot.childNodes[i].getAttribute('codePaysIso');
			
			for(var j=0; j<xmlRoot.childNodes[i].childNodes.length; j++){
				// Parse les espaces qui sont des noeud text pour FF... :/
				if(xmlRoot.childNodes[i].childNodes[j].nodeType == 1){
					// Pays
					if(xmlRoot.childNodes[i].childNodes[j].nodeName == 'nomPays'){
						
						isOpenList = true;
						var nomPays = xmlRoot.childNodes[i].childNodes[j].firstChild.nodeValue;
						
						htmlRender += '<h4 id="titre'+idPays+'" class="off pointer" onclick="afficherDiv(\''+idPays+'\');changeCarte(\'carto\',$A([\'carteDefaut\',\''+idPays+'\']));">'+nomPays+'</h4>\n';
						htmlRender += '\t<div id="'+idPays+'" class="invisible">\n';
						htmlRender += '\t\t<ul>\n';
						
					}
					// Regions
					if(xmlRoot.childNodes[i].childNodes[j].nodeName == 'regionsGeo'){
						for(var k=0; k<xmlRoot.childNodes[i].childNodes[j].childNodes.length; k++){
											
							// Parse les espaces qui sont des noeud text pour FF... :/
							if(xmlRoot.childNodes[i].childNodes[j].childNodes[k].nodeType == 1){
								// Regions details
								if(xmlRoot.childNodes[i].childNodes[j].childNodes[k].nodeName == 'regionGeo'){
									
									var idRegion = xmlRoot.childNodes[i].childNodes[j].childNodes[k].getAttribute('idRegion');
									var urlRegion = xmlRoot.childNodes[i].childNodes[j].childNodes[k].getAttribute('urlRegion');
									
								}
								// Region name
								for(var l=0; l<xmlRoot.childNodes[i].childNodes[j].childNodes[k].childNodes.length; l++){
									// Parse les espaces qui sont des noeud text pour FF... :/
									if(xmlRoot.childNodes[i].childNodes[j].childNodes[k].childNodes[l].nodeType == 1){
										// Regions name détails
										if(xmlRoot.childNodes[i].childNodes[j].childNodes[k].childNodes[l].nodeName == 'nomRegion'){
											
											alternate = (alternate == ' class="bg_gc"')? '' : ' class="bg_gc"';
											var nomRegion = xmlRoot.childNodes[i].childNodes[j].childNodes[k].childNodes[l].firstChild.nodeValue;
											
											htmlRender += '\t\t\t<li'+alternate+'><a href="'+urlRegion+'" target="_blank" title="'+nomRegion+'" onmouseover="changeCarte(\'carto\',$A([\'carteDefaut\',\''+idPays+'\',\'idRegionDefaut\',\''+idRegion+'\']));" onmouseout="changeCarte(\'carto\',$A([\'carteDefaut\',\''+idPays+'\',\'idRegionDefaut\',\'\']));">'+nomRegion+'</a></li>\n';
											
										}
									}
								}
							}
						}
					}
				}
			}
			
		}
		
		htmlRender += '\t\t</ul>\n';
		htmlRender += '\t</div>\n';
		
	}
	
	$('moteurGeoList').innerHTML = htmlRender;
}

//To display the box
function showPVbox(lang){
	var languageDo =lang;
	var languageUp = languageDo.toUpperCase();
	var flashPath = "/vlan-immo/image/"+ languageUp + "/pierreVacances/cartographie.swf?carte=fr&amp;url_xml=/vlan-immo/image/" + languageUp + "/pierreVacances/holidays_" + languageDo + ".xml";
	
	var fo = new FlashObject( flashPath ,'carto','219','190','7','#FFF');
	fo.addParam("wmode", "transparent");
	fo.addParam("allowScriptAccess","always");
	fo.addParam("quality", "high");
	fo.addParam("swLiveConnect", true);
	fo.write("carte");
}


//Check the enter
function isEnterPressed(e){

	if(e){
		e = e
	} else {
		e = window.event
	}

	if(e.which){
		var keycode = e.which
	} else {
		var keycode = e.keyCode
	}

	if(keycode == 13) {
		return true;
	}
	
	return false;
}