var strHash = "";

/* Inicializa o site do SGCD */
function inicializa() {	
	
	xajax_atualizaTamanhoPagina();

	var strUrl = document.URL;
	
	// Verifica se está usando a Busca
	if (strUrl.indexOf("?cx=") > 0 || strUrl.indexOf("&cx=") > 0)
		return;
	
	// função que trata o index.php?CodigoMenu=X&CodigoOpcao=Y
	if(strUrl.indexOf("CodigoMenu") > 0) {
		var arrUrl = strUrl.split('&');
		var intCodigoMenu = arrUrl[0].substr(arrUrl[0].indexOf("=")+1);
		var intCodigoItem = arrUrl[1].substr(arrUrl[1].indexOf("=")+1);

		defineHash(intCodigoMenu+','+intCodigoItem);
		return;
	}	

	if (document.location.hash) {
		document.getElementById('idAviso').style.display = 'none';
		
		// pega o hash que fica na barra de endereços
		strHash = document.location.hash;

//		if(strHash == '#!index') {
//			xajax_exibeMeio(1, 1); // inicial
//		} else {
		
			strHash = window.location.hash.replace("#!", "#"); // provisorio ate arrumar os links de # para #!
			// faz um "explode" na , do hash
			var quebra=strHash.split(",");

			// pega o primeiro parâmetro e tira o # que vem junto
			var parametro1 = quebra[0].replace("#", "");
			// pega o segundo parâmetro
			var parametro2 = quebra[1];
			// pega o terceiro parâmetro
			var parametro3 = quebra[2];
			// pega o quarto parâmetro
			var parametro4 = quebra[3];
			// pega o quinto parâmetro
			var parametro5 = quebra[4];					

			// módulo de notícias
			if(parametro1 == 'N') {
				// verifica se foi passado o número da pagína - páginação
				if(parametro2 == 'I') {
					// verifica se é de busca
					if(parametro4 == 'B') {
						xajax_exibeMeio(1, 1, "./Modulos/Noticias/noticias.php?Indice="+parametro3+"&acao=busca&termo="+parametro5, 'S', 'Noticias');
					}
					else {									
						xajax_exibeMeio(1, 1, "./Modulos/Noticias/noticias.php?Indice="+parametro3, 'S', 'Noticias');
					}
				}
				else {
					xajax_exibeMeio(1, 1, "./Modulos/Noticias/noticia.php?codigo="+parametro2, 'S');				
				}
			}
			else if(parametro1 == 'V') {
			// verifica se foi passado o número da pagína - páginação
				xajax_exibeMeio(1, 1, "./Modulos/Eventos/evento.php?codigo="+parametro2, 'S');
			}
			else if(parametro1 == 'A') { // módulo de avisos
				// verifica se foi passado o número da página - paginação
				if(parametro2 == 'I') {
					xajax_exibeMeio(1, 1, "./Modulos/Avisos/arquivo_avisos.php?&Indice="+parametro3, 'S', 'Avisos');
				}
			}
			else if(parametro1 == 'E') { // módulo de editais
				// verifica se foi passado o número de páginas - paginação
				if(parametro2 == 'I')
					xajax_exibeMeio(1, 1, "./Modulos/Editais/listaEdital.php?Indice="+parametro3, 'S', 'Concursos');
			}
			else if(parametro1 == 'Ev') { // módulo de eventos			
				xajax_exibeMeio(1, 1, "./Modulos/Eventos/indexEvento.php?Ano="+parametro3+"&Mes="+parametro2, 'S', 'Eventos');
			}
			else {
				xajax_exibeMeio(parametro1, parametro2, '', 'S');
			}
//		}
	}
	else {		
		// se não tiver hash e nem _escaped_fragment_ então redireciona
//		if (strUrl.indexOf("_escaped_fragment_") == -1)					
//			document.location.href=''+strUrl+'#!index';
		xajax_exibeMeio(1, 1); // inicial
	}

	verificaHash();
	window.setInterval(verificaHash, 100);
}

/* Verifica se o hash da URL foi alterado e atualiza a página de acordo com o hash atualizado */
function verificaHash() {	

	
	
	// função que trata o index.php?CodigoMenu=X&CodigoOpcao=Y
	var strUrl = document.URL;
	if(strUrl.indexOf("CodigoMenu") > 0) {
		var arrUrl = strUrl.split('&');
		var intCodigoMenu = arrUrl[0].substr(arrUrl[0].indexOf("=")+1);
		var intCodigoItem = arrUrl[1].substr(arrUrl[1].indexOf("=")+1);

		defineHash(intCodigoMenu+','+intCodigoItem);
		return;
	}
	
	if (document.location.hash != strHash) {
		strHash = document.location.hash;
		
		// verifica se editor está sendo exibido, se sim, fecha a edição e retira a máscara
		if(document.getElementById('idFechamento').style.display == 'block')
		{
			tinyMCE.execCommand('mceRemoveControl', false, 'idConteudo');
			document.getElementById('idFechamento').innerHTML = "";
			document.getElementById('idFechamento').style.display = "none";
			var objPrincipal = document.getElementById('idPrincipal');
			objPrincipal.removeChild(document.getElementById('idMascaraEditor'));
		}
		
/*		
		if(strHash == '' ) {
			defineHash('!index');
		} else if(strHash == '#!index') {
			xajax_exibeMeio(1, 1); // inicial
		} else {
		
			strHash = window.location.hash.replace("#!", "#"); // provisorio ate arrumar os links de # para #!
*/			
			if (!strHash)
				xajax_exibeMeio(1, 1); // inicial
			else if (strHash.indexOf(',') != -1) {				
				
				
				// faz um "explode" na , do hash
				var quebra=strHash.split(",");
		
				if (quebra[0].indexOf("#!") >= 0) {
					// pega o primeiro parâmetro e tira o # que vem junto
					var parametro1 = quebra[0].replace("#!", "");
				} else {
					// pega o primeiro parâmetro e tira o # que vem junto
					var parametro1 = quebra[0].replace("#", "");
				}				
				
				// pega o segundo parâmetro
				var parametro2 = quebra[1];
				// pega o terceiro parâmetro
				var parametro3 = quebra[2];
				// pega o quarto parâmetro
				var parametro4 = quebra[3];
				// pega o quinto parâmetro
				var parametro5 = quebra[4];
				
				// verifica se foi passado algum módulo
				if(parametro1 == 'N') {
					// verifica se foi passado o número da pagína - páginação
					if(parametro2 == 'I') {
						if(parametro4 == 'B') {						
							xajax_carregaModulo("./Modulos/Noticias/noticias.php?Indice="+parametro3+"&acao=busca&termo="+parametro5, '', 'Noticias');
						}
						else {
							xajax_carregaModulo("./Modulos/Noticias/noticias.php?Indice="+parametro3, '', 'Noticias');
						}
					}
					else {
						xajax_carregaModulo("./Modulos/Noticias/noticia.php?codigo="+parametro2);
					}				
				}
				else if(parametro1 == 'A') { // módulo de avisos
					// verifica se foi passado o número da página - paginação
					if(parametro2 == 'I')				
						xajax_carregaModulo("./Modulos/Avisos/arquivo_avisos.php?&Indice="+parametro3, '', 'Avisos');
					
				}
				else if(parametro1 == 'V') {
				// verifica se foi passado o número da pagína - páginação
				xajax_carregaModulo("./Modulos/Eventos/evento.php?codigo="+parametro2);
	
				}
				else if(parametro1 == 'E') { // módulo de editais
					// verifica se foi passado o número de páginas - paginação
					if(parametro2 == 'I')
						xajax_carregaModulo("./Modulos/Editais/listaEdital.php?Indice="+parametro3, '', 'Concursos');
				}
				else if(parametro1 == 'Ev') { // módulo de eventos			
					xajax_carregaModulo("./Modulos/Eventos/indexEvento.php?Ano="+parametro3+"&Mes="+parametro2, '', 'Eventos');
				}
				else {					
					xajax_exibeMenu(parametro1, parametro2);
				}	
			}
//		}
	}	
}

