﻿$(document).ready(function() {
//	texto=$("<div class='centrado'></div>");
//	texto.insertBefore('#contenido').addClass("error").show("slow");
	actual=nombre_pagina(location.href);
	ancla=location.hash.substring(1);
  if (ancla!='' && ancla!=actual) {
    $('a').not('.enlace_externo').each(function(){
			if (nombre_pagina($(this).attr('href'))==(ancla)) {
				$('#contenedor').html("").load(ancla+' #contenido', '', carga_rapida);
			};
		});
	} else carga_rapida ();
  $('a').not('.enlace_externo').click(function(e) {
	  carga_pagina (nombre_pagina($(this).attr('href')));
		e.preventDefault();
	});
});

function nombre_pagina (cadena) {
	res=cadena.substring(cadena.lastIndexOf('/')+1);
	if (res.indexOf('#')!=-1) res=res.substring(0, res.indexOf('#'));
	if (res=='') res="index.htm";
	return res;
};

function carga_rapida () {
  $(window).unbind();
  prepara_tienda();
	carga_flash();
	$('#contenedor').show("fast", arregla_titulo);
	termina_carga ();
};

function arregla_titulo () {
	document.title="Tecnisoft Data & Services";
	prepara_carrito();
};

function carga_pagina (pagina) {
  $(window).unbind();
	$('#contenedor').hide('fast', cargaContenido);
	window.location.hash=pagina;
	muestraCargador();

  function muestraCargador() {
   	$('#cargador').css ("left", $("#cabecera").position().left+($("#cabecera").width()-$("#cargador").width())/2);
    $('#cargador').fadeIn('fast');
  };
  function cargaContenido () {
		$('#contenedor').html("").load(pagina+' #contenido', '', muestraContenidoNuevo);
	};
  function muestraContenidoNuevo() {
    prepara_tienda();
    carga_flash();
    $('#contenedor').show('normal', ocultaCargador);
  };
  function ocultaCargador() {
		arregla_titulo();
  	termina_carga ();
    $('#cargador').fadeOut('fast');
  };
};

function termina_carga () {
  $('.redondo').corner();
	$('#enviar').each(function() {
		$('#nombre').focus();
	});
  $('#enviar').click(function(e) {
	  envia_mensaje();
		e.preventDefault();
  });
  $('#formulario').submit(function(e) {
	  envia_mensaje();
		e.preventDefault();
  });
  $('#dir1').click(function() {
	  $("#mapa").fadeOut("fast").attr("src", "http://maps.google.es/maps?f=q&source=s_q&hl=es&geocode=&q=Calle+de+Dionisios,+Torrej%C3%B3n+de+Ardoz&sll=40.384736,-3.630295&sspn=0.413711,0.617294&ie=UTF8&hq=&hnear=Calle+de+Dionisios,+28850+Torrej%C3%B3n+de+Ardoz,+Madrid,+Comunidad+de+Madrid&ll=40.453413,-3.476229&spn=0.014695,0.027895&z=15&iwloc=A&output=embed").fadeIn("fast");
	  $("#mapa_enlace").attr("href", "http://maps.google.es/maps?f=q&source=embed&hl=es&geocode=&q=Calle+de+Dionisios,+Torrej%C3%B3n+de+Ardoz&sll=40.384736,-3.630295&sspn=0.413711,0.617294&ie=UTF8&hq=&hnear=Calle+de+Dionisios,+28850+Torrej%C3%B3n+de+Ardoz,+Madrid,+Comunidad+de+Madrid&ll=40.453413,-3.476229&spn=0.014695,0.027895&z=15&iwloc=A");
  });
  $('#dir2').click(function() {
	  $("#mapa").fadeOut("fast").attr("src", "http://maps.google.es/maps?f=q&source=s_q&hl=es&geocode=&q=40.5317,-3.2969&sll=40.532116,-3.296435&sspn=0.006654,0.009645&ie=UTF8&ll=40.532557,-3.296714&spn=0.014678,0.027852&z=15&iwloc=near&output=embed").fadeIn("fast");
	  $("#mapa_enlace").attr("href", "http://maps.google.es/maps?f=q&source=embed&hl=es&geocode=&q=40.5317,-3.2969&sll=40.532116,-3.296435&sspn=0.006654,0.009645&ie=UTF8&ll=40.532557,-3.296714&spn=0.014678,0.027852&z=15&iwloc=near");
  });
  $('#contenido a').not('.enlace_externo').click(function(e) {
	  carga_pagina (nombre_pagina($(this).attr('href')));
		e.preventDefault();
	});
};

