/*
* Script genérico para o MKX E-commerce 4.0
*/
$(document).ready(function() {
	/*
	* Tooltip
	*/
	if ($("a.tooltip").length>0){
		$("a.tooltip[title]").tooltip('#tooltip');
	}
	
	/*
	* Links externos
	*/
	$("a[rel=external]").attr("target","_blank");
	$("a[rel=external]").addClass ("external");	
	
	/*
	* Hover nos botoes IE6
	*/	
	if ($.browser.msie && $.browser.version<7){
		$("label.button input[type=submit]").mouseover(function () {
			if ($(this).attr("disabled") == ""){
				$(this).css("background-position","0 -37px");
			}
		});
		$("label.button input[type=submit]").mouseout(function () {
			if ($(this).attr("disabled") == ""){
				$(this).css("background-position","0 0");
			}
		});
	}
	
	/*
	* Image Zoom, Iframe
	*/
 	$("a.zoom").fancybox({ 
		'callbackOnShow' : function() {	
			$('ul#fancy_thumbs').html($('ul#thumbs').html());
			$('ul#fancy_thumbs li a').fancybox();
			$('a.zoom').fancybox({'overlayShow':true, 'zoomSpeedIn':600, 'zoomSpeedOut':500, 'easingIn':'easeOutBack', 'easingOut':'easeInBack'});
		},
		'overlayShow'	: true,
		'zoomSpeedIn'	: 600,
		'zoomSpeedOut'	: 500,
		'easingIn'		: 'easeOutBack',
		'easingOut'		: 'easeInBack'
	});	
	$("a.iframe").fancybox({
		'hideOnContentClick': false,
		'frameWidth': 800,
		'frameHeight': 600,
		'centerOnScroll': true
	});
	
	/*
	* Pesquisa
	*/
	$("form#form-search-header label.search input").autocomplete($("form#form-search-header").attr("action"), { extraParams: { category: function() { return $("form#form-search-header label.search-location select").val(); }	},
		formatItem: function(data, i, n, value) {
			var data = data.toString();	var name = data.split(",*,")[0]; var img = data.split(",*,")[1]; var url = data.split(",*,")[2];
			if (name.length>35){ name = name.substring(0,35)+"...";	}
			return "<a href='"+url+"' title='"+name+"'><img src='" + img + "'/> " + name + "</a>";
		}, multipleSeparator: "|*|", minChars: 3, max: 5, scrollHeight: 300, width: 270, selectFirst : false, cacheLength:1 });	
	$("form#form-search-header label.search input").result(	function(event, data, formatted) {	var data = data.toString();	var url = data.split(",*,")[2];	window.location = url; });	
	$("form#form-search-header label.search-location select").change(function(){ $("form#form-search-header label.search input").flushCache(); });

	$("form#form-search-footer label.search input").autocomplete($("form#form-search-footer").attr("action"), { extraParams: { category: function() { return $("form#form-search-footer label.search-location select").val(); }	},
		formatItem: function(data, i, n, value) {
			var data = data.toString();	var name = data.split(",*,")[0]; var img = data.split(",*,")[1]; var url = data.split(",*,")[2];
			if (name.length>35){ name = name.substring(0,35)+"...";	}
			return "<a href='"+url+"' title='"+name+"'><img src='" + img + "'/> " + name + "</a>";
		}, multipleSeparator: "|*|", minChars: 3, max: 5, scrollHeight: 300, width: 270, selectFirst : false, cacheLength:1 });	
	$("form#form-search-footer label.search input").result(	function(event, data, formatted) {	var data = data.toString();	var url = data.split(",*,")[2];	window.location = url; });	
	$("form#form-search-footer label.search-location select").change(function(){ $("form#form-search-footer label.search input").flushCache(); });

	/*
	* Ordenação dos produtos
	*/
	$("form#order-by select").change(function(){
		var name = $(this).attr('name');
		var url = $(this).attr('class');
		var value = $(this).val();
		if (value!=""){
			window.location.href = url+"?"+name+"="+value;
		} else {
			window.location.href = url;
		}
	});

	/*
	* Informar nível da senha
	*/
	$("form#form-person-insert label.pass input#pass").jpassword({  
		lang: {  
			please: "Verificando a complexidade da senha...",  
			low: "Fraca.",  
			correct: "Boa.",  
			high: "Forte.",  
			length: "",  
			number: "",  
			uppercase: "",  
			lowercase: "",  
			punctuation: "",  
			special: ""
		}
	}); 
	$("form#form-company-insert label.pass input#pass2").jpassword({  
		lang: {  
			please: "Verificando a complexidade da senha...",  
			low: "Fraca.",  
			correct: "Boa.",  
			high: "Forte.",  
			length: "",  
			number: "",  
			uppercase: "",  
			lowercase: "",  
			punctuation: "",  
			special: ""
		}
	}); 
	
	/*
	* Imagem de segurança
	*/
	$("a#reload-image").click(function(){
		$("img#secure-image").attr("src", $(this).attr("rel")+"/secure-image?sid=" + Math.random() );
	});	
	
	/*
	* Estado / Cidade
	*/
	var cityPos = 0;
	$("label.state select").change(function(){
		var pos = $("label.state select").index(this);
		if ($(this).val()==""){
			$( $("label.city").get(pos) ).children("input[type*=text]").attr("disabled", "disabled");
			$( $("label.city").get(pos) ).children("input[type*=text]").val("Selecione o Estado");
			$( $("label.city").get(pos) ).children("input[type*=hidden]").val("");
		} else {
			$( $("label.city").get(pos) ).children("input[type*=text]").attr("disabled", "");
			$( $("label.city").get(pos) ).children("input[type*=text]").val("");
			$( $("label.city").get(pos) ).children("input[type*=hidden]").val("");
		}
	});
	$("label.city input[type*=text]").focus(function(){
		cityPos = $("label.city input[type*=text]").index(this);
	});
	$("label.city input[type*=text]").keyup(function(){
		var pos = $("label.city input").index(this);
		$( $("label.city").get(pos) ).children("input[type*=hidden]").val("");
	});
	for (var i=0; i<$("label.state").length;i++){
		var selectState = $( $("label.state").get(i) ).children("select").get(0);
		var cityName = $( $("label.city").get(i) ).children("input[type*=text]").get(0);
		var cityId = $( $("label.city").get(i) ).children("input[type*=hidden]").get(0);
		if ($(selectState).val()==""){
			$(cityName).attr("disabled", "disabled");
			$(cityName).val("Selecione o Estado");
			$(cityId).val("");
		}
		$(cityName).autocomplete("fale-conosco", {
			extraParams: {
				stateId: function() {
					return $( $( $("label.state").get(cityPos) ).children("select").get(0) ).val(); 
				}
			},
			minChars: 0,
			max: 10,
			scrollHeight: 300,
			formatResult: function(data, value) {
				return value;
			}
		});	
		$(cityName).result(
			function(event, data, formatted) {
				var cityData = data.toString().split(",");
				$( $( $("label.city").get(cityPos) ).children("input[type*=hidden]").get(0) ).val(cityData[1]);
			}
		);	
	}
	
	/*
	* Popula os campos de endereço através do CEP
	*/
	$("form#form-person-insert label.zipcode input").blur(function(){
		var zipcode = $(this).val();
		$.ajax({
			type: "GET",
			url: "./novo-cadastro",
			data: "zipcode="+zipcode,
			success: function(res){
				var json = eval('(' + res + ')');
				$('label.address input').val(json.address);
				$('label.region input').val(json.region);
				$('label.state select').val(json.state_id); 
				$('label.city input[type*=hidden]').val(json.city_id);
				$('label.city input[type*=text]').val(json.city_name);
			}
		});
	});
	
	/*
	* Calcula o frete na página do produto
	*/
	$("form#form-product-carrier fieldset.zipcode label.button input").click(function(){
		setProductCarrier();
	});
	$("form#form-product-carrier").submit(function(){
		if($(this).valid()){
			setProductCarrier();
		}
		return false;
	});
	
	function setProductCarrier(){
		var zipcode = $("form#form-product-carrier fieldset.zipcode label.zipcode input").val();
		$("form#form-product-carrier fieldset.zipcode label.button").addClass("loading");
		$("form#form-product-carrier fieldset.carriers").html("");	
		var url = $("form#form-product-carrier fieldset.zipcode label.button input").attr("class");
		$.ajax({
			type: "GET",
			url: "./"+url,
			data: "zipcode="+zipcode,
			success: function(res){
				$("form#form-product-carrier fieldset.zipcode label.button").removeClass("loading");
				$("form#form-product-carrier fieldset.carriers").html(res);	
			}
		});
	}
	
	/*
	* Google página não encontrada
	*/
	$("input#goog-wm-sb").attr("value","");
	$("input#goog-wm-sb").attr("title","Pesquisa Google");
	
	/*
	* Scrool de imagens
	*/
	$('ul#thumbs').jcarousel({ horizontal: true, scroll:3 });
	
	/*
	* Duplica um elemento
	*/
	var nClones = $("input.rmclone").length;
	var elementClone = "";
	var classClone = "";	
	for (i=0;i<nClones;i++){
		elementClone = $("input.rmclone").get(i);
		classClone = $(elementClone).attr("class");
		if (classClone.indexOf("visible")==-1){
			$($("input.rmclone").get(i)).addClass("invisible");
			$($("input.rmclone").get(i)).removeClass("visible");
		}
	}
	$(".clone").click(function(){
		var targetColone = $(this).attr("value");
		unMask();
      	$("."+targetColone+":first").clone(true).insertAfter("."+targetColone+":last");
		$("."+targetColone+" input.rmclone").removeClass("invisible");
		setMask();
		$("form#form-address-insert").validate();
	});
	
	$(".rmclone").click(function(){
		var target = $(this).attr("value");
		var nElements = $("."+target).length;
		if (nElements==2){
			$("."+target+" input.rmclone").addClass("invisible");
		}
		if (nElements>1){						  
			$(this).parent().parent().remove();
		}
	});
	
	/*
	* Validações do formulário
	*/
	$("form").submit(function () {
		if($(this).valid()){
			$($(this).find("label.button input[type=submit]")).attr("disabled","disabled");
			$($(this).find("label.button input[type=submit]")).addClass("disabled");
			return true;
		} else {
			return false;
		}
	});
	if ($("form.visa-vbv").length>0){
		window.name="loja";
		var retorno;
	}
	
	/*
	* Limpa os parametros nulos da pesquisa
	*/
	$("form.form-search").submit(function (){
		if($(this).valid()){
			$(this).find(':input[value=""]').attr('disabled', true);
		} else {
			return false;
		}
	});
	
	/*
	* Mensagens de erro ou sucesso
	*/	
	function displayMessage($alert) {
		var alerttimer = window.setTimeout(function () {
			$alert.trigger('click');
		}, 8000);
		$alert.animate({height:'83px'}, 800)
		.click(function () {
			window.clearTimeout(alerttimer);
			$alert.animate({height: '0'}, 800);
		});
	}
	if ($('div#exception').length){
		displayMessage($('div#exception'));
	}
	if ($('div#sucess').length){
		displayMessage($('div#sucess'));
	}
	

	/*
	* Seta Minha primeira compra ou Já sou cadastrado no Login
	*/
	$("form#form-login label.zipcode input").focus(function(){
		setLoginOption("register");
	});
	$("form#form-login label.pass input").focus(function(){
		setLoginOption("login");	
	});
	$("form#form-login label.option input").focus(function(){
		setLoginOption($(this).val());
	});	
	function setLoginOption(val){
		$("form#form-login label.option input[value*="+val+"]").attr("checked","checked");
		if (val=="register"){
			$("form#form-login fieldset.login").addClass("disable");
			$("form#form-login fieldset.register").removeClass("disable");
			$("form#form-login fieldset.register input").select();
		} else {
			$("form#form-login fieldset.register").addClass("disable");
			$("form#form-login fieldset.login").removeClass("disable");
			$("form#form-login fieldset.login input").select();
		}
	}
	
	$("div#avaliacoes a[rel=showform]").click(function(){
		$("div#avaliacoes form").removeClass("invisible");
	});
	if (window.location.href.indexOf("#avaliacoes")!=-1){
		if ($("div#avaliacoes form label.name input").length>0){
			$("div#avaliacoes form").removeClass("invisible");
			$("div#avaliacoes form label.name input").get(0).focus();
		}
	}
	$("div#avaliacoes a.close").click(function(){
		$("div#avaliacoes form").addClass("invisible");
	});
	
	
	/*
	* Carrinho de compra
	*/
	/* alterar quantidade */
	$("form#form-purchase-list label.amount a").click(function(){
		var pos = $("label.amount a").index(this);
		$($("fieldset.purchase-list-content").get(pos)).addClass("loading");
		$("form#form-purchase-list input").attr("disabled","disabled");
		$("fieldset.buttons").addClass("loading");
		$("fieldset.buttons input").addClass("disabled");
		var purchaseListId =  $($("input[name*=list_id]").get(pos)).val();
		var amount =  $($("input[name*=amount]").get(pos)).val();
		$.ajax({
			type: "GET",
			url: "",
			data: "purchase_list_id="+purchaseListId+"&amount="+amount,
			success: function(res){
				$($("fieldset.purchase-list-content").get(pos)).removeClass("loading");
				$("form#form-purchase-list input").attr("disabled","");
				$("fieldset.buttons").removeClass("loading");
				$("fieldset.buttons input").removeClass("disabled");
				$("fieldset.buttons label.msg").removeClass("invisible");
				$("fieldset.carriers").html("");
				var json = eval('(' + res + ')');
				if (json.error!=undefined){
					alert(json.error);
				} else {
					if (json.giftPrice!=undefined){
						if (json.giftPrice>0){
							$("p#gift-price span strong").html(json.giftPriceFormat);
							$("p#gift-price").removeClass("invisible");
						} else {
							$("p#gift-price").addClass("invisible");
						}
					}
					$("p#total span strong").html(json.totalFormat);
					$($("label.value strong").get(pos)).html(json.itens[pos].subTotalFormat);
				}
			}
		});
	});
	/* presente */
	$("form#form-purchase-list label.gift input").change(function(){
		var pos = $("label.gift input").index(this);
		setGift(pos);
	});
	$("form#form-purchase-list label.gift a").click(function(){
		var pos = $("label.gift a").index(this);
		var checked = $("input[name*=gift]").get(pos).checked ? "" : "checked";
		$($("input[name*=gift]").get(pos)).attr("checked", checked);
		setGift(pos);
	});
	function setGift(pos){	
		$($("fieldset.purchase-list-content").get(pos)).addClass("loading");
		$("form#form-purchase-list input").attr("disabled","disabled");
		$("fieldset.buttons").addClass("loading");
		$("fieldset.buttons input").attr("disabled","disabled");
		$("fieldset.buttons").addClass("loading");
		var purchaseListId =  $($("input[name*=list_id]").get(pos)).val();
		var gift = $("input[name*=gift]").get(pos).checked ? 1 : 0;
		$.ajax({
			type: "GET",
			url: "",
			data: "purchase_list_id="+purchaseListId+"&gift="+gift,
			success: function(res){
				var json = eval('(' + res + ')');
				if (json.error!=undefined){
					alert(json.error);
				} else {
					if (json.gift_price!=undefined){
						if (json.gift_price==""){
							$("p#gift-price").addClass("invisible");
							$("p#total span strong").html(json.total);
						} else {
							$("p#gift-price span strong").html(json.gift_price);
							$("p#total span strong").html(json.total);
							$("p#gift-price").removeClass("invisible");
						}
					}
					$($("fieldset.purchase-list-content").get(pos)).removeClass("loading");
					$("form#form-purchase-list input").attr("disabled","");
					$("fieldset.buttons").removeClass("loading");
					$("fieldset.buttons input").attr("disabled","");
				}
			}
		});
	}
	/* remover item */
	$("form#form-purchase-list label.remove a").click(function(){
		var pos = $("label.remove a").index(this);
		$($("fieldset.purchase-list-content").get(pos)).addClass("loading");
		$("form#form-purchase-list input").attr("disabled","disabled");
		$("fieldset.buttons").addClass("loading");
		$("fieldset.buttons input").addClass("disabled");
		var purchaseListId =  $($("input[name*=list_id]").get(pos)).val();
		$.ajax({
			type: "GET",
			url: "",
			data: "purchase_list_id="+purchaseListId+"&remove=item",
			success: function(res){
				$($("fieldset.purchase-list-content").get(pos)).removeClass("loading");
				$("form#form-purchase-list input").attr("disabled","");
				$("fieldset.buttons").removeClass("loading");
				$("fieldset.buttons input").removeClass("disabled");
				$("fieldset.buttons label.msg").removeClass("invisible");
				$("fieldset.carriers").html("");
				var json = eval('(' + res + ')');
				if (json.error!=undefined){
					alert(json.error);
				} else {
					$("p#total span strong").html(json.totalFormat);
					$($("fieldset.purchase-list-content").get(pos)).remove();					
					if ($("fieldset.purchase-list-content").length==0){
						window.location.reload();
					}
				}
			}
		});
	});
	/* remover tudo */
	$("form#form-purchase-list label.clear input").click(function(){
		$("fieldset.purchase-list-content").addClass("loading");
		$("form#form-purchase-list input").attr("disabled","disabled");
		$("fieldset.buttons").addClass("loading");
		$("fieldset.buttons input").addClass("disabled");
		$.ajax({
			type: "GET",
			url: "",
			data: "remove=all",
			success: function(res){
				var json = eval('(' + res + ')');
				if (json.error!=undefined){
					alert(json.error);
				} else {
					window.location.reload();
				}
			}
		});
	});
	/* continuar comprando */
	$("form#form-purchase-list label.continue-buy input").click(function(){
		window.location.href = "./"; 
	});
	/* Clica no botao calcular frete */
	$("form#form-purchase-list fieldset.zipcode label.button").click(function(){
		if ($("input[name=calculate]").length>0){
			$("input[name=calculate]").val(1);
		}
	});	
	/* Clica no botao calcular cupom */
	$("form#form-purchase-list fieldset.coupon label.button").click(function(){
		if ($("input[name=calculate]").length>0){
			$("input[name=calculate]").val(1);
		}
	});	
	/* Muda a transportadora */
	$("fieldset.carriers label.option input[name=carrier]").click(function(){
		$("fieldset.carriers label.option").addClass("disabled");
		$(this).parent().removeClass("disabled");
		var carrier = $(this).val();
		var value = $(this).attr("title");
		$("fieldset.buttons").addClass("loading");
		$("fieldset.buttons input").attr("disabled","disabled");
		$.ajax({
			type: "GET",
			url: "",
			data: "carrier="+carrier+"&value="+value,
			success: function(res){
				$("fieldset.buttons").removeClass("loading");
				$("fieldset.buttons input").attr("disabled","");
				var json = eval('(' + res + ')');
				if (json.error!=undefined){
					alert(json.error);
				} else {
					$("p#total span strong").html(json.total);
				}
			}
		});
	});	
	/*Seleciona a forma de pagamento*/
	$("fieldset.payments label.payment input").click(function(){
		var pos = $("fieldset.payments label.payment input").index(this);
		var rate = $($("fieldset.payments input[type=hidden]").get(pos)).val();
		if (rate!=0) { 
			rate = "-"+rate; //desconto deve ser negativo
		} else {
			var parcels = $($("fieldset.payments label.parcels select").get(pos)).val();
			if (parcels!=""){
				var arr = parcels.split("_");
				if (arr.length==2){
					rate = arr[1];
				}
			}
		}
		setRate(rate);
	});
	$("fieldset.payments label.parcels select").change(function(){
		var pos = $("fieldset.payments label.parcels select").index(this);
		$($("fieldset.payments label.payment input").get(pos)).attr("checked","checked");
		var rate = 0;
		var arr = $(this).val().split("_");
		if (arr.length==2){
			rate = arr[1];
		} else {
			rate = $($("fieldset.payments input[type=hidden]").get(pos)).val();
		}
		setRate(rate);
	});
	/*Define o juros*/
	function setRate(rate){
		var total = $("input[name=total]").val();
		var totalFormat = $("input[name=totalFormat]").val();
		var carrierValue = $("input[name=carrierValue]").val();
		var giftPrice = 0;
		if ($("input[name=giftPrice]").length>0){
			giftPrice = $("input[name=giftPrice]").val();
		}
		if (rate!="0"){
			$("p#total").addClass("loading");
			$("p#total span strong").html("Calculando...");
			$.ajax({
				type: "GET",
				url: "",
				data: "total="+total+"&rate="+rate+"&carrierValue="+carrierValue+"&giftPrice="+giftPrice,
				success: function(res){
					var json = eval('(' + res + ')');
					if (json.error!=undefined){
						alert(json.error);
					} else {
						if (json.rate<0){
							$("p#rate").html("Desconto <span>R$ <strong>"+json.rateFormat+"</strong></span>");
						} else {
							$("p#rate").html("Juros <span>R$ <strong>"+json.rateFormat+"</strong></span>");
						}
						$("p#rate").removeClass("invisible");
						$("p#total span strong").html(json.totalFormat);
					}
					$("p#total").removeClass("loading");
				}
			});
		} else {
			$("p#rate").html("");
			$("p#rate").addClass("invisible");
			$("p#total span strong").html(totalFormat);
		}
	}

	/*
	* Mascáras nos campos
	*/
	setMask();
	
	/*
	* Abas
	*/
	$("#tabs").tabs({ fxFade: true, fxSpeed: "fast"});
	$("#tabs-2").tabs({ fxFade: true, fxSpeed: "fast"});
	$("#tabs-ajax").tabs({ fxFade: true, fxSpeed: "fast", remote: true });
});

function unMask(){
	$(".txt-date").unmask();
	$(".txt-date-my").unmask();
	$(".txt-time").unmask();
	$(".txt-phone").unmask();
	$(".txt-cnpj").unmask();
	$(".txt-cpf").unmask();
	$(".txt-zipcode").unmask();
	$(".creditcard").unmask();
	$(".valid-date").unmask();
}

function setMask(){
	$(".txt-date").mask("99/99/9999");
	$(".txt-date-my").mask("99/9999");
	$(".txt-time").mask("99:99");
	$(".txt-phone").mask("(99) 9999-9999");
	$(".txt-cnpj").mask("99.999.999/9999-99");
	$(".txt-cpf").mask("999.999.999-99");
	$(".txt-zipcode").mask("99999-999");
	$(".creditcard").mask("9999 9999 9999 9999");
	$(".valid-date").mask("99/99");
	$(".txt-coupon").mask("****-****-******");
}