/* Redefine URLs parametrizadas ou atualiza o valor do hash */
function defineHash(strNewHash) {
	if (document.URL.indexOf('?') == -1)
		document.location.hash = strHash = "#" + strNewHash;
	else
		document.location.href = document.URL.substr(0, document.URL.lastIndexOf('/')) + "/#" + strNewHash;
}


function exibeManut(strId, intItem, strDisplay) {
	document.getElementById(strId + "_item_topo_" + intItem).style.display = strDisplay;
	document.getElementById(strId + "_item_esq_" + intItem).style.backgroundImage = (strDisplay == "block" ? "url(imagens/layout/manut_item_esq.png)" : strDisplay);
	document.getElementById(strId + "_item_dir_" + intItem).style.backgroundImage = (strDisplay == "block" ? "url(imagens/layout/manut_item_dir.png)" : strDisplay);
	document.getElementById(strId + "_item_rodape_" + intItem).style.display = strDisplay;
	if (strId == "manut") {
		document.getElementById("item_topo_" + intItem).style.display = (strDisplay == "block" ? "none" : "block");
		document.getElementById("item_rodape_" + intItem).style.display = (strDisplay == "block" ? "none" : "block");
	}
}


function exibeObjeto(strPrincipal, strSecundarios) {
	if (strPrincipal) {
		var objPrincipal = document.getElementById(strPrincipal);
		if (objPrincipal.style.display == "block")
			objPrincipal.style.display = "none";
		else
			objPrincipal.style.display = "block";
	}

	if (strSecundarios) {
		var intX = 0;
		while (strSecundarios.length > 0) {
			intX = strSecundarios.indexOf(',');
			if (intX == -1) {
				document.getElementById(strSecundarios).style.display = "none";
				strSecundarios = "";
			}
			else {
				document.getElementById(strSecundarios.substr(0, intX)).style.display = "none";
				strSecundarios = strSecundarios.substr(intX + 1);
			}
		}
	}
}


function mudaFonteSize(intIncremento, strId, intInicio, intMinimo, intMaximo) {
	var intFontSize = 0, objId = document.getElementById(strId);
	if ((intFontSize = objId.style.cssText.search(/font-size:/i)) == -1)
		intFontSize = intInicio;
	else
		intFontSize = parseInt(objId.style.cssText.substr(intFontSize + 11, (objId.style.cssText.search("px") - (intFontSize + 11))), 10);
	if (intIncremento == -1 && intFontSize > intMinimo || intIncremento == 1 && intFontSize < intMaximo) {
		intFontSize += intIncremento;
		objId.style.fontSize = intFontSize + "px";
	}
}


function linkSelect(strLink) {
	if (strLink) {
		var strAction = document.getElementById('formBuscaTopo').action;
		document.getElementById('formBuscaTopo').action = strLink;
		document.getElementById('formBuscaTopo').submit();
		document.getElementById('formBuscaTopo').action = strAction;
	}
		//document.location.href = strLink;
}


function defineBotaoAtivo(objOrigem, objDestino) {
	var objClass = objDestino.className;
	var objTitle = objDestino.title;

	objDestino.className = objOrigem.className;
	objDestino.title = objOrigem.title;
	objOrigem.className = objClass;
	objOrigem.title = objTitle;

	//var intId = objDestino.id.lastIndexOf('_');
	//exibeObjeto(objDestino.id.substr(0, intId) + '_opcoes' + objDestino.id.substr(intId));
}


// calcula o tamanho da largura da janela corrente/parent //
function larguraPagina(blnParent) {
	if (blnParent)
		return parent.window.innerWidth != null ? parent.window.innerWidth : parent.document.documentElement && parent.document.documentElement.clientWidth ? parent.document.documentElement.clientWidth : parent.document.body != null ? parent.document.body.clientWidth : null;
	else
		return window.innerWidth != null ? window.innerWidth : document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body != null ? document.body.clientWidth : null;
}

// calcula  o tamanho da altura da janela corrente //
function alturaPagina(blnParent) {
	if (blnParent)
		return parent.window.innerHeight != null? parent.window.innerHeight : parent.document.documentElement && parent.document.documentElement.clientHeight ? parent.document.documentElement.clientHeight : parent.document.body != null? parent.document.body.clientHeight : null;
	else
		return window.innerHeight != null? window.innerHeight : document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body != null? document.body.clientHeight : null;
}

// calcula a posição do topo da janela corrente //
function topoPosicao(blnParent) {
	if (blnParent)
		return typeof parent.window.pageYOffset != 'undefined' ? parent.window.pageYOffset : parent.document.documentElement && parent.document.documentElement.scrollTop ? parent.document.documentElement.scrollTop : parent.document.body.scrollTop ? parent.document.body.scrollTop : 0;
	else
		return typeof window.pageYOffset != 'undefined' ? window.pageYOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ? document.body.scrollTop : 0;
}

// calcula a posição esquerda da janela corrente //
function esquerdaPosicao(blnParent) {
	if (blnParent)
		return typeof parent.window.pageXOffset != 'undefined' ? parent.window.pageXOffset : parent.document.documentElement && parent.document.documentElement.scrollLeft ? parent.document.documentElement.scrollLeft : parent.document.body.scrollLeft ? parent.document.body.scrollLeft : 0;
	else
		return typeof window.pageXOffset != 'undefined' ? window.pageXOffset : document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ? document.body.scrollLeft : 0;
}


/*******************************************************************
 * Troca o foco entre 2 objetos ativando um e desativando o outro. *
 * trocaFocoId(idAtiva, idDesativa);                               *
 *    idAtiva    = document.getElementById('nomeId') do objeto que *
 *                 será ativado;                                   *
 *    idDesativa = document.getElementById('nomeId') do objeto que *
 *                 será desativado por uma máscara transparente.   *
 *    Obs: 1) Se idAtiva já estiver ativada o foco será invertido; *
 *         2) Deve existir um estilo # "css" com o mesmo ID do     *
 *            objeto idAtiva com:                                  *
 *               position: absolute;                               *
 *               z-index: > 100;                                   *
 *               display: none;                                    *
 *******************************************************************/
function trocaFocoId(idAtiva, idDesativa, blnCentrar, blnParent) {
	if (!(blnParent ? parent.document.getElementById('idMascara') : document.getElementById('idMascara'))) {
		idMascara    = (blnParent ? parent.document.createElement('div') : document.createElement('div'));
		idMascara.id = 'idMascara';
		idDesativa.appendChild(idMascara);
		idAtiva.style.display = "block";
		if (blnCentrar) {
			if (blnParent)
				centralizarDiv(idAtiva, true);
			else
				centralizarDiv(idAtiva);
		}
		idMascara.style.height = idDesativa.offsetHeight + 'px';
	}
	else {
		idAtiva.style.zIndex = 1000;
		idDesativa.removeChild(document.getElementById('idMascara'));
		idAtiva.style.display = "none";
		idAtiva.innerHTML     = "";
	}
}


