$(document).ready(function(){
  $(document).pngFix(); 
  $('.volver').click(function(){
   $(this).attr({ href:"#"});
   window.location.href='javascript:window.history.back();';
   return false;
  });
  $('#volver').click(function(){
   $(this).attr({ href:"#"});
   window.location.href='javascript:window.history.back();';
   return false;
  });
  //Todos los inputs al pulsarlos, si tiene el contenido por defecto lo borramos.
  $(':input').click(function(){
    if ($(this).val() == "producto" || $(this).val() == "product")
        $(this).val("")
  });
  //Cuando salimos los inputs con valores por defecto, si los dejamos en blanco ponemos de nuevo el valor por defecto.
  $(':input').blur(function(){
    if ($(this).val() == "" && 
        ($(this).attr("name") == "producto" || $(this).attr("name") == "search" || $(this).attr("name") == "localizador" || 
        $(this).attr("name") == "locator") 
       )
        $(this).val($(this).attr("name"))
  });
  $('#contenido-principal :input').focus(function(){
    $(this).css({'background-color':'#ffffff'})
  }).blur(function(){
    $(this).css({'background-color':'#efeff4'})
  });
  $("a").attr({ title:""});
  $("img").attr({ alt:"",longdesc:""});
  $("abbr").attr({ title:""});
  $("dl").attr({ title:""});
  
  //Indicamos todos los enlaces temporales
    switch(idiomaPrincipal){
      case "es":
        $("a[href='#']").attr({href:"javascript:alert('Próximamente')"});  
        break;
      default:
        $("a[href='#']").attr({href:"javascript:alert('Coming soon')"});
    }
  //Activamos el menú
	$("#menu-catalogo span[class!='activo']").next().hide();
	$("#menu-catalogo span").click(function() {
    jQuery.each($("#menu-catalogo span"), function() {
      if($(this).hasClass("activo")){
        $(this).next().toggle("slow");
        $(this).toggleClass("activo");
      }
    });
		$(this).next().toggle("slow");
		$(this).toggleClass("activo");
	}).css({'cursor':'pointer'});
	
  //Hacemos que se puedan pulsar las imágenes del listado de productos y de la home.
  jQuery.each($("#productos-listado li"), function() {
    var url = $(this).find("a").attr("href");
  	$(this).find(".foto img").click(function() {
      window.location.href=url;
    }).css({'cursor':'pointer'});;  
  });
  jQuery.each($("#productos-destacados li"), function() {
    var url = $(this).find("a").attr("href");
  	$(this).find(".foto img").click(function() {
      window.location.href=url;
    }).css({'cursor':'pointer'});  
  });
  //Hacemos que se puedan pulsar las imágenes de las novedades
  jQuery.each($("#ticker ul li"), function() {
    var url = $(this).find("a").attr("href");
  	$(this).find("img").click(function() {
      window.location.href=url;
    });  
  });
	
	//Funcionamiento de los botones del carrito.
	$("p.unidades img").css({'cursor':'pointer'});
  jQuery.each($("p.unidades span.lineaOptCarrito"), function() {
    var producto = $(this).find("span").attr("id");
    var idProducto = producto.split("_")[0];
    var idAcabado = producto.split("_")[1];
    if (!idAcabado || idAcabado=="undefined") idAcabado = "";
    var unidades = $(this).find("span");
    var numUnidades = parseInt($(this).find("span").text());
  	$(this).find("img[class!='anyadir']").click(function() {
      if ($(this).attr("class")=="menos"){
        if (numUnidades>1){
          unidades.text(numUnidades-1);
          numUnidades--
        }
      }else{
        unidades.text(numUnidades+1);
        numUnidades++
      }
  	})
  	$(this).find("img[class='anyadir']").click(function() {
      if (numUnidades>=1){
        if (!idAcabado || idAcabado=="undefined") idAcabado = "";
        productoAnyadir(idProducto,idAcabado,numUnidades);
      }
  	})
  });
  //Funcionamiento de los productos que hay en mi pedido
  jQuery.each($("#mi-pedido li[class!='vacio']"), function() {
    var producto = $(this).attr("class");
    var idProducto = producto.split("_")[0];
    var idAcabado = producto.split("_")[1];
    if (!idAcabado || idAcabado=="undefined") idAcabado = "";
    var unidades = $(this).find("span[class='uds']");
    var numUnidades = parseInt(unidades.text());
  	$(this).find("span[class='unidades'] img").click(function() {
      if ($(this).attr("class")=="menos"){
        if (numUnidades>1){
          productoActualizar(idProducto,idAcabado,numUnidades-1);
          numUnidades--
        }else{
          //No resto unidades, hay que borrar el producto
          productoBorrar(idProducto,idAcabado);
        }
      }else{
        productoActualizar(idProducto,idAcabado,numUnidades+1);
        numUnidades++
      }
    });  
  });
})

