$(document).ready(function(){
$.validator.addMethod("verificaCPF", function(value, element) {
    value = value.replace('.','');
    value = value.replace('.','');
    cpf = value.replace('-','');
    while(cpf.length < 11) cpf = "0"+ cpf;
    var expReg = /^0+$|^1+$|^2+$|^3+$|^4+$|^5+$|^6+$|^7+$|^8+$|^9+$/;
    var a = [];
    var b = new Number;
    var c = 11;
    for (i=0; i<11; i++){
        a[i] = cpf.charAt(i);
        if (i < 9) b += (a[i] * --c);
    }
    if ((x = b % 11) < 2) { a[9] = 0 } else { a[9] = 11-x }
    b = 0;
    c = 11;
    for (y=0; y<10; y++) b += (a[y] * c--);
    if ((x = b % 11) < 2) { a[10] = 0; } else { a[10] = 11-x; }
    if ((cpf.charAt(9) != a[9]) || (cpf.charAt(10) != a[10]) || cpf.match(expReg)) return false;
    return true;
}, "Informe um CPF válido."); // Mensagem padrão

$.validator.addMethod("dateBR", function(value, element) {
	if(value.length == 0) {
		return true;
	}
    //contando chars
   if(value.length!=10) return false;
   // verificando data
   var data        = value;
   var dia         = data.substr(0,2);
   var barra1      = data.substr(2,1);
   var mes         = data.substr(3,2);
   var barra2      = data.substr(5,1);
   var ano         = data.substr(6,4);
   if(data.length!=10||barra1!="/"||barra2!="/"||isNaN(dia)||isNaN(mes)||isNaN(ano)||dia>31||mes>12)return false;
   if((mes==4||mes==6||mes==9||mes==11)&&dia==31)return false;
   if(mes==2 && (dia>29||(dia==29&&ano%4!=0)))return false;
   if(ano < 1900)return false;
   return true;
}, "Informe uma data válida");  // Mensagem padrão
});

// Contador e limitador para TextArea.
function counterLimit(input, callback, limit){
	var count = limit - input.value.length;
	if(count < 0) {
		input.value = input.value.substring(0, limit);
	} else {
		callback.html(count);
	}
}

function validateSubmit(form, divSuccess, tag) {
	$.extend($.validator.messages, {
		required: "* CAMPO OBRIGATÓRIO",
		email: "* E-MAIL INVÁLIDO",
		minlength: "* O CAMPO DEVE CONTER {0} CARACTERES"
	});
	
	$(form).validate({
		errorPlacement: function(error, element) {
			error.appendTo( element.parent("td")); 
		}
	});
	
	var valid = true;
	$(':input', form).each(function(idx, ctx){
		valid = valid & validateInput(form, ctx);
	});
	
	
	if(valid) {
		$(form).attr('target', 'iframe_submit')
		var iframe = $('<iframe id="iframe_submit" name="iframe_submit" frameBorder="0"/>');
		$(divSuccess).html(iframe);
		iframe.attr('height','50');
		iframe.attr('scrolling','no');
		iframe.attr('marginheight','0');
		iframe.attr('marginwidth','0');
		iframe.attr('frameborder','0');
		iframe.css('overflow','hidden');
		iframe.css('overflow-x','hidden');
		iframe.css('overflow-y','hidden');
		iframe.css('width','100%');
		iframe.css('border','0');
		
		form.submit();
	}	
}

function wizardNext(btn,n) {
	$.extend($.validator.messages, {
        required: "* CAMPO OBRIGATÓRIO",
        email: "* E-MAIL INVÁLIDO",
        minlength: "* O CAMPO DEVE CONTER {0} CARACTERES"
    });
	
	var div = $(btn).closest('.item_form');
	var form = div.closest('form');
	$(form).validate({errorPlacement: function(error, element) {
		error.appendTo( element.parent("td")); 
	}});
	
	var valid = true;
	$(':input', div).each(function(idx, ctx){
		valid = valid & validateInput(form, ctx);
	});
	if(valid) {
		trackPageGoogle('/trabalhe-conosco/etapa'+n);
		var api = $('#browsable').data("scrollable");
		api.next();
	}
}