// Função para centralizar uma determinada div
function centralizarDiv(strDiv, blnParent) {
	var width          = (blnParent ? larguraPagina(true) : larguraPagina());	
	var height         = (blnParent ? alturaPagina(true) : alturaPagina());
	var top            = (blnParent ? topoPosicao(true) : topoPosicao());	
	var left           = (blnParent ? esquerdaPosicao(true) : esquerdaPosicao());
	var widthObjeto    = strDiv.offsetWidth;	
	var heightObjeto   = strDiv.offsetHeight;	
	strDiv.style.left = (left + (width / 2) - (widthObjeto / 2)) + "px";
	var calcTop 		= (top + (height / 2) - (heightObjeto / 2));	
	if(calcTop < 0)
		strDiv.style.top  = "0px";			
	else
		strDiv.style.top  = calcTop + "px";
}


// Retorna uma string sem os espaços do início e fim da string
function trim(strDado) {
	return strDado.replace(/^\s+|\s+$/g,"");
}


// Valida o conteúdo da string como endereço de email
function validaEmail(strEmail) {
	var objExpressaoRegular = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if (typeof(strEmail) == "string") {
		if (objExpressaoRegular.test(strEmail))
			return true;
	}
	else if (typeof(strEmail) == "object") {
		if (objExpressaoRegular.test(strEmail.value))
			return true; 
		else
			return false;
	}
}


// Testa se o valor é numérico retornando true ou false
function testaNumero(intValor) {
	var notNumero = /\D/;
	if (intValor.length > 0) {
		if (notNumero.test(intValor))
			return false;
	}
	return true;
}


// Formata um número inteiro ou real retornando com ponto a cada 3 dígitos na parte inteira e troca o ponto por vírgula para os dígitos decimais
function formataNumero(strNumero) {
	strNumero += '';
	arrNumero = strNumero.split('.');
	strElemento1 = arrNumero[0];
	strElemento2 = arrNumero.length > 1 ? ',' + arrNumero[1] : '';
	var expRegular = /(\d+)(\d{3})/;
	while (expRegular.test(strElemento1)) {
		strElemento1 = strElemento1.replace(expRegular, '$1' + '.' + '$2');
	}
	return strElemento1 + strElemento2;
}


// Formata um número inteiro ou real retirando os ponto a cada 3 dígitos na parte inteira e troca a vírgula por ponto para os dígitos decimais
function desformataNumero(strNumero) {
	strNumero += '';
	arrNumero = strNumero.split(',');
	strElemento1 = arrNumero[0].replace(/[^0-9]/g, "");
	strElemento2 = arrNumero.length > 1 ? '.' + arrNumero[1] : '';

	return strElemento1 + strElemento2;
}


// Habilita/Desabilita os botões do formulário de Login
function habilitaBtnLogin() {
	var strLoginEmail   = trim(document.getElementById('loginEmail').value);
	var strLoginSenha   = trim(document.getElementById('loginSenha').value);
	var strLoginCaptcha = trim(document.getElementById('loginCaptcha').value);

	if (validaEmail(strLoginEmail) && strLoginSenha != '' && strLoginCaptcha != '')
		document.getElementById('btnLoginEntrar').disabled = false;
	else
		document.getElementById('btnLoginEntrar').disabled = true;

	if (validaEmail(strLoginEmail) && strLoginCaptcha != '')
		document.getElementById('btnLoginEsqueciSenha').disabled = false;
	else
		document.getElementById('btnLoginEsqueciSenha').disabled = true;
}


// Habilita/Desabilita os botões do formulário do Fale Conosco
function habilitaBtnFaleConosco() {
	var strFaleConoscoNome     = trim(document.getElementById('FaleConoscoNome').value);
	var strFaleConoscoEmail    = trim(document.getElementById('FaleConoscoEmail').value);
	var strFaleConoscoDestino  = trim(document.getElementById('FaleConoscoDestino').value);
	var strFaleConoscoMensagem = trim(document.getElementById('FaleConoscoMensagem').value);
	var strFaleConoscoCaptcha  = trim(document.getElementById('FaleConoscoCaptcha').value);

	if (strFaleConoscoNome != '' && validaEmail(strFaleConoscoEmail) && strFaleConoscoDestino != '' && strFaleConoscoMensagem != '' && strFaleConoscoCaptcha != '')
		document.getElementById('btnFaleConoscoEnviar').disabled = false;
	else
		document.getElementById('btnFaleConoscoEnviar').disabled = true;
}


/* Funções de XMLHTTPREQUEST */
var req;
var obj;
var chain;

function setDiv(d) {
	obj = d;
}
function setChain(c) {
	chain = c;
}
function loadXMLDoc(url,div,chain) {
	setDiv(div);
	setChain(chain);
	req = null;
	// Procura por um objeto nativo (Mozilla/Safari)
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
		// Procura por uma versão ActiveX (IE)
	}
	else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
		    req.send();
		}
	}
}

function processReqChange() {
	// apenas quando o estado for "completado"
	if (req.readyState == 4) {
		// apenas se o servidor retornar "OK"
		if (req.status == 200) {
			// procura pela div id="news" e insere o conteudo
			// retornado nela, como texto HTML
			document.getElementById(obj).innerHTML = req.responseText;
			//executa uma função encadeada ao termino do script
			if(chain != '')
				eval(chain);
			
			// faz a tradução da página
			//traduzirSemClick();
		}
		else {
			alert("Houve um problema ao obter os dados:\n" + req.statusText);
		}
	}
}


/* Funções do JQuery */
function exibeDivDeslizante(strObjeto, blnParent) {
	if (blnParent) {
		$(parent.document.getElementById(strObjeto)).animate({"height": "toggle"}, { duration: 300 });
	}
	else
		$(document.getElementById(strObjeto)).animate({"height": "toggle"}, { duration: 300 });
}


function trocaBanners(strObjeto) {
    $(document.getElementById(strObjeto))
	.before('<div id="nav">')
	.cycle({
		fx:     'fade', 
    	speed:   300, 
    	timeout: 3000, 
    	next:   'slideshow', 
    	pause:   1,
		pager:  '#nav' 
	});
}


/***************************************************
 * Cria elementos para o Item/SubItem no Menu/Item *
 ***************************************************/
