/*
 *	Javascript Mode unobstructive	
 *
 *
 */
jQuery(document).ready(function(){
    offset = new Array();
    var hauteurMin = 0;
    function toFloat(elt,d) {
        if (!(jQuery.browser.msie && jQuery.browser.version.substr(0,1)<7)) {
            
            offset[elt]= jQuery(elt).offset().top;
            jQuery(window).scroll(function() {
                jQuery(elt).stop();
                var topToWindow = (jQuery(window).scrollTop()>offset[elt])?jQuery(window).scrollTop()-offset[elt]:0;
                if (topToWindow>hauteurMin) {
                    jQuery(elt).animate({
                        marginTop:topToWindow-hauteurMin
                        },{
                        duration:d,
                        queue:false
                    });
                } else {
                    jQuery(elt).animate({
                        marginTop:0
                    },{
                        duration:d,
                        queue:false
                    });
                }
            });
        }
    }
    toFloat('#conteneurZoneCarte',500);
});
function fLoad(){ 
    afficheOffre(); //agrandissement de la zone de consultation
	//var pointer  = [Event.pointerX(event), Event.pointerY(event)];
	//infoBulle(pointer, 'test');
	
	// Chargement du listing des dernières offres
	var derOffres = listingDerniereOffres(20);	
			
	// CLICK SUR "Toutes les offres"
	
	Event.observe('btToutesOffres', 'click', function(e) {
		Event.stop(e);	
		//Spinner
		$('zoneOffres').addClassName('spinner');
		
		var params = "toutes_offres=1";
		
		var params = $H({
			'toutes_offres': 1
		}).toQueryString();	
		
		new Ajax.Updater('zoneOffres', '/include/xhr3.php', {
			method: "get",
			parameters	: params,
			evalScripts : true,
			onComplete: function() {
				$('zoneOffres').removeClassName('spinner');
				var even = evenementDetails();
			}
		});
	});
	

	var google = googleMaps('48.340114','-4.720137',13); //centré sur plougonvelin
	// Chargement sur la carte des différents offres	
	var pointsCarte = chargeSurCarte();
	
	// Gestion du la saisie
	Event.observe('form_recherche', 'submit', traitementForm.bindAsEventListener($('form_recherche')));
	Event.observe('commune', 'change', traitementForm.bindAsEventListener($('form_recherche')));
	
	//Pour le traitement des curseurs on chpe valeur mini/maxi et on divise en étape
	miniMaxi('vente');
					
	// CHANGE sur la liste des sélections
	Event.observe('choixAcces', 'change', function() {
																								 
		var page = $F('choixAcces');																						 
																								 
		appelPage(page)	;
	});
	
	// SUBMIT sur champ question
	Event.observe('question', 'click', function() { 
		$('question').clear();
	});
	Event.observe('formQuestion', 'submit', function(e) {
		Event.stop(e);																							 
		$('formQuestion').request({
			onSuccess: function(transport) {
				evalScripts(transport.responseText);
			}
		});
	});

	// Observe sur mentions légales
	Event.observe('mentions', 'click', function(e) {
		Event.stop(e);																							 
		appelPage('agence/mentions-legales.php')	;
	});

    // Observe sur biens vendus
	Event.observe('bienvendus', 'click', function(e) {
		Event.stop(e);											
        
        $('zoneOffres').addClassName('spinner');
		
		var params = "toutes_offres=1";
		
		var params = $H({
			'toutes_offres': 1
		}).toQueryString();	
		
		new Ajax.Updater('zoneOffres', '/include/xhr_vendu.php', {
			method: "get",
			parameters	: params,
			evalScripts : true,
			onComplete: function() {
				$('zoneOffres').removeClassName('spinner');
				var even = evenementDetails();
			}
		});
	});		

	// Observateur sur ofre semaine
	Event.observe('offreSemaine', 'click', function() {
		traitement($('idOffre').innerHTML); 
        $('dpeConsoEnergetique').removeAttribute('style');

	});

	// On masque les infos génante sur la carte google
	var amasquer = ($('zoneCarte').down('div')).next();
	if(amasquer) amasquer.hide();
	var logoGoogle = $('zoneCarte').down('span.gmnoprint');
	if(logoGoogle) logoGoogle.hide();
	
	var echelle = $('zoneCarte').down('.gmnoprint', 3);
	if(echelle) echelle.hide();
	
	//new Effect.Opacity(logoGoogle, {duration:0.5, from:1.0, to:0.3});
	
	
	
	// Gestion du mode d'affichage des offres	
	/*
        Event.observe('afficheOffre', 'click', function() {
            afficheOffre();
        });
	*/
	
	// Type pour form recherche
	$$('#tableType .typeTransaction').each(function(el) {								
		Event.observe(el, 'click', function() {
			
			var params = $H({
				'type_transaction': $F(el)
			}).toQueryString();	
			
			new Ajax.Request('/include/xhr_type.php', {
					parameters : params,
					onSuccess: function(transport) {						
					 $('afficheType').replace(transport.responseText);
					}
			});

			miniMaxi($F(el));
		});	
	})
}

