/* 
    Inmolite, Oct 2011
*/

$(document).ready(function(){
    
    //ishare
    $('.ishare').ishare({
	
	displayTitle: true,
	title: lang['comparte'], // the title of ishare
	
	icons: 'facebook,linkedin,google,yahoo,digg,technorati,delicious',
	targetBlank: false, // open link in new tab? true or false
	
	sharetitle: $("title").text(),
	shareurl: window.location.pathname,
	
	fbLikebox: true,
	fbAction: "like", // like or recommend
	fbcolorscheme: "dark", // light or dark
	
	tweets: true,
	tweetText: "Inmolite.com | Páginas web gratis para inmobiliarias",
	tweetVia: "_inmolite", // via twitter account
	twitterRelated: "_inmolite", // related twitter account
	
	gplus: false, // Include google's plus one button
	
	width: '400px',
	height: '100px',
	
	iconsDir: base_url + 'images/ishare/'
	
    });
    
    
    //localidad por defecto: torrevieja
    //$("#id_provincia option:eq(1)").attr("selected", "selected").trigger('change');
    
    
    
    //calculadora hipotecas
    //mostrar formulario conv hipotecas
    $('a#boton_calc_hipotecas').click(function(event) {
        
	event.preventDefault();
	
	//ligthbox divisas
	$('#lightbox_calc').dialog({
	    height: 450,
	    width: 600,
	    modal: true,
	    title: lang['calc_hipotecas']
	});
	
    });
    
    $("#mortgageCalc").click(function(event){
	
	event.preventDefault();
	
	if(validar_formulario('#form_calc_hipotecas') == true){
	    
	    //http://www.issackelly.com/Blog/entry/Simple_JQuery_Mortgage_Calculator/
	    //P = L[c(1 + c)^n]/[(1 + c)^n - 1]
	    
	    var L, P, n, c, dp, mcPrice, mcTerm, mcRate, mcDown;
	    
	    mcPrice = $("#mcPrice").val().replace(',','.');
	    mcTerm = $("#mcTerm").val().replace(',','.');
	    mcRate = $("#mcRate").val().replace(',','.');
	    mcDown = $("#mcDown").val().replace(',','.');
	    
	    
	    L = parseInt(mcPrice);
	    n = parseInt(mcTerm) * 12;
	    c = parseFloat(mcRate)/1200;
	    dp = 1 - parseFloat(mcDown)/100;
	    L = L * dp;
	    P = (L*(c*Math.pow(1+c,n)))/(Math.pow(1+c,n)-1);
	    
	    event.preventDefault();
	    
	    if(!isNaN(P)){
		$("#mcPayment").text(lang['cuota'] + ': ' + P.toFixed(2) + ' ' + lang['eur_mes']);
	    }else{
		$("#mcPayment").text(lang['error_hip']);
	    }
	    
	    $("#mcPayment").slideDown();
	    
	    return false;
	}    
    });
    
    //conversor de divisas
    //mostrar formulario email informacion
    $('a#boton_conv_divisas').click(function(event) {
        
	event.preventDefault();
	
	//ligthbox divisas
	$('#currencyBox').dialog({
	    height: 350,
	    width: 300,
	    modal: true,
	    title: lang['conv_divisas']
	});
    });
    
    $('#convert').click(function(){
	 // conversión de divisas via Google Currency
	 
	 //Get all the values
	 var amount = $('#amount').val();
	 var from = $('#fromCurrency').val();
	 var to = $('#toCurrency').val();
	 var idioma = $('#idioma').val();
	 
	 //Make data string
	 var dataString = "amount=" + amount + "&from=" + from + "&to=" + to + "&idioma=" + idioma;
	 
	$.ajax({
	  type: "POST",
	  url: base_url + "ajax/ajax_converter.php",
	  data: dataString,
	  success: function(data){
		//Show results div
		$('#results').show();
	       
	       //Cambiar textos de monedas según idioma
	       data = data.replace(/Swedish Kronor/g,lang['corona']);
	       data = data.replace(/Swedish Krona/g,lang['corona']);
	       data = data.replace(/U.S. Dollar/g,lang['dolar']);
	       data = data.replace(/British Pound/g,lang['libra']);
	       data = data.replace(/Euro/g,lang['euro']);
	       data = data.replace(/Russian Rubles/g,lang['rublo']);
	       
	       //Put received response into result div
		$('#results').html(data).slideDown();
	  }
	});
    });
    
    //mostrar formulario email informacion
    $('a#boton_mas_info').click(function(event) {
        
	event.preventDefault();
	
	var enviar = lang['enviar'];
	var cerrar = lang['cerrar'];
	
	//ligthbox ficha
	$('#lightbox_ficha').dialog({
	    height: 600,
	    width: 800,
	    modal: true,
	    title: lang['solicitar_info']
	    
	});
    });
    
    // enviar email informacion
    $('#btn_solicitar_info').click(function(event) {
	event.preventDefault();
	
	if(validar_formulario('#form_solicitar_info') == true){
	    $('#respuesta_solicitar').load(base_url + 'ajax/enviar_email.php',{
		opcion: 'solicitar_info',
		nombre: $('#nombre').val(),
		email: $('#email').val(),
		email2: $('#email2').val(),
		telefono: $('#telefono').val(),
		comentarios: $('#comentarios').val(),
		propiedad: $('#titulo_propiedad_sele').text(),
		idioma: $('#idioma').val()
		
	    }).slideDown('slow');
	}
	
    });
    
    // enviar email contacto
    $('#boton_contactar').click(function(event) {
	event.preventDefault();
	
	if(validar_formulario('#form_contactar') == true){
	    $('#respuesta_contactar').load(base_url + 'ajax/enviar_email.php',{
		opcion: 'contactar',
		nombre: $('#nombre').val(),
		email: $('#email').val(),
		email2: $('#email2').val(),
		asunto: $('#asunto').val(),
		mensaje: $('#mensaje').val(),
		idioma: $('#idioma').val()
		
	    }).slideDown('slow');
	}
	
    });
    
    //boton enviar formulario
    function validar_formulario(selector){
	
	  var error = false;
	  
	  $(selector).find(".obligatorio").each(function(){
		 
		 $(this).next('input').trigger('blur');
		 $(this).next('textarea').trigger('blur');
		 
		 if(($(this).next('input').val() == '') || ($(this).next('textarea').val() == '')){
			$(this).next('input, textarea').css('border','2px solid red');
			error = true;
		 }
		 
	  });
	  
	  $(selector).find(".cancel").each(function() {
		 error = true;
	  });
	  
	  if (error == true) {
		 
		 //alert('El formulario contiene errores o está incompleto. Por favor, revíselo.');
		 $('<div class="error_validacion"><p style="text-align:center"><br/>' + lang['form_incompleto'] + '</div>').insertAfter('body');
		 
		 $('.error_validacion').dialog({
			height: 300,
			width: 400,
			modal: true,
			title: lang['error_form'],
			close: function() {
				//evitar doble submit
				$(this).remove();  
			 }
			
		    });
		 
		 return false;
	  
	  }else{
		 return true;
	  
	  }
    }
    
    //buscar propiedades
    $("#buscar_propiedades").click(function(){
        
        var valor_piscina = 0;
        var valor_destacado = 0;
        var valor_bancos = 0;
        
        if($('#piscina').is(':checked')){valor_piscina = 1;}
        if($('#destacado').is(':checked')){valor_destacado = 1;}
        if($('#bancos').is(':checked')){valor_bancos = 1;}
        
        $("#resultado_inmuebles").html('');
        $("#resultado_inmuebles").load(base_url + "ajax/mostrar_resultados_busqueda.php", {
		
		id_idioma: $('#id_idioma').val(),
                id_provincia: $('#id_provincia').val(),
                id_zona: $('#id_zona').val(),
                id_localidad: $('#id_localidad').val(),
		ref: $('#ref').val(),
                precio_desde: $('#precio_desde').val(),
                precio_hasta: $('#precio_hasta').val(),
                id_tipo_propiedad: $('#id_tipo_propiedad').val(),
                num_hab: $('#num_hab').val(),
                num_banos: $('#num_banos').val(),
		venta_alquiler: $('#venta_alquiler').val(),
                piscina: valor_piscina,
                destacado: valor_destacado,
                bancos: valor_bancos,
                pagina: 1
	});
        
	$('#ocultar_busqueda').trigger('click');
	
    });
    
    // total propiedades
    $("#id_provincia, #id_localidad, #precio_desde, #precio_hasta, #id_tipo_propiedad, #num_hab, #num_banos, #piscina,#destacado, #bancos, #venta_alquiler, #ref").change(function(){
        
        var valor_piscina = 0;
        var valor_destacado = 0;
        var valor_bancos = 0;
        
        if($('#piscina').is(':checked')){valor_piscina = 1;}
        if($('#destacado').is(':checked')){valor_destacado = 1;}
        if($('#bancos').is(':checked')){valor_bancos = 1;}
        
        $("#total_inmuebles").html('...');
        $("#total_inmuebles").load(base_url + "ajax/mostrar_resultados_busqueda.php", {
		
                opcion: 'total',
		id_idioma: $('#id_idioma').val(),
                id_provincia: $('#id_provincia').val(),
		ref: $('#ref').val(),
                id_localidad: $('#id_localidad').val(),
                precio_desde: $('#precio_desde').val(),
                precio_hasta: $('#precio_hasta').val(),
                id_tipo_propiedad: $('#id_tipo_propiedad').val(),
                num_hab: $('#num_hab').val(),
                num_banos: $('#num_banos').val(),
		venta_alquiler: $('#venta_alquiler').val(),
                piscina: valor_piscina,
                destacado: valor_destacado,
                bancos: valor_bancos
                
	});
        
    });
    
    //actualizar localidades al cambiar la provincia
    $("select#id_provincia").change(function(){
        
        $("select#id_localidad").html('');
        $("#id_localidad").load(base_url + "ajax/cambiar_localidades.php", {
		id_provincia: $('#id_provincia').val(),
                id_idioma: $('#id_idioma').val()
	},function(e){
		// Torrevieja: 54
	    //$("#id_localidad option:eq(54)").attr("selected", "selected");
	});
        
    });
    
    
    //actualizar localidades al cambiar la zona
    $("select#id_zona").change(function(){
        
        $("select#id_localidad").html('');
        $("#id_localidad").load(base_url + "ajax/cambiar_localidades.php", {
		id_zona: $('#id_zona').val(),
                id_idioma: $('#id_idioma').val()
	},function(e){
		// Torrevieja: 54
	    //$("#id_localidad option:eq(54)").attr("selected", "selected");
	});
        
    });
    
    //ocultar búsqueda
        $('#ocultar_busqueda').toggle(
        function () {
               $("#formulario_inmuebles").slideUp("slow");
               $(this).text(lang['mostrar']);
        },
        function () {
               $("#formulario_inmuebles").slideDown("slow");
               $(this).text(lang['ocultar']);
               
        });
    
    
    //prettyphoto
    $("a[rel^='prettyPhoto']").prettyPhoto({
        opacity:0.80,
        default_width:500,
        default_height:344,
        theme:'light_rounded',
        hideflash:false,
        modal:false
    });
    
    //easy slider
    $("#easyslider_promociones").easySlider({
            auto: false,
            continuous: false ,
            controlsBefore:	'<p id="controls">',
            controlsAfter:	'</p>',
            prevText: ' ',
            nextText: ' ',
	    prevId: 'prevBtn',
	    nextId: 'nextBtn',
            controlsFade: true
    });
    
    //easy slider
    $("#easyslider_solares").easySlider({
            auto: false,
            continuous: false ,
            controlsBefore:	'<p id="controls2">',
            controlsAfter:	'</p>',
            prevText: ' ',
            nextText: ' ',
	    prevId: 'prevBtn2',
	    nextId: 'nextBtn2',
            controlsFade: true
    });
    
    //mapa y pano
    if($("#mapa_lat").length > 0 ) {
        if($("#mapa_lat").val()==0){
           mapa_inicio();
       }else{
           mapa(
		parseFloat($('#mapa_lat').val()),
		parseFloat($('#mapa_lng').val()),
		parseFloat($('#mapa_zoom').val()),
		parseFloat($('#pano_yaw').val()),
		parseFloat($('#pano_pitch').val()),
		parseFloat($('#pano_zoom').val())
	    );
       }
    }
   
    // Forzar mostrar localidades en panel
    $('#id_provincia').trigger('change');
    
    function mapa(miLatitud,miLongitud,miZoomMapa,miYaw,miPitch,miZoomPano){
    //mapa

        var map = new GMap2(document.getElementById("mapa"));
        var latlng = new GLatLng(miLatitud, miLongitud);
        var myPov = { yaw: miYaw, pitch: miPitch, zoom: miZoomPano };
        
        var arrowIcon = new GIcon();
        arrowIcon.iconSize = new GSize(24, 24);
        arrowIcon.shadowSize = new GSize(1, 1);
        arrowIcon.iconAnchor = new GPoint(12, 12);
        arrowIcon.infoWindowAnchor = new GPoint(0, 0);
        arrowIcon.image = "http://www.google.com/intl/en_ALL/mapfiles/dir_0.png";
        
        var inmolite = new GIcon();
        inmolite.image = "imagenes/inmolite_google.png";
        inmolite.shadow = "";
        inmolite.iconSize = new GSize(40, 34);
        inmolite.shadowSize = new GSize(0, 0);
        inmolite.iconAnchor = new GPoint(9, 34);
        inmolite.infoWindowAnchor = new GPoint(31, 8);
        
        map.setCenter(new GLatLng(miLatitud, miLongitud), miZoomMapa);
        var customUI = map.getDefaultUI();
        // Remove MapType.G_HYBRID_MAP
        customUI.maptypes.hybrid = false;
        map.setUI(customUI);
        
        $('#mapa_lat').val(miLatitud);
        $('#mapa_lng').val(miLongitud);
        $('#mapa_zoom').val(miZoomMapa);
        $('#pano_yaw').val(miYaw);
        $('#pano_pitch').val(miPitch);
        $('#pano_zoom').val(miZoomPano);
        
        var mi_inmolite = new GMarker(new GLatLng(90, 0), { icon: inmolite });
        map.addOverlay(mi_inmolite);
        var latlng_inmolite = new GLatLng(37.97749305511961, -0.6685777903476264);
        mi_inmolite.setLatLng(latlng_inmolite);
        
        var svp = new GStreetviewPanorama(document.getElementById("pano"));
        svp.setLocationAndPOV(latlng, myPov); //this initializes the the street view panorama
	
	
        var arrow = new GMarker(new GLatLng(90, 0), { icon: arrowIcon });
        map.addOverlay(arrow);
        arrow.setLatLng(latlng);
        var lastPoint;
        
        //listener reacts to the click event on the map
        GEvent.addListener(map, "click", function(overlay, point) {
            if (!overlay) {
                svp.remove();
                svp.setLocationAndPOV(point);
                arrow.setLatLng(point);
                lastPoint = point;
                document.getElementById("mapa_lat").value = point.lat();
                document.getElementById("mapa_lng").value = point.lng();
                
            }
        });
        

        //listener reacts to the yawchanged event on the streetview panorama
        GEvent.addListener(svp, "yawchanged", function(yaw) {
            var dir = Math.round(yaw / 3) * 3;
            while (dir >= 120) { dir -= 120; }
            arrow.setImage("http://www.google.com/intl/en_ALL/mapfiles/dir_" + dir + ".png");
            document.getElementById("pano_yaw").value = yaw;
        });

        //listener reacts to pitchchanged even on street view panorama
        GEvent.addListener(svp, "pitchchanged", function(pitch) {
            document.getElementById("pano_pitch").value = pitch;
        });

        //listener reacts to zoomchanged event on streetview panoram
        GEvent.addListener(svp, "zoomchanged", function(zoom) {
            document.getElementById("pano_zoom").value = zoom;
        });

        //listener reacts to initialized event on street view panorama
        GEvent.addListener(svp, "initialized", function(a) {
            arrow.setLatLng(a.latlng);
            map.addOverlay(new GPolyline([lastPoint, a.latlng]));
            lastPoint = a.latlng;
        });
        
}


//http://code.google.com/intl/es-ES/apis/maps/documentation/javascript/v2/examples/geocoding-simple.html
function showAddress(address) {
    geocoder = new GClientGeocoder();
    if (geocoder) {
        geocoder.getLatLng(
            address,
            function(point) {
              if (!point) {
                alert(lang['direccion'] + address + lang['no_encontrada']);
              } else {
                
                mapa(point.lat(),point.lng(),16,0,0,0);
                
              }
            }
          );
    }
}

function mapa_inicio() {
    //pone el mapa de inicio
    mapa(mapa_lat,mapa_lng,mapa_zoom,pano_yaw,pano_pitch,pano_zoom);
}

});
