// ----------------------
// Barullo
// ----------------------
// Navegación
// ----------------------

$(document).ready(function() {
	
	// menú navegación, opción "atención al cliente"
	$("#header #main_navigation ul#main_menu li.opc6>a").toggle(function(e){
		$(this).parent().find("ul").css({display:'none', visibility:'visible'})
		$(this).parent().find("ul").slideToggle("normal");//show().fadeIn("normal");
	}, function(e){
		$(this).parent().find("ul").slideToggle("fast");//.fadeOut("fast");
	}); 
	
	// menú navegación shop
	ddsmoothmenu.init({
		mainmenuid: "shop_smooth_menu", //menu DIV id
		orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
		classname: 'ddsmoothmenu', //class added to menu's outer DIV
		//customtheme: ["#1c5a80", "#18374a"],
		contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
	});
	
	// menús laterales
	var cerrados = $("#content_left ul.navigation_themes .cerrado");
		cerrados.css({height:"57px"});
	var lis = cerrados.find("ul li");
	for (var i=0; i<lis.size(); i++){
		if (i<3) cerrados.find("ul li:eq("+i+")").show();
		else cerrados.find("ul li:eq("+i+")").hide();
	}
	
	
	$("#content_left ul.navigation_themes .cerrado_boton").toggle( function(e){
		var cerrado = $(this).parent().find(".cerrado");
		var cerradoLis = cerrado.find("ul li");
		
		for (var i=0; i<cerradoLis.size(); i++){
			cerrado.find("ul li:eq("+i+")").show();
		}
		
		var cerradoHeight = cerrado.find("ul").height()+"px";
		cerrado.animate({height:cerradoHeight}, "slow");
		
		$(this).html("Ver Menos...[-]");
	
		return false;
	}, function(e){
		var cerrado = $(this).parent().find(".cerrado");
		
		cerrado.animate({height:"57px"}, "slow", function(){
			var lis = $(this).find("ul li");
			// que se vean 3 nada más
			for (var i=0; i<lis.size(); i++){
				if (i<3) $(this).find("ul li:eq("+i+")").show();
				else $(this).find("ul li:eq("+i+")").hide();
			}
		});
		
		$(this).html("Ver Más...[+]");
		
		// cerrar el submenu de celebraciones
		if (cerrado.parent().find("span").attr("class") == "theme_3" && celebracionesSubmenu != null) {
			celebracionesSubmenu.removeClass("selected");
			$("#content_left #sub_sub_submenu").fadeOut("slow");
		}			
	
		return false;
	});
	
	// over de formas de pago
	$(".navigation_themes #formas_de_pago").hover(function(e){
		var posX = (e.pageX+10)+"px";
		var posY = (e.pageY-45)+"px";
		if (!('\v' == 'v')) {
			$("#formas_pago_pop").css({left: posX, top: posY}).fadeIn("slow");
		} else {
			$("#formas_pago_pop").css({left: posX, top: posY}).show();
		}
	}, function(e){
		if (!('\v' == 'v')) {
			$("#formas_pago_pop").fadeOut("fast");
		} else {
			$("#formas_pago_pop").hide();
		}
	});
	
	$(".navigation_themes #formas_de_pago").mousemove(function(e){
		var posX = (e.pageX+10)+"px";
		var posY = (e.pageY-45)+"px";
		if (!('\v' == 'v')) {
			$("#formas_pago_pop").css({left: posX, top: posY}).fadeIn("slow");
		} else {
			$("#formas_pago_pop").css({left: posX, top: posY}).show();
		}
	});
		
	$(".navigation_themes #formas_de_pago").click(function(e){
		return false;
	});
	
	
	// celebraciones
	var celebracionesSubmenu = null;
	var themes3 = $("#content_left ul.navigation_themes li span.theme_3").parent().find("ul li a");
	themes3.click(function(e){
		
		
		var posXLoad = $(this).position().left + 140 + "px";
		var posYLoad = $(this).position().top + 8 + "px";
		$("#content_left #sub_sub_preload").css({left:posXLoad, top:posYLoad}).fadeIn("fast");
		
		// obtenemos el id de celebracion
		var id = $(this).attr("href").split("/celebraciones/")[1].split("/")[0];
		var name = jQuery.trim($(this).html());
		
		$.ajax({
			url: "ajax/celebraciones.php",
  			type: "POST",
			data: "celebracion="+id+"&name="+name,
  			success: function(htmlMenu){
				$("#content_left #sub_sub_preload").fadeOut("slow");
				$("#content_left #sub_sub_submenu").html(htmlMenu).fadeIn("slow");
  			}
		});

		themes3.removeClass("selected");
		$(this).addClass("selected");
		var posX = $(this).position().left + 155 + "px";
		var posY = $(this).position().top - 22 + "px";
		$("#content_left #sub_sub_submenu").css({left:posX}).animate({top:posY}, "normal");
		celebracionesSubmenu = $(this);
		return false;
	});
	
	$(window).resize(function(){
		if (celebracionesSubmenu != null){
			// recolocamos el submenú de celebraciones
			var posX = celebracionesSubmenu.position().left + 155 + "px";
			var posY = celebracionesSubmenu.position().top - 22 + "px";
			$("#content_left #sub_sub_submenu").animate({left:posX, top:posY}, "normal");
		}
	});

	
	
	// over de formas de pago
	$("#main_navigation #main_menu #formas_de_pago_up").hover(function(e){
		var posX = (e.pageX-180)+"px";
		var posY = (e.pageY-45)+"px";
		if (!('\v' == 'v')) {
			$("#formas_pago_pop_up").css({left: posX, top: posY}).fadeIn("slow");
		} else {
			$("#formas_pago_pop_up").css({left: posX, top: posY}).show();
		}
	}, function(e){
		if (!('\v' == 'v')) {
			$("#formas_pago_pop_up").fadeOut("fast");
		} else {
			$("#formas_pago_pop_up").hide();
		}
	});
	
	$("#main_navigation #main_menu #formas_de_pago_up").mousemove(function(e){
		var posX = (e.pageX-180)+"px";
		var posY = (e.pageY-45)+"px";
		if (!('\v' == 'v')) {
			$("#formas_pago_pop_up").css({left: posX, top: posY}).fadeIn("slow");
		} else {
			$("#formas_pago_pop_up").css({left: posX, top: posY}).show();
		}
	});
		
	$("#main_navigation #main_menu #formas_de_pago_up").click(function(e){
		return false;
	});
	
	
	// preload genérico de imágenes
	if (!('\v'=='v')){
		$('#content_center img:not(.no_preload)').preload({
	    	placeholder:'css/css_img/loading.gif',
		    notFound:'css/css_img/loading_error.gif'
		});	
	}	
	
	// arreglos ie de los clicks
	$("#content_center .product a:not(.carrito)").click(function(e){
		document.location.href = $(this).attr("href");
		return false;
	});
	
	// login
	var loginOver = false;
/*	$("#mi_cuenta_login").hover(function(e){
		loginOver = true;
		$("#login").fadeIn('normal');
	}, function(e){
		loginOver = false;
		window.setTimeout(function(){ if (!loginOver) $("#login").fadeOut('normal'); }, 200);
	});
	$("#mi_cuenta_login").click(function(e){
		return false;
	});*/
	
	$("#mi_cuenta_login").click(function(e){
		loginOver = true;
		$("#login").fadeIn('normal');
		return false;
	});
	
	$("#login .login_close").click(function(e){
		loginOver = false;
		$("#login").fadeOut('normal');
		return false;
	});
	
/*	$("#login").hover(function(e){
		loginOver = true;
	}, function(e){
		loginOver = false;
		window.setTimeout(function(){ if (!loginOver) $("#login").fadeOut('normal'); }, 200);
	});*/
	
	$("#forget_password").click(function(e){
		// mostramos la cartela del password
		showPopUp("login_msg_olvide");
		return false;
	});
	
	$("#login_msg_error a.olvide").click(function(e){
		// mostramos la cartela del password y ocultamos esta
		$("#login_msg_error").fadeOut("fast");
		showPopUp("login_msg_olvide");
		return false;
	});
	
	$(".login_msg .login_msg_cerrar").click(function(e){
		$(this).parent().fadeOut("fast");
		// si se trata del mensaje de error del login se muestra la capa
		var idPopUp = $(this).parent().attr("id");
		if (idPopUp == "login_msg_error") $("#mi_cuenta_login").mouseover();
		
		closePopUp();
		return false;
	});
	
	// login ajax
	var form_login_sending = false;
	
	$("#form_login").submit(function() {
		if (!form_login_sending) loginUser();
		return false;
	});
	
	function loginUser() {
		// recogemos los valores
		var usuarioValue = $('#login_usuario').val();
		var passwordValue = $('#login_password').val();
		var ajaxUrl = BASE+"ajax/login.php";
		var ajaxData = "usuario="+usuarioValue+"&password="+passwordValue;
		
		// los enviamos por POST
		
		form_login_sending = true;
		$("#header #login .ajax-loader").fadeIn("fast");
		$("#login #login_submit").animate({opacity: 0}, "slow", function(){
			$.ajax({
		        type:	"POST",
		        url:	ajaxUrl,
		        data:	ajaxData,
		        success: function(data){
					$("#header #login .ajax-loader").fadeOut("normal");
					$("#login #login_submit").animate({opacity: 1}, "normal", function(){
						
			        	envioOk = data.indexOf("OK-")!=-1;
			        	data = (envioOk)? data.split("OK-")[1] : data.split("ERROR-")[1];
			        	errorCampos = data.indexOf("|")!=-1;
						$("#login input").removeClass("error");
			        	$("#login label").removeClass("error");//.css('color','#000000');
			        	if (errorCampos){
				        	// error en la validación
			        		camposError = data.split("|")[1].split(",");
			        		data = data.split("|")[0];
			        		for (var i=0; i<camposError.length; i++){
								var campo = $('#'+camposError[i]);
									campo.addClass("error").css({opacity:0}).animate({opacity:1}, "slow");
									campo.prev().addClass("error").css({opacity:0}).animate({opacity:1}, "slow");
			        		}
			        	}
			        	
			        	if (envioOk) {
			        		// se ha logado, lo mostramos
							var posLoginStatus = 488;
							var widthShopPrice = 38 - $("#form_navigation #user_navigation #shop_price").width();
							if (widthShopPrice<0) posLoginStatus += widthShopPrice;
							posLoginStatus += "px";
							
							var datos = data.split("*");
							
							var loginStatusCont = '<ul><li>'+datos[0]+' '+datos[1]+'</li><li class="logout"><a href="'+BASE+'logout">Salir</a></li><li class="mi_cuenta"><a href="'+BASE+'mi-cuenta">Mi Cuenta</a></li></ul>';

							$("#header #login").fadeOut("fast", function(){
								$("#login_status").html(loginStatusCont).css({left:posLoginStatus}).show();
								$("#login_status li.logout a").click(function() {
									if (!form_logout_sending) logoutUser();
									return false;
								});	
							});
							
							// recargamos la página cuando es necesario
							if (typeof ajaxReload != "undefined" && ajaxReload == true) window.location.reload();
			        	} else {
							// mostramos el error
							if (!errorCampos) showPopUp("login_msg_error");
			        	}
						
						form_login_sending = false;
			        });
		      	}
			});
		});
	}
	
	
	// olvide contraseña ajax
	var form_olvide_sending = false;
	
	$("#form_olvide").submit(function() {
		if (!form_olvide_sending) forgetPassword();
		return false;
	});
	
	function forgetPassword() {
		// recogemos los valores
		var emailValue = $('#olvide_email').val();
		var ajaxUrl = BASE+"ajax/forget_password.php";
		var ajaxData = "email="+emailValue;
		
		// los enviamos por POST
		
		form_olvide_sending = true;
		$("#login_msg_olvide .msg").html("");
		$("#header #login_msg_olvide .ajax-loader").fadeIn("fast");
		$("#login_msg_olvide #olvide_submit").animate({opacity: 0}, "slow", function(){
			$.ajax({
		        type:	"POST",
		        url:	ajaxUrl,
		        data:	ajaxData,
		        success: function(data){
					$("#header #login_msg_olvide .ajax-loader").fadeOut("normal");
					$("#login_msg_olvide #olvide_submit").animate({opacity: 1}, "normal", function(){
						
			        	envioOk = data.indexOf("OK-")!=-1;
			        	data = (envioOk)? data.split("OK-")[1] : data.split("ERROR-")[1];
			        	errorCampos = data.indexOf("|")!=-1;
						$("#login_msg_olvide input").removeClass("error");
			        	$("#login_msg_olvide label").removeClass("error");
			        	if (errorCampos){
				        	// error en la validación
			        		camposError = data.split("|")[1].split(",");
			        		data = data.split("|")[0];
			        		for (var i=0; i<camposError.length; i++){
								var campo = $('#'+camposError[i]);
									campo.addClass("error").css({opacity:0}).animate({opacity:1}, "slow");
									campo.prev().addClass("error").css({opacity:0}).animate({opacity:1}, "slow");
			        		}
			        	}
			        	
			        	if (envioOk) {
			        		// se ha enviado, avisamos
							$("#login_msg_olvide .msg").html("Se han enviado<br />los datos a tu email.");
			        	} else {
							// mostramos el error
							if (!errorCampos) {
								if (data == "0") $("#login_msg_olvide .msg").html("No hay ningún usuario<br />con ese email.");
								if (data == "1") $("#login_msg_olvide .msg").html("Ha ocurrido un error.<br />Lo sentimos.");
							}
			        	}
						
						form_olvide_sending = false;
			        });
		      	}
			});
		});
	}
	
	// logout ajax
	var form_logout_sending = false;
	
	$("#login_status li.logout a").click(function() {
		if (!form_logout_sending) logoutUser();
		return false;
	});
	
	function logoutUser() {
		// recogemos los valores
		var ajaxUrl = BASE+"ajax/logout.php";
		var ajaxData = "";
		
		// los enviamos por POST
		form_logout_sending = true;
		$.ajax({
	        type:	"POST",
	        url:	ajaxUrl,
	        data:	ajaxData,
	        success: function(data){
				
	        	envioOk = data.indexOf("OK-")!=-1;
	        	data = (envioOk)? data.split("OK-")[1] : data.split("ERROR-")[1];
		        	
	        	if (envioOk) {
					// ocultamos la capa
					$("#login_status").fadeOut("fast");
					// recargamos la página cuando es necesario
					if (typeof ajaxReload != "undefined" && ajaxReload == true) window.location.reload();
				} else {
					// mostramos el error
					alert("error al hacer el logout")
		        }
					
				form_logout_sending = false;
	      	}
		});
	}
	
	// añadir al carrito de la compra
	var form_ficha_sending = false;
	
	$("#ficha .acciones a.anadir_carrito").click(function() {
		if (!form_ficha_sending) addToCart();
		return false;
	});
	
	function addToCart() {
		// recogemos los valores
		var idValue = $('#campo_id').val();
		var tallaValue = $('#campo_talla').val();
		var colorValue = $('#campo_color').val();
		var unidadesValue = $('#campo_cantidad').val();
		var ajaxUrl = BASE+"ajax/add_to_cart.php";
		var ajaxData = "id="+idValue+"&size="+tallaValue+"&color="+colorValue+"&quantity="+unidadesValue;
		
		// los enviamos por POST
		
		form_ficha_sending = true;
		$("#ficha .acciones #anadir_carrito_msg").fadeIn("fast");
		$("#ficha .acciones #anadir_carrito_msg img").css({opacity:1});
		$("#ficha .acciones #anadir_carrito_msg p").hide();
		$("#ficha .acciones a.anadir_carrito").fadeOut("slow", function(){
			var isIE = '\v'=='v';
			if (isIE) $(this).show().css({opacity:0});
			
			$.ajax({
		        type:	"POST",
		        url:	ajaxUrl,
		        data:	ajaxData,
		        success: function(data){
					$("#ficha .acciones a.anadir_carrito").fadeIn("normal", function(){
						var isIE = '\v'=='v';
						if (isIE) $(this).show().css({opacity:1});
						
			        	envioOk = data.indexOf("OK-")!=-1;
			        	data = (envioOk)? data.split("OK-")[1] : data.split("ERROR-")[1];
			        	errorCampos = data.indexOf("|")!=-1;
						$("#ficha input").removeClass("error");
			        	$("#ficha label").removeClass("error");
			        	if (errorCampos){
				        	// error en la validación
			        		camposError = data.split("|")[1].split(",");
			        		data = data.split("|")[0];
			        		for (var i=0; i<camposError.length; i++){
								var campo = $('#'+camposError[i]);
									campo.addClass("error").css({opacity:0}).animate({opacity:1}, "slow");
									campo.prev().addClass("error").css({opacity:0}).animate({opacity:1}, "slow");
			        		}
			        	}
			        	
			        	if (envioOk) {
			        		// se ha enviado, avisamos
							$("#ficha .acciones #anadir_carrito_msg").fadeIn("fast");
							$("#ficha .acciones #anadir_carrito_msg img").animate({opacity: 0}, "slow");
							$("#ficha .acciones #anadir_carrito_msg p").fadeIn("fast");
							// y también hay que poner el precio nuevo en todos los sitios
							$("#header #user_navigation #shop_price").hide().html("("+data+" €)").fadeIn("slow");
						} else {
							// mostramos el error
							if (!errorCampos) {
								alert("ha ocurrido un error");
							}
						}
						
						form_ficha_sending = false;
			        });
		      	}
			});
		});
	}
	
	// click sobre el campo de texto del buscador
	$("#busqueda_texto").focus(function(){
		if ($(this).val() == "Búsqueda rápida") $(this).val("");
	});
	$("#busqueda_texto").blur(function(){
		if ($(this).val() == "") $(this).val("Búsqueda rápida");
	});
});	


	var currentPopUpId = null;
	
	function showPopUp(id){
		var popUp = $("#"+id);
		var posX = Math.round(($(window).width()-339)/2)+"px";
		var posY = Math.round(($(window).height()-205)/2 + $(window).scrollTop())+"px";
		
		currentPopUpId = id;
		// al hacer resize o scroll se recoloca
		// ponemos capa blanca
		var z = popUp.css("zIndex");
			z = (z == undefined)? 200 : parseInt(z)-1;
		if($("#tapa").size()==0) $("body").append('<div id="tapa" style="position:absolute; z-index:'+z+'; top: 0px; left:0px; width:'+$(window).width()+'px; height:'+$(document).height()+'px; background-color:#FFFFFF; "></div>');
		
		popUp.css({ left: posX, top: posY }).fadeIn("slow");
		$("#tapa").css({opacity:0}).fadeTo("slow", .75);
		
		$(window).resize(resizePopUp);
		$(window).scroll(resizePopUp);
	}
	
	function closePopUp(){
		// quitamos el evento de recolocarse
		// y ocultamos la capa blanca
		$(window).unbind("resize", resizePopUp);
		$(window).unbind("scroll", resizePopUp);
		$("#tapa").remove();
	}
	
	function resizePopUp(){
		var popUp = $("#"+currentPopUpId);
		var posX = Math.round(($(window).width()-339)/2)+"px";
		var posY = Math.round(($(window).height()-205)/2 + $(window).scrollTop())+"px";
		popUp.css({ left: posX, top: posY });
		$("#tapa").css({ width:$(window).width()+"px" , height:$(document).height()+"px" });
	}