function miniMaxi(type_transaction) {
	
	$('zoneSlider').replace('<div id="zoneSlider"><div id="sliderPrix" style="border-bottom: 1px solid white; position: relative; z-index: 0;"><span id="libellePrix">Prix : </span><div class="" id="curseurPrix_1"  style="position: absolute; z-index: 2; left: 33px;"><span id="dePrix"></span></div><div class="selected" id="curseurPrix_2" style="position: absolute; z-index: 2; left: 229px;"><span id="aPrix"></span></div><!--<div id="milieuPrix" style="position: absolute; height: 23px; z-index: 1; left: 33px; width: 141px;"> </div>--></div><div id="sliderSurface" style="border-bottom: 1px solid white; position: relative; z-index: 0;"><span id="libelleSurface">Surface : </span><div class="" id="curseurSurface_1" style="position: absolute; z-index: 2; left: 33px;"><span id="deSurface"></span></div><div class="selected" id="curseurSurface_2" style="position: absolute; z-index: 2; left: 229px;"><span id="aSurface"></span></div><!--<div id="milieuSurface" style="position: absolute; height: 23px; z-index: 1; left: 33px; width: 141px;"> </div>--></div><input type="hidden" id="prixMini" name="prixMini" value="" /><input type="hidden" id="prixMaxi" name="prixMaxi" value="" /><input type="hidden" id="surfaceMini" name="surfaceMini" value="" /><input type="hidden" id="surfaceMaxi" name="surfaceMaxi" value="" /></div>');

	var params = $H({
				'type_transaction': type_transaction
			}).toQueryString();

	new Ajax.Request('/include/xhr_prix-mini-maxi.php', {
			parameters : params,
			onSuccess: function(transport) {
				
			 var tabCurseur = transport.responseText.split('/');

		 var tabPrix = tabCurseur[0].split('-');
		 var tabSurface = tabCurseur[1].split('-');
		 
		 var sliderPrix = new Control.Slider(
      ['curseurPrix_1','curseurPrix_2'],'sliderPrix',{
        sliderValue:[parseInt(tabPrix[0]),parseInt(tabPrix[1])], 
				range:$R(parseInt(tabPrix[0]),parseInt(tabPrix[1])),       
				restricted:true,	
				increment: 5,
        onSlide:function(v){
					
					$('dePrix').innerHTML=Math.round(v[0]) + '€';
					$('aPrix').innerHTML=Math.round(v[1]) + '€';
				},
        onChange:function(v){
					$('prixMini').value = Math.round(v[0]);
					$('prixMaxi').value = Math.round(v[1]);
				}
        //spans:['milieuPrix'] 
		 });
			
		 var sliderSurface = new Control.Slider(
      ['curseurSurface_1','curseurSurface_2'],'sliderSurface',{
        sliderValue:[tabSurface[0],tabSurface[1]],
				range:$R(parseInt(tabSurface[0]),parseInt(tabSurface[1])),  
				restricted:true,	
				onSlide:function(v){
					$('deSurface').innerHTML=Math.round(v[0]) + 'm²';
					$('aSurface').innerHTML=Math.round(v[1]) + 'm²';
				},
        onChange:function(v){
					$('surfaceMini').value = Math.round(v[0]);
					$('surfaceMaxi').value = Math.round(v[1]);
				}
        //spans:['milieuSurface'] 
			});
		 
		}
	})	
}


