var initFormCadastro = function(){
	var $ = JQ;
	var $form = $('#form-cadastro');
	
	initMaskForm();
	
	// Tipo de pessoa (Juridica | Física)
	$('#form-cadastro input[name=tipo_pessoa]').change(function(){
		if($(this).val() == 'F'){
			$('#form-cadastro div.juridica').hide();
			$('#form-cadastro div.fisica').show();
		}
		else{
			$('#form-cadastro div.fisica').hide();
			$('#form-cadastro div.juridica').show();
		}
	});
	
	if($('#form-cadastro input[name=tipo_pessoa]').val() == 'F'){
		$('#form-cadastro div.fisica').show();
		$('#form-cadastro div.juridica').hide();
	}
	else{
		$('#form-cadastro div.juridica').show();
		$('#form-cadastro div.fisica').hide();
	}
	
	/*
	$('#form-cadastro input[name=nome_fantasia]').change(function(){
		$('#firstname').val('');
		$('#lastname').val('');
		
		var nome = $('#form-cadastro input[name=nome_fantasia]').val();
		nome = nome.split(' ');
		var first = nome[0];
		nome = nome.slice(1, nome.length);
		var last = IW.utils.implode(' ', nome);
		
		console.log(first + last);
	});
	*/
}

var initMaskForm = function(){
	var $ = JQ;
	$('input[name=telephone]').mask('(99) 9999-9999');
	$('input[name=telefone_comercial]').mask('(99) 9999-9999');
	$('input[name=celular]').mask('(99) 9999-9999');
	$('input[name=cpf]').mask('999.999.999-99');
	$('input[name=cnpj]').mask('999.999.999/9999-99');
	$('input[name=postcode]').mask('99999-999');
	$('input[name=nascimento]').mask('99/99/9999');
}

function valida_cpf(cpf){
      var numeros, digitos, soma, i, resultado, digitos_iguais;
      digitos_iguais = 1;
      if (cpf.length < 11)
            return false;
      for (i = 0; i < cpf.length - 1; i++)
            if (cpf.charAt(i) != cpf.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            numeros = cpf.substring(0,9);
            digitos = cpf.substring(9);
            soma = 0;
            for (i = 10; i > 1; i--)
                  soma += numeros.charAt(10 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            numeros = cpf.substring(0,10);
            soma = 0;
            for (i = 11; i > 1; i--)
                  soma += numeros.charAt(11 - i) * i;
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
}

function valida_cnpj(cnpj){
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
      digitos_iguais = 1;
      if (cnpj.length < 14 && cnpj.length < 15)
            return false;
      for (i = 0; i < cnpj.length - 1; i++)
            if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            tamanho = cnpj.length - 2
            numeros = cnpj.substring(0,tamanho);
            digitos = cnpj.substring(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            tamanho = tamanho + 1;
            numeros = cnpj.substring(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
}

var valida_cep = function(cep){
	var reg = new RegExp('[0-9]{5}-[0-9]{3}');
	return cep.match(reg);
}

var valida_ie = function(ie){
	var reg = new RegExp('[0-9]{9}');
	return ie.match(reg);
}

Validation.addAllThese([
    ['validate-ie', 'Insira um IE válido (somente números).', function(v) {
		return valida_ie(v);
    }],
    ['validate-cep', 'Insira um CEP válido (Ex.: 80000-000).', function(v) {
		return valida_cep(v);
    }]
]);

/* Carrinho */
var qty = function(id, dir){
	var form = $('form-carrinho');
	var input = $$('input.id-'+id);
	var valor = input[0].value * 1;
	if(dir == '+'){
		input[0].value = valor + 1;
		$('form-carrinho').submit();
	}
	else{
		if(input[0].value > 1){
			input[0].value = valor - 1;
			$('form-carrinho').submit();
		}
	}
}

var atualizaFrete = function(){
	JQ('#co-shipping-method-form').submit();
}

// Cálculo de frete
JQ(document).ready(function($){
	$('.prefixo-cep').keyup(function(){
		if($(this).val().length == 5){
			$('.sufixo-cep').val('');
			$('.sufixo-cep').focus();
		}
		$('#postcode').val($('.prefixo-cep').val() + $('.sufixo-cep').val());
	});
	$('.sufixo-cep').keyup(function(){
		if($(this).val().length == 3){
			$(this).next('input').focus();
		}
		$('#postcode').val($('.prefixo-cep').val() + $('.sufixo-cep').val());
	});
	$('#shipping-zip-form').submit(function(){
		if($('.prefixo-cep').val().length != 5 || $('.sufixo-cep').val().length != 3){
			alert('Digite corretamente o seu CEP. Ex: 80010-020');
			return false;
		}
	});
});
