/*
MÉTODO RESPONSÁVEL POR RECUPERAR O CONTEÚDO QUE IRÁ COMPOR O SELECT
nIdSelect => ID DO OBJETO HTML SELECT QUE SERÁ MONTADO
nIdCategoria => ID DA CATEGORIA NO BANCO DE DADOS QUE SERVIRÁ DE FILTRO PARA MONTAGEM DO SELECT
nIdSelecionado => ID DA OPÇÃO NO BANCO DE DADOS QUE SERÁ PADRÃO
sDocumento => LOCALIZAÇÃO DO DOCUMENTO QUE ESTÁ REALIZANDO A CONSULTA AO BANCO
*/
function recuperaConteudoSelectProdutosRelacionados(nIdSelect,nIdCategoria,nIdSelecionado,sDocumento){
	oOption = new Option();
	oOption.value = '';
	oOption.text = 'Aguarde...Carregando';
	oOption.selected = true;
	oSelect = document.getElementById(nIdSelect);
	oSelect.options[oSelect.options.length] = oOption;
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?sCodigo="+nIdCategoria,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				montaSelectProdutosRelacionados(nIdSelect,sConteudo,nIdSelecionado);
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}

//FUNÇÃO RESPONSÁVEL POR MONTAR O SELECT DOS PRODUTOS RELACIONADOS
function montaSelectProdutosRelacionados(nIdSelect,sConteudo,nIdSelecionado){
	oSelect = document.getElementById(nIdSelect);
	limpaSelect(oSelect);
	sConteudo = sConteudo.replace(/\+/g," ");
    sConteudo = unescape(sConteudo);
	vLinha = sConteudo.split('|');
	for(var i = 0 ; i < vLinha.length ; i++){
		vCampo = vLinha[i].split(',');
		oOption = new Option(vCampo[1],vCampo[0]);
		if(nIdSelecionado == oOption.value)
			oOption.selected = true;
		oSelect.options[oSelect.length] = oOption;
	}
}
/*
PARA QUE ESTA FUNÇÃO FUNCIONE CORRETAMENTE, O CAMPO A SER VALIDADO PRECISA TER NO SEU 
LABEL A PROPRIEDADE 'ID' IGUAL À PROPRIEDADE 'NAME' DO CAMPO E ESTE CAMPO PRECISA POSSUIR 
UMA PROPRIEDADE 'ID' QUE REPRESENTARÁ O TIPO DE VALIDAÇÃO QUE DEVE SER REALIZADA.
O FORMULÁRIO DEVERÁ POSSUIR NA PROPRIEDADE 'ID' UM VALOR VÁLIDO
A PÁGINA TERÁ QUE POSSUIR UMA TAG 'SPAN' COM A PROPRIEDADE 'ID' IGUAL A 'msg'
*/
function validaForm(form,cor_validado,cor_erro){
	var erro = false;
	var tipo = Array();
	var msg = '';

	for(var i = 0; i < form.elements.length; i++) {
		if(form.elements[i].type == 'submit')
			var oBotaoSubmit = form.elements[i];

		if(form.elements[i].lang != undefined) {
			switch(form.elements[i].lang) {
				case 'vazio':
					if(!validaVazio(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('vazio') == -1)
							tipo.push('vazio');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'vazioRadio':
					if(!validaVazioRadio(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('vazioRadio') == -1)
							tipo.push('vazioRadio');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;				
				case 'email':
					if(!validaEmail(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('email') == -1)
							tipo.push('email');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'emailnaoobrigatorio':
					if(!validaEmailNaoObrigatorio(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('email') == -1)
							tipo.push('email');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'CEP':
					if(!validaCEP(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('CEP') == -1)
							tipo.push('CEP');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'data':
					if(!validaData(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('data') == -1)
							tipo.push('data');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
				case 'CPF':
					if(!validaCPF(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('CPF') == -1)
							tipo.push('CPF');
					}
					else
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
				break;
				case 'CNPJ':
					if(!validaCPF(form.elements[i]) || form.elements[i].value.length != 14) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('CNPJ') == -1)
							tipo.push('CNPJ');
					}
					else
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
				break;
				case 'numerico':
					if(!validaNumerico(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('numerico') == -1)
							tipo.push('numerico');
					}
					else
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
				break;
				case 'numericovazio':
					if(!validaNumericoObrigatorio(form.elements[i])) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('numerico') == -1)
							tipo.push('numerico');
					}
					else {
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
			}
			switch(form.elements[i].id) {
				case 'igual':
					var objetoAuxiliar = window.document.getElementById(form.elements[i].lang);
					if(objetoAuxiliar.value != form.elements[i].value) {
						window.document.getElementById(form.elements[i].name).style.color = cor_erro;
						erro = erro || true;
						aux = tipo.toString();
						if(aux.indexOf('igual') == -1)
							tipo.push('igual');
					}
					else {
						window.document.getElementById(window.document.getElementById(form.elements[i].id).name).style.color = cor_validado;
						window.document.getElementById(form.elements[i].name).style.color = cor_validado;
						erro = erro || false;
					}
				break;
			}
		}
	}
	if(erro) {
		for(var i=0; i<tipo.length; i++) {
			switch(tipo[i]) {
				case 'vazio':	
					msg += 'Os campos em destaque são obrigatórios<br>';
				break;
				case 'vazioRadio':	
					msg += 'Selecione a opção mais adequada para prosseguir<br>';
				break;
				case 'email':	
					msg += 'O E-mail informado é inválido<br>';
				break;
				case 'CEP':	
					msg += 'O CEP informado é inválido<br>';
				break;
				case 'data':	
					msg += 'A Data informada é inválida<br>';
				break;
				case 'CPF':	
					msg += 'O CPF informado é inválido<br>';
				break;
				case 'CNPJ':	
					msg += 'O CNPJ informado é inválido<br>';
				break;
				case 'numerico':	
					msg += 'O valor informado não é um numérico válido!<br>';
				break;
				case 'igual':	
					msg += 'A confirmação não coincide com a nova senha!<br>';
				break;
			}
		}
		inicio = "<table width='100%' border='0' cellpadding='0' cellspacing='0' class='AlertaTabela'><tr><td width='1%'><img src='/controle/imagens/alerta_erro.gif' alt='Atenção' width='119' height='24'></td><td width='99%'>";
	    fim = "</td></tr></table><tr><td>&nbsp;</td></tr>";

		msg = inicio+msg+fim;
		window.document.getElementById('msg').innerHTML = msg;
		return false;
	}
	
	if(oBotaoSubmit != null)
		oBotaoSubmit.disabled = true;
	return true;
}

function validaVazio(campo) {
	var regExp = /[_a-zA-Z0-9-]+/;
	if(!regExp.test(campo.value)) {
		return false;
	}
	return true;
}

function validaVazioRadio(campo) {
	if(campo.checked)
		return true;
	return false;
}

function validaEmail(campo) {
	var regExp = /^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[_a-z0-9-]+)+)$/;
	if(!regExp.test(campo.value)) {
		return false;
	}
	return true;
}

function validaEmailNaoObrigatorio(campo) {
	if(campo.value){
		var regExp = /^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[_a-z0-9-]+)+)$/;
		if(!regExp.test(campo.value)) {
			return false;
		}
		return true;
	}
	return true;
}