function criaItem(strCodigo, strTipo) {
	var objGrupo = document.getElementById("grupo_item_" + strCodigo);
	var strHTML = "";
	
	if (strTipo == "sub_item") {
	
		// Cria o grupo de subitens se não existir
 		if (!document.getElementById('grupo_sub_item_' + strCodigo)) {
			var objElemento       = document.createElement('div');
			objElemento.id        = 'grupo_sub_item_' + strCodigo;
			objElemento.className = 'grupo_sub_item';
			objGrupo.appendChild(objElemento);
		}
		
		// Cria o elemento para o subitem
		var objSubGrupo          = document.getElementById('grupo_sub_item_' + strCodigo);
		var objSubElemento       = document.createElement('div');
		objSubElemento.id        = strTipo + "_" + strCodigo;
		objSubElemento.className = strTipo;
		
		// Adiciona o elemento do subitem dentro do grupo de subitens
		objSubGrupo.appendChild(objSubElemento);
		
		// Expande o item com os subitens se estiver reduzido
		if (document.getElementById('grupo_sub_item_' + strCodigo).style.display != 'block')
			exibeDivDeslizante('grupo_sub_item_' + strCodigo);
		
		// Cria o código HTML para o novo subitem
		strHTML  = "<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
/*		strHTML += "	<tr>";
		strHTML += "		<td colspan=\"3\">";
		strHTML += "			<div id=\"manut_sub_item_topo_" + strCodigo + "\" class=\"manut_item_topo\"></div>";
		strHTML += "		</td>";
		strHTML += "	</tr>";
*/		strHTML += "	<tr>";
		strHTML += "		<td id=\"manut_sub_item_esq_" + strCodigo + "\" class=\"manut_item_esq\"></td>";
		strHTML += "		<td id=\"manut_sub_item_meio_" + strCodigo + "\" class=\"manut_item_meio\">";
		strHTML += "			<div id=\"idInputNomeSubItem_" + strCodigo + "\" class=\"sub_item_meio_input\">";
		strHTML += "				<input id=\"inputNomeSubItem_" + strCodigo + "\" type=\"text\" value=\"\" maxlength=\"100\" class=\"sub_item_campo\" ";
		strHTML += "					onkeyup=\"";
		strHTML += "						if (trim(this.value).length == 0) {";
		strHTML += "							document.getElementById('idConfirmaSubItem_" + strCodigo + "').style.display = 'none';";
		strHTML += "						}";
		strHTML += "						else if (trim(this.value).length > 0) {";
		strHTML += "							document.getElementById('idConfirmaSubItem_" + strCodigo + "').style.display = 'block';";
		strHTML += "						}";
		strHTML += "					\"";
		strHTML += "				/>";
		strHTML += "				<div class=\"manut_botao_cancelar\" title=\"Cancela a inclusão do subitem\"";
		strHTML += "					onclick=\"document.getElementById('grupo_sub_item_" + strCodigo + "').removeChild(document.getElementById('grupo_sub_item_" + strCodigo + "').lastChild);\"";
		strHTML += "				></div>";
		strHTML += "				<div id=\"idConfirmaSubItem_" + strCodigo + "\" class=\"manut_botao_confirmar\" title=\"Confirma a inclusão do subitem\"";
		strHTML += "					onclick=\"xajax_incluiItem('inputNomeSubItem_" + strCodigo + "', document.getElementById('inputNomeSubItem_" + strCodigo + "').value, '" + strTipo + "')\"";
		strHTML += "				></div>";
		strHTML += "			</div>";
		strHTML += "		</td>";
		strHTML += "		<td id=\"manut_sub_item_dir_" + strCodigo + "\" class=\"manut_item_dir\"></td>";
		strHTML += "	</tr>";
/*		strHTML += "	<tr>";
		strHTML += "		<td colspan=\"3\">";
		strHTML += "			<div id=\"manut_sub_item_rodape_" + strCodigo + "\" class=\"manut_sub_item_rodape\"></div>";
		strHTML += "		</td>";
		strHTML += "	</tr>";
*/		strHTML += "</table>";
		
		// Atribui o código HTML ao elemento do subitem
		objSubElemento.innerHTML = strHTML;
		
		document.getElementById('idInputNomeSubItem_' + strCodigo).style.display = 'block';
		
		document.getElementById('inputNomeSubItem_' + strCodigo).focus();
	}
	else {
		
		// Cria o elemento para o item
		var objElemento        = document.createElement('div');
		objElemento.id         = strTipo + "_" + strCodigo;
		objElemento.className  = strTipo;
		
		// Adiciona o elemento do item dentro do grupo de itens
		objGrupo.appendChild(objElemento);
	}
	
	//xajax_incluiItem(strCodigo, chrTipo);
}

function validaBusca(strNameForm) {
	var objForm = eval("document." + strNameForm);
	if (objForm.q.value.length==0 ) { 
		alert("Campo de busca não preenchido !"); 
		objForm.q.focus();
		objForm.q.select();
		return false; 
	}
	
	if (strNameForm == "formBusca") {
		ver_chktipobusca = "";
		for (var i = 0; i < objForm.chktipobusca.length; i++) {
			if (objForm.chktipobusca[i].checked==true) {
				ver_chktipobusca=objForm.chktipobusca[i].value;
			}
		}
		if (ver_chktipobusca == "") {
			alert("Escolha a fonte de busca a realizar...");
			return false;
		}
		if (ver_chktipobusca == "clique") {
			// define o hash para a busca
			defineHash('N,I,1,B,'+objForm.q.value);
			objForm.action=xajax_carregaModulo('./Modulos/Noticias/noticias.php?acao=busca&termo='+objForm.q.value);
			return false;
		}
		else {
			objForm.submit();
			return false;
		}
	}
	else {
		objForm.submit();
		return false;
	}
}

function SelecionaEventos(mes,ano)
{
	defineHash('Ev,'+mes+','+ano)
	xajax_carregaModulo('./Modulos/Eventos/indexEvento.php?Ano='+ano+'&Mes='+mes);
}

// função para traduzir o conteúdo da página sem clicar na bandeira, 
// serve para traduzir automaticamente a página quando clicar no menu por ex.,
// pois a função traduzir() só traduz a página atual
function traduzirSemClick()
{
	var lang = document.getElementById("lang_atual").innerHTML; // pega a língua corrente
	
	// só traduz se a linguagem solicitada for diferente de brasileira
	if(lang != 'pt')
	{
		$('.topo_links_interno').translate(lang); // traduz o topo
		$('.topo_links_inferior').translate(lang); // traduz o topo inferior
		$('#idCorpo').translate(lang); // traduz corpo (meio)
		$('.item_meio_label').translate(lang); // traduz menu
		$('.sub_item_meio_label').translate(lang); // traduz sub-itens menu
		$('.rodape_links').translate(lang); // traduz rodapé
		$('#idCaminhoNavegado').translate(lang); // traduz caminho navegado
		$('#idNomePagina').translate(lang); // traduz nome da página	
	}
}

// função para traduzir o conteúdo da página quando clicar na bandeira desejada
function traduzir(lang) 
{
	var atual = document.getElementById("lang_atual").innerHTML; // pega a língua corrente
	$('.topo_links_interno').translate(lang); // traduz o topo
	$('.topo_links_inferior').translate(lang); // traduz o topo inferior
	$('#lang_atual').html(lang); // seta a nova língua
	$('#idCaminhoNavegado').translate(lang); // traduz caminho navegado
	$('#idNomePagina').translate(lang); // traduz nome da página
	$('#idCorpo').translate(lang); // traduz corpo (meio)
	$('#idDireita').translate(lang); // traduz menu direito
	$('.item_meio_label').translate(lang); // traduz menu
	$('.sub_item_meio_label').translate(lang); // traduz sub-itens menu
	$('.rodape_links').translate(lang); // traduz rodapé
	$("#lang_"+lang).attr("style", "display: none; float: right; margin-right: 3px;"); // bloqueia bandeira da língua atual
	$("#lang_"+atual).attr("style", "display: block; float: right; margin-right: 3px;"); // mostra a bandeira da língua anterior
}

