$(document).ready(function(){
      
	$('#contactarDesdeFicha').live('click',function(){ 
		window.location="index.php?p=contacto&tk="+$(this).attr('rel');
	});
	
	//update de select paises/deptos/ciudades por ajax
	$('#pais').live('change',function(){ 
		if($('#loadDepto').length){ 
			changePage('loadDepto','html/html.location.php','a=depto&d='+$(this).val(),'POST'); } });
	
	$('#depto').live('change',function(){ 
		if($('#loadLocalidad').length){
			changePage('loadLocalidad'	,'html/html.location.php','a=localidad&d='+$(this).val(),'POST');
			changePage('loadBarrio'		,'html/html.location.php','a=barrio&d=0','POST'); }});
				
	$('#selloc').live('change',function(){	
		if($('#loadBarrio').length){	
			if($(this).val()==0){ changePage('loadBarrio','html/html.location.php','a=barrio&d=0','POST');}
			else{changePage('loadBarrio','html/html.location.php','a=barrio&d='+$(this).val(),'POST');	}}});
	


		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////
		// BUSCADOR AVANZADO PROPIEDADES
		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////
		// @author Facundo Lopiano
		////////////////////////////////////////////////////////////////////////////////////////////
		
		
		$('#buscadorAvanzado').live('click',function(){
			options = {
				width	: 500,
				title 	: 'Opciones Avanzadadas',
				buttons : {
					'Ok'				: function(){ 
												elms=$('#dialog').find(':input');
												$.each(elms,
													function(i,o){ 
														volcar(o,'otherSearch'); // pasa la info a los input dentro del form
													});
													if(checkCambios('otherSearch')){
														$('#infoSearch').html('(se encuentran seteados filtros opcionales)<span class="cleanBusqueda" id="cleanBusqueda">Borrar?</span>');
													}
													$(this).dialog('close'); 
											},
					'Borrar Opciones'	: function(){ 
												borrarInputs('otherSearch');
												$('#infoSearch').html('');
												$(this).dialog('close');
										  }
				}
			}
			
			txt = $('#otherSearch').html();
			openDialog(options,txt);
			reanudar('otherSearch');
			
		});
		
		// Devolver las llaves de la visita
	    $('a#returnKeys').live('click', function(e){
	    	e.preventDefault();
			var url=$(this).attr("href");
			txt='Desea devolver las llaves?';
			options={
					title		: 'Confirmacion',
					buttons		: { 
									'Si': function(){  document.location.href=url;     },
									'No': function(){ $('#dialog').dialog('close');		}
									}
			}
			openDialog(options,txt);
	    });
		
		
		
		function volcar(obj,divContenedor){
			name = $(obj).attr('name'); // nombre del input en el dialog box
			if($(obj).is(':radio')){
				if($(obj).is(':checked')){
					valor=$(obj).val();
					// checkeo dentro del div (dentro del form)
					$('#'+divContenedor).find(':radio[value="'+valor+'"]').attr('checked',true);
				}
			}
			else if($(obj).is(':checkbox')){
				if($(obj).is(':checked')){
					name=$(obj).attr('name');
					//alert(name);
					$('#'+divContenedor).find(':checkbox[name="'+name+'"]').attr('checked',true);
				}else{ $('#'+divContenedor).find(':checkbox[name="'+name+'"]').attr('checked',false); }
			}
			else{
				valor= $(obj).val();
				// seteo el/los valores dentro del div (dentro del form)
				$('#'+divContenedor).find(':input[name="'+name+'"]').val(valor);
			}
			//alert($(o).val()); 
		}
		
		
		
		function reanudar(desde){
			elms = $('#'+desde).find(':input');
			$.each(elms,function(i,o){
			
				name = $(o).attr('name');
				//alert(name);
				if($(o).is(':radio')){
					if($(o).is(':checked')){
					valor=$(o).val();
					// en el dialog
					$('#dialog').find(':radio[value="'+valor+'"]').attr('checked',true);
					}
				}
				else if($(o).is(':checkbox')){
					if($(o).is(':checked')){
					name=$(o).attr('name');
					// en el dialog
					$('#dialog').find(':checkbox[name="'+name+'"]').attr('checked',true);
					}else{ $('#dialog').find(':checkbox[name="'+name+'"]').attr('checked',false); }
				}
				else{
					valor = $(o).val();
					// en el dialog
					$('#dialog').find(':input[name="'+name+'"]').val(valor);
				}	
			});
		}
		
		
		
		function borrarInputs(adonde){
			elms = $('#'+adonde).find(':input');
			$.each(elms,function(i,o){
				if(!$(o).is(':radio')){  
					$(o).val('');			
				}else{ 
					$(o).attr('checked',2); }  
			});
		}
		
		
		function checkCambios(divOrigen){
			var ret=false;
			elms = $('#'+divOrigen).find(':input');
			$.each(elms,function(i,o){
				if($(o).is(':radio')){
					if($(o).is(':checked')){
						if($(o).val()==1){
							ret=true;
						}
					}
				}else{
					if($(o).val()!="" && $(o).val()!=0){ ret=true; }
				}
			});
			return ret;
		}
			
		
		$('#cleanBusqueda').live('click',function(){
			borrarInputs('otherSearch');
			$('#infoSearch').html('');
		});
		
		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////////////////////////////////////////

		/**
		* Devuelve el string concatenado con "..." si supera la longitud establecida por parametro
		* (no corta las palabras por la mitad) al menos q el string sea una sola palabra y q supere la longitud dada.
		* @author Facundo Lopiano
		* @return string
		**/
		function limitString(string,longitud){
			if(longitud<=0) 	 		return string;
			if(string.length<=longitud) return string;
			
			palabras = string.split(/\s/g);
			real_long= parseInt(longitud)-3;
			concat   = '...';
			
			if(palabras.length==1){
				if(palabras[0].length>longitud){ returns=palabras[0].substring(0,real_long)+concat;return returns; }
			}
			else{
				first = palabras[0];
				for(i=0;i<palabras.length;i++){
					actual    = (i==0) 			 ? first : first+=' '+palabras[i];
					siguiente = (!palabras[i+1]) ? '' 	 : palabras[i+1];
					concat	  = actual+' '+siguiente;
					if(concat.length>longitud){
						actual+='...';
						return actual;
					}
					// concatena first con las palabras q vienen pasando
					first = actual;
				}
			}
			return string;
		}
		
		
		/*############################ ANIMACION CAMBIO DE IMAGENES ####*/
		function prev(me){
			$(me).unbind();
			
			var $active = $('div.prop_foto a img.active');
			if ( $active.length == 0 ) $active = $('div.prop_foto a:last img:first');			
			prev_l  = $($active).parent().prev().find('img:first').length;
			prev_   = prev_l ? $($active).parent().prev().find('img:first') : $('div.prop_foto a:last img:first');
			$active.addClass('last-active');
			//nombre de la imagen
			$('#prop_foto_name').html(limitString($(prev_).attr('alt'),37));
			
			$(prev_).css({opacity: 0.0})
				.addClass('active')
				.animate({opacity: 1.0}, 1000, function() {
				$active.removeClass('active last-active');
				$(me).bind('click',function(){ pre_prev(me); });
			});
		return; };
		
		function next(me){
			$(me).unbind();
			
			var $active = $('div.prop_foto a img.active');
			if ( $active.length == 0 ) $active = $('div.prop_foto a:last img:first');
			next_l = $($active).parent().next().find('img:first').length;
			next_  = next_l ? $($active).parent().next().find('img:first') : $('div.prop_foto a:first img:first');
			//nombre de la imagen
			$('#prop_foto_name').html(limitString($(next_).attr('alt'),37));
			
			$active.addClass('last-active');
			$(next_).css({opacity: 0.0})
				.addClass('active')
				.animate({opacity: 1.0}, 1000, function() {
				$active.removeClass('active last-active');
				$(me).bind('click',function(){ pre_next(me); });
			});
		return; }
		
		function pre_prev(obj){ prev(obj); }
		function pre_next(obj){ next(obj); }
		
		$('#prop_prev').click(function(e){
			e.preventDefault();
			pre_prev($(this));
		});
		
		
		$('#prop_next').click(function(e){
			e.preventDefault();
			pre_next($(this));
		});	
		/*##################################################################*/
		
		$("a[rel^='prettyPhoto']").prettyPhoto({theme: 'dark_rounded'});
		
		
		$('input.page').keypress(function(e){
			if(e.keyCode==13){
				window.location.href='?p=resultados-busqueda&pg='+$(this).val();
				return false;
			}
		});
		
	//formateo los input que manejan numeros
	$('.inputNum').bind('keypress',function(e){ var k=e.charCode; var kc=e.keyCode; if((k<=57 && k>=48) || (kc>=37 && kc<=40) || kc==9 || k==46 || kc==8) return true; return false; });
	
	$('li.btn2 input.btn_buscar').live('click',function(e){
		e.preventDefault();
		nroOferta = $('input#nrooferta').val();
		if(nroOferta!=''){
			$('input#btn_arriba').val('1');
			$('form#buscadorLateral').submit();
		}else{
			//$('input#nrooferta').val('ERROR');
		}
	});
	
	$('li.btn input.btn_buscar').live('click',function(e){
		e.preventDefault();
		$('input#btn_arriba').val('2');
		$('form#buscadorLateral').submit();
	});
	
	$('select#orden').live('change',function(){
		$('form#orderBy').submit();
	})
	
	$('.marcado, .desmarcado').live('click', function(){
		
		var thisObj = $(this);
		id = $(this).attr('id');
		var idObj = id;		
		data = id.split('::::');
		marcar = data[0];
		ticket_id = data[1];
		action = (marcar==1) ? 'add': 'delete';
		
		$.ajax({
		type: "POST",
		data: 'ajax=1&tk='+ticket_id+'&action='+action,
		url: 'app/app.favoritos.php',
		success: function(data) {
			if(marcar == 1){
				$(thisObj).attr('id','0'+'::::'+ticket_id);
				$(thisObj).attr('title','Remover de favoritos');
				$(thisObj).removeClass('desmarcado').addClass('marcado');
				var idObj = $(thisObj).attr('id');
			} else {
				$(thisObj).attr('id','1'+'::::'+ticket_id);
				$(thisObj).attr('title','Agregar a favoritos');
				$(thisObj).removeClass('marcado').addClass('desmarcado');
				var idObj = $(thisObj).attr('id');
			}
		}
		});

	});
	
});