function validaCEP(campo) {
var regExp = /^[0-9]{8}$/;
	if(!regExp.test(campo.value)) {
		return false;
	}
	return true;
}

function validaData(campo){
	var vData = Array;
	var regExp = /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/;
	
	if (!regExp.test(campo.value)) {	
		return false;
	}
	vData = campo.value.split('/');
	
	nDia = vData[0];
	nMes = vData[1];
	nAno = vData[2];
	
	if((nDia < 1) || (nDia > 31) || ((nDia == 31) && (nMes == 4 || nMes == 6 || nMes == 9 || nMes == 11 )))
		return false;
	
	if(nMes < 1 || nMes > 12)
		return false;
	
	if((nMes == 2 && nDia > 29) || (nMes == 2 && nDia == 29 && (parseInt(nAno/4) != nAno/4)))
		return false;
		
	return true;
}

function validaCPF(campo){
	if(campo.value==""){
		return false;
	}
	else {
		var z=campo.value;
		if(z.length!=11 && z.length!=14){
			return false;
		}
        else {
			if (z.length==11){
				var cpf2=campo.value;
				var j=10;
				x=0;
				for (var i=0; i <= 8; i=i+1){
					x+=cpf2.charAt(i)*j;
					j--;
				}
				var resto=x % 11;
				if (resto== 0 || resto==1) {
					dv1=0;
				}
				else{
					dv1=11-resto;
				}
				if (dv1!=cpf2.charAt(9)){
					return false;
				}
				else {
					var j = 11;
					var x2 = 0;
					for(i=0;i<=8;i++){
						x2 += cpf2.charAt(i)*j;
						j--;
					}
					x2+=dv1*2;
					resto2=x2 % 11;
					if (resto2== 0 || resto2==1) {
						dv2=0;
					}
					else {
						dv2=11-resto2;
					}
					if (dv2!=cpf2.charAt(10)){
						return false;
					}
					return true;
				}
			}
			else{
				var j=5;
				var x=0;
				var cpf2=campo.value;
				for(i=0;i<=3;i++){
					x+=cpf2.charAt(i)*j;
					j--;
				}
				j=9
				for (i=4;i<=11;i++){
					x+=cpf2.charAt(i)*j;
					j--;
				}
				resto=x % 11;
				if (resto == 0 || resto == 1) {
					dv1=0;
				}
				else{
					dv1=11-resto;
				}
				if(dv1!=cpf2.charAt(12)){
					return false;
				}
				else {
					var j=6;
					var x=0;
					for(i=0;i<=4;i++){
						x+=cpf2.charAt(i)*j;
						j--;
					}
					var j=9;
					for (i=5;i<=11;i++){
						x+=cpf2.charAt(i)*j;
						j--;
					}
					x+=dv1*2;
					resto=x % 11;
					if(resto == 1 || resto == 0){
						dv2=0;
					}
					else {
						dv2 = 11 - resto;
					}
					if(dv2!=cpf2.charAt(13)){
						return false;
					}
					else{
						return true;
					}
				}
			}
		}
	}
}