// função para mostrar a janela de avisos
function MostraJanela(Segundos) {
	var width          = larguraPagina();
	var height         = alturaPagina();
	var top            = topoPosicao();
	var top            = -999;
	var left           = esquerdaPosicao();
	var widthObjeto    = document.getElementById('idAviso').offsetWidth;
	var heightObjeto   = document.getElementById('idAviso').offsetHeight;
	document.getElementById('idAviso').style.left  = (left + (width / 2) - (widthObjeto / 2)) + "px";
	document.getElementById('idAviso').style.top   = (top + (height / 2) - (heightObjeto / 2)) + "px";
	$("#idAviso").animate({"top": "200px"}, 2000);
	var y = -350;
	Desce = setInterval(function() {
		if(y > 205) {
			clearInterval(Desce);
			setTimeout(function() {
				document.getElementById('idAviso').style.display = 'none';
			},(Segundos * 1000));
			return;
		}
		y = y + 5;
	}, 1);	
}

//Habilita/Desabilita os botões do formulário do Corrigir
function habilitaBtnCorrigir() {
	var strCorrigirNome     = trim(document.getElementById('CorrigirNome').value);
	var strCorrigirEmail    = trim(document.getElementById('CorrigirEmail').value);	
	var strCorrigirMensagem = trim(document.getElementById('CorrigirMensagem').value);
	var strCorrigirCaptcha  = trim(document.getElementById('CorrigirCaptcha').value);

	if (strCorrigirNome != '' && validaEmail(strCorrigirEmail) && strCorrigirMensagem != '' && strCorrigirCaptcha != '')
		document.getElementById('btnCorrigirEnviar').disabled = false;
	else
		document.getElementById('btnCorrigirEnviar').disabled = true;
}

//Habilita/Desabilita os botões do formulário de Enviar
function habilitaBtnEnviar() {
	var strEnviarNome     			= trim(document.getElementById('EnviarAmigoNome').value);
	var strEnviarEmail    			= trim(document.getElementById('EnviarAmigoEmail').value);	
	var strEnviarNomeDestinatario   = trim(document.getElementById('EnviarAmigoNomeDestinatario').value);
	var strEnviarEmailDestinatario  = trim(document.getElementById('EnviarAmigoEmailDestinatario').value);		
	var strEnviarMensagem 		= trim(document.getElementById('EnviarAmigoMensagem').value);
	var strEnviarCaptcha  		= trim(document.getElementById('EnviarAmigoCaptcha').value);

	if (strEnviarNome != '' && validaEmail(strEnviarEmail) && strEnviarNomeDestinatario != '' && validaEmail(strEnviarEmailDestinatario) && strEnviarMensagem != '' && strEnviarCaptcha != '')
		document.getElementById('btnEnviarAmigoEnviar').disabled = false;
	else
		document.getElementById('btnEnviarAmigoEnviar').disabled = true;
}

// Função para gerar um novo captcha
function geraCaptcha() {
	var now = new Date();
	$('#imagemCaptcha').attr('src', './biblioteca/captcha/captcha.php?' + now.getTime());
	$(".input_captcha").val('');
}

// Seleciona uma página da lista
function visualizaPaginaLista(objLista, intCodigoItem) {
	var strId = objLista.id.substr(objLista.id.lastIndexOf('_')+1);
	if (objLista.className == 'btnVisualizaPaginaLista') {
		objLista.className = 'btnEscondePaginaLista';
		objLista.title = 'Esconde esta página';
		document.getElementById('idSelecionadoLista').value = strId;
		xajax_exibePagina(strId, 'idVisualizaPaginaLista_' + strId, intCodigoItem);
	}
	else {
		exibeDivDeslizante('idVisualizaPaginaLista_' + strId);
		objLista.className = 'btnVisualizaPaginaLista';
		objLista.title = 'Visualiza esta página';
	}
}

// Visualiza a página de itens/subitens da lista
function visualizaItemLista(intCodigoItem, intCodigoPagina, blnParent) {
	if (blnParent)
		var objLista = parent.document.getElementById('idSelecionaItemLista_' + intCodigoItem);
	else {
		var objLista = document.getElementById('idSelecionaItemLista_' + intCodigoItem);
		blnParent = false;
	}
	
	if (objLista.className == 'btnVisualizaItemLista') {
		objLista.className = 'btnEscondeItemLista';
		objLista.title = 'Esconde' + objLista.title.substr(9);
		/*document.getElementById('idSelecionadoLista').value = intCodigoItem;*/
		xajax_exibePagina(intCodigoPagina, 'idVisualizaItemLista_' + intCodigoItem, 0, 698, blnParent);
	}
	else {
		exibeDivDeslizante('idVisualizaItemLista_' + intCodigoItem, blnParent);
		objLista.className = 'btnVisualizaItemLista';
		objLista.title = 'Visualiza' + objLista.title.substr(7);
	}
}

// Exibe a div deslizante para os itens linkados a uma página do banco de dados
function exibeItensLinkados(objSeta) {
	var strId = objSeta.id.substr(objSeta.id.lastIndexOf('_')+1);
	if (objSeta.style.backgroundImage.search('setaSobe') != -1) {
		exibeDivDeslizante('idExibeItensLinkados_' + strId);
		objSeta.style.backgroundImage = 'url(imagens/icones/setaDesce.png)';
		objSeta.title = 'Exibe os itens linkados para esta página';
	}
	else {
		objSeta.style.backgroundImage = 'url(imagens/icones/setaSobe.png)';
		objSeta.title = 'Esconde os itens linkados para esta página';
		xajax_exibeItensLinkados(strId);
	}
}

// Função para adicionar/remover uma permissão recursiva
function permissaoRecursiva(strRecursiva, intIdPai, strLogin, strGrupo, strLoginReceber, strAcesso)
{
	if(strRecursiva == 'sim')
		xajax_adicionaPermissaoRecursiva(0, intIdPai, strLogin, strGrupo, strLoginReceber, strAcesso);
	else
		xajax_removePermissaoRecursiva(intIdPai, strLogin, strGrupo, strLoginReceber);
}


//Habilita/Desabilita os botões do formulário de cadastro de usuário
function habilitaBtnFormCadastrar() {
	var strCadastroNome    = trim(document.getElementById('formCadastroNome').value);
	var strCadastroEmail   = trim(document.getElementById('formCadastroEmail').value);	
	var strCadastroSenha   = trim(document.getElementById('formCadastroSenha').value);	
	var strCadastroSenha2  = trim(document.getElementById('formCadastroSenha2').value);	
	var intTamanhoSenha    = document.getElementById("formCadastroSenha").length;		
	
	if (strCadastroNome != '' && validaEmail(strCadastroEmail) && strCadastroSenha != '' && strCadastroSenha2 != '' && strCadastroSenha == strCadastroSenha2 && strCadastroSenha.length >= 8)
		document.getElementById('btnformCadastro').disabled = false;
	else
		document.getElementById('btnformCadastro').disabled = true;
}


