function openAjax(){
	var ajax;
	try{
		ajax = new XMLHttpRequest();
	}
	catch(ee){
		try{
			ajax = new ActiveXObject('Msxm12.XMLHTTP');
		}
		catch(e){
			try{
				ajax = new ActiveXObject('Microsoft.XMLHTTP');
			}
			catch(E){
				ajax = false;
			}
		}
	}
	return ajax;
}

function get( obj ){
	return document.getElementById( obj );
}

function redir( destino ){
	document.location.href = destino;
}

function checarDominio(){
	var ajax = new openAjax();
	var ext = get('dom_extensao').value;
	if(ext == ''){
		window.alert("Selecione a extensão do seu domínio!\n\n ex: com.br");
		return false;
	}
	var dominio = get('dominio').value+ext;
	if(dominio == ''){
		window.alert("Informe o domínio a ser registrado!\n\n ex: gigaweb.ppg.br");
		return false;
	}
	ajax.open('GET', 'consultaDominio/index.php?dominio='+dominio, true);
	ajax.onreadystatechange = function(){
		if(ajax.readyState == 1){
			get('statusRegistro').innerHTML = 'Checando...';
		}
		if(ajax.readyState == 2){
			get('statusRegistro').innerHTML = 'Processando...';
		}
		if(ajax.readyState == 3){
			get('statusRegistro').innerHTML = 'Recebendo informações...';
		}
		if(ajax.readyState == 4){
			//se deu certo
			if(ajax.status == 200){
				get('statusRegistro').innerHTML = 'Concluindo...';
				var resposta = ajax.responseText;
				if(resposta == 'yes'){
					get('statusRegistro').innerHTML = '<img src="estilos/x_icon.png" alt="OK!" width="20" height="20" /> Dom&iacute;nio N&Atilde;O dispon&iacute;vel para registro. Tente outros nomes ou outras exten&ccedil;&otilde;es.<br />Se caso este dom&iacute;nio for seu, clique em VOLTAR e selecione a op&ccedil;&atilde;o &quot;J&Aacute; POSSUO UM DOM&Iacute;NIO REGISTRADO E VOU UTILIZ&Aacute;-LO&quot;';
				}
				else{
					if(resposta == 'no'){
						get('statusRegistro').innerHTML = '<img src="estilos/v_icon.png" alt="OK!" width="20" height="20" /> Dom&iacute;nio dispon&iacute;vel para registro, para registr&aacute;-lo clique em AVANÇAR!';
						get('btnRegAvancar').disabled = false;
					}
					else{
						get('statusRegistro').innerHTML = '<img src="estilos/x_icon.png" alt="OK!" width="20" height="20" /> Não foi possível consultar a disponibilidade do seu domínio no nic.br. Caso o mesmo não estiver disponível para registro, você receberá uma notificação por e-mail.';
						get('btnRegAvancar').disabled = false;
					}
				}
			}			
		}
	}
	ajax.send(null);
}

var globalDominio;

function fromRegistrado(){
	get('dominio').value = '';
	globalDominio = get('dominio_registrado').value;
	passo(6);
}

function fromNaoRegistrado(){
	get('dominio_registrado').value = '';
	globalDominio = get('dominio').value+get('dom_extensao').value;
	passo(6);
}

function passo( pos ){
	var p = 7;
	//verifica se as informações do passo 2 estão corretas
	if(pos == 3){
		if(
		   get('nome').value.length < 3 ||
		   get('email').value.search(/^[\w\d-\.]{1,}@{1}[\w\d-]{1,}\.[\w\d-\.]{1,}$/) == -1 ||
		   get('telefone').value.length < 14
		)
		{
			window.alert("PREENCHA CORRETAMENTE OS CAMPOS!\n\nNOME: mínimo 3 caracteres\nE-MAIL: verifique se é um endereço de e-mail\nTELEFONE: informe o código de área, seguido do número de telefone");
			return false;
		}
	}
	if(pos == 7){
		if(checarDadosCadastrais() == true)
			checagemFinal();
		else
			return false;
	}
	for(var i=1; i<=p; i++){
		if(i == pos)
			get('passo'+i).style.display = 'block';
		else
			get('passo'+i).style.display = 'none';
	}
}

function ativaBotaoAvanc5(ob){
	if(get(ob).value.search(/[\w\D]\.[\w\D]/) != -1)
		get('botaoAvanc5').disabled = false;
	else
		get('botaoAvanc5').disabled = true;
}

function tipoCadastro( tipo ){
	if(tipo == 'juridica'){
		get('dados_pessoa_fisica').style.display = 'none';
		get('dados_pessoa_juridica').style.display = 'block';
	}
	else{
		get('dados_pessoa_fisica').style.display = 'block';
		get('dados_pessoa_juridica').style.display = 'none';
	}
}

function iniciar(){
	passo(1);
	tipoCadastro('juridica');
}

/**************************
Mascára - inicio
**************************/
function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function mskNumero(v){
    return v.replace(/\D/g,"")
}

function mskNome(v){
	return v.replace(/[^a-zA-ZçâÂãáÁéÉêõúüÚíÍ ]/g,"")
}

function mskDominio(v){
    return v.replace(/[^\w\d-]/g,"")
}

function mskCnpj(v){
    v=v.replace(/\D/g,"")                           //Remove tudo o que não é dígito
    v=v.replace(/^(\d{2})(\d)/,"$1.$2")             //Coloca ponto entre o segundo e o terceiro dígitos
    v=v.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3") //Coloca ponto entre o quinto e o sexto dígitos
    v=v.replace(/\.(\d{3})(\d)/,".$1/$2")           //Coloca uma barra entre o oitavo e o nono dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")              //Coloca um hífen depois do bloco de quatro dígitos
    return v
}

function mskTelefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que não é dígito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca parênteses em volta dos dois primeiros dígitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca hífen entre o quarto e o quinto dígitos
    return v
}

function mskCpf(v){
    v=v.replace(/\D/g,"")                    //Remove tudo o que não é dígito
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
    v=v.replace(/(\d{3})(\d)/,"$1.$2")       //Coloca um ponto entre o terceiro e o quarto dígitos
                                             //de novo (para o segundo bloco de números)
    v=v.replace(/(\d{3})(\d{1,2})$/,"$1-$2") //Coloca um hífen entre o terceiro e o quarto dígitos
    return v
}

function mskCep(v){
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse é tão fácil que não merece explicações
    return v
}
/**************************
Mascára - fim
**************************/

function checarDadosCadastrais(){
	var erro = '';
	if(get('formCadastro').responsavel.value.search(/\w \w/) == -1) erro = "> Preencha o campo RESPONSÁVEL com o nome completo do mesmo\n";
	
	if( get('pessoa_juridica').checked == true ){
		if(get('formCadastro').razao_social.value.length < 4) erro += "> Preencha o campo RAZÃO SOCIAL corretamente\n";
		if(validaCnpj(get('formCadastro').cnpj.value) == false) erro += "> Preencha o campo CNPJ corretamente\n";
	}
	else{
		if(get('formCadastro').rg.value.length < 6) erro += "> Preencha o campo RG corretamente\n";
		if(validaCpf(get('formCadastro').cpf.value) == false) erro += "> Preencha o campo CPF corretamente\n";
	}
	if(get('formCadastro').cep.value.length < 9) erro += "> Preencha o campo CEP corretamente\n";
	if(get('formCadastro').endereco.value.length < 4) erro += "> Preencha o campo ENDEREÇO corretamente\n";
	if(get('formCadastro').numero.value.length < 1) erro += "> Preencha o campo NÚMERO corretamente\n";
	if(get('formCadastro').bairro.value.length < 3) erro += "> Preencha o campo BAIRRO corretamente\n";
	if(get('formCadastro').cidade.value.length < 3) erro += "> Preencha o campo CIDADE corretamente\n";
	
	if(get('formCadastro').senha.value.length < 6) erro += "> Necessário informar uma senha com no mínimo 6 caracteres\n";
	if(get('formCadastro').senha.value != get('formCadastro').senha2.value) erro += "> Verificação de senha não confere com a senha escolhida\n";
	
	if(erro != ''){
		window.alert(erro);
		return false;
	}
	else return true;
}

function validaCpf( cpf ){
	erro = new String;
	cpf = cpf.replace(/\D/g,""); //remove tudo o que não é numero
	if (cpf.length < 11) return false;
	var nonNumbers = /\D/;
	if (nonNumbers.test(cpf)) return false;
	if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false;
	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])) return false;
	
	return true;
}

function validaCnpj( CNPJ ) {
	erro = new String;
	CNPJ = CNPJ.replace(/\D/g,""); //remove tudo o que não é numero
	if (CNPJ.length < 14) return false;
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++){
		a[i] = CNPJ.charAt(i);
		b += a[i] * c[i+1];
	}
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
		b += (a[y] * c[y]);
	}
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])){
		return false;
	}
	return true;
}

function checagemFinal(){
	get('txt_nome').innerHTML = get('formCadastro').nome.value;
	get('txt_email').innerHTML = get('formCadastro').email.value;
	get('txt_telefone').innerHTML = get('formCadastro').telefone.value;
	get('txt_ramal').innerHTML = get('formCadastro').ramal.value;
	get('txt_dominio').innerHTML = globalDominio;
	if(get('pessoa_juridica').checked == true){
		get('txt_razao_social').innerHTML = get('formCadastro').razao_social.value;
		get('txt_cnpj').innerHTML = get('formCadastro').cnpj.value;
		get('txt_cpf').innerHTML = ' ------- ';
		get('txt_rg').innerHTML = ' ------- ';
	}
	else{
		get('txt_cpf').innerHTML = get('formCadastro').cpf.value;
		get('txt_rg').innerHTML = get('formCadastro').rg.value;
		get('txt_razao_social').innerHTML = ' ------- ';
		get('txt_cnpj').innerHTML = ' ------- ';
	}
	var plano  = get('formCadastro').plano.value;
	var pldesc = '';
	if(plano == 1){
		pldesc = 'Hospedagem 1GB - R$ 60,00 anuais';
	}
	if(plano == 2){
		pldesc = 'Hospedagem 2GB - R$ 114,00 anuais';
	}
	if(plano == 3){
		pldesc = 'Hospedagem 5GB - R$ 270,00 anuais';
	}
	if(plano == 4){
		pldesc = 'Site Dinâmico Gigaweb - R$ 900,00';
	}
	
	get('txt_plano').innerHTML = pldesc;
	get('txt_tipo_cadastro').innerHTML = ( get('pessoa_juridica').checked == true ) ? 'Pessoa Jurídica' : 'Pessoa Física';
	get('txt_responsavel').innerHTML = get('formCadastro').responsavel.value;
	get('txt_cep').innerHTML = get('formCadastro').cep.value;
	get('txt_endereco').innerHTML = get('formCadastro').endereco.value;
	get('txt_complemento').innerHTML = get('formCadastro').complemento.value;
	get('txt_numero').innerHTML = get('formCadastro').numero.value;
	get('txt_bairro').innerHTML = get('formCadastro').bairro.value;
	get('txt_cidade').innerHTML = get('formCadastro').cidade.value;
	get('txt_estado').innerHTML = get('formCadastro').estado.value;
}
