associarClass = new Class({
	options:
	{
		script_ajax: 'inc/php/func/engine.php',
		msn_falha_comunicacao: 'Houve uma falha na comunicação com o banco de dados. Desculpe e, por favor, tente mais tarde.',
		msg_erro_inesperado: 'Ocorreu um erro inesperado. Por favor, entre em contato com a 3Pixel.',
		tempo_atualizacao: 3000
	},

	initialize: function(options)
	{
		this.setOptions(options);
	},
	   
   associar: function()
	{
		var campo0 = $('fundacao').value;
      var campo1 = $('sigla').value;
      var campo2 = $('cnpj').value;
      var cnpj = campo2;
		var campo3 = $('endereco').value;
		var bairro = $('bairro').value;
		var campo4 = $('cidade').value;
		var uf = $('uf').value;
		var campo5 = $('cep').value;
		var campo6 = $('telefone').value
		var email0 = $('email').value;
		var site = $('site').value;
		var campo7 = $('resp_fundacao').value;
		var campo8 = $('resp_cargo').value;
		var campo9 = $('resp_tel').value;
		var email1 = $('resp_email').value;
		var campo10 = $('super_nome').value;
		var campo11 = $('super_cargo').value;
		var campo12 = $('super_tel').value;
		var email2 = $('super_email').value;
		var erro_campos = new String;
		var erro_mail = new String;
		var erro_cnpj = new String;
  		var url = this.options.script_ajax;
  		var erros = new String;

        var campos = new Array('Fundação,', ' Sigla,', ' CNPJ,', ' Endereço,', ' Cidade,', ' CEP,', ' Telefone,', ' Nome do Responsável,',
        ' Cargo do Responsável,', ' Telefone do Responsável,', ' Nome do Supervisor,', ' Cargo do Supervisor,', ' Telefone do Supervisor');
        var emails = new Array("e-mail da Fundação", "e-mail do Responsável", "e-mail do Supervisor");

        //Verificação dos campos que ficaram em branco.
        for(i = 0; i < 13; i++)
        {
              if(eval("campo"+i) =='')
              {
                 erro_campos += campos[i];
              }
        }
		
        //Verificação do CNPJ
        if(cnpj!="")
        {		
			if (cnpj.length < 18) erro_cnpj += "Preencha o CNPJ no formato indicado. \n";
			if ((cnpj.charAt(2) != ".") || (cnpj.charAt(6) != ".") || (cnpj.charAt(10) != "/") || (cnpj.charAt(15) != "-"))
			{
				if (erro_cnpj.length == 0) erro_cnpj += "Preencha o CNPJ no formato indicado! \n";
			}
		//substituir os caracteres que nao sao numeros
			if(document.layers && parseInt(navigator.appVersion) == 4)
			{
				x = cnpj.substring(0,2);
				x += cnpj.substring(3,6);
				x += cnpj.substring(7,10);
				x += cnpj.substring(11,15);
				x += cnpj.substring(16,18);
				cnpj = x;	
			}
			else
			{
				cnpj = cnpj.replace(".","");
				cnpj = cnpj.replace(".","");
				cnpj = cnpj.replace("-","");
				cnpj = cnpj.replace("/","");
			}
			var nonNumbers = /\D/;
			if (nonNumbers.test(cnpj)) erro_cnpj += "O CNPJ não contém letras. \n";
			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]))
			{
			erro_cnpj +="CNPJ incorreto. Verifique.";
			}
		}

        //Verificação dos emails digitados nos campos.
		for(i = 0; i < 3; i++)
		{
            var email = eval("email"+i);
            if(email != "")
			{
				var test1 = email.indexOf('@');
				var test2 = email.indexOf('.');
    			if(test1==-1 || test2==-1)
				{
                   erro_mail += email + "\n";
                }
    		}
		}

        //Avaliação dos erros.
        if (erro_mail != '' || erro_cnpj !='' || erro_campos != '')
		{
            if (erro_campos != '')
            {
                 erros = "O(s)s campo(s): " + erro_campos + " não foram preenchidos. Preencha-os para associar-se.";
            }
            if (erro_cnpj !='')
            {
                 erros += "\n\n" + erro_cnpj;
            }
            if(erro_mail != '')
            {
                 erros += "\n\nO(s) email(s): \n" + erro_mail + "não são válidos.";
            }
            alert("Foram encontrados os seguintes erros: \n" + erros);
		}
		else
		{
			var variaveis = { oper:'associe', fundacao:campo0, sigla:campo1, cnpj:campo2, endereco:campo3, bairro: bairro, cidade:campo4, uf:uf, cep:campo5, telefone:campo6, email:email0, site:site, resp_fundacao:campo7, resp_cargo:campo8, resp_tel:campo9, resp_email:email1, super_nome:campo10, super_cargo:campo11, super_tel:campo12, super_email:email2};
			$('envia').disabled = true;
				new Ajax(url,{
				method: 'post',
				data: variaveis,
				onSuccess: function(obj_text)
				{
					var obj = eval(obj_text);
					if(obj != '' || obj != undefined)
					{
						$('envia').disabled = false;
					   if( obj.tipo_retorno == "sucesso" )
					   {
					    	alert(obj.mensagem);
					   }
					}
					else
					{
                        alert("Ocorreu um erro no envio. Por favor, tente mais tarde.");
                    }
     			}
			}).request();
		}
	}
});
associarClass.implement(new Options, new Events);