function afficheOffre() {
		
	if($('corps').className == 'corpsEnroule') {
		$('corps').className = 'corpsDeroule';
		$('zoneOffres').removeAttribute('style');
	}
	else if($('corps').className == 'corpsDeroule') {
		$('corps').className = 'corpsEnroule';
		$('zoneOffres').setStyle({height: '425px'});
	}											
	
}

function appelPage(page) {
		
	if ($('conteneurZoneTexte')) $('conteneurZoneTexte').show();
	if($('conteneurZoneCarte').style.display == '') $('conteneurZoneCarte').hide();
	if($('conteneurZoneOffres').style.display == '') $('conteneurZoneOffres').hide();			
		
	if (!$('conteneurZoneTexte')) new Insertion.After('conteneurZoneOffres', '<div id="conteneurZoneTexte"></div>');		
		
	//Spinner
	$('conteneurZoneTexte').addClassName('spinner');	
		
	new Ajax.Request('/fr/'+page, {									 
		method: "get",
		parameters: 'mode_xhr=1',
		onSuccess: function(transport) {
			$('conteneurZoneTexte').removeClassName('spinner');
			$('conteneurZoneTexte').innerHTML = transport.responseText;			

			if($('retour')) {
				
				Event.observe('retour', 'click', function(e) {
					Event.stop(e);		
					
					//Spinner
					$('zoneOffres').addClassName('spinner');
						
					var params = $H({
						'retour': 1
					}).toQueryString();	
						
					new Ajax.Updater('zoneOffres', '/include/xhr3.php', {
						method: "get",
						parameters	: params,
						evalScripts : true,
						onComplete: function() {
							$('zoneOffres').removeClassName('spinner');
							var even = evenementDetails();
						}
					});		
				});
			}

			if($('formContact')) {
				
				Form.getElements('formContact').each(function(el) {
					Event.observe(el, 'click', function() {el.clear()})														 
				});
				
				Event.observe('formContact', 'submit', function(e) {
					Event.stop(e);																							 
					$('formContact').request({
						onSuccess: function(transport) {
							evalScripts(transport.responseText);
						}
					});
				});	
			}
		}
	});		
}

function traitementForm(e) {
	Event.stop(e);
	
	if($('conteneurZoneCarte').style.display == "none")  $('conteneurZoneCarte').show();
	if($('conteneurZoneOffres').style.display == "none")  $('conteneurZoneOffres').show();
	if($('conteneurZoneTexte'))  $('conteneurZoneTexte').remove();
	if($('retourInfo')) $('retourInfo').remove();
	
	$('zoneOffres').addClassName('spinner');
	
	$('form_recherche').request({
		evalScripts : true,
		method: 'post',
		onSuccess: function(transport) {
		 $('conteneurListeOffres').replace(transport.responseText);
		 $('zoneOffres').removeClassName('spinner');
		}
	})
}

// Dernières offres
function listingDerniereOffres(n) {
	
	//Spinner
	$('zoneOffres').addClassName('spinner');
		
	var params = $H({
		'nombre_offres': n
	}).toQueryString();	
		
	new Ajax.Updater('zoneOffres', '/include/xhr3.php', {
		method: "get",
		parameters	: params,
		evalScripts : true,
		onComplete: function() {
			$('zoneOffres').removeClassName('spinner');
			var even = evenementDetails();
		}
	});
}

