// JavaScript Document
//pegar as variaveis
function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
 
    for(var i = 0; i < hashes.length; i++)
    {	
        hash = hashes[i].split('=');
		hash[1] = unescape(hash[1]);
		vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
 
    return vars;
}


//inicio validar todos os campos do formulário

function validaCamposForm(formulario) {

	var elemento = formulario.elements;
	var erros ="", valor = "";		
	
	//se no formulário existir o campo email verifica se é email válido
	if(formulario.email)
	{
		var reEmail = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;				
		var pStr = formulario.email.value;
		
		if (reEmail.test(pStr)) {
			// é um endereço de e-mail válido.");
		} else if (pStr != null && pStr != "") {
			alert(pStr + " não é um endereço de e-mail válido.");
			formulario.email.select();
			return false;
		}
	}//fim váilidação campo email
	
	for(var i=0; i<elemento.length;i++)
	{
		if(elemento[i].attributes.getNamedItem("obrigatory"))
		{
			if(elemento[i].attributes.getNamedItem("obrigatory").value=="true")
			{
				switch (elemento[i].tagName)
				{
					case "INPUT": 
							if((elemento[i].value == "" || elemento[i].value===null) && elemento[i].disabled===false)
							{
								erros += "-> Campo <<"+elemento[i].title+">> está vazio. \n";
							}
					break;
					case "SELECT": 
							valor = elemento[i].options[elemento[i].selectedIndex].value;
							if( valor == "" || valor == "-1" || valor === null)
							{
								erros += "-> Campo <<"+elemento[i].title+">> não teve um item selecionado. \n";
							}
					break;
					case "TEXTAREA": 
							if(elemento[i].value == "" || elemento[i].value===null)
							{
								erros += "-> Campo <<"+elemento[i].title+">> está vazio. \n";
							}
					break;
				}
			}	
		}	
	}
	
	if(erros.length>0)
	{
		erros = "Os Seguintes ERROS foram detectados: \n \n"+erros;
		alert(erros);
		return false;
	}
	else
	{
		return true;
	}		
}

//fim validar todos os campos do formulario


//ajax cidades e estados

