$(function(){

	resolucao();

	hs.graphicsDir = RAIZ+'highslide/graphics/';
	hs.align = 'center';
	hs.transitions = ['expand', 'crossfade'];
	hs.outlineType = 'rounded-white';
	hs.wrapperClassName = 'controls-in-heading';
	hs.fadeInOut = true;
	hs.showCredits = false;

	// Add the controlbar
	if (hs.addSlideshow) hs.addSlideshow({
		slideshowGroup: 'produtos',
		interval: 5000,
		repeat: false,
		useControls: true,
		fixedControls: false,
		overlayOptions: {
			opacity: 1,
			position: 'top center',
			hideOnMouseOut: false
		}
	});

	// Tabs
	$(".tabs a").click(function(){
		$(".tabs li").removeClass("active");
		$(this).parents("li").addClass("active");
		var href = $(this).attr("href");
		var target = href.slice();
		$(".tabs-boxes").hide();
		$(target).show();
		return false;
	});
	$("#tab-caracteristicas, #tab-opiniao").hide();
/*
	// Background Links do Menu
	$("#menu li a").mouseover(function(){
		$(this).parents("li").addClass("active");
	}).mouseout(function(){
		$(this).parents("li").removeClass("active");
	});
	$("#all-deps").mouseover(function(){
		$("#menu li.all").addClass("active");
	}).mouseout(function(){
		$("#menu li.all").removeClass("active");
	});
*/
	// Layer de todos os departamentos para IE6
	if($.browser.msie && parseInt($.browser.version) < 7) {
		$("#menu li.all").mouseover(function(){
			$("#all-deps").addClass("active");
		}).mouseout(function(){
			$("#all-deps").removeClass("active");
		});
	}

	// Retirando bordas extras
	$("#submenu h3 + ul, .products-lists:last").css("border","none");

	// Limpando Values dos Submits
	$(":submit:not(.noClear)").attr("value","");

	// Limpando Focus
	$(":text").inputValues();

	// Layer Recomendar
	$("#recomendar,#fr-cancel").click(function(){
		$("#form-recomendar").toggle();
		return false;
	});

	// envia form de recomendar produto
	$('#fr-submit').click(function(){

		$('#form-recomendar').hide();
		$('#loading-recomendar').show();

		var erro			= '';
		var nome			= $('#fr-nome').val();
		var email			= $('#fr-email').val();
		var nome_amigo		= $('#fr-nome-amigo').val();
		var email_amigo		= $('#fr-email-amigo').val();
		var mensagem		= $('#fr-msg').val();
		var cod_produtos	= $('#fr-produto').val();

		var altura			= 110;

		if (!nome) {
			erro += 'Informe seu nome!<br>';
		}
		if (!email) {
			erro += 'Informe seu e-mail!<br>';
			altura += 10;
		} else if (!validaEmail(email)) {
			erro += 'E-mail inv&aacute;lido!<br>';
			altura += 10;
		}
		if (!nome_amigo) {
			erro += 'Informe o nome do seu amigo!<br>';
			altura += 10;
		}
		if (!email_amigo) {
			erro += 'Informe o e-mail do seu amigo!<br>';
			altura += 10;
		} else if (!validaEmail(email_amigo)) {
			erro += 'E-mail do amigo inv&aacute;lido!<br>';
			altura += 10;
		}

		if (erro) {
			alertaPadrao('Erro!', erro, 'erro', altura, 250);
			$('#form-recomendar').show();
			$('#loading-recomendar').hide();
			$('#fr-nome').focus();
		} else {
			$.post(RAIZ+"_inc/recomendar.inc.php",{nome:nome,email:email,nome_amigo:nome_amigo,email_amigo:email_amigo,mensagem:mensagem,cod_produtos:cod_produtos},function(){
				$("#form-recomendar").html("<p>Recomenda&ccedil;&atilde;o enviada com sucesso!</p>");
				$('#form-recomendar').css(
					{
						color:'#666',
						paddingTop:'20px',
						paddingBottom:'15px',
						textAlign:'center'
					}
				)
				$("#form-recomendar").show();
				$("#loading-recomendar").hide();
			});
		}

		return false;
	});

	// cadastra para receber newsletter
	$('#news-form').submit(function() {

		$('#news-form').hide();
		$('#loading-newsletter').show();

		var erro 			= '';
		var cod_categorias	= $('#news_cod_categorias').val();
		var email			= $('#nf-key').val();
		if (!email || email == 'E-mail') {
			erro += 'Preencha o campo e-mail!';
		} else if (!validaEmail(email)) {
			erro += 'E-mail inv&aacute;lido!';
		}

		if (erro) {
			alertaPadrao('Erro!', erro, 'erro', 110, 250);
			$('#nf-key').focus();
			$('#news-form').show();
			$('#loading-newsletter').hide();
		} else {
			$.post("_inc/newsletter.inc.php",{email:email,cod_categorias:cod_categorias},function(data){
				$("#news-form").html("<p>Cadastro efetuado com sucesso, obrigado!</p>");
				$('#news-form').css(
					{
						color:'#666',
						paddingTop:'20px',
						paddingBottom:'15px',
						textAlign:'center'
					}
				)
				$("#news-form").show();
				$("#loading-newsletter").hide();
			});
		}

		return false;
	});

	// Select de busca
	$('select#sel-busca-filtro').change(function(){
		var order_by = $('select#sel-busca-filtro option:selected').val();
		if (order_by) {
			if(window.location.href.indexOf("?")>0){
				window.location.href += "&order_by="+order_by;
			}else{
				window.location.href += "?order_by="+order_by;
			}
		}
	});

	$("#lnk-amnesia").click(function(){
		$("#amnesia").toggle();
		return false;
	});

	$(".lnk-detalhes").click(function(){
		var target = $(this).parents(".ped-body").children('.ped-detalhes');
		$(".ped-detalhes:visible").not(target).hide();
		$(".lnk-detalhes").not(this).text("Ver Detalhes").removeClass("on").addClass("off");
		if ($(this).text() == "Ver Detalhes") {
			$(this).text("Esconder Detalhes");
			$(this).removeClass("off").addClass("on");
		} else {
			$(this).text("Ver Detalhes");
			$(this).removeClass("on").addClass("off");
		}
		target.toggle();
		return false;
	});

	$("#topicos h3 a").click(function(){
		var target = $(this).parents("h3").next('div.top-info');
		$("div.top-info:visible").not(target).slideUp();
		target.slideToggle();
		return false;
	});

});