function changePage(id,url,params,method){
	if(!params) params=''; if(!method) method='GET';
	if(url && id){
		$.ajax({type:method,url:url,data:params,beforeSend:function(){ $('#'+id).html('<div class="loading">loading...</div>'); },success:function(msg){ $('#'+id).html(msg); } });
		return true;
	}else return false;
}


/**
	* openDialog
	* Inicializa un jDialog con opciones basicas para mostrar un mensaje.
	* Para botones/opciones personalizados, pasar un objeto con las opciones.
	* @author Facundo Lopiano
	**/		    
    function openDialog(params,txt){
    	txt	   = txt 	|| false;
    	params = params || false;
    	
    	if(txt){ 
    		try{ $('#dialog').remove(); } catch(e){}
    		$('body').append('<div id="dialog" class="dialog"></div>'); $('#dialog').html(txt);	}
    	
    	opciones_basicas={
    		autoOpen: false,
    		height : 'auto',
    		width : '400px',
    		draggable: true,
    		resizable : false,
    		closeOnEscape : true,
    		title : 'Atenci\u00f3n',
    		close : function(){ if(txt){ $('#dialog').remove(); } },
    		buttons: { "Ok": function(){  $('#dialog').dialog('close');   } }
    	};
    	
    	if(typeof(params)=='object')	$.extend(opciones_basicas,params);
    	$('#dialog').dialog(opciones_basicas);
    	$('#dialog').dialog('open');
    	return;
    }
	