function prepara_tienda () {
  if ($('#carrito').length) {
  	$('#catalogo').accordion({
	  	autoHeight: false
  	});

	  $('.linea').draggable({
  	  appendTo: "body",
		  helper: "clone"
    });

  	$('#elementos').droppable({
	  	accept: ".linea",
  		activeClass: "dragactivo",
		  hoverClass: "draghover",
			tolerance: "pointer",
	  	drop: function( event, ui ) {
  			$(ui.draggable).clone().appendTo(this);
			  recalculatotal();
		  }
	  }).selectable();

	  $('#borrar').button({
      icons: {
        primary: "ui-icon-circle-close"
      },
	  	text: false
    }).click(function () {
			if ($(".linea.ui-selected").size()==0) {
				alert ("Seleccione los productos que desea borrar antes de pulsar este botón.")
				return;
			}
 		  $(".linea.ui-selected").remove();
    	recalculatotal();
  	});

	  $('#pedido').button({
      icons: {
        primary: "ui-icon-cart"
      }
  	}).click(function () {
			if ($("#elementos .linea").size()==0) {
				alert ("Añada algún producto antes de formalizar el pedido.")
				return;
			}
      var $dialogo = $('<div></div>').dialog({
		    autoOpen: false,
    		modal: true,
				position: ['center', 'center'],
		    resizable: false,
				title: "Indique sus datos de contacto",
				width: 600
    	}).keyup(function(e){
        if (e.keyCode == 13) {
          $('.ui-dialog').find('button').last().trigger('click');
        }
      });
      $dialogo.html("<div style='text-align:left;vertical-align:top'>Nombre completo: <input type='text' style='width:280px' maxlength='300' name='nombrecliente' id='nombrecliente' class='ui-widget-content ui-corner-all' value=''/> NIF / CIF: <input type='text' style='width:106px' maxlength='10' name='nifcifcliente' id='nifcifcliente' class='ui-widget-content ui-corner-all' value=''/><br>Dirección de envío: <input type='text' style='width:450px' maxlength='300' name='direccioncliente' id='direccioncliente' class='ui-widget-content ui-corner-all' value=''/><br>Teléfono:	<input type='text' style='width:100px' maxlength='30' name='telefonocliente' id='telefonocliente' class='ui-widget-content ui-corner-all' value=''/> Correo: <input type='text' style='width:352px' maxlength='300' name='correocliente' id='correocliente' class='ui-widget-content ui-corner-all' value=''/><br>Comentarios (dirección de facturación alternativa, notas sobre el envío, etc.):<br><textarea style='width:554px;height:70px' name='comentarioscliente' id='comentarioscliente' class='ui-widget-content ui-corner-all'/><br><input type='checkbox' name='aceptacioncliente' id='aceptacioncliente'> Acepto las <a href='aviso.htm' target='_blank'>condiciones de uso, protección de datos y política de devoluciones</a> de la web.</div>");
	    $dialogo.dialog({open: function(event, ui) {
        $('#nombrecliente').focus();
	  	}});
		  $dialogo.dialog('option', 'buttons', {
			  "Cancelar": function() {
				  $(this).dialog("close");},
  			"Aceptar": function() {
	  			var nombrecliente=$('#nombrecliente').val();
	  			var nifcifcliente=$('#nifcifcliente').val();
	  			var direccioncliente=$('#direccioncliente').val();
	  			var telefonocliente=$('#telefonocliente').val();
	  			var correocliente=$('#correocliente').val();
	  			var comentarioscliente=$('#comentarioscliente').val();
	  			var aceptacioncliente=$('#aceptacioncliente').is(':checked');

				  if (nombrecliente.length<5) {
				    alert ("Revise su nombre y apellidos, por favor.");
            $('#nombrecliente').focus();
		  			return;
			  	}
				  if (nifcifcliente.length<5) {
				    alert ("Revise su NIF (CIF si es una empresa), por favor.");
            $('#nifcifcliente').focus();
		  			return;
			  	}
				  if (direccioncliente.length<20) {
				    alert ("Revise la dirección de envío, por favor. Incluya calle, número, población, código postal y provincia.");
            $('#direccioncliente').focus();
		  			return;
			  	}
				  if (telefonocliente.length<5) {
				    alert ("Revise su teléfono, por favor.");
            $('#telefonocliente').focus();
		  			return;
			  	}
				  if (correocliente.length<7 || correocliente.indexOf("@")<1 || correocliente.indexOf(".")<1) {
				    alert ("Revise su correo electrónico, por favor.");
            $('#correocliente').focus();
		  			return;
			  	}
				  if (!aceptacioncliente) {
				    alert ("Debe aceptar las condiciones antes de enviar su pedido.");
            $('#aceptacioncliente').focus();
		  			return;
			  	}

          var pedido="<table align='center'>";
          $("#elementos .linea").each(function (index, value) {
          	pedido+="<tr><td>" + ($(value)).find(".ref").text() + "</td><td>" + ($(value)).find(".modelo").text() + "</td><td align='right'>" + ($(value)).find(".precio").text() + "</td></tr>";
          });
          pedido+="<tr><td></td><td>" + $("#gastos").prev().html() + "</td><td align='right'>" + $("#gastos").text() + "</td></tr>";
          pedido+="<tr><td></td><td>" + $("#total").prev().text() + "</td><td align='right'><b>" + $("#total").text() + "</b></td></tr>";
          pedido+="</table>";

          problema=false;
          $.ajax({
            type: "POST",
            url: "mensaje.asp",
            data: ({tipo: "pedido", nombre: nombrecliente, nifcifcliente: nifcifcliente, direccioncliente: direccioncliente, telefono: telefonocliente, email: correocliente, mensaje: pedido, comentarioscliente: comentarioscliente}),
        		cache: false,
	  	      async: false,
            error: function () {
			        problema=true;
            },
            success: function (msg) {
        			if (msg!="OK") problema=true;
            }
          });
          if (problema) {
            alert("Su pedido no ha podido enviarse por causas técnicas. Inténtelo de nuevo más adelante.");
					  return;
  				} else {
						alert("Su pedido ha sido enviado. En breve, recibirá un correo de confirmación con instrucciones para realizar el pago.");
	    			$(this).dialog("close");
  	  			window.location.reload();
        	};
  			}
	  	});
  	  $dialogo.dialog('open');
  		return false;
		});
  }
}