var resizeTimer = null;
$(window).bind('resize', function() {
	if (resizeTimer) clearTimeout(resizeTimer);
	resizeTimer = setTimeout(resolucao, 100);
});

// Acertar paddings do menu
function resolucao(){
	var dWidth = $(window).width();
	var alldeps = $("#all-deps ul li a");
	if(dWidth < 960){
		$("#menu li a").not(alldeps).css({ padding:"0 0 0 1px", fontSize: "10px" });
		$("#menu li[class=all] a").not(alldeps).css({ padding:"4px 15px 0 2px" });
		$("#menu li[class=all] .arrow").css({ right:"0px" });
	} else if(dWidth < 1030){
		$("#menu li a").not(alldeps).css({ padding:"0 6px 0 9px", fontSize: "11px" });
		$("#menu li[class=all] a").not(alldeps).css({ padding:"4px 29px 0 15px" });
		$("#menu li[class=all] .arrow").css({ right:"5px" });
	} else if(dWidth < 1290) {
		$("#menu li a").not(alldeps).css({ padding:"0 20px", fontSize: "11px" });
		$("#menu li[class=all] a").not(alldeps).css({ padding:"4px 32px 0 18px" });
		$("#menu li[class=all] .arrow").css({ right:"10px" });
	} else if(dWidth > 1290) {
		$("#menu li a").not(alldeps).css({ padding:"0 27px", fontSize: "11px" });
		$("#menu li[class=all] a").not(alldeps).css({ padding:"4px 40px 0 26px" });
		$("#menu li[class=all] .arrow").css({ right:"10px" });
	}
}

function Bookmark(title,url) {
	if (window.sidebar) {
		// Firefox
		window.sidebar.addPanel(title,url,"");
	} else if(window.external) {
		// IE Explorer
		window.external.AddFavorite(url,title);
	} else if(window.opera && window.print) {
		// Opera Hotlist
		return true;
	}
}


// Inputs Focus and Blur (Ex.: $(elements).inputValues();) -----------------------------------------------
$.fn.inputValues = function() {
	return this.focus(function() {
		if(this.id == "TxtRua"){
			this.value = this.value;
		}
		else if(this.id == "TxtBairro"){
			this.value = this.value;
		}
		else if(this.value == this.defaultValue) {
			this.value = "";
		}
	}).blur(function() {
		if(!this.value.length) {
			this.value = this.defaultValue;
		}
	});
};

// valida e-mail
var validaEmail = function(s) {
	var regexpEmail = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/;
	return regexpEmail.test(s);
}; // fim validaEmail

// alerta padrão
// função que cria um <a> on the fly para exibir um alerta
// m2brDialog
var alertaPadrao = function(titulo, msg, tipo, altura, largura) {
	$('body').append('<a href="#" id="alerta-padrao"></a>');
	$('#alerta-padrao').m2brDialog({
			draggable: true,
			texto: msg,
			tipo: tipo,
			titulo: titulo,
			altura: altura,
			largura: largura,
			botoes: {
				1: {
					label: 'Fechar',
					tipo: 'fechar'
				}
			}
	});
	$('#alerta-padrao')
		.click()
		.remove();
}; // fim alertaPadrao

function isValidCreditCardNumber(cardNumber, cardType){
    var isValid = false;
    var ccCheckRegExp = /[^\d ]/;
    isValid = !ccCheckRegExp.test(cardNumber);
    if (isValid){
        var cardNumbersOnly = cardNumber.replace(/ /g,"");
        var cardNumberLength = cardNumbersOnly.length;
        var lengthIsValid = false;
        var prefixIsValid = false;
        var prefixRegExp;
        switch(cardType){
            case "mastercard":
                lengthIsValid = (cardNumberLength == 16);
                prefixRegExp = /^5[1-5]/;
            break;
            case "visa":
                lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
                prefixRegExp = /^4/;
            break;
            case "amex":
                lengthIsValid = (cardNumberLength == 15);
                prefixRegExp = /^3(4|7)/;
            break;
            default:
                prefixRegExp = /^$/;
                alert("Card type not found");
        }

        prefixIsValid = prefixRegExp.test(cardNumbersOnly);
        isValid = prefixIsValid && lengthIsValid;
    }
    if (isValid){
        var numberProduct;
        var numberProductDigitIndex;
        var checkSumTotal = 0;
        for (digitCounter = cardNumberLength - 1; digitCounter >= 0; digitCounter--){
            checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
            digitCounter--;
            numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
            for (var productDigitCounter = 0; productDigitCounter < numberProduct.length; productDigitCounter++){
                checkSumTotal += parseInt(numberProduct.charAt(productDigitCounter));
            }
        }
        isValid = (checkSumTotal % 10 == 0);
    }

    return isValid;
}