// Gestion de l'affichage des détails des offres
function evenementDetails() {	
	
	var tab = $$('#conteneurListeOffres .d');
    
    if(tab.length == 1) {
        
        
        
        return false;
    }
    
	var effet = [];
	
	if($('tricommune'))
	
		Event.observe('tricommune', 'click', function(e) {
			Event.stop(e);	
			//Spinner
			$('zoneOffres').addClassName('spinner');
			($('conteneurZoneOffres').hasClassName('asc')) ?  $('conteneurZoneOffres').className = 'desc': $('conteneurZoneOffres').className = 'asc';
			
			var params = $H({
				'tricommune': $('conteneurZoneOffres').className
			}).toQueryString();	
			
			new Ajax.Updater('zoneOffres', '/include/xhr3.php', {
				method: "get",
				parameters	: params,
				evalScripts : true,
				onComplete: function() {
					var even = evenementDetails();
				}
			});
		});																																										

	if($('tri2'))
		/*
		$('tri2').addEvent('click', function(e) {
																									 
			($('conteneurZoneOffres').hasClass('asc')) ?  $('conteneurZoneOffres').className = 'desc': $('conteneurZoneOffres').className = 'asc';
			
			var params = "tri2=" + $('conteneurZoneOffres').className;
			
			new Ajax('include/xhr3.php', {
				method: "post",
				update: $('zoneOffres'),
				data: params,	
				evalScripts : true,
				onComplete: function() {
					var even = evenementDetails();
				},
				onFailure: function() {
					alert('Error');
				}
			}).request();
		}.bindWithEvent($('tri2')));	
		*/

	if($('tri3'))
		/*
		$('tri3').addEvent('click', function(e) {
																									 
			($('conteneurZoneOffres').hasClass('asc')) ?  $('conteneurZoneOffres').className = 'desc': $('conteneurZoneOffres').className = 'asc';
			
			var params = "tri3=" + $('conteneurZoneOffres').className;
			
			new Ajax('include/xhr3.php', {
				method: "post",
				update: $('zoneOffres'),
				data: params,	
				evalScripts : true,
				onComplete: function() {
					var even = evenementDetails();
				},
				onFailure: function() {
					alert('Error');
				}
			}).request();
		}.bindWithEvent($('tri3')));	
		*/
	if($('tri4'))
		/*
		$('tri4').addEvent('click', function(e) {
																									 
			($('conteneurZoneOffres').hasClass('asc')) ?  $('conteneurZoneOffres').className = 'desc': $('conteneurZoneOffres').className = 'asc';
			
			var params = "tri4=" + $('conteneurZoneOffres').className;
			
			new Ajax('include/xhr3.php', {
				method: "post",
				update: $('zoneOffres'),
				data: params,	
				evalScripts : true,
				onComplete: function() {
					var even = evenementDetails();
				},
				onFailure: function() {
					alert('Error');
				}
			}).request();
		}.bindWithEvent($('tri4')));	
		*/

	$$('#conteneurListeOffres .d').each(function(el) {
																			
		Event.observe(el, 'mouseover', function(e) {
			Event.stop(e);	
			//alert('test');
			el.down('div').toggle();
		});																																										
		
		//map.removeOverlay(polyline);
		
		Event.observe(el, 'click', function(e) {
			Event.stop(e);	
			var reg = new RegExp("/", "g");
			var tabCoorcommune = $('coordonneescommune_'+el.id).innerHTML.split(reg);	

			var diff_x = Math.abs(tabCoorcommune[0]);
			var diff_y = Math.abs(tabCoorcommune[1]);
			var calc1 = (parseFloat(diff_x)/0.63137818)*11.76;
			var calc2 = calc1/4.013;
			var calc3 = calc2/5.88;
			var zoom = Math.round(9-parseFloat(calc3));
			
			var posi_x = (parseFloat(tabCoorcommune[0]))/2;
			var posi_y = (parseFloat(tabCoorcommune[1]))/2;
			
			reposGoogleMaps(tabCoorcommune[0],tabCoorcommune[1],10);
			
			var polyline = new GPolyline([new GLatLng(tabCoorcommune[0], tabCoorcommune[1])], "blue", 3);
			map.addOverlay(polyline);
		});			
	});
	
}

