$(document).ready(function(){
	init();
	init_gmap();
	init_form();
});

function init(){
	//Muestra mensajes de confirmación
	$("#msgs").fadeIn(2000).fadeOut(9000);
	
	// maqueta los mensajes de twitter
	$(".tweetify").tweetify();
}

function validaEmail(){
	apos = $("#email").val().indexOf("@");
	dotpos = $("#email").val().lastIndexOf(".");
	if((apos < 1) || ((dotpos-apos) < 2)){
		$("#email").css("border","1px solid red");
		if($("#invalidEmail").size() < 1){
			$("#emailParent").append(
				$('<span id="invalidEmail">La dirección de email introducida no es correcta.</span>')
					.css("clear","both")
					.css("float","left")
					.css("color","red")
					.css("font-size","11px")
					.css("margin","5px")
			);
		}
		else{
			$("#emailParent").show();
		}
		return false;
	}
	else{
		$("#email").css("border","1px solid green");
		if($("#invalidEmail").size() > 0){
			$("#invalidEmail").hide();
		}
		return true;
	}
}

function init_form(){
	$("#email").blur(function(){
		validaEmail($("#email").val());
	});
	
	$("#contactForm").submit(function(){
		var ok = true;
		var alerta = "";
		if($("#email").val()==""){
			ok = false;
			alerta = "Debe escribir una dirección de email.\n";
		}
		else{
			ok = validaEmail();
		}
		if($("#comment").val()==""){
			ok = false;
			alerta += "Debe escribir un comentario.\n";
		}
		
		if(!ok){
			alert(alerta);
			return false;
		}
	});
}


function init_bubble(){
	$("#noResultFoundbubble").hide();
	$("#comoLlegarShow").click(function(){
		$("#bubbleForm").show("slow");
		return false;
	});
	return false;
}



function init_gmap(){
	$("#map").append("Cargando mapa...")
	var pequeno=true;
	var x = '39.469724'; 
	var y = '-0.379671';
	var x2 = '39.473724'; 
	var pitch = -33; // inclinación cámara
	var zoom = 15; 
	var yaw = 335; // grados
	var htmlInfoBubble = "";
	
	
	/* info para el buuble */
	contenidoBubble = fixedRelativePath+"html/mapInfoBubble.html.php"
	$.post(contenidoBubble,{},function(data){
		htmlInfoBubble  = data;
	},"html");
		
		
	
	var sample = function(){		
		 var control1 = new GOverviewMapControl();	
		var control2 = new GSmallMapControl();
		// var control3 = new GMapTypeControl();
		
		var directions = new GDirections(emapa.getMap(), document.getElementById("howtoget"));
		//GEvent.addListener(directions, "load", onGDirectionsLoad);
		
		var handleErrors = function(){
    		   if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
    		     alert("Disculpa Google Maps no encuentra la dirección. \nEjemplo de uso: Avenida Barón de Cárcer 48, Valencia, España");
    		   else if (directions.getStatus().code == G_GEO_SERVER_ERROR)
    		     alert("Disculpa hubo un error geolocalizando, intentalo nuevamente.");
    		   else if (directions.getStatus().code == G_GEO_MISSING_QUERY)
    		     alert("No hay petición");
    		   else if (directions.getStatus().code == G_UNAVAILABLE_ADDRESS) 
    		     alert("Esta dirección no es accesible desde Google Maps");
    		   else if (directions.getStatus().code == G_GEO_BAD_KEY)
    		     alert("La clave no es válida para este dominio");
    		   else if (directions.getStatus().code == G_GEO_BAD_REQUEST)
    		     alert("Error la dirección no está correctamente escrita, prueba algo del estilo:\nAvenida Barón de Cárcer 48, Valencia, España");    
    		   else alert("Disculpa ha ocurrido un error, puedes intentarlo de nuevo en unos instantes. Gracias.");
    		   
    		};
    		
        GEvent.addListener(directions, "error", handleErrors);
        
        
		howToGet = function(){
			var valor = $("#hasta").val();
			if(valor=="") {
				alert("Disculpa, tienes que poner la dirección desde donde quieres llegar.");
				return false;
			}
			directions.load("to: Barón de Cárcer 48, 46001, Valencia, España from:"+valor, {"locale":"es_ES"});
			$.scrollTo(document.getElementById('mapilla'),{ duration:2000,axis:'y'});
			
			return false;
		}
		
		
		var point = new GLatLng(x,y);
		emapa.setCenter(x,y,zoom);		
		
		/* marker */
		var marker = new GMarker(point);
		GEvent.addListener(marker, "click", function() {
			marker.openInfoWindowHtml(htmlInfoBubble);
		});
		emapa.addOverlay(marker);	
		
		
		GEvent.addListener(emapa.getMap(), "mouseover", function(e) {
			if(pequeno){
				pequeno=false;
	          	$("#map").animate({"height":"+=200px"},"slow", "linear", function(){
	          		emapa.getMap().checkResize();
		          	emapa.getMap().panTo(new GLatLng(x2,y));
		          	marker.openInfoWindowHtml(htmlInfoBubble);
		          	emapa.getMap().addControl(control1);
		          	emapa.getMap().addControl(control2);
		          //	emapa.getMap().addControl(control3);
		          	init_bubble();
	          	});
	          	//esta instruccion sólo va en firefox.
	          	//$.scrollTo(document.getElementById('localizacion'),{duration:2000,axis:'y'});
	          	//esta va en todos
	            $.scrollTo("+=300px",{ duration:2000,axis:'y'});
			}
         });
		
		
		/*GEvent.addListener(emapa.getMap(), "mouseout", function(e) {
			if(!pequeno){
				pequeno=true;
	          	$("#map").animate({"height":"-=150px"},"slow", "linear", function(){
	          		emapa.getMap().removeControl(control1);
	          		emapa.getMap().removeControl(control2);
	          		emapa.getMap().removeControl(control3);
	          		emapa.getMap().checkResize();
	          		
	          		marker.closeInfoWindow();
		          	emapa.getMap().panTo(new GLatLng(x,y));
	          	});
			}
         });*/
		
	}
	
	var api_key = "ABQIAAAAt8HZcgoRYhgV_t-V4KlNJBTonPJgkZiBJT1NGln2FNzUzeFGnRShQd6syhUVS5GsOLDt_w6sUsomBA";
	/**
	 * Carga del mapa, see emaps.js
	 */
	if($("#map").size()>0){
		emapa = new eMap({zoom:zoom,lat:x,lng:y,api_key:api_key,afterLoadFuncion:sample});
		emapa.constructor();		
	}

}