function prepara_carrito () {
  if ($('#carrito').length) {
    $(window).scroll(function () {
	    colocacarrito();
    });
    $(window).resize(function () {
  	  colocacarrito();
    });
    colocacarrito();
    recalculatotal();
	}
}

function colocacarrito () {
  if ($('#carrito').length) {
  	var arriba=$(window).scrollTop();
	  if (arriba<$('#productos').offset().top) arriba=$('#productos').offset().top;
    $('#carrito').css({
	  	top: arriba,
		  left: $('#cabecera').offset().left+470
  	})
	}
}

function recalculatotal () {
	var total=0.0;
	var a=$("#elementos .precio").each(function(index, value) {
 		total+=s2f($(value).text());
  });
	total+=s2f($("#gastos").text());
	if (a.size()!=0)
  	$("#carrovacio").hide();
	else
  	$("#carrovacio").show();
	$("#total").text(" " + new Number(total).toFixed(2) + " €");
}

function s2f (valor) {
	a=parseFloat(valor.replace("€", ""));
	if (isNaN(a))
	  return 0.0;
	else
  	return a;
}

function carga_flash () {
  $("#portada").each(function() {
    swfobject.embedSWF("portada.swf", "portada", "950", "522", "8.0.0", "swfobject/expressInstall.swf", {}, {menu: "false", quality: "high", bgcolor: "#191818", allowfullscreen: "false"});
  });
  $("#carousel").each(function() {
		swfobject.embedSWF("carousel/carousel.swf", "carousel", "390", "324", "8.0.0", false, {xmlfile:"carousel/default.xml", loaderColor:"0x0000A0", messages: " :: :: :: "}, {wmode: "transparent", allowScriptAccess: "always"});
  });
};

function envia_mensaje () {
if ($('#nombre').val().length<6) {
    muestra_resultado("Por favor, rellene su nombre y apellidos antes de enviar el formulario.", false);
		$('#nombre').focus();
		return;
	} else if ($('#email').val().length<6 || $('#email').val().indexOf('@')<1 || $('#email').val().indexOf('.')<1) {
    muestra_resultado("Por favor, rellene su correo electrónico antes de enviar el formulario.", false);
		$('#email').focus();
		return;
	} else if ($('#telefono').val()=='') {
    muestra_resultado("Por favor, rellene su teléfono antes de enviar el formulario.", false);
		$('#telefono').focus();
		return;
	} else if ($('#mensaje').val()=='') {
    muestra_resultado("Por favor, rellene su consulta, comentario o sugerencia antes de enviar el formulario.", false);
		$('#mensaje').focus();
		return;
	};

  problema=false;
  $.ajax({
    type: "POST",
    url: "mensaje.asp",
    data: ({tipo: "mensaje", nombre: $('#nombre').val(), email: $('#email').val(), telefono: $('#telefono').val(), mensaje: $('#mensaje').val()}),
		cache: false,
		async: false,
    error: function () {
			problema=true;
    },
    success: function (msg) {
			if (msg!="OK") problema=true;
    }
  });
  if (problema) {
    muestra_resultado("Se ha producido un error enviando su consulta. Por favor, inténtelo de nuevo más adelante.", false);
		$('#mensaje').focus();
	} else {
		$('#formulario').hide("slow");
    muestra_resultado("Su consulta se ha enviado correctamente, nos pondremos en contacto con usted en breve.", true);
	};
};

function muestra_resultado(cadena, ok) {
	$('#resultado').hide("slow", muestra_resultado2);
	
	function muestra_resultado2() {
  	$('#resultado').hide();
		if (ok) {
	    $('#resultado').removeClass("error");
			$('#resultado').addClass("success");
		} else {
	    $('#resultado').removeClass("success");
			$('#resultado').addClass("error");
		};
  	$('#resultado').html(cadena).show("slow");
	};
};