function buscar(inputString) {
	if(inputString.length <= 3 || inputString == "producto" || inputString == "search" || inputString == "locator") {
		$('#resultados-buscador').hide();
	} else {
		$.post("/php_lib/buscador.php", {busqueda: ""+inputString+""}, function(data){
			if(data.length >0) {
				$('#resultados-buscador').show();
				$('#resultados').html(data);
			}
		});
	}
}

function busquedaTerminar() {
	setTimeout("$('#resultados-buscador').hide();$('#resultados-buscador').val('');", 200);
	return true;
}

function productoAnyadir(idProducto, idAcabado, numProductos)
{
  if (!idAcabado || idAcabado=="undefined") idAcabado = "";
  //Primero hago la llamada ajax y dependiendo del resultado, actuo
  $.getJSON("/php_lib/carrito.php", { accion: "insertar", producto: idProducto, acabado: idAcabado, cantidad: numProductos },
  function(resultado){
    switch (resultado.estatus){
      case "error"://Hay un problema técnico.
      case "false"://Hay un problema técnico.
      $.prompt("Ha ocurrido un error en el servidor.<br />Por favor, vuelve a intentarlo en unos minutos.<br />Disculpe las molestias.");
      break;
      case "agotado"://Han borrado o despublicado el producto
      $.prompt("Este producto ya no se encuentra disponible.<br />Disculpe las molestias.");
      break;
      case "duplicado":
      $.prompt("Este producto ya está en el carrito de su compra.<br /> Si desea modificar la cantidad hágalo en el menú MI PEDIDO.");
      break;
      case "ok":
      $.prompt("Producto añadido.<br /> Total pedido: "+resultado.total+" €.");
      //Si no hay productos todavía quitamos el item "vacio".
      $("#mi-pedido li[class='vacio']").remove();
      //Añadimos el producto a Mi pedido.
      $("#mi-pedido").append("<li class=\""+idProducto+"_"+idAcabado+"\"><div class=\"foto\"><img src=\""+resultado.img+"\" /></div><p><span class=\"referencia\">"+resultado.referencia+"</span><br /><span class=\"nombre\">"+resultado.nombre+"</span><br /><span class=\"unidades\"><span class=\"uds\">"+resultado.cantidad+"</span>uds <img src=\"/images/iconos/mas-pedido.gif\" alt=\"más\" title=\"Pulsa para aumentar la cantidad\" /><img class=\"menos\" src=\"/images/iconos/menos-pedido.gif\" alt=\"menos\" title=\"Pulsa para aumentar la cantidad\" /></span><br /><span class=\"precio\">"+resultado.precio+" &euro;</span></p></li>");
      $("#mi-pedido li[class='"+idProducto+"_"+idAcabado+"']").find("span[class='unidades'] img").click(function(){
        var unidades = $("#mi-pedido li[class='"+idProducto+"_"+idAcabado+"']").find("span[class='uds']");
        var numUnidades = parseInt(unidades.text());
        if ($(this).attr("class")=="menos"){
          if (numUnidades>1){
            productoActualizar(idProducto,idAcabado,numUnidades-1);
            numUnidades--
          }else{
            //No resto unidades, hay que borrar el producto
            productoBorrar(idProducto,idAcabado);
          }
        }else{
          productoActualizar(idProducto,idAcabado,numUnidades+1);
          numUnidades++
        }
      });

      $("#resumen-pedido-lateral").find("strong").html("total "+resultado.total+" &euro;");
      $("#resumen-pedido-tramitar").find("strong").html("total "+resultado.total+" &euro;");
      break;
    }
  });
  return true;
}
function productoActualizar(idProducto, idAcabado, numProductos)
{
  if (parseInt(numProductos) == 0){
    $.prompt("Ha indicado una cantidad incorrecta.");
    return false;
  }else{
    $.getJSON("/php_lib/carrito.php", { accion: "actualizar", producto: idProducto, acabado: idAcabado, cantidad: numProductos },
    function(resultado){
      switch (resultado.estatus){
        case "false"://Hay un problema técnico.
        case "error"://Hay un problema técnico.
        $.prompt("Ha ocurrido un error en el servidor.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
        break;
        case "ok":
          if (resultado.total == 0 || resultado.total == "0.00" || resultado.total == "0,00"){
            $.prompt("Su pedido está vacio.");
            $("#mi-pedido").append("<li class=\"vacio\"><strong>(vacío)</strong></li>");
            $("#resumen-pedido").append("<li class=\"vacio\"><strong>(vacío, no hay productos en su pedido)</strong></li>");
            $("#resumen-pedido-lateral").find("strong").html("total 0,00 &euro;");
            $("#resumen-pedido-tramitar").find("strong").html("total 0,00 &euro;");
            $("#resumen-gastos").find("strong").html("total 0,00 &euro;");
          }else{
            $("#mi-pedido li[class='"+idProducto+"_"+idAcabado+"']").find("span[class='uds']").text(numProductos);
            $("#resumen-pedido li[class='"+idProducto+"_"+idAcabado+"']").find("span[class='uds']").text(numProductos);
            $("#resumen-pedido-lateral").find("strong").html("total "+resultado.total+" &euro;");
            $("#resumen-pedido-tramitar").find("strong").html("total "+resultado.total+" &euro;");
            $("#resumen-gastos").find("strong").html("total "+resultado.gastos+" &euro;");
          }
        break;
      }
    });
  }
  return true;
}
function productoBorrar(idProducto, idAcabado)
{
  if (confirm("¿Seguro que desea eliminar este producto ?")){
    $.getJSON("/php_lib/carrito.php", { accion: "borrar", producto: idProducto, acabado: idAcabado},
    function(resultado){
      switch (resultado.estatus){
        case "false"://Hay un problema técnico.
        case "error"://Hay un problema técnico.
        $.prompt("Ha ocurrido un error en el servidor.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
        break;
        case "ok":
          $("#mi-pedido li[class='"+idProducto+"_"+idAcabado+"']").remove();
          $("#resumen-pedido li[class='"+idProducto+"_"+idAcabado+"']").remove();
          if (resultado.total == 0 || resultado.total == "0.00" || resultado.total == "0,00"){
            $.prompt("Su pedido está vacio.");
            $("#mi-pedido").append("<li class=\"vacio\"><strong>(vacío)</strong></li>");
            $("#resumen-pedido").append("<li class=\"vacio\"><strong>(vacío, no hay productos en su pedido)</strong></li>");
            $("#resumen-pedido-lateral").find("strong").html("total 0,00 &euro;");
            $("#resumen-pedido-tramitar").find("strong").html("total 0,00 &euro;");
            $("#resumen-gastos").find("strong").html("total 0,00 &euro;");
          }else{
            $.prompt("Producto borrado.");
            $("#resumen-pedido-lateral").find("strong").html("total "+resultado.total+" &euro;");
            $("#resumen-pedido-tramitar").find("strong").html("total "+resultado.total+" &euro;");
            $("#resumen-gastos").find("strong").html("total "+resultado.gastos+" &euro;");
          }
        break;
      }
    });
  }
  return true;
}
function gastosActualizar(idZona)
{
  $.getJSON("/php_lib/carrito.php", { accion: "gastos", zona: idZona},
  function(resultado){
    switch (resultado.estatus){
      case "false"://Hay un problema técnico.
      case "error"://Hay un problema técnico.
      $.prompt("Ha ocurrido un error en el servidor.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
      break;
      case "ok":
        if (resultado.total == 0 || resultado.total == "0.00" || resultado.total == "0,00"){
          $.prompt("Su pedido está vacio.");
          $("#resumen-pedido-lateral").find("strong").html("total 0,00 &euro;");
          $("#resumen-pedido-tramitar").find("strong").html("total 0,00 &euro;");
          $("#resumen-gastos").find("strong").html("total 0,00 &euro;");
        }else if (resultado.nuevos!=""){
          $("#resumen-pedido").html(resultado.nuevos);
          jQuery.each($("#resumen-pedido li[class!='vacio']"), function() {
            var producto = $(this).attr("class");
            var idProducto = producto.split("_")[0];
            var idAcabado = producto.split("_")[1];
            if (!idAcabado || idAcabado=="undefined") idAcabado = "";
            var unidades = $(this).find("span[class='uds']");
            var numUnidades = parseInt(unidades.text());
          	$(this).find("span[class='unidades'] img").click(function() {
              if ($(this).attr("class")=="menos"){
                if (numUnidades>1){
                  productoActualizar(idProducto,idAcabado,numUnidades-1);
                  numUnidades--
                }else{
                  //No resto unidades, hay que borrar el producto
                  productoBorrar(idProducto,idAcabado);
                }
              }else{
                productoActualizar(idProducto,idAcabado,numUnidades+1);
                numUnidades++
              }
            }).css({'cursor':'pointer'});
          	$(this).find("span[class='borrar'] img").click(function() {
              //Hay que borrar el producto
              productoBorrar(idProducto,idAcabado);
            }).css({'cursor':'pointer'});  
          });
          $("#resumen-pedido-tramitar").find("strong").html("total "+resultado.total+" &euro;");
          if (resultado.preciosIVA=="SI") $("#resumen-pedido-tramitar").find("em").html("impuestos incluidos");
          else $("#resumen-pedido-tramitar").find("em").html("impuestos NO incluidos");
          $("#resumen-gastos").find("strong").html("total "+resultado.gastos+" &euro;");
        }else{
          $("#resumen-gastos").find("strong").html("total "+resultado.gastos+" &euro;");
          if (resultado.preciosIVA=="SI") $("#resumen-pedido-tramitar").find("em").html("impuestos incluidos");
          else $("#resumen-pedido-tramitar").find("em").html("impuestos NO incluidos");
        }
      break;
    }
  });
  return true;
}
function formaPagoActualizar(pago)
{
  $.getJSON("/php_lib/carrito.php", { accion: "pago", formaPago: pago},
  function(resultado){
    switch (resultado.estatus){
      case "false"://Hay un problema técnico.
      case "error"://Hay un problema técnico.
      $.prompt("Ha ocurrido un error en el servidor.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
      break;
      case "ok":
        if (pago=="contrarembolso"){
          $.prompt("Ha seleccionado Contrarembolso. Recuerde que conlleva una pequeña comisión.");
        }
        $("#resumen-gastos").find("strong").html("total "+resultado.gastos+" &euro;");
      break;
    }
  });
  return true;
}

function pedidoEnviar()
{
  //Comprobamos que el precio es > 0
  if ($("#resumen-pedido-tramitar").find("strong").html().indexOf(" 0,00") != -1){
    $.prompt("No puede enviar el pedido. Está vacío.");
    return false;
  }
  //Comprobamos que hay una forma de pago seleccionada
  var formaPago = false;
  jQuery.each($("#formaPago input"), function() {
    if ($(this).attr("checked")){
      formaPago = true
      return true;
    }
  });
  if(!formaPago){
    $.prompt("Seleccione la forma de pago que desea.");
    return false;
  }
  //Comprobamos todos los datos de facturación
  var datosFacturacion = true;
  jQuery.each($("#datosFacturacion :input"), function() {
    if (datosFacturacion==true){
      if ($(this).val()=="" && $(this).attr("name") != "cumple"){
        $.prompt("Complete todos sus datos de facturación.");
        datosFacturacion = false;
        return false;
      }
    }
  });
  if(!datosFacturacion)return false;
  //Si todo esta rellenado comprobamos el formato (CP y email)
  if(!cpValidar($("#cp").val())){
    $.prompt("Introduzca correctamente su código postal.");
    return false;
  }
  if(!emailValidar($("#email").val())){
    $.prompt("Introduzca correctamente su email");
    return false;
  }
  if($("#cumple").val()!=""){
    if(!fechaValidar($("#cumple").val())){
      return false;
    }
  }
  //Por último comprobamos que ha aceptado las condiciones
  if(!$("#condiciones").attr("checked")){
    $.prompt("Para enviar el pedido debe aceptar las condiciones.");
    return false;
  }
  window.location.href="/pedidoEnviar.php";
  return true;
}

function contactoEnviar()
{
  //Comprobamos todos los datos del formulario
  var datosContacto = true;
  jQuery.each($("#contacto :input"), function() {
    if (datosContacto==true){
      if ($(this).val()==""){
        $.prompt("Complete todos los campos, son obligatorios.");
        datosContacto = false;
        return false;
      }
    }
  });
  if(!datosContacto)return false;
  if(!emailValidar($("#email").val())){
    $.prompt("Introduzca correctamente su email");
    return false;
  }
  $.getJSON("/php_lib/ajax.php", { accion: "contacto", nombre: $("#nombre").val(), email: $("#email").val(), telefono: $("#telefono").val(), consulta: $("#comentarios").val()},
  function(resultado){
    switch (resultado.estatus){
      case "error"://Hay un problema técnico.
      $.prompt("Ha ocurrido un error tecnico.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
      break;
      case "ok":
        $.prompt("Su consulta ha sido enviada, en breve le responderemos.");
        //Borramos todo lo introducido
        $("#contacto :input").val("");
      break;
    }
  });
  return true;
}

function mensajeEnviar()
{
  //Comprobamos todos los datos del formulario
  var datosContacto = true;
  jQuery.each($("#mensajeBlog :input"), function() {
    if (datosContacto==true){
      if ($(this).val()==""){
        $.prompt("Complete todos los campos, son obligatorios.");
        datosContacto = false;
        return false;
      }
    }
  });
  if(!datosContacto)return false;
  if(!emailValidar($("#email").val())){
    $.prompt("Introduzca correctamente su email");
    return false;
  }
  $.getJSON("/php_lib/ajax.php", { accion: "mensaje", nombre: $("#nombre").val(), email: $("#email").val(), pregunta: $("#pregunta").val(), consulta: $("#comentarios").val()},
  function(resultado){
    switch (resultado.estatus){
      case "false"://Hay un problema técnico.
      case "error"://Hay un problema técnico.
      $.prompt("Ha ocurrido un error tecnico.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
      break;
      case "ok":
        $.prompt("Tu duda ha sido recibida, para poder verla refresca la página.");
        //Borramos todo lo introducido
        $("#mensajeBlog :input").val("");
      break;
    }
  });
  return true;
}

function comentarioEnviar()
{
  //Comprobamos todos los datos del formulario
  var datosContacto = true;
  jQuery.each($("#mensajeBlog :input"), function() {
    if (datosContacto==true){
      if ($(this).val()==""){
        $.prompt("Complete todos los campos, son obligatorios.");
        datosContacto = false;
        return false;
      }
    }
  });
  if(!datosContacto)return false;
  if(!emailValidar($("#email").val())){
    $.prompt("Introduzca correctamente su email");
    return false;
  }
  $.getJSON("/php_lib/ajax.php", { accion: "comentario", nombre: $("#nombre").val(), email: $("#email").val(), mensaje: $("#mensaje_id").val(), consulta: $("#comentarios").val()},
  function(resultado){
    switch (resultado.estatus){
      case "false"://Hay un problema técnico.
      case "error"://Hay un problema técnico.
      $.prompt("Ha ocurrido un error tecnico.<br />Por favor, vuelva a intentarlo en unos minutos.<br />Disculpe las molestias.");
      break;
      case "ok":
        $.prompt("Tu comentario se ha recibido , para poder verlo refresca la página.");
        //Borramos todo lo introducido
        $("#mensajeBlog :input").val("");
      break;
    }
  });
  return true;
}

/*
Función para comprobar que un valor es un número entero
Fecha: 28/02/02
Autor: Javi Ruiz (Almería)
*/
function esNumeroNatural(numero){
 if (numero>=0 && numero.indexOf(".")==-1 && numero.indexOf(",")==-1) return true;
 else return false;
}

function emailValidar(email)
{
  if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)){
   return (true)
  }else return (false)
}

function cpValidar(cp)
{
  if (/^\d{5}$/.test(cp)){
   return (true)
  }else return (false)
}

/*
Funcion para validar el formato de una fecha una fecha. dd/mm/aaaa or aa
Fecha: 14/04/03
Autor: Javi Ruiz (Almería)
*/
function fechaValidar(campo)
{
	fecha = campo.value;
	var exp=new RegExp("(^([0-9]{2})/([0-9]{2})/([0-9]{4})$)");
	if ( fecha == "" ){
		return false;
	}
	partes=fecha.split('/');
	switch (partes[1])
	{
	case '01' : limite_dias= 31;
		break;
	case '03' : limite_dias= 31;
		break;
	case '05' : limite_dias= 31;
		break;
	case '07' : limite_dias= 31;
		break;
	case '08' : limite_dias= 31;
		break;
	case '10' : limite_dias= 31;
		break;
	case '12' : limite_dias= 31;
		break;
	case '04' : limite_dias= 30;
		break;
	case '06' : limite_dias= 30;
		break;
	case '09' : limite_dias= 30;
		break;
	case '11' : limite_dias= 30;
		break;
	case '02': if (partes[2]%400==0) limite_dias=29
					else if (partes[2]%100==0) limite_dias=28
							else if (partes[2]%4==0) limite_dias=29
									else limite_dias=28;
		break;
	default : limite_dias=0;
	}
	if (exp.test(fecha) == false || partes[0]>limite_dias || partes[0]<1 || partes[1]<1 || partes[1]>12){
		$.prompt("Compruebe que su fecha de nacimiento es correcta. El formato es dd/mm/aaaa . Ej: 15/08/1975")
		campo.value="";
		campo.focus();
		return false;
	}
	return true;
}