function validaNumerico(campo) {
var regExp = /^[0-9]+(\.[0-9]{3})*(\,[0-9]+)?$/;

	if(!regExp.test(campo.value))
		// USADO PARA LIBERAR CASO SEJA VAZIO
		if(validaVazio(campo))
			return false;
	return true;
}

function validaNumericoObrigatorio(campo) {
var regExp = /^[0-9]+(\.[0-9]{3})*(\,[0-9]+)?$/;

	if(!regExp.test(campo.value))
		return false;
	return true;
}

function validaValorNumerico(nNumero) {
var regExp = /^[0-9]+(\.[0-9]{3})*(\,[0-9]+)?$/;

	if(!regExp.test(nNumero))
		// USADO PARA LIBERAR CASO SEJA VAZIO
		if(validaValorVazio(nNumero))
			return false;
	return true;
}

function validaValorVazio(nNumero) {
	var regExp = /[_a-zA-Z0-9-]+/;
	if(!regExp.test(nNumero)) {
		return false;
	}
	return true;
}

function formataNumerico(nNumero,nCasaDecimal,sSeparadorDecimal,sSeparadorMilhar) {
	var nCountDecimal = 0;
	var nCountMilhar = 0;
	var sNumeroFormatado = '';
	var sNumeroDecimal = '';
	var sSeparadorDecimalAtual = (isNaN(nNumero.toString().substr(nNumero.length-(nCasaDecimal+1),1))) ? nNumero.toString().substr(nNumero.length-(nCasaDecimal+1),1) : ',';
	var vNumeroOriginal = nNumero.toString().split(sSeparadorDecimalAtual);
	var vNumeroInteiro = vNumeroOriginal[0].replace(/[\.]/g,'').split('');	
	var sNumero = nNumero.toString().replace(/[\.]/g,'');


	// SÓ FORMATA SE FOR UM NUMÉRICO VÁLIDO
	//alert("separador" +sSeparadorDecimalAtual);
	if(validaValorNumerico(sNumero)) {
		
		// PERCORRE O A PARTE INTEIRA DO NÚMERO COLOCANDO O SEPARADOR DE MILHAR
		for(var i = vNumeroInteiro.length-1; i >= 0; i--) {
			if(nCountMilhar % 3 == 0 && nCountMilhar != 0)
				sNumeroFormatado = sSeparadorMilhar + sNumeroFormatado;
			
			sNumeroFormatado = vNumeroInteiro[i] + sNumeroFormatado;
			nCountMilhar++;
		}
	
		// CASO TENHA PARTE DECIMAL RESPEITANDO O NÚMERO DE CASAS DECIMAIS PASSADA NA FUNÇÃO
		if(vNumeroOriginal.length == 2) {
			sNumeroDecimal = (vNumeroOriginal[1].length <= nCasaDecimal) ? vNumeroOriginal[1] : vNumeroOriginal[1].substr(0,nCasaDecimal);
			nCountDecimal = sNumeroDecimal.length;
		}
		
		// CASO O NÚMERO DE CASAS DECIMAIS SEJA MENOR QUE O SOLICITADO COMPLETA COM ZEROS
		if(nCasaDecimal > nCountDecimal)
			for(var i = nCountDecimal; i < nCasaDecimal; i++)
				sNumeroDecimal += '0';
		
		// FINALIZA A MONTAGEM DO NÚMERO
		sNumeroFormatado += sSeparadorDecimal + sNumeroDecimal;
	}
	
	// SE O SEPARADOR DECIMAL FOR UM PONTO RETORNA COMO UM NÚMERO SENÃO RETORNA UMA STRING
	if(sSeparadorDecimal == '.')
		return Number(sNumeroFormatado);
	return sNumeroFormatado;
}


// MUDA AUTOMATICAMENTE O FOCO PARA O PRÓXIMO CAMPO DE UM FORMULÁRIO, CASO UM LIMITE
// DE TAMANHO DO CAMPO SEJA ATINGIDO, NO PREENCHIMENTO DO FORMULÁRIO. USAR EM CONJUNTO
// COM O EVENTO onKeyUp NO CAMPO A PARTIR DO QUAL SE DESEJA AVANÇAR.
function mudaFoco(nLimiteMax,form,campo){
	if (campo.value.length == nLimiteMax){
		for(i = 0; i < form.length; i++){
			if (form.elements[i].name == campo.name){
				proximo = i + 1;
				if (proximo < form.length){
					form.elements[proximo].focus();
				}//if (i + 1 < form.length)
			}//if (form.elements[i].name == campo.name)
		}//for(i = 0; form.length; i++)
	}//if (campo.length == nLimiteMax)
}


function selecionaOpcaoMenu(layer,acao){
	var objeto = document.getElementById(layer);
	objeto.style.visibility = acao;
}