//Habilita/Desabilita os botões do formulário de cadastro de grupo
function habilitaBtnFormCadastrarGrupo() {
	var strCadastroNome    = trim(document.getElementById('formCadastroNomeGrupo').value);	
	var strCadastroEmail    = trim(document.getElementById('formCadastroEmailGrupo').value);	
	//var strCadastroSenha   = trim(document.getElementById('formCadastroSenhaGrupo').value);	
	//var strCadastroSenha2  = trim(document.getElementById('formCadastroSenha2Grupo').value);	

	if (strCadastroNome != '' && strCadastroEmail != '' && validaEmail(strCadastroEmail))
		document.getElementById('btnformCadastroGrupo').disabled = false;
	else
		document.getElementById('btnformCadastroGrupo').disabled = true;
}

//Habilita/Desabilita os botões do formulário de alteração de grupo
function habilitaBtnFormAlteraGrupo() {
	var strAlteraNome    = trim(document.getElementById('formAlteraNomeGrupo').value);	
	var strAlteraEmail    = trim(document.getElementById('formAlteraEmailGrupo').value);	
	//var strCadastroSenha   = trim(document.getElementById('formCadastroSenhaGrupo').value);	
	//var strCadastroSenha2  = trim(document.getElementById('formCadastroSenha2Grupo').value);	

	if (strAlteraNome != '' && strAlteraEmail != '' && validaEmail(strAlteraEmail))
		document.getElementById('btnformCadastroGrupo').disabled = false;
	else
		document.getElementById('btnformCadastroGrupo').disabled = true;
}


//Habilita/Desabilita os botões do formulário de cadastro de módulos
function habilitaBtnFormCadastrarModulo() {
	var strCadastroNome    	= trim(document.getElementById('formModuloNome').value);
	var strCadastroServidor = trim(document.getElementById('formModuloServidor').value);
	var strCadastroUsuario  = trim(document.getElementById('formModuloUsuario').value);	
	var strCadastroSenha    = trim(document.getElementById('formModuloSenha').value);
	var strCadastroBanco    = trim(document.getElementById('formModuloBanco').value);	

	if (strCadastroNome != '' && strCadastroServidor != '' && strCadastroUsuario != '' && strCadastroSenha != '' && strCadastroBanco != '')
		document.getElementById('btnformCadastroModulo').disabled = false;
	else
		document.getElementById('btnformCadastroModulo').disabled = true;
}


//Habilita/Desabilita os botões do formulário de cadastro do fale conosco
function habilitaBtnFormCadastrarFaleConosco() {
	var strCadastroFCNome  = trim(document.getElementById('formFaleConoscoNome').value);
	var strCadastroFCEmail = trim(document.getElementById('formFaleConoscoEmail').value);

	if (strCadastroFCNome != '' && strCadastroFCEmail != '' && validaEmail(strCadastroFCEmail))
		document.getElementById('btnformCadastroFaleConosco').disabled = false;
	else
		document.getElementById('btnformCadastroFaleConosco').disabled = true;
}


//Habilita/Desabilita o botão de cadastro de permissão no módulo
function habilitaBtnFormPermissaoModulo() {
	var intModulo = document.getElementById("PermissaoModuloModulo").value;

	if (intModulo != '')
		document.getElementById('btnPermissaoModulo').disabled = false;
	else
		document.getElementById('btnPermissaoModulo').disabled = true;
}


// função para percorrer o select multiple de usuários e grupos do cadastro de permissão e enviar para o xajax cadastrar as novas permissões
function cadastrarPermissaoModulo() 
{	
	var total		= document.getElementById("PermissaoModuloLogin").length;
	var intModulo	= document.getElementById("PermissaoModuloModulo").value;
	var selValue	= new Array;

    var j = 0  
    for (i=0; i<total; i++)  
    {  
		if (document.getElementById("PermissaoModuloLogin")[i].selected === true)  
		{
			selValue[j] = document.getElementById("PermissaoModuloLogin")[i].value;
			j++;
		}
    }
	xajax_cadastrarPermissaoModulo(intModulo, selValue);
}


// função para percorrer o select multiple de usuários e enviar para o xajax cadastrar um novo usuário
function cadastrarUsuario() {
	var total		= document.getElementById("GruposLogin").length;
	var strNome		= document.getElementById("formCadastroNome").value;
	var strEmail	= document.getElementById("formCadastroEmail").value;
	var strSenha	= document.getElementById("formCadastroSenha").value;
	var selValue	= new Array;

    var j = 0  
    for (i=0; i<total; i++)  
    {  
		if (document.getElementById("GruposLogin")[i].selected === true)  
		{
			selValue[j] = document.getElementById("GruposLogin")[i].value;
			j++;
		}
    }
	xajax_cadastrarUsuario(strNome, strEmail, strSenha, 'N', '', selValue)
}


// função para validar a alteração dos dados do usuário 
function alterarDadosUsuario()
{
	var strLogin	= document.getElementById("formAlteraLogin").value;
	var strNome		= document.getElementById("formAlteraNome").value;
	var strEmail	= document.getElementById("formAlteraEmail").value;
	var strSenha	= document.getElementById("formAlteraSenha").value;
	var strSenha2	= document.getElementById("formAlteraSenha2").value;
	var total		= document.getElementById("AlteraGruposLogin").length;
	var selValue	= new Array;
	var strErro = '';

	if(strNome == '')
		strErro += '\nPreencha o campo do nome.';

	if(strEmail == '')
		strErro += '\nPreencha o campo de e-mail.';

	if(strEmail != '')
		if(!validaEmail(strEmail))
			strErro += '\nEndereço de e-mail inválido.';

	if(strSenha != '')
	{
		if(strSenha != strSenha2)
			strErro += '\nAs senhas não são iguais.';

		if(strlen(strSenha) < 8)
			strErro += '\nA senha deve ter no mínimo 8 caracteres alfanuméricos.'
	}

	if(strSenha2 != '' && strSenha == '')
		strErro += '\nAs senhas não são iguais.';

    var j = 0  
    for (i=0; i<total; i++)  
    {  
		if (document.getElementById("AlteraGruposLogin")[i].selected === true)  
		{
			selValue[j] = document.getElementById("AlteraGruposLogin")[i].value;
			j++;
		}
    }

	if(strErro != '')
		alert(strErro);
	else
		xajax_alteraDadosUsuario(strLogin, strNome, strEmail, strSenha, selValue);
}

//função para validar a alteração dos dados do grupo 
function alterarDadosGrupo()
{
	var strNome		= document.getElementById("formAlteraNomeGrupo").value;
	var strEmail	= document.getElementById("formAlteraEmailGrupo").value;
	//var strSenha	= document.getElementById("formAlteraSenhaGrupo").value;
	//var strSenha2	= document.getElementById("formAlteraSenha2Grupo").value;
	var strLogin	= document.getElementById("formAlteraLoginGrupo").value;	
	
	var strErro = '';

	if(strNome == '')
		strErro += '\nPreencha o campo do nome.';

	if(strEmail == '')
		strErro += '\nPreencha o campo de e-mail.';

	if(strEmail != '')
		if(!validaEmail(strEmail))
			strErro += '\nEndereço de e-mail inválido.';
/*
	if(strSenha != '')
	{
		if(strSenha != strSenha2)
			strErro += '\nAs senhas não são iguais.';

		if(strlen(strSenha) < 8)
			strErro += '\nA senha deve ter no mínimo 8 caracteres alfanuméricos.'
	}

	if(strSenha2 != '' && strSenha == '')
		strErro += '\nAs senhas não são iguais.';
*/
	if(strErro != '')
		alert(strErro);
	else
		xajax_alteraDadosGrupo(strLogin, strNome, strEmail);
}