/* Função para criar o objeto XMLHttpRequest */
function openAjax()
{
	try
	{
		var ajax = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			var ajax = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(ee)
		{
			try
			{
				var ajax = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(eee)
			{
			    var ajax = false;
			}
		}
	}
	
	return ajax;
}

function buscaEstados()
{
	var uf = document.getElementById('uf');
	
	//var op = document.createElement('option');
    //op.setAttribute('value', '');
    //op.appendChild(document.createTextNode("Carregando..."));
    //uf.appendChild(op);
	
	var ajax = openAjax();
	
	ajax.open('GET', '../php/include/funcoes.php?acao=buscaEstados', true);
	
	ajax.onreadystatechange = function()
	{
		if (ajax.readyState == 4)
		{
			if (ajax.status == 200)
			{
				//uf.innerHTML = '';
				
				var opcao = document.createElement('option');
				opcao.setAttribute('value', '');
				opcao.appendChild(document.createTextNode('Selecione'));
				uf.appendChild(opcao);
				
				var xml = ajax.responseXML;
				var estado = xml.getElementsByTagName('estado');
				
				for (var i = 0; i < estado.length; i++)
				{
					var idEstado = estado[i].getElementsByTagName('id')[0].firstChild.nodeValue;
					var siglaEstado = estado[i].getElementsByTagName('sigla')[0].firstChild.nodeValue;
					var nomeEstado = estado[i].getElementsByTagName('nome')[0].firstChild.nodeValue;
					
					var opcao = document.createElement('option');
					opcao.setAttribute('value', idEstado);
					opcao.appendChild(document.createTextNode(siglaEstado + ' - ' + nomeEstado));
					uf.appendChild(opcao);
					
				}
				
			}
		}
	}
    ajax.send(null);
    
}




function buscaCidades(uf)
{
	var cidades = document.getElementById('cidade');
	cidades.innerHTML = '';
	var op = document.createElement('option');
    op.setAttribute('value', '');
    op.appendChild(document.createTextNode("Carregando..."));
    cidades.appendChild(op);
	
	var url = '../php/include/funcoes.php?acao=buscaCidades&uf=' + uf;
	var ajax = openAjax();
	
	ajax.open('GET', url, true);
	ajax.onreadystatechange = function()
	{
		if (ajax.readyState == 4)
		{
			if (ajax.status == 200)
			{
				//cidades.innerHTML = '';
				
				var xml = ajax.responseXML;
				var cidade = xml.getElementsByTagName('cidade');
				
				for (var i = 0; i < cidade.length; i++)
				{
					var idCidade = cidade[i].getElementsByTagName('id')[0].firstChild.nodeValue;
					var nomeCidade = cidade[i].getElementsByTagName('nome')[0].firstChild.nodeValue;
					
					var opcao = document.createElement('option');
					opcao.setAttribute('value', nomeCidade);
					opcao.appendChild(document.createTextNode(nomeCidade));
					cidades.appendChild(opcao);
				}
			}
		}
	}
	ajax.send(null);
}

//fim ajax cidades e estados

function Dados(valor) {
  //verifica se o browser tem suporte a ajax
  try {
	 ajax = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  catch(e) {
	 try {
		ajax = new ActiveXObject("Msxml2.XMLHTTP");
	 }
	 catch(ex) {
		try {
		   ajax = new XMLHttpRequest();
		}
		catch(exc) {
		   alert("Esse browser não tem recursos para uso do Ajax");
		   ajax = null;
		}
	 }
  }
  //se tiver suporte ajax
  if(ajax) {
	 //deixa apenas o elemento 1 no option, os outros são excluídos
	 document.forms[0].cidade.options.length = 1;
	 
	 idOpcao  = document.getElementById("opcoes");
	 
	 ajax.open("POST", "../php/include/cidades.php", true);
	 ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	 
	 ajax.onreadystatechange = function() {
		//enquanto estiver processando...emite a msg de carregando
		if(ajax.readyState == 1) {
		   idOpcao.innerHTML = "Carregando...!";   
		}
		//após ser processado - chama função processXML que vai varrer os dados
		if(ajax.readyState == 4 ) {
		   if(ajax.responseXML) {
			  processXML(ajax.responseXML);
		   }
		   else {
			   //caso não seja um arquivo XML emite a mensagem abaixo
			   idOpcao.innerHTML = "--Primeiro selecione o estado--";
		   }
		}
	 }
	 //passa o código do estado escolhido
	 var params = "estado="+valor;
	 ajax.send(params);
  }
}

function processXML(obj){
  //pega a tag cidade
  var dataArray   = obj.getElementsByTagName("cidade");
  
  //total de elementos contidos na tag cidade
  if(dataArray.length > 0) {
	 //percorre o arquivo XML paara extrair os dados
	 for(var i = 0 ; i < dataArray.length ; i++) {
		var item = dataArray[i];
		//contéudo dos campos no arquivo XML
		var codigo    =  item.getElementsByTagName("codigo")[0].firstChild.nodeValue;
		var descricao =  item.getElementsByTagName("descricao")[0].firstChild.nodeValue;
		
		idOpcao.innerHTML = "--Selecione uma das opções abaixo--";
		
		//cria um novo option dinamicamente  
		var novo = document.createElement("option");
			//atribui um ID a esse elemento
			novo.setAttribute("id", "opcoes");
			//atribui um valor
			novo.value = codigo;
			//atribui um texto
			novo.text  = descricao;
			//finalmente adiciona o novo elemento
			document.forms[0].cidade.options.add(novo);
	 }
  }
  else {
	//caso o XML volte vazio, printa a mensagem abaixo
	idOpcao.innerHTML = "--Primeiro selecione o estado--";
  }	  
}


function validaEmail(obj)
{
	var obj = document.getElementById(obj);
	//se no formulário existir o campo email verifica se é email válido
	if(obj.value)
	{
		var reEmail = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;				
		var pStr = obj.value;
		
		if (reEmail.test(pStr)) {
			return true;
		} else if (pStr != null && pStr != "") {
			alert(pStr + " não é um endereço de e-mail válido.");
			obj.select();
			return false;
		}
	}//fim váilidação campo email	
}

function validaCampo(obj)
{
	var obj = document.getElementById(obj);

	if(obj.value == "")
	{
		alert("Favor preencher o campo!");
		return false;
	}
	else
	{
		return true;	
	}
}