function selecionaOpcao(nId,sComponente,sDescricao){
	var oComponente = window.opener.document.getElementById(sComponente);
	var oOption = new Option(sDescricao,nId);
	for(var nOption = 0; nOption < oComponente.options.length; nOption++) {
		if(oComponente.options[nOption].value == nId) {
			oComponente.options[nOption].text = sDescricao;
			oComponente.options[nOption].selected = true;
			return;
		}
	}
	oComponente.options[oComponente.options.length] = oOption;
	oComponente.options[oComponente.options.length-1].selected = true;
	window.close();
}

function excluiOpcao(nId,sComponente){
	var oComponente = window.opener.document.getElementById('fIdCidadeConteudo');
	for(var nOption = 0; nOption < oComponente.options.length; nOption++) {
		if(oComponente.options[nOption].value == nId) {
			oComponente.remove(nOption);
			return;
		}
	}
}

function alteraImagemMenu(sId,sOrigem) {
  var oImagem = document.getElementById(sId);
  oImagem.src = sOrigem;
  return;
}


// FUNÇÕES UTILIZADAS NA ENQUETE
/*
function validaVazioRadio(campo) {
	if(!(campo.checked)) {
		alert("Selecione uma opção!");
	}
	return true;
}
*/
function submeteVoto(nAlternativas){
	$bOpcaoSelecionada = false;
	for(var i=0; i<nAlternativas; i++){
		if(formEnquete.fIdAlternativa[i].checked == true){			
			$bOpcaoSelecionada = true;
		}
	}

	if ($bOpcaoSelecionada) {
		for(var i=0; i<nAlternativas; i++){
			if(formEnquete.fIdAlternativa[i].checked == true){
				window.open('', 'enquete','scrollbars=yes,width=276,height=300');
			}
		}
		formEnquete.submit();
	} else {
		alert("Selecione uma opção!");
		return false;
	}	
}


// Example:
// writeCookie("myCookie", "my name", 24);
// Stores the string "my name" in the cookie "myCookie" which expires after 24 hours.
function writeCookie(name,value,dominio) {
	var expire = "";
	var today = new Date();
	var zero_date = new Date(0,0,0);
	today.setTime(today.getTime() - zero_date.getTime());
	var cookie_expire_date = new Date(today.getTime() + (8 * 7 * 86400000)); 
	
	expire = new Date((new Date()).getTime() + 60*60*24*30);
	expire = "; expires=" + cookie_expire_date.toGMTString();
	path = "; path=/";
	domain = ";domain="+ dominio;
  	document.cookie = name + "=" + escape(value) + expire + path + domain;
}

// Example:
// alert( readCookie("myCookie") );
function readCookie(name)
{
  var cookieValue = "";
  var search = name + "=";
  if(document.cookie.length > 0)
  { 
    offset = document.cookie.indexOf(search);
    if (offset != -1)
    { 
      offset += search.length;
      end = document.cookie.indexOf(";", offset);
      if (end == -1) end = document.cookie.length;
      cookieValue = unescape(document.cookie.substring(offset, end))
    }
  }
  return cookieValue;
}