// função para trocar de abas nos cadastros
function alternarAbas(aba_atual)
{
	xajax_listaAbas(aba_atual);
	if(aba_atual == 1)
	{
		document.getElementById("conteudo_aba2").innerHTML = '';
		document.getElementById("conteudo_aba3").innerHTML = '';
		document.getElementById("conteudo_aba4").innerHTML = '';
		document.getElementById("conteudo_aba5").innerHTML = '';
		document.getElementById("listaPermissaoModulos").innerHTML = '';
		xajax_carregaFuncaoDivAba(1);	
	}	
		
	if(aba_atual == 2)
	{
		document.getElementById("conteudo_aba1").innerHTML = '';
		document.getElementById("conteudo_aba3").innerHTML = '';
		document.getElementById("conteudo_aba4").innerHTML = '';
		document.getElementById("conteudo_aba5").innerHTML = '';
		document.getElementById("listaPermissaoModulos").innerHTML = '';
		xajax_carregaFuncaoDivAba(2);	
		xajax_listarGrupos();
	}		
		
	if(aba_atual == 3)
	{
		document.getElementById("conteudo_aba1").innerHTML = '';
		document.getElementById("conteudo_aba2").innerHTML = '';
		document.getElementById("conteudo_aba4").innerHTML = '';
		document.getElementById("conteudo_aba5").innerHTML = '';
		document.getElementById("listaPermissaoModulos").innerHTML = '';
		xajax_carregaFuncaoDivAba(3, 'N');
		xajax_listarUsuarios();
	}
	
	if(aba_atual == 4)
	{
		document.getElementById("conteudo_aba1").innerHTML = '';
		document.getElementById("conteudo_aba2").innerHTML = '';
		document.getElementById("conteudo_aba3").innerHTML = '';
		document.getElementById("conteudo_aba5").innerHTML = '';
		document.getElementById("listaPermissaoModulos").innerHTML = '';
		xajax_carregaFuncaoDivAba(4);
		xajax_listaFaleConosco();
	}	

	if(aba_atual == 5)
	{
		document.getElementById("conteudo_aba1").innerHTML = '';
		document.getElementById("conteudo_aba2").innerHTML = '';
		document.getElementById("conteudo_aba3").innerHTML = '';
		document.getElementById("conteudo_aba4").innerHTML = '';
		document.getElementById("listaPermissaoModulos").innerHTML = '';
		xajax_carregaFuncaoDivAba(5);
		xajax_listaModulos();
	}
	
	if(aba_atual == 6)
	{
		document.getElementById("conteudo_aba1").innerHTML = '';
		document.getElementById("conteudo_aba2").innerHTML = '';
		document.getElementById("conteudo_aba3").innerHTML = '';
		document.getElementById("conteudo_aba4").innerHTML = '';
		document.getElementById("conteudo_aba5").innerHTML = '';
		xajax_carregaFuncaoDivAba(6);
	}
	
	for(var i = 1;i <= 6; i++)
	{
		if(i != aba_atual)
			document.getElementById('div_aba'+i).style.display = "none";
		else
			document.getElementById('div_aba'+i).style.display = "block";
	}	
}


// função que valida o cadastro das informações do site
function validaCadastroSite()
{
	var strNomeCampus	 = document.getElementById("formCadastroSiteNomeCampus").value;
	var strNomeFaculdade = document.getElementById("formCadastroSiteNomeFaculdade").value;
	var strEndereco		 = document.getElementById("formCadastroSiteEndereco").value;
	var strBairro		 = document.getElementById("formCadastroSiteBairro").value;
	var strCep			 = document.getElementById("formCadastroSiteCep").value;
	var strCidade		 = document.getElementById("formCadastroSiteCidade").value;
	var strTelefone		 = document.getElementById("formCadastroSiteTelefone").value;	
	var strFax			 = document.getElementById("formCadastroSiteFax").value;
	var strPabx			 = document.getElementById("formCadastroSitePabx").value;
	var strEmailCorrNot	 = document.getElementById("formCadastroSiteEmailCorrNot").value;
	var strEmailNovoCad = document.getElementById("formCadastroSiteEmailNovoCad").value;
	var strDominio		 = document.getElementById("formCadastroSiteDominio").value;
	var strDirAbs		 = document.getElementById("formCadastroSiteDirAbs").value;
	var strLarMinPg		 = document.getElementById("formCadastroSiteLarMinPg").value;
	var strLarMaxPg		 = document.getElementById("formCadastroSiteLarMaxPg").value;
	var strTwitter		 = document.getElementById("formCadastroSiteLarTwitter").value;

	var strErro = '';
	
	if(strNomeCampus == '')
		strErro += '\nInforme o nome do campus.';
	 
	if(strNomeFaculdade == '')
		strErro += '\nInforme o nome da faculdade.';
		
	if(strDirAbs == '')
		strErro += '\nInforme o diretório absoluto';
		
	if(strDirAbs != '')
	{
		var intTamanho = strDirAbs.length;
		var strUltimoCaracter = strDirAbs[intTamanho-1];
		
		// verifica se o último caracter é /, caso contrário coloca a / no final
		if(strUltimoCaracter != '/')
			strDirAbs = strDirAbs+'/';
	}
		
	if(strEmailCorrNot != '')
		if(!validaEmail(strEmailCorrNot))
			strErro += '\nE-mail para recebimento de correções de notícias inválido.';

	if(strEmailNovoCad != '')
		if(!validaEmail(strEmailNovoCad))
			strErro += '\nE-mail para recebimento de novos cadastros inválido.';
	
	if(strErro != '')
		alert(strErro);
	else
		xajax_atualizarDadosUnidade(strNomeCampus, strNomeFaculdade, strEndereco, strBairro, strCep, strCidade, strTelefone, strFax, strPabx, strEmailCorrNot, strEmailNovoCad, strDominio, strDirAbs, strLarMinPg, strLarMaxPg, strTwitter);
}

/************************************************
 * Validação do Formulário de Perfil do Usuário *
 ************************************************/
function validaPerfil() {
	var strSenhaAtual  = trim(document.getElementById('inputSenhaAtual').value);
	var strSenhaNova   = trim(document.getElementById('inputSenhaNova').value);
	var strConfirmacao = trim(document.getElementById('inputConfirmacao').value);
	
	if (strSenhaAtual && strSenhaNova && strConfirmacao && strSenhaNova == strConfirmacao && strSenhaNova.length >= 8) {
		document.getElementById('btnPerfilSalvar').disabled = false;
	}
	else {
		document.getElementById('btnPerfilSalvar').disabled = true;
	}
}

/*****************************
 * Verifica a força da Senha *
 *****************************/