/**
	* init_map
	* Inicializa el mapa y carga la ubicacion de la propiedad y de las propiedades alrededor de la misma.
	* @author Ricardo Bustamante
	**/		 
	function init_map(latitud, longitud, descripcion, near_properties) {
		
		function addtag(point, address, color) {
			if(color == 'blue'){
				var blueIcon = new GIcon(G_DEFAULT_ICON);
				blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
				markerOptions = { icon:blueIcon };
				var marker = new GMarker(point, markerOptions);
			} else {
				var marker = new GMarker(point);
			}
			GEvent.addListener(marker, "click", function() {
				marker.openInfoWindowHtml(address); 
			});
			return marker;
		}
		
		// A TextualZoomControl is a GControl that displays textual "Zoom In"
		// and "Zoom Out" buttons (as opposed to the iconic buttons used in
		// Google Maps).

		// We define the function first
		function TextualZoomControl() {
		}

		// To "subclass" the GControl, we set the prototype object to
		// an instance of the GControl object
		TextualZoomControl.prototype = new GControl();

		// Creates a one DIV for each of the buttons and places them in a container
		// DIV which is returned as our control element. We add the control to
		// to the map container and return the element for the map class to
		// position properly.
		TextualZoomControl.prototype.initialize = function(map) {
		  var container = document.createElement("div");

		  var zoomInDiv = document.createElement("div");
		  this.setButtonStyle_(zoomInDiv);
		  container.appendChild(zoomInDiv);
		  zoomInDiv.appendChild(document.createTextNode(" + ZOOM "));
		  GEvent.addDomListener(zoomInDiv, "click", function() {
			map.zoomIn();
		  });

		  var zoomOutDiv = document.createElement("div");
		  this.setButtonStyle_(zoomOutDiv);
		  container.appendChild(zoomOutDiv);
		  zoomOutDiv.appendChild(document.createTextNode("- ZOOM "));
		  GEvent.addDomListener(zoomOutDiv, "click", function() {
			map.zoomOut();
		  });

		  map.getContainer().appendChild(container);
		  return container;
		}

		// By default, the control will appear in the top left corner of the
		// map with 7 pixels of padding.
		TextualZoomControl.prototype.getDefaultPosition = function() {
		  return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
		}

		// Sets the proper CSS for the given button element.
		TextualZoomControl.prototype.setButtonStyle_ = function(button) {
		  button.style.textDecoration = "underline";
		  button.style.color = "#fff";
		  button.style.backgroundColor = "#333";
		  button.style.font = "small Arial";
		  button.style.border = "1px solid black";
		  button.style.padding = "2px";
		  button.style.marginBottom = "3px";
		  button.style.textAlign = "center";
		  button.style.width = "6em";
		  button.style.cursor = "pointer";
		}
		
		if(latitud != "" && longitud != ""){
		
			if (GBrowserIsCompatible()) {
				
				var map = new GMap2(document.getElementById("map_canvas"));
				//map.addControl(new TextualZoomControl());
				var mapControl = new GMapTypeControl();
				map.addControl(mapControl);
				map.addControl(new GLargeMapControl());
				
				map.setCenter(new GLatLng(latitud, longitud), 15);
				var point = new GLatLng(latitud, longitud);

				if(near_properties != ""){
					var latLng = near_properties.split('||||');
					a=0;
					for(x in latLng){
						var latLng2 = latLng[a].split(',');
						var latitud = latLng2[0];
						var longitud = latLng2[1];
						var descripcionX = latLng2[2];
						
						if(latitud != "" && longitud != ""){
							
							var latLngNew = new GLatLng(latitud, longitud);
							map.addOverlay(addtag(latLngNew, descripcionX, 'blue'));
						
						}
						a++;
					}
				}
				
				map.addOverlay(new GMarker(point));
				map.addControl(new GMapTypeControl());
				//map.addControl(new GLargeMapControl());
				map.addControl(new GScaleControl());
				map.addControl(new GOverviewMapControl());
				map.disableScrollWheelZoom();

				if(descripcion != ""){
					var marker = addtag(point, descripcion);
					map.addOverlay(marker);
				}
				
			}
		
		} else {
			
			if(direccion != ""){
				
				var map; 
				var geocoder; 

				function load() { 
				  map = new GMap2(document.getElementById("map_canvas")); 
				  map.setCenter(new GLatLng(34, 0), 1); 
				  geocoder = new GClientGeocoder(); 
				} 

				function addAddressToMap(response) { 
				  map.clearOverlays(); 
				  if (!response || response.Status.code != 200) { 
					alert("Sorry, we were unable to geocode that address"); 
				  } else { 
					place = response.Placemark[0]; 
					point = new GLatLng(place.Point.coordinates[1], 
										place.Point.coordinates[0]); 
					marker = new GMarker(point); 
					map.addOverlay(marker); 
					marker.openInfoWindowHtml(place.address + '<br>' + 
					  '<b>Country code:</b> ' + place.AddressDetails.Country.CountryNameCode); 
				  }
				}

				function showLocation() { 
				  var address = document.forms[0].q.value; 
				  geocoder.getLocations(address, addAddressToMap); 
				} 

				function findLocation(address) { 
				  document.forms[0].q.value = address; 
				  showLocation(); 
				} 
				
			}
			
		}
		
	}
	
	function marcarFavorito(marcar, ticket_id, idObj){

		action = (marcar==1) ? 'add': 'delete';
		
		$.ajax({
		type: "POST",
		data: 'ajax=1&tk='+ticket_id+'&action='+action,
		url: 'app/app.favoritos.php',
		success: function(data) {
			if(marcar == 1){
				$('#'+idObj+' img').removeClass('desmarcado').addClass('marcado');
				$('#'+idObj).attr('title','Remover de Favoritos');
				$('#'+idObj).attr('onclick','javascript:marcarFavorito('+0+',"'+ticket_id+'","'+idObj+'");');
			} else {
				$('#'+idObj+' img').removeClass('marcado').addClass('desmarcado');				
				$('#'+idObj).attr('title','Agregar a Favoritos');
				$('#'+idObj).attr('onclick','javascript:marcarFavorito('+1+',"'+ticket_id+'","'+idObj+'");');
			}
		}
		});

	}