function colorTr(el) {	
	var bg = '#c5df7d';
	
	bg = $(el).getStyle('background-color');	
	
	if(bg != '#8bb322') el.setStyle('background-color', '#8bb322');
	el.addEvent('mouseout', function(e) {el.setStyle('background-color', bg)});
}


// Suite au click sur un point de la google maps
function traitement(id) {	
	
	//Spinner
	$('zoneOffres').addClassName('spinner');	
	
	var params = $H({
		'details_offre': id
	}).toQueryString();	
		
	new Ajax.Updater('zoneOffres', '/include/xhr3.php', {
		method: "get",
		parameters	: params,
		evalScripts : true,
		onComplete: function() {
			$('zoneOffres').removeClassName('spinner');
			var even = evenementDetails();
		}
	});	
	
	
}

function infoBulle(message) {
	
		new Insertion.Top('conteneur', '<div id="infoBulle"></div>');				
		alert(pointer);		
	
}
	
function googleMaps(coor1,coor2,zoom) {
	map = new GMap2($('zoneCarte'));
	map.addControl(new GLargeMapControl());
	map.addControl(new GMapTypeControl());
	map.addControl(new GScaleControl()); 
	map.addControl(new GOverviewMapControl());
	//map.setCenter(new GLatLng(47.065959930, 0.968599081), 5);
	map.setCenter(new GLatLng(coor1, coor2), zoom);		
}
	
function reposGoogleMaps(coor1,coor2,zoom) {
	map.setCenter(new GLatLng(coor1, coor2), zoom);			
}


function chargeSurCarte() {
	
	var params = $H({
		'toutes_offres': 1
	}).toQueryString();	
		
	new Ajax.Request('/include/xhr_toutes-offres.php', {
		method: "get",
		parameters	: params,
		onSuccess: function(transport) {
			$('zoneOffres').removeClassName('spinner');
			var even = evenementDetails();
		}
	});	

}

//Fonction infobulle
function createInfoMarker(point, address) {	
		
	// Création de mini icones
	var icon = new GIcon();
	icon.image = "media/site/image/puce_google.png";
	icon.iconSize = new GSize(11, 11);
	icon.iconAnchor = new GPoint(4, 7);
	icon.infoWindowAnchor = new GPoint(5, 1);
	
	var marker = new GMarker(point, icon);
	
	GEvent.addListener(marker, "click",
		function() {
			marker.openInfoWindowHtml(address);
		}
	);
	
  return marker;
}


// ###################################################################################
// ###################################################################################
// FONCTION GENERIQUE

function affichageMasquage(el) {
	el.toggle();
}

// Infos spinner suivant le curseur
function mouseSpinner(etat) {
	
	if($('spinnerMouse')) $('spinnerMouse').remove();
	window.removeEvents('mousemove');
	
	$('debug').innerHTML = etat;
	
	if(etat == 'active') {
		// Création de l'élément spinner
		var conteneurSpinnerMouse = new Element('div',{id:'spinnerMouse'}).injectInside($('body'));
		new Element('span',{id:'spinnerMouse'}).injectInside(conteneurSpinnerMouse);
				
		// L'obervateur du mouvement de la souris pour faire coller le spinner
		window.addEvent('mousemove', function(e) {
			var posY = e.client.y+20; 
			var posX = e.client.x+10;													
			$('spinnerMouse').setStyles({
				 top: posY,
				 left: posX
			});
		}.bindWithEvent(window));
	}
	
	else if(etat == 'desactive') {
		if($('spinnerMouse')) $('spinnerMouse').remove();
		window.removeEvents('mousemove');
	}
}

//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}



// ###################################################################################
// ###################################################################################
// Gestion des évenements
Event.observe(window, 'load', fLoad);
//window.addEvent('domready', fLoad);