function verificaForcaSenha(objId) {
	var ExpRegNumero   = /[0-9]/;
	var ExpRegLetra    = /[a-z]/i;
	var strChrEspecial = "\"'!@#$%&*()_-+=`´{[^~}]<,>.:;?/|\\§ªº°¹²³£¢¬ ";
	var intPontuacao   = 0;
	var intFator       = 0;
	var chrSenha       = '';
	var strTesteSenha  = '';
	var blnChrEspecial = false;
	
	for (var intId = 0; intId < objId.value.length; intId++) {
		chrSenha = objId.value.charAt(intId);
		intFator = (ExpRegNumero.test(chrSenha) ? 10 : 0);
		intFator = (ExpRegLetra.test(chrSenha) ? 25 : intFator);
		
		for (var intChrEspecial = 0; intChrEspecial < strChrEspecial.length && intFator == 0; intChrEspecial++)
			intFator = (chrSenha == strChrEspecial.charAt(intChrEspecial) ? 50 : intFator);
		
		for (var intTesteSenha = 0; intTesteSenha < strTesteSenha.length && intFator > 0; intTesteSenha++)
			intFator = (chrSenha == strTesteSenha.charAt(intTesteSenha) ? 0 : intFator);
		
		intPontuacao += intFator;
		strTesteSenha += chrSenha;
	}
	
	var intVermelho    = (intPontuacao > 256 && intPontuacao < 512 ? 512 - intPontuacao : (intPontuacao < 256 ? 255 : 0));
	var intVerde       = (intPontuacao < 256 ? intPontuacao : 255);
	
	var strHexadecimal   = "0123456789ABCDEF";
	var intVermelhoResto = intVermelho % 16;
	var strHexVermelho   = strHexadecimal.charAt((intVermelho - intVermelhoResto) / 16) + strHexadecimal.charAt(intVermelhoResto);
	var intVerdeResto    = intVerde % 16;
	var strHexVerde      = strHexadecimal.charAt((intVerde - intVerdeResto) / 16) + strHexadecimal.charAt(intVerdeResto);

	objId.style.backgroundColor = '#' + strHexVermelho + strHexVerde + '00';
}


/******************************
 * Formatação de campos input *
 ******************************/
function formataInput(objInput) {
	var ExpRegValidos = /[A-Za-z0-9 ÁÃÂÀÉÊÍÓÕÔÚÇáãâàéêíóõôúç,.;:\-_]/;
	var strFormatada = chrInput = "";
	
	for (var intChar = 0; intChar < objInput.value.length; intChar++) {
		chrInput = objInput.value.charAt(intChar);
		if (ExpRegValidos.test(chrInput))
			strFormatada += chrInput;
	}
	
	objInput.value = strFormatada;
}

// função que retorna o tamanho da string
function strlen (string) {
    var str = string+'';
    var i = 0, chr = '', lgth = 0;
 
    if (!this.php_js || !this.php_js.ini || !this.php_js.ini['unicode.semantics'] ||
            this.php_js.ini['unicode.semantics'].local_value.toLowerCase() !== 'on') {
        return string.length;
    }
 
    var getWholeChar = function (str, i) {
        var code = str.charCodeAt(i);
        var next = '', prev = '';
        if (0xD800 <= code && code <= 0xDBFF) {
            if (str.length <= (i+1))  {
                throw 'High surrogate without following low surrogate';
            }
            next = str.charCodeAt(i+1);
            if (0xDC00 > next || next > 0xDFFF) {
                throw 'High surrogate without following low surrogate';
            }
            return str.charAt(i)+str.charAt(i+1);
        } else if (0xDC00 <= code && code <= 0xDFFF) { // Low surrogate
            if (i === 0) {
                throw 'Low surrogate without preceding high surrogate';
            }
            prev = str.charCodeAt(i-1);
            if (0xD800 > prev || prev > 0xDBFF) {
                throw 'Low surrogate without preceding high surrogate';
            }
            return false; 
        }
        return str.charAt(i);
    };
 
    for (i=0, lgth=0; i < str.length; i++) {
        if ((chr = getWholeChar(str, i)) === false) {
            continue;
        } 
        lgth++;
    }
    return lgth;
}

// Início - Funções da Pós-Graduação
function formataData(objData) {
	var strValidos  = "0123456789";
	var strNovaData = strDataLimpa = "";
	for (var intIndice=0; intIndice<objData.value.length; intIndice++) {
		if (strValidos.indexOf(objData.value.substr(intIndice, 1)) > -1) {
			strDataLimpa += objData.value.substr(intIndice, 1);
		}
	}
	for (intIndice=0; intIndice<strDataLimpa.length; intIndice++) {
		if (intIndice == 2 || intIndice == 4)
			strNovaData += "/";
		else if (intIndice == 8)
			strNovaData += " - ";
		else if (intIndice == 10)
			strNovaData += ":";
		strNovaData += strDataLimpa.substr(intIndice, 1);
	}
	if (objData.value != strNovaData)
		objData.value = strNovaData;
}

// Testa a validação das datas
function validaData(Objeto) {
	var Dia = parseInt(Objeto.value.substring(0,2),10);
	var Mes = parseInt(Objeto.value.substring(3,5),10)-1;
	var Ano = parseInt(Objeto.value.substring(6),10);
	if (Dia > 0 || Mes > 0 || Ano > 0) {
		var DataComp = new Date(Ano,Mes,Dia);
		var DiaComp = parseInt(DataComp.getDate(),10);
		var MesComp = parseInt(DataComp.getMonth(),10);
		if ((Dia != DiaComp) || (Mes != MesComp)) {
			return false;
		}
	}

	if (Objeto.value.length == 10 || Objeto.value.length == 0)
		return true;
	else
		return false;
}

function mostraErroBanca(msgErro, blnErro) {
	if (blnErro) {
		document.getElementById('idMensagemErroBanca').style.display = 'block';
		document.getElementById('idPesquisar').disabled = true;
	}
	else {
		document.getElementById('idMensagemErroBanca').style.display = 'none';
		document.getElementById('idPesquisar').disabled = false;
	}
	document.getElementById('idMensagemErroBanca').innerHTML = msgErro;
}

function strTrim(Objeto) {
	while (Objeto.length > 0 && (Objeto.indexOf(" ") == 0 || Objeto.lastIndexOf(" ") == (Objeto.length - 1)))
	{
		if (Objeto.indexOf(" ") == 0)
			Objeto = Objeto.substr(1);
		if (Objeto.lastIndexOf(" ") == (Objeto.length - 1))
			Objeto = Objeto.substr(0, (Objeto.length - 1));
	}
	return Objeto;
}

function ordemData(Objeto) {
	if (Objeto.value.length == 10)
		return parseInt(Objeto.value.substring(6) + Objeto.value.substring(3,5) + Objeto.value.substring(0,2), 10);
	else
		return 0;
}

function testaDataBanca(datBanca) {
	formataData(datBanca);

	var datOutraData = (datBanca.name=='DataInicio' ? document.getElementById('DataFim') : document.getElementById('DataInicio'));

	if (validaData(datBanca) == false)
		mostraErroBanca('Erro! Data '+(datBanca.name=='DataInicio' ? 'inicial' : 'final')+' inválida', true);
	else if (validaData(datOutraData) == false)
		mostraErroBanca('Erro! Data '+(datOutraData.name=='DataInicio' ? 'inicial' : 'final')+' inválida', true);
	else {
		var intDataInicio = ordemData(document.getElementById('DataInicio'));
		var intDataFim    = ordemData(document.getElementById('DataFim'));
		if (intDataInicio > intDataFim && intDataInicio > 0 && intDataFim > 0)
			mostraErroBanca('Erro! A data inicial não pode ser maior que a data final', true);
		else
			mostraErroBanca(null, false);
	}
}
// Fim - Funções da Pós-Graduação