function validateInput(form, input) {
	if(!$(input).attr('disabled') && $(input).attr('name') && $(input).closest('tr').css('display') != 'none') {
		$(form).validate().element($(input));
		var labelError = $(input).parent("td").find('label.error');
		if(labelError.html() && labelError.css('display') != 'none'){
			return false;
		}
	}
	return true;
}

function wizardPrev(form) {
	var api = $('#browsable').data("scrollable");
	api.prev();
}

function buscarRecall(form, hash) {
	$.extend($.validator.messages, {
        required: "* CAMPO OBRIGATÓRIO",
        email: "* E-MAIL INVÁLIDO",
        minlength: "* O CAMPO DEVE CONTER {0} CARACTERES"
    });

	if($(form).valid()) {
		addHash(form, hash)
	}
	
	return false;
}

function getParameters(){
	var parameters = {};

	document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
	    function decode(s) {
	        return decodeURIComponent(s.split("+").join(" "));
	    }

	    parameters[decode(arguments[1])] = decode(arguments[2]);
	});
	return parameters;
}

function buscarRecalls(divSuccess) {
	var parameters = getParameters();
	var vin = parameters["vin"];
	
	// Volta para a tela de recall
	if(!vin) {
		addHash(null, 'servicos-e-acessorios/recall');
	} else {
		var url = '/nissan/ajax/recallJSON.htm';
		jQuery.ajax({
			url: url+'?callback=?&vin=' +vin,
			dataType: 'json',
			success: function(data) {populaTelaChassi(data, divSuccess)},
			error: function() {}
		});
	}
}

function populaTelaChassi(data, divSuccess) {
	var conteudo = '<div>';
	switch(data.status) {
	// Existe
	case 0:
		conteudo += '<b>Seu veículo possui '+data.conteudo.length+' recall(s):</b>';
		$.each(data.conteudo, function(idx, c){
			conteudo += c;
			conteudo += '<br/>';
		});
		break;
	// Existe Processo
	case 1:
		conteudo += '<b>Você fez '+data.processo.length+' recall(s):</b>';
		$.each(data.processo, function(idx, p){
			conteudo +='<br/>' + p.data + ': ' + p.nome + ' : ' + p.descricao + '<br/>Na concessionária ' + p.concessionaria;
			conteudo +='<br/><br/>'
		});
		conteudo += '<b>Seu veículo possui '+data.processo.length+' recall(s):</b>';
		conteudo += data.conteudo;
		break;
	// Não Existe
	case 2:
		conteudo += '<b>Seu veículo não possui recalls</b>';
		break;
	}
	conteudo += '</div>'
	divSuccess.html(conteudo);
	
	return false;
}

function addHash(form, hash) {
	var parameters = '';
	if(form) {
		parameters = '?' + $(form).serialize();
	}
	window.location.href = parameters + hash;
}

function createOption (label, id) {
	return $('<option></option>').val(id).html(label)[0];
}

function showFields(ancora, classe) {
	var trsToShow;
	var hasMore = false;
	for (i = 1; i < 5; i++) {
		var trs = $('.' + classe + '_' + i);
		var isHidden = $(trs).css('display') == 'none';
		if(!trsToShow && isHidden) {
			trsToShow = trs;
		} else if(isHidden) {
			hasMore = true;
		}
	}
	if(trsToShow) {
		$(trsToShow).show(1000);
	}
	if(!hasMore) {
		$(ancora).closest('tr').css('display', 'none');
	}
}

function hideFields(classe, num) {
	$('.'+classe + '_' + num).hide(100);
	$('#'+classe + "_incluir").closest('tr').show();
}

function changeTrabalhaAtualmente(field) {
	var value = field.val();
	var inputs = $('.experiencia_profissional_atual');
	if(value=='N'){
		inputs.attr('disabled', 'disabled');
	} else {
		inputs.removeAttr('disabled');
	}
}

function changeAreaInteresse(field) {
	var value = field.val();
	var tr = $('#tr_outra_area');
	if(value!='outros'){
		tr.hide(100);
	} else {
		tr.show(100);
	}
}