/*
FUNÇÃO RESPONSÁVEL POR INSERIR UM BLOCO DE INFORMAÇÕES DENTRO DO DOCUMENTO HTML
PARAMETROS
sTabelaId -> ID DA TABELA QUE IRÁ CRESCER PARA QUE SUAS LINHAS E COLUNAS RECEBAM NOVOS ELEMENTOS
nControlador -> NÚMERO QUE CONTROLA A QUANTIDADE DE BLOCOS JÁ INSERIDOS
sConteudo -> O BLOCO DE INFORMAÇÕES
sIdElementoConteudo -> ID DO ELEMENTO ONDE SERÁ INSERIDO O CONTEÚDO
*/
function insereHtml(sTableId,nControlador,sIdElementoConteudo){
	sConteudo = document.getElementById(sIdElementoConteudo).innerHTML;
	oTable = document.getElementById(sTableId);
	if(oTable.rows.length > 1)
		oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: excluiHtml('"+sTableId+"',"+(oTable.rows.length-1)+","+(oTable.rows.length-1)+",'"+sIdElementoConteudo+"',false);\"><img src='/controle/imagens/botao_excluir_contato.gif' border='0'/></a>";
	else
		oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "";
	
	oNovoTr = oTable.insertRow(oTable.rows.length);
	sNovoConteudoParcial = sConteudo.replace(/\[\d/g,'['+oNovoTr.rowIndex);
	sNovoConteudo = sNovoConteudoParcial.replace(/_\d/g,'_'+oNovoTr.rowIndex);
	sNovoConteudo = sNovoConteudo.replace(/Contato \d/g,'Contato '+oNovoTr.rowIndex);
	oTd1 = oNovoTr.insertCell(0);
	oTd2 = oNovoTr.insertCell(1);
	oTd1.innerHTML = sNovoConteudo;
	//LIMPANDO conteudo
	vInput = oTd1.getElementsByTagName('INPUT');
	for(var i = 0; i < vInput.length; i++)
		vInput[i].value = '';
	oTd2.innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: insereHtml('"+sTableId+"',"+oNovoTr.rowIndex+",'"+sIdElementoConteudo+"');\"><img src='/controle/imagens/botao_adicionar_contato.gif' border='0'/></a><br><a href='JavaScript: void(0);' onclick=\"JavaScript: excluiHtml('"+sTableId+"',"+(oTable.rows.length-1)+","+(oTable.rows.length-1)+",'"+sIdElementoConteudo+"',true);\"><img src='/controle/imagens/botao_excluir_contato.gif' border='0'/></a>";
}

/*
FUNÇÃO RESPONSÁVEL POR EXCLUIR UM BLOCO DE INFORMAÇÕES DENTRO DO DOCUMENTO HTML
PARAMETROS
sTabelaId -> ID DA TABELA QUE IRÁ CRESCER PARA QUE SUAS LINHAS E COLUNAS RECEBAM NOVOS ELEMENTOS
nControlador -> NÚMERO QUE CONTROLA A QUANTIDADE DE BLOCOS JÁ INSERIDOS
sConteudo -> O BLOCO DE INFORMAÇÕES
sIdElementoConteudo -> ID DO ELEMENTO ONDE SERÁ INSERIDO O CONTEÚDO
bUltimaLinha -> INDICADOR SE É O BLOCO FINAL DA TABELA
*/
function excluiHtml(sTableId,nIndiceLinha,nControlador,sIdElementoConteudo,bUltimaLinha){
	oTable = document.getElementById(sTableId);
	if(bUltimaLinha){
		oTable.deleteRow(oTable.rows.length-1);
		if(oTable.rows.length == 1)
			oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: insereHtml('"+sTableId+"',1,'"+sIdElementoConteudo+"');\"><img src='/controle/imagens/botao_adicionar_contato.gif' border='0'/></a>";
		else 
			oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: insereHtml('"+sTableId+"',"+nControlador+",'"+sIdElementoConteudo+"');\"><img src='/controle/imagens/botao_adicionar_contato.gif' border='0'/></a><br><a href='JavaScript: void(0);' onclick=\"JavaScript: excluiHtml('"+sTableId+"',"+(oTable.rows.length-1)+","+nControlador+",'"+sIdElementoConteudo+"',true);\"><img src='/controle/imagens/botao_excluir_contato.gif' border='0'/></a>";
		
	} else {
		oTable.deleteRow(nIndiceLinha);
		for(i=0 ; i<oTable.rows.length ; i++){
			//ALTERANDO OS INDICES DA TABELA COLUNA 1
			sConteudo = oTable.rows[i].cells[0].innerHTML;
			sNovoConteudoParcial = sConteudo.replace(/\[\d/g,'['+oTable.rows[i].rowIndex);
			sNovoConteudo = sNovoConteudoParcial.replace(/_\d/g,'_'+oTable.rows[i].rowIndex);
			sNovoConteudo = sNovoConteudo.replace(/Contato \d/g,'Contato '+oTable.rows[i].rowIndex);
			oTable.rows[i].cells[0].innerHTML = sNovoConteudo;
			//ALTERANDO OS INDICES DA TABELA COLUNA 2
			sFuncaoExcluir = oTable.rows[i].cells[1].innerHTML;
			sNovaFuncaoExcluir = sFuncaoExcluir.replace(/',\d/g,"',"+oTable.rows[i].rowIndex);
			oTable.rows[i].cells[1].innerHTML = sNovaFuncaoExcluir;
		}
	}
}


function insereHtmlSite(sTableId,nControlador,sIdElementoConteudo){
	sConteudo = document.getElementById(sIdElementoConteudo).innerHTML;
	oTable = document.getElementById(sTableId);
	if(oTable.rows.length > 1)
		oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: excluiHtmlSite('"+sTableId+"',"+(oTable.rows.length-1)+","+(oTable.rows.length-1)+",'"+sIdElementoConteudo+"',false);\"><img src='/imagens/botao_remover_contato.gif' border='0'/></a>";
	else
		oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "";
	
	oNovoTr = oTable.insertRow(oTable.rows.length);
	sNovoConteudoParcial = sConteudo.replace(/\[\d/g,'['+oNovoTr.rowIndex);
	sNovoConteudo = sNovoConteudoParcial.replace(/_\d/g,'_'+oNovoTr.rowIndex);
	sNovoConteudo = sNovoConteudo.replace(/Contato \d/g,'Contato '+oNovoTr.rowIndex);
	oTd1 = oNovoTr.insertCell(0);
	oTd2 = oNovoTr.insertCell(1);
	oTd1.innerHTML = sNovoConteudo;
	//LIMPANDO conteudo
	vInput = oTd1.getElementsByTagName('INPUT');
	for(var i = 0; i < vInput.length; i++)
		vInput[i].value = '';
	oTd2.innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: insereHtmlSite('"+sTableId+"',"+oNovoTr.rowIndex+",'"+sIdElementoConteudo+"');\"><img src='/imagens/botao_adicionar_contato.gif' border='0'/></a><br><a href='JavaScript: void(0);' onclick=\"JavaScript: excluiHtmlSite('"+sTableId+"',"+(oTable.rows.length-1)+","+(oTable.rows.length-1)+",'"+sIdElementoConteudo+"',true);\"><img src='/imagens/botao_remover_contato.gif' border='0'/></a>";
}

/*
FUNÇÃO RESPONSÁVEL POR EXCLUIR UM BLOCO DE INFORMAÇÕES DENTRO DO DOCUMENTO HTML
PARAMETROS
sTabelaId -> ID DA TABELA QUE IRÁ CRESCER PARA QUE SUAS LINHAS E COLUNAS RECEBAM NOVOS ELEMENTOS
nControlador -> NÚMERO QUE CONTROLA A QUANTIDADE DE BLOCOS JÁ INSERIDOS
sConteudo -> O BLOCO DE INFORMAÇÕES
sIdElementoConteudo -> ID DO ELEMENTO ONDE SERÁ INSERIDO O CONTEÚDO
bUltimaLinha -> INDICADOR SE É O BLOCO FINAL DA TABELA
*/
function excluiHtmlSite(sTableId,nIndiceLinha,nControlador,sIdElementoConteudo,bUltimaLinha){
	oTable = document.getElementById(sTableId);
	if(bUltimaLinha){
		oTable.deleteRow(oTable.rows.length-1);
		if(oTable.rows.length == 1)
			oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: insereHtmlSite('"+sTableId+"',1,'"+sIdElementoConteudo+"');\"><img src='/imagens/botao_adicionar_contato.gif' border='0'/></a>";
		else 
			oTable.rows[oTable.rows.length-1].cells[1].innerHTML = "<a href='JavaScript: void(0);' onclick=\"JavaScript: insereHtmlSite('"+sTableId+"',"+nControlador+",'"+sIdElementoConteudo+"');\"><img src='/imagens/botao_adicionar_contato.gif' border='0'/></a><br><a href='JavaScript: void(0);' onclick=\"JavaScript: excluiHtmlSite('"+sTableId+"',"+(oTable.rows.length-1)+","+nControlador+",'"+sIdElementoConteudo+"',true);\"><img src='/imagens/botao_remover_contato.gif' border='0'/></a>";
		
	} else {
		oTable.deleteRow(nIndiceLinha);
		for(i=0 ; i<oTable.rows.length ; i++){
			//ALTERANDO OS INDICES DA TABELA COLUNA 1
			sConteudo = oTable.rows[i].cells[0].innerHTML;
			sNovoConteudoParcial = sConteudo.replace(/\[\d/g,'['+oTable.rows[i].rowIndex);
			sNovoConteudo = sNovoConteudoParcial.replace(/_\d/g,'_'+oTable.rows[i].rowIndex);
			sNovoConteudo = sNovoConteudo.replace(/Contato \d/g,'Contato '+oTable.rows[i].rowIndex);
			oTable.rows[i].cells[0].innerHTML = sNovoConteudo;
			//ALTERANDO OS INDICES DA TABELA COLUNA 2
			sFuncaoExcluir = oTable.rows[i].cells[1].innerHTML;
			sNovaFuncaoExcluir = sFuncaoExcluir.replace(/',\d/g,"',"+oTable.rows[i].rowIndex);
			oTable.rows[i].cells[1].innerHTML = sNovaFuncaoExcluir;
		}
	}
}



function exibeBloco(sElementoVisivel) {
	var oDiv = document.getElementById('layer'+sElementoVisivel);
	var oImagem = document.getElementById('imagem'+sElementoVisivel);
	var oBotao = document.getElementById('botaoOpcoes'+sElementoVisivel);
	
	if(oDiv.style.display == 'block') {
		oDiv.style.display = 'none';
		if(oImagem != null)
			oImagem.src = oImagem.src.replace('baixo','direita');
		if(oBotao != null)	
			oBotao.value = 'Exibir Opções';
	}
	else {
		oDiv.style.display = 'block';
		if(oImagem != null)
			oImagem.src = oImagem.src.replace('direita','baixo');
		if(oBotao != null)	
			oBotao.value = 'Ocultar Opções';
	}	
}

function exibeBlocoSite(sElementoVisivel) {
	var oDiv = document.getElementById('layer'+sElementoVisivel);
	var oImagem = document.getElementById('imagem'+sElementoVisivel);
	var oBotao = document.getElementById('botaoOpcoes'+sElementoVisivel);
	
	if(oDiv.style.display == 'block') {
		oDiv.style.display = 'none';
		if(oImagem != null)
			oImagem.src = oImagem.src.replace('baixo','direita');
		if(oBotao != null) {
			oBotao.src = '/imagens/botao_exibir_opcoes.gif';
			oBotao.width = 113;
		}
	}
	else {
		oDiv.style.display = 'block';
		if(oImagem != null)
			oImagem.src = oImagem.src.replace('direita','baixo');
		if(oBotao != null) {
			oBotao.src = '/imagens/botao_ocultar_opcoes.gif';
			oBotao.width = 120;
		}
	}	
}

//MÉTODO RESPONSÁVEL POR INICIALIZAR O OBJETO XMLHTTPREQUEST
function inicializaXlmHttp(){
	try{
    	oXmlHttp = new XMLHttpRequest();
	}catch(ee){
   		try{
        	oXmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    	}catch(e){
        	try{
            	oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        	}catch(E){
				oXmlHttp = false;
        	}
		}
    }
	return oXmlHttp;
}

//MÉTODO RESPONSÁVEL POR LIMPAR O OBJETO SELECT
function limpaSelect(oSelect){
	while(oSelect.length != 0){
		oSelect.remove(0);
	}
}

/*
MÉTODO RESPONSÁVEL POR RECUPERAR O CONTEÚDO QUE IRÁ COMPOR O SELECT
nIdSelect => ID DO OBJETO HTML SELECT QUE SERÁ MONTADO
nIdCategoria => ID DA CATEGORIA NO BANCO DE DADOS QUE SERVIRÁ DE FILTRO PARA MONTAGEM DO SELECT
nIdSelecionado => ID DA OPÇÃO QUE FICARÁ MARCADA NO SELECT MONTADO
sDocumento => LOCALIZAÇÃO DO DOCUMENTO QUE ESTÁ REALIZANDO A CONSULTA AO BANCO
*/
function recuperaConteudoSelect(nIdSelect,nIdCategoria,nIdSelecionado,sDocumento,bDdd){
	oOption = new Option();
	oOption.value = '';
	oOption.text = 'Aguarde...Carregando';
	oOption.selected = true;
	oSelect = document.getElementById(nIdSelect);
	oSelect.options[oSelect.options.length] = oOption;
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?nId="+nIdCategoria,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				montaSelect(nIdSelect,sConteudo,nIdSelecionado);
				if(bDdd)
					recuperaDddCidade('fDdd',oSelect.value,'/controle/consultor/empresa/recupera_ddd_cidade.php');
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}

//FUNÇÃO RESPONSÁVEL POR MONTAR O SELECT
function montaSelect(nIdSelect,sConteudo,nIdSelecionado){
	oSelect = document.getElementById(nIdSelect);
	sConteudo = sConteudo.replace(/\+/g," ");
    sConteudo = unescape(sConteudo);
	limpaSelect(oSelect);
	vLinha = sConteudo.split('##');
	for(var i = 0 ; i < vLinha.length ; i++){
		vCampo = vLinha[i].split('#');
		oOption = new Option(vCampo[1],vCampo[0]);
		if(nIdSelecionado == oOption.value)
			oOption.selected = true;
		oSelect.options[oSelect.length] = oOption;
	}
}

//FUNÇÃO RESPONSÁVEL POR MONTAR O SELECT
function montaSelectPromocao(nIdSelect,sConteudo,nIdSelecionado){
	oSelect = document.getElementById(nIdSelect);
	sConteudo = sConteudo.replace(/\+/g," ");
    sConteudo = unescape(sConteudo);
	limpaSelect(oSelect);
	vLinha = sConteudo.split('##');
	for(var i = 0 ; i < vLinha.length ; i++){
		vCampo = vLinha[i].split('#');
		oOption = new Option(vCampo[3],vCampo[0]+'#'+vCampo[1]+'#'+vCampo[2]+'#'+vCampo[3]);
		if(nIdSelecionado == oOption.value)
			oOption.selected = true;
		oSelect.options[oSelect.length] = oOption;
	}
}

function recuperaDddCidade(sIdElemento,nIdCidade,sDocumento){
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?nId="+nIdCidade,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				sConteudo = sConteudo.replace(/\+/g," ");
    			sConteudo = unescape(sConteudo);
				document.getElementById(sIdElemento).value = sConteudo;
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}

//FUNÇÃO PARA PREENCHER O CONTEÚDO DE UM SELECT DIGITANDO UM TEXTO EM UM TEXTFIELD
function recuperaRegistros(nIdSelect,sTexto,sDocumento){
	oOption = new Option();
	oOption.value = '';
	oOption.text = 'Aguarde...Carregando';
	oOption.selected = true;
	oSelect = document.getElementById(nIdSelect);
	oSelect.options[oSelect.options.length] = oOption;
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?sTexto="+sTexto,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				montaSelect(nIdSelect,sConteudo,'');
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}

//FUNÇÃO PARA PREENCHER O CONTEÚDO DE UM SELECT DIGITANDO UM TEXTO EM UM TEXTFIELD
function recuperaProdutoPromocao(nIdSelect,sTexto,sDocumento){
	oOption = new Option();
	oOption.value = '';
	oOption.text = 'Aguarde...Carregando';
	oOption.selected = true;
	oSelect = document.getElementById(nIdSelect);
	oSelect.options[oSelect.options.length] = oOption;
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?sTexto="+sTexto,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				montaSelectPromocao(nIdSelect,sConteudo,'');
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}

function selecionaCandidato(nIdPosicao,vCpfCandidato,sDocumento,sIdDiv,sParametros){
	var sCpfCandidato = '';
	for(i = 0 ; i < vCpfCandidato.length ; i++)
		sCpfCandidato += '&vCpfCandidato[]='+vCpfCandidato[i];
	
	sDocumentoInsere = '/controle/consultor/candidato/funcoes/insere_posicao_candidato.php';
	oDiv = document.getElementById(sIdDiv);
	oDiv.innerHTML = 'Carregando...';
	oDiv.style.display = 'block';
	oXmlHttpSeleciona = inicializaXlmHttp();
	oXmlHttpSeleciona.open("GET",sDocumentoInsere+"?nIdPosicao="+nIdPosicao+sCpfCandidato,true);
	oXmlHttpSeleciona.onreadystatechange = function(){
		if(oXmlHttpSeleciona.readyState == 4){
			if(oXmlHttpSeleciona.status == 200){
				recuperaTabelaRegistro(sDocumento,sIdDiv,sParametros);
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttpSeleciona.send(null);
	alert("Candidatos selecionados com sucesso!");
}


function descartaCandidato(vCpfCandidato,sDocumento,sIdDiv,sParametros){
	var sCpfCandidato = '';
	for(i = 0 ; i < vCpfCandidato.length ; i++)
		sCpfCandidato += '&vCpfCandidato[]='+vCpfCandidato[i];
	sDocumentoDescarta = '/controle/consultor/candidato/funcoes/descarta_candidato.php';
	oDiv = document.getElementById(sIdDiv);
	oDiv.innerHTML = 'Carregando...';
	oDiv.style.display = 'block';
	oXmlHttpSeleciona = inicializaXlmHttp();
	oXmlHttpSeleciona.open("GET",sDocumentoDescarta+"?"+sParametros+sCpfCandidato,true);
	oXmlHttpSeleciona.onreadystatechange = function(){
		if(oXmlHttpSeleciona.readyState == 4){
			if(oXmlHttpSeleciona.status == 200){
				recuperaTabelaRegistro(sDocumento,sIdDiv,sParametros);
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttpSeleciona.send(null);
	alert("Candidatos descartados com sucesso!");
}

function efetivaCandidato(vCpfCandidato,sDocumento,sIdDiv,sParametros){
	var sCpfCandidato = '';
	for(i = 0 ; i < vCpfCandidato.length ; i++)
		sCpfCandidato += '&vCpfCandidato[]='+vCpfCandidato[i];
	sDocumentoEfetiva = '/controle/consultor/candidato/funcoes/efetiva_candidato.php';
	oDiv = document.getElementById(sIdDiv);
	oDiv.innerHTML = 'Carregando...';
	oDiv.style.display = 'block';
	oXmlHttpSeleciona = inicializaXlmHttp();
	oXmlHttpSeleciona.open("GET",sDocumentoEfetiva+"?"+sParametros+sCpfCandidato,true);
	oXmlHttpSeleciona.onreadystatechange = function(){
		if(oXmlHttpSeleciona.readyState == 4){
			if(oXmlHttpSeleciona.status == 200){
				recuperaTabelaRegistro(sDocumento,sIdDiv,sParametros);
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttpSeleciona.send(null);
	alert("Candidatos efetivado(s) com sucesso!");
}

function descartaCandidatoConsulta(vIdCandidatoSelecionado,sDocumento,sIdForm,sParametros){
	var sIdCandidatoSelecionado = '';
	for(i = 0 ; i < vIdCandidatoSelecionado.length ; i++)
		sIdCandidatoSelecionado += '&vCpfCandidato[]='+vIdCandidatoSelecionado[i];
	oForm = document.getElementById(sIdForm);
	oXmlHttpSeleciona = inicializaXlmHttp();
	oXmlHttpSeleciona.open("GET",sDocumento+"?"+sParametros+sIdCandidatoSelecionado,true);
	oXmlHttpSeleciona.onreadystatechange = function(){
		if(oXmlHttpSeleciona.readyState == 4){
			if(oXmlHttpSeleciona.status == 200){
				oForm.submit();
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttpSeleciona.send(null);
}

function recuperaTabelaRegistro(sDocumento,sIdDiv,sParametros){
	oDiv = document.getElementById(sIdDiv);
	oXmlHttp = inicializaXlmHttp();
	oXmlHttp.open("GET",sDocumento+"?"+sParametros,true);
	oXmlHttp.onreadystatechange = function(){
		if(oXmlHttp.readyState == 4){
			if(oXmlHttp.status == 200){
				var sConteudo = oXmlHttp.responseText;
				sConteudo = sConteudo.replace(/\+/g," ");
    			sConteudo = unescape(sConteudo);
				oDiv.innerHTML = sConteudo;
			} else 
				alert('Problemas na conexão com o servidor! Tente novamente');
		}//if(oXmlHttp.readyState == 4)
	}
	oXmlHttp.send(null);
}