/**
 * JavaScript para validacao formulario de criacao de DEMO "Trevio Enterprise Test Drive"
 * 
 * @author $Author: cleber $
 * @version $Revision: 1980 $ - $Date: 2010-03-02 17:33:31 -0300 (Tue, 02 Mar 2010) $
 * @copyright Interage S/A <cleber@interage.com.br>
 * 
 */


$(document).ready(function () {	
	
	// Mascaras Campos
	$("#phone").mask("99-99999999");
	$("#cep").mask("99999-999");
	$("#cnpj").mask("99.999.999/9999-99");
	
	// AutoSuggest de Cidades
	$("#city").autocomplete('service/Address/SearchCity', { 
		extraParams: {  state: function() { return $("#state").val(); }},
		dataType: "json",
		parse: function(data) {
			return $.map(data, function(row) {
				return {
					data: row,
					value: row.id_cidade,
					result: row.cidade
				}
			});
		},
		formatItem: function(item) {
			return item.cidade;
		}	
	}).result(function(e, item) {
		$("#city_id").val(item.id_cidade);
	});
	
	// Limpa o Id da Cidade de o Nome da cidade for apagado
	$("#city").change(function() {
		if (empty(this.value))
			$("#city_id").val("");
	});
		
	// AutoSuggest Rua
	$("#address").autocomplete('service/Address/SearchStreet', { 
		extraParams: {  city: function() { return $("#city_id").val(); } },
		dataType: "json",
		parse: function(data) {
			return $.map(data, function(row) {
				return {
					data: row,
					value: row.id_endereco,
					result: row.endereco
				}
			});
		},
		formatItem: function(item) {
			return item.endereco;
		}			
	}).result(function(e, item) {
		
		$("#address_id").val(item.id_endereco);
		
		// Rua Ultimo Campo Preenchido, Busca o CEP pelos dados ja preenchidos
		$.ajax({
	   		type: "POST",
	   		dataType:"json",
	   		url:"service/Address/SearchCEPAddress",
	   		data: '&address='+item.id_endereco+"&city="+$("#city_id").val()+"&state="+$("#state").val(),
	   		dataType:'json',
			success: function(result) {
				if (!empty(result.cep)) {
					$('#cep').val(result.cep);
					SearchDataCep(result.cep);
				}
	   		}
 		});
	});
	
	// Preenche dados do endereco pelo cep
	$("#cep").keyup(function() {
		SearchDataCep(this.value);
	});
	
	
	// validacao
	$("#form").validate({
		
		submitHandler: function(form) {
			
			$.prompt("<img src='images/loading_scanning.gif'> <br/>  Aguarde validando seus dados. <br/>");
			
			// Rua Ultimo Campo Preenchido, Busca o CEP pelos dados ja preenchidos
			$.ajax({
		   		type: "GET",
		   		dataType:"json",
		   		url:"service/LicenseTrevioEnterprise/GetLogin",
		   		data: '&email='+$("#email").val(),
				success: function(result) {
					
					if (result == true) {
						
						$.prompt.close();
						$.prompt("<img src='images/loading_scanning.gif'> <br/>  Aguarde registrando seus dados. <br/> Enviando e-mail de confirma&ccedil;&atilde;o ...");
						
						$(form).ajaxSubmit({
							type: 'POST',
							url:'service/LicenseTrevioEnterprise/PreRegistration',
							dataType:'json',
							success: function(data) {
								$.prompt.close();
								if (data.code == 1) {
									var message = "<img src='images/success.gif'>";
									message += "<div> " + data.message + "</div>";
									$.prompt(message,{buttons:{Ok:true}});
									form.reset();
								} else {
									var message = "<img src='images/error.gif'>";
									message += "<br/><br/> Ocorreu um erro ao registrar os seus dados.<br/>";
									message += "<br/> <div> Por favor tente novamente ou entre em contato conosco pelo e-mail (<a href='mailto:suporte@interage.com.br'>suporte@interage.com.br</a>)</div>";
									$.prompt(message,{buttons:{Ok:true}});
								}
							}
						});
					} else {
						$.prompt.close();
					}
		   		}
	 		});
 		
		},
		rules: {
			name_user: {	
				required: true ,		
				minlength:3,
				maxlength:120
			},
			cnpj: {
				required: true ,
				cnpjvalidator: true
			},
			phone: {
				required : true,
				phonevalidator:true,
				minlength:3,
				maxlength:15
			},
			company:{
				required : true,
				minlength:3,
				maxlength:100
			},
			address :{
				required : true,
				minlength:3,
				maxlength:255
			},
			cep:{
				required:true,
				cepvalidator:true
			},
			number: {
				required:true
			},
			city:{
				required :true,
				minlength:3,
				maxlength:30
			},
			state:{
				required : true
			},
			email:{
				required :true,
				email : true,
				minlength:3,
				maxlength:255,
				remote: "service/LicenseTrevioEnterprise/GetLogin"
			},
			confirm_email:{
				required :true,
				email : true,
				minlength:3,
				maxlength:255,
				equalTo: "#email"
			},
			password_user:{
				required :true,
				minlength:6,
				maxlength:60
			},
			confirm_password_user:{
				required :true,
				minlength:6,
				maxlength:60,
				equalTo: "#password_user"
			}
		},
		messages: {
			name_user: {
				required : "Informe o seu nome."
			},
			phone: {
				required : "Informe o seu telefone."
			},
			number: {
				required: "Informe seu N&uacute;mero."
			},
			company: {
				
				required : "Informe o nome da empresa."
			},
			cnpj: {
				required :"Informe o CNPJ da empresa."
			},
			address:{
				required : "Informe o seu endere&ccedil;o."
			},
			cep:{
				required:"Informe o seu cep."
			},
			city: {
				required : "Informe o nome da sua cidade."
			},
			state: {
				required : "Informe o seu estado."
			},
			email: {
				required : "Informe o seu E-Mail/Usu&aacute;rio.",
				email : "E-mail  informado &eacute; inv&aacute;lido.",
				remote: jQuery.format("E-Mail j&aacute; registrado em nosso sistema, informe outro.")

			},
			confirm_email: {
				required : "Confirme o seu  E-Mail/Usu&aacute;rio.",
				email : "E-mail  informado &eacute; inv&aacute;lido.",
				equalTo: "E-Mail/Usu&aacute;rio n&atilde;o confere."
			},
			password_user: {
				required : "Informe a senha de acesso ao Trevio Enterprise."
			},
			confirm_password_user: {
				required : "Confirme a senha de acesso ao Trevio Enterprise.",
				equalTo: "Senha de acesso n&atilde;o confere."
			}
		}
	});
});


// Busca Endereco pelo Numero CEP
var SearchDataCep = function(cep_number) {
	cep_number = cep_number.replace("-","").replace("_","");
	if (cep_number.length == 8 && !isNaN(cep_number)) {
		$.ajax({
	   		type: "POST",
	   		url:"service/Address/SearchCEP",
	   		data: '&cep='+cep_number,
	   		dataType:'json',
			success: function(result) {
				$('#address').val(result.endereco);
				$('#bairro').val(result.bairro);
				$('#city').val(result.cidade);
				$('#state').find('option:[value="'+result.estado+'"]').attr('selected','selected'); 
	   		}
 		});
	}
}
