var dates_old = null;
var personas_old = 0;

function send(){
 if  ($("#contactar_form").valid())
	 {
 $.ajax({
   type: "GET",
   url: "http://www.nyweeks.com/contactar/sendContacto.php",
   data: "from="+$("#from").val()+"&asunto="+$("#asunto").val()+"&comentario="+escape($("#comentario").val())+"&apellido="+$("#apellido").val()+"&telefono="+$("#tel").val()+"&personas="+$("#contact_personas").val(),
   success: function(msg){
     alert( "Mensaje Enviado. Le responderemos con la mayor brevedad.");
   }
 });
	 }
	 return false;
	
 }
 
 function last_word()
 {
	 var posCursor = $("#comentario").attr("selectionStart");
	 var text = $("#comentario").val();
	 var text_split =  text.substring(0, posCursor);
	 var last_white = text_split.lastIndexOf(" ");
	 if (last_white==-1)
	 {
		 last_white =0;
	 }
	 return [""+text.substring(last_white,posCursor),last_white];	
	
 }
 
 function intelli_help(){
	 
	 var casos = [
				  [["disponible","disponibilidad","libre","fecha","ocupado","alquilar"],"<a href=\"/reservas/\"><span class=\"bold\">> Disponibilidad:</span><span> Consulte la disponibilidad de nuestros apartamentos</span><span class=\"bold\"> aqui.</span></a><br />"]
				  ,[["ubicacion","ubicación"],"<a href=\"/ubicacion/\"><span class=\"bold\">> Ubicaci&oacute;n:</span><span> Consulte la ubicaci&oacute;n de nuestros apartamentos</span><span class=\"bold\"> aqui.</span></a><br />"]
				  ,[["precio"],"<a href=\"/reservas/\"><span class=\"bold\">> Precio:</span><span> Para saber el precio del alojamiento, calculelo</span><span class=\"bold\"> aqui.</span></a><br />"]
				  ,[["reserva"],"<a href=\"/reservas/\"><span class=\"bold\">> Reservas:</span><span> Reserve un apartamento con </span><span class=\"bold\">nuestro sistema de reservas.</span></a><br />"]
				   ,[["apartamento","piso"],"<a href=\"/apartamentos/\"><span class=\"bold\">> Apartamentos:</span><span> Mas sobre nuestros apartamentos,</span><span class=\"bold\">visitelos aqui!</span></a><br />"]
				    ,[["metodo","pago", "proceso"],"<a href=\"/reservas/\"><span class=\"bold\">> Reserva y Pago:</span><span>Para saber mas sobre el proceso de reserva,</span><span class=\"bold\">informese aqui!</span></a><br />"]
				  ]; /* ,[[casos],texto] */
	var text =  $("#comentario").val();
	text = text.toLowerCase();
	var str ="";
	var view = false;
	for (x in casos )
	{
		var keys = casos[x][0];
		for (y in keys )
		{
			if (text.search(keys[y])!=-1)
			{		
			view = true;
			str +=casos[x][1].replace("<a ", "<a onmouseup=\"javascript:count('"+keys[y]+"')\" ");		
			break;
			}
		}
	}
	
		if (view)
	{
	$("#intelli_help").html("<span style=\"	font-weight:bold;font-style:italic;\">¿ Esta buscando ?</span><br /><br />"+str);
	}
	var dates = buscarFechas();
	if (dates.length == 2 )
	{    
		var numero_de_personas = $("#contact_personas").val();   
		if (personas_old != numero_de_personas||dates_old== null ||dates[0].valueOf()!=dates_old[0].valueOf()||dates[1].valueOf()!=dates_old[1].valueOf())
		{
			dates_old = dates;
			personas_old = numero_de_personas;
			view = true;
			
			

			var start = date_to_string(dates[0]);
			var end = date_to_string(dates[1])
			$('#live_disp').remove();
			var txt_personas ="";
			if(numero_de_personas>0)
			{
				txt_personas =" para "+numero_de_personas+" personas";
			}
			$("body").append("<div id=\"live_disp\"><h2>Disponibilidad de nuestros apartamentos desde el "+start+ " hasta el "+end+txt_personas+"</h2><div class=\"half left\"><h3>Apartamento hasta 4 personas</h3><span id=\"live_disp_apartamento_4\"><img class=\"block left\" src=\"/images/ko.png\"/>N&uacute;mero de personas mayor a la capacidad</span></div><div class=\"half left\"><h3>Apartamento hasta 8 personas</h3><span id=\"live_disp_apartamento_8\"><img class=\"block left\" src=\"/images/ko.png\"/>N&uacute;mero de personas demasiado pequeño</span></div></div>");
			$("#live_disp").show();			
			$("#live_disp").fadeIn(5000);
			
			

			if(numero_de_personas==0)
			{
				searchAvailibility(2, 1, start, end , false , "live_disp_apartamento_4" );
				searchAvailibility(7, 0, start, end , false , "live_disp_apartamento_8" );
			}
			else 
			{
				if(numero_de_personas<5)
				{
					searchAvailibility(numero_de_personas, 1, start, end , true , "live_disp_apartamento_4" );
				}
				if(numero_de_personas>2)
				{
					searchAvailibility(numero_de_personas, 0, start, end , true , "live_disp_apartamento_8" );
				}
					
			}
			count('vista_live_dispo');		
			
		}
			
	}
	else{
		$('#live_disp').remove();
	}

	

		 
 }
 
 
 
 function count(obj){
		$.ajax({type: 'GET',url: '/class/smart_contact_cont.php',data:'datos='+obj});
	}
 
 $(document).ready(function(){	
								
   $("#contactar_form").validate({
   rules: {
	        apellido: "required",
			asunto: "required",
			comentario: "required",
			tel: {
     			number: true,
				minlength: 9,
				maxlength: 15
   			 },
			 from: { 
			   required: true,
			   email: true
			 },
			 personas: {
      			required: true,
    		 	min: 1
  			  }

   },
   messages: {
	        apellido: "Indiquenos su nombre, por favor.",
			asunto: "Indiquenos el asunto, por favor.",
			comentario: "Indiquenos que nos desea comentar, por favor.",
			tel: {
      			number: "Su telefono ha de ser exclusivamente numerico.",
				minlength: "El telefono introducido es demasiado corto.",
				maxlength: "El telefono introducido es demasiado largo."
    		},
			 from: {
			   required: "Necesitamos su email para ponernos en contacto con usted.",
			   email: "Su email debe tener el formato: nombre@dominio.com."
			 },
			 personas: {
      			required: "",
    		 	min: "Indique el numero de personas"
  			  }
   }
});

 });  
 
 function searchAvailibility(personas, option, start, end , show, div )
 {
	 $("#"+div).css("color","#fff");
	$("#"+div).html("<img class=\"block left\" src=\"/images/ajax-loader.gif\"/>Buscando...");
			$.ajax({
				type: 'GET',
				url: '/reservas/check_availibility.php',
				data:'personas='+personas+'&option='+option+'&start='+start+'&end='+end,
				success: function(data) 
				{
					if (data>0)
					{
						$("#"+div).css("color","#0f0");
						if (show)
						{
							$("#"+div).html("<img class=\"block left\" src=\"/images/ok.png\"/>Disponible para estas fechas. <br />Por: "+data+" &euro;  <a onclick=\"javascript:count('click_link_reservar')\"  href=\"/reservas/datos.php?personas="+personas+"&amp;start="+start+"&amp;end="+end+"&amp;option="+option+"\">¡¡ Reservar !!</a></div> ");							
						}
						else
						{	
							$("#"+div).html("<img class=\"block left\" src=\"/images/ok.png\"/>Disponible para estas fechas.<br /> Para saber el precio,indiquenos el numero de personas: <input id=\"popup_personas\" onclick=\"javascript:exposePersonas();\" value=\"N&deg; Personas\">");
				
						}
					}
					else
					{	
						if (show)
						{
						}
						else
						{
							$("#"+div).html("<img class=\"block left\" src=\"/images/ko.png\"/>Lo sentimos. No hay disponibilidad para estas fechas");
							$("#"+div).css("color","#f00");
						}
					}
				}
			});
 }
 
 function exposePersonas()
 {
	 count('click_input_personas');
	 $('#contact_personas_expose').expose({
				// grow the ball when exposing starts
			onBeforeLoad: function() {
				$('#contact_personas_expose').css("border","2px solid #0f0");
				$('#contact_personas_expose').css("margin","-12px");
				$('#contact_personas_expose').css("padding","10px");
				$('#contact_personas_expose').css("width","500px");
			},
	
			// shrink the ball when exposing closes
			onBeforeClose: function() {
				$('#contact_personas_expose').attr("style","");
			}
 });
 }
 
   function buscarFechas(){
	   var text =  $("#comentario").val();
	   text = text.toLowerCase();
	   text = text.replace(/(\,|\.|\;|\!|\?)/gi," ");
	   var indFrom = text.search(/[^A-z](del|desde)[^A-z]/gi,text);
	   var indTo = text.search(/[^A-z](hasta|al)[^A-z]/gi,text);
	   if (indFrom != -1 && indTo != -1)
	   {
		   var dateFrom = dateSearch(indFrom, indTo);
		   /*var tope = 40;
		   tope = text.search(/(\,|\.|\;|\!|\?)/i,text.substring(indTo));
		   if (tope != -1)
		   {
			   tope = Math.min(40,tope);
		   }
		   else
		   {
			    tope = 40;
		   }*/
		   var end  = Math.min(indTo+40,text.length);
		   var dateTo = dateSearch(indTo, end );
		   return formatDates(dateFrom,dateTo);
	   }
	   return new Array();
  }
  
  function formatDates(dateF,dateT)
  {
	  if (!isNaN(dateT[0]))
	  {
		  if (dateF[1] == -1)
		  {
			  dateF[1] = dateT[1];
		  }
		  else if (dateT[1] == -1)
		  {
			  dateT[1] = dateF[1];
		  }
		  if ((isNaN(parseInt(dateF[2]))) && (isNaN(parseInt(dateT[2]))))
		  {
			  var year = (new Date()).getFullYear();
			  dateF[2] = year ;
			  dateT[2] = year;
		  }
		  else if (isNaN(parseInt(dateF[2])))
		  {
			  dateF[2] = dateT[2];
		  }
		  else if (isNaN(parseInt(dateT[2])))
		  {
			  dateT[2] = dateF[2];
		  }
		  if (new Date(dateF[2],dateF[1],dateF[0])>new Date() && new Date(dateF[2],dateF[1],dateF[0])<new Date(dateT[2],dateT[1],dateT[0]))
		  {
		  return new Array(new Date(dateF[2],dateF[1],dateF[0]),new Date(dateT[2],dateT[1],dateT[0]));
		  }
		  else
		  {
			 return new Array();
		  }
	  }
	  else
	  {
		    return new Array();
	  }
  }
  
  
    
    function dateSearch(indStart,indEnd){
	   var date = new Array(-1,-1,-1);
	   var text =  $("#comentario").val()+" ";
	   text = text.toLowerCase(); 
	   text = text.replace(/(\,|\.|\;|\!|\?)/gi," ");
	   indStart = text.indexOf(" ", indStart);
	   var trozo = parseInt(text.substring(indStart, text.indexOf(" ", indStart+1)));
	   while ( isNaN( trozo ) && indStart<indEnd)
	   {
		   indStart = text.indexOf(" ", indStart)+1;
		   trozo = toNumber(text.substring(indStart, text.indexOf(" ", indStart+1)));
	   }
	   date[0]= trozo;
	   var posMonth = -1;
	   while ( posMonth == -1 && indStart<=indEnd)
	   {
		   indStart = text.indexOf(" ", indStart)+1;
		   trozo = text.substring(indStart, text.indexOf(" ", indStart+1));
		   posMonth = searchMonth( trozo );
	   }
	   date[1] = posMonth ;
	   var trozo = parseInt(text.substring(indStart, text.indexOf(" ", indStart+1)));
	   while ( isNaN( trozo ) && indStart<=indEnd)
	   {
		   indStart = text.indexOf(" ", indStart);
		   if (indStart==-1)
		   {
			   indStart = indEnd;
		   }
		   indStart++;
		   trozo = parseInt(text.substring(indStart, text.indexOf(" ", indStart+1)));
	   }
	   date[2]= trozo;
	   return date;
	   
	   
  }
  
  function toNumber(t)
  {
	    temp = parseInt(t);
		if (!isNaN(temp))
		{
			return temp;
		}
		else
		{
			var position = Number.NaN;
			var numeros = new Object();
			numeros["uno"]="1";
			numeros["dos"]="2";
			numeros["tres"]="3";
			numeros["cuatro"]="4";
			numeros["cinco"]="5";
			numeros["seis"]="6";
			numeros["siete"]="7";
			numeros["ocho"]="8";
			numeros["nueve"]="9";
			numeros["diez"]="10";
			numeros["once"]="11";
			numeros["doce"]="12";
			numeros["trece"]="13";
			numeros["catorce"]="14";
			numeros["quince"]="15";
			numeros["dieciseis"]="16";
			numeros["diecisiete"]="17";
			numeros["dieciocho"]="18";
			numeros["diecinueve"]="19";
			numeros["veiente"]="20";
			numeros["veintiuno"]="21";
			numeros["veintidos"]="22";
			numeros["veintitres"]="23";
			numeros["veinticuatro"]="24";
			numeros["veinticinco"]="25";
			numeros["veintiseis"]="26";
			numeros["veintisiete"]="27";
			numeros["veintiocho"]="28";
			numeros["veintinueve"]="29";
			numeros["treinta"]="30";
			numeros["treinta y uno"]="31";
			if (numeros[t]!=null)
			{
				position = numeros[t];
							
			}
			return position;	
			
			
		}
		
	  
  }
  
   function searchMonth(t){
	    var position = -1;
   		var meses = new Object();
		meses["enero"]="0";
		meses["febrero"]="1";
		meses["marzo"]="2";
		meses["abril"]="3";
		meses["mayo"]="4";
		meses["junio"]="5";
		meses["julio"]="6";
		meses["agosto"]="7";
		meses["septiembre"]="8";
		meses["octubre"]="9";
		meses["noviembre"]="10";
		meses["diciembre"]="11";
			if (meses[t]!=null)
			{
				position = meses[t];
							
			}

		return position;		
   }
   
   function date_to_string(d)
{
	var dia=d.getDate();
	var mes=(d.getMonth())+1;
	if (mes<10)
	{
		mes="0"+mes;
	}
	if (dia<10)
	{
		dia="0"+dia;
	}
	
	return dia+"/"+mes+"/"+d.getFullYear();
}
 
