function gE(ID) {
	return document.getElementById(ID);
}

function gEs(tag) {
	return document.getElementsByTagName(tag);
}
function gEn(name) {
	return document.getElementsByName(name);
}

function calc_left (w) {
   var left = (screen.availWidth / 2) - (w / 2);
   return (left);
}

function calc_top (h) {
   var top = (screen.availHeight / 2) - (h / 2);
   return (top);
}


function open_popup (url, w, h) {
   var top = calc_top (h);
   var left = calc_left (w);

   popup = window.open (url,'','scrollbars=yes,width='+w+',height='+h+',left='+left+',top='+top+',screenX='+left+',screenY='+top);
   popup.focus();
}


function pagina(url) {
		var recipiente = gE('content');
		ajax = openAjax();
		ajax.open('GET', url); 
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 1) {
		//		alert('Lendo');
			}
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					recipiente.innerHTML = ajax.responseText;
				} 
			}
		}
		ajax.send(null);
		//return false;		
}

function envia(div, form) {
		var recipiente = gE(div);
		var formulario = gE(form);
		var url = formulario.action + "?";
		var metodo = formulario.method.toUpperCase();
		var variaveis = getVariaveis(form);
		if(metodo == 'GET'){
			url += 	variaveis;
			variaveis = null;
		}
		ajax = openAjax();
		ajax.open(metodo, url, true); 
		ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		ajax.send(variaveis);
		recipiente.innerHTML = "<b>Trabalhando em sua solicitação...</b>";
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 1) {
				recipiente.innerHTML = "Trabalhando em sua solicitação...";
			}
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					recipiente.innerHTML = ajax.responseText;
				} 
			}
		}
		return true;
}

function setSelect(url,div) {
		var recipiente = gE(div);
		recipiente.innerHTML = "";
		ajax = openAjax();
		ajax.open('GET', url); 
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 1) {
				recipiente.innerHTML = "<select disabled=\"disabled\"><option>Aguarde...</option></select>";
			}
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					recipiente.innerHTML = ajax.responseText;
				} 
			}
		}
	ajax.send(null);
}

function setImagem(formulario,imagem,url,div) {
		var recipiente = gE(div);
		var form = gE(formulario);
		form.icone.value = imagem;	
		recipiente.innerHTML = "<img src=\"" + url + "\"/>";
}

function getVariaveis(form){
	var formulario = gE(form);
	var Variaveis = "";
	var TipoInput;
	for (var i=0;i<formulario.length;i++){
		NomeTag = formulario.elements[i].tagName.toUpperCase();
		TipoInput = formulario.elements[i].type.toUpperCase();
	
		if(NomeTag == "INPUT" || NomeTag == "SELECT" || NomeTag == "TEXTAREA"){
		  if(TipoInput == "FILE")
			alert('ERRO: N�o � poss�vel enviar arquivos por AJAX');
		  if(TipoInput == "RADIO" || TipoInput == "CHECKBOX" ){
			if(formulario.elements[i].checked) Variaveis += formulario.elements[i].name + "=" + escape(formulario.elements[i].value) + "&";
		  }else 
			Variaveis += formulario.elements[i].name + "=" + escape(formulario.elements[i].value) + "&";
		}
	  }
	  return Variaveis;
}


function openAjax() {
	var ajax;
	try {
		ajax = new XMLHttpRequest();
		} catch(ee) {
			try {
					ajax = new ActiveXObject("Msxml2.XMLHTTP");
				} catch(e) {
					try {
						ajax = new ActiveXObject("Microsoft.XMLHTTP");
						} catch(E) {
							ajax = false;
						}
					}
	}
	return ajax;
}


function validaSenha(formulario) {
	var form = gE(formulario);
	if (form.senha.value != form.repetesenha.value) {
		alert ('Senhas n�o conferem, digite novamente!');
		form.senha.value = ('');
		form.repetesenha.value = ('');
		form.senha.focus();
	return false;
	}
	return true;
}

function validaForm(formulario){
	var form = formulario;
	var status = false;
	for(var cont = 0; cont < form.length; cont++){
		if((form[cont].value=="") && (form[cont].type!="hidden") && (form[cont].type!="file")){
			status = true;
			form[cont].select();
			break;
		}
	}
	if(status){
		alert("O Campo "+form[cont].name+ " ficou vazio.");
		return false;
	}else{
		return true;
		form.submit();	
	}
}

function validaCEP(variavel){
  campo =gE(variavel);
  if (campo.value.length != 0){
	var cep    = campo;
 	var strcep = campo.value;
 		if (strcep.length != 9){
 			alert("CEP informado inv�lido.");
 			campo.focus();
			return false;
		}else{
 			if (strcep.indexOf("-") != 5){
 				alert("Formato de CEP informado inv�lido.");
 				campo.focus();
				return false;
			}else{
 				if (isNaN(strcep.replace("-","0"))){
 					alert("CEP informado inv�lido.");
 					campo.focus();
					return false;
				}
			}
		}
		return true;
	}
}

function validaMail(variavel){
	campo =gE(variavel);
	if (!campo.value.length == 0){
		cliente_mail = campo.value;
		if (cliente_mail.indexOf("@") == -1) {
			alert("Digite um e-mail v�lido.");
			form.campo.focus();
			return false;
		}
		e = new String(campo.value);
		ee = e.split("@");
		if (ee[1].indexOf(".") <= 1) {
			alert("Digite um e-mail v�lido.");
			campo.focus();
			return false;
		}
	}
}

function validaEnvia(div,form,form2){
	var teste = validaForm(form2);
	if (teste != false){
		form2.alteracao.value=1;
		envia(div,form);
		return false;
	}else{
		return false;
	}
}

function validarEnviar(div,form,form2){
	var teste = validaForm(form2);
	if (teste != false){
		for(var cont = 0; cont < form2.length; cont++){
			form2[cont].disabled="true";
		}
		form.backgroudColor = "#FFFFFF";
		envia(div,form);
		return false;
	}else{
		return false;
	}
}

function validaSemestre(variavel){
	semestre = variavel.value;
	if (semestre.length == 5){
		if(semestre[4] != '1' && semestre[4] != '2'){
			alert("Semestre invalido!");
			variavel.value = "";
			variavel.focus();
		}
	}else{
        alert("Semestre invalido! Deve possuir 5 digitos.");
		variavel.value = "";
		variavel.focus();
    }
}


/* ################################################################################### */

function mascara(o,f){
    v_obj=o;
    v_fun=f;
    setTimeout("execmascara()",1);
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value);
}

function leech(v){
    v=v.replace(/o/gi,"0")
    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}

function padronizaTelefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca par�nteses em volta dos dois primeiros d�gitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca h�fen entre o quarto e o quinto d�gitos
    return v
}

function padronizaCpf(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que n�o � d�gito
	v=v.replace(/^(\d{3})(\d{3})(\d{3})(\d)/,"$1.$2.$3-$4") //Esse � t�o f�cil que n�o merece explica��es
    return v
}

function padronizaCep(v){
    v=v.replace(/\D/g,"")                //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2") //Esse � t�o f�cil que n�o merece explica��es
    return v
}

function mat(v){
    v=v.replace(/\D/g,"")                //Remove tudo o que n�o � d�gito
	v=v.replace(/^(\d{6})(\d)(\d{1})(\d)/,"$1-$2-$3") //Esse � t�o f�cil que n�o merece explica��es
//	v=v.replace(/(\d{6})(\d)/,"$1-2")
    return v
}

function padronizadata(v){
    v=v.replace(/\D/g,"")                //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d{2})(\d)/g,"$1/$2") //Esse � t�o f�cil que n�o merece explica��es
    v=v.replace(/(\d{2})(\d)/,"$1/$2")
    return v
}

function telefone(v){
    v=v.replace(/\D/g,"")                 //Remove tudo o que n�o � d�gito
    v=v.replace(/^(\d\d)(\d)/g,"($1) $2") //Coloca par�nteses em volta dos dois primeiros d�gitos
    v=v.replace(/(\d{4})(\d)/,"$1-$2")    //Coloca h�fen entre o quarto e o quinto d�gitos
    return v
}

function seleciona(opcao){
	var selecao = document.getElementById(opcao);
	selecao.className = "selecionado";
}

function desmarca(opcao){
	var selecao = document.getElementById(opcao);
	selecao.className = "";
}

function apagaRegistro(pagina,id){
	var valor = confirm('Deseja realmente deletar esse dado?');
	if(valor){
		location.href=pagina+"?id="+id+"&dado=delete&confirma="+true;
	}else{
		history.go(-1);
	}
}

function confirmacao(){
	var valor = confirm('Deseja realmente excluir os dados selecionados?');
	if(!valor){
		return false;
	}
}

function ocultaCampo(field){
	var campo = gE(field);
	campo.style.display = "none";
}

function exibeCampo(field){
	var campo = gE(field);
	campo.style.display = "inline";
}


//Fun��es acrescidas com a matr�cula
function openPage(url,div) {
		var recipiente = gE(div);
		ajax = openAjax();
		ajax.open('GET', url); 
		ajax.onreadystatechange = function() {
			if (ajax.readyState == 1) {
				recipiente.innerHTML = "Trabalhando em sua solicitação...";
			}
			if (ajax.readyState == 4) {
				if (ajax.status == 200) {
					recipiente.innerHTML = ajax.responseText;
				} 
			}
		}
		ajax.send(null);
}

function validaCheck(check){
	for(var cont=0; cont<check.length;cont++){
		if(check[cont].checked){
			return true;
		}
	}
	alert("Selecione uma disciplina.");
	return false;
}

function limpaCheck(check){
	for(var cont = 0; cont < check.length; cont ++){
		check[cont].checked = false;
	}
	location.hash="#topo";
	return true;
}

function openPopUp(url){
	window.open(url);
}

function maiusculo(comp) {
	comp.value = comp.value.toUpperCase();
}

function checkTamanho(comp) {
	if(comp.value.length == 5){
		return true;
	}else{
		alert('Tamanho obrigatório: 5 caracteres');
		comp.focus();
		return false;
	}
}

function checkCPF(campo){
	cpf = campo.value;
	var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
	if(!filtro.test(cpf)){
		window.alert("CPF inválido. Tente novamente.");
		return false;
	}
	cpf = remove(cpf, ".");
	cpf = remove(cpf, "-");
	if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999"){
		window.alert("CPF inv�lido. Tente novamente.");
		return false;
	}
	soma = 0;
	for(i = 0; i < 9; i++)
		soma += parseInt(cpf.charAt(i)) * (10 - i);
		resto = 11 - (soma % 11);
		if(resto == 10 || resto == 11)
			resto = 0;
			if(resto != parseInt(cpf.charAt(9))){
				window.alert("CPF inválido. Tente novamente.");
				return false;
			}
			soma = 0;
			for(i = 0; i < 10; i ++)
				soma += parseInt(cpf.charAt(i)) * (11 - i);
				resto = 11 - (soma % 11);	
				if(resto == 10 || resto == 11)
					resto = 0;
					if(resto != parseInt(cpf.charAt(10))){
						window.alert("CPF inválido. Tente novamente.");
						return false;
					}
					return true;
				}

function remove(str, sub) {
	i = str.indexOf(sub);
	r = "";
	if (i == -1) return str;
	r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
	return r;
}

function validaData (e) {
  	var divisor = '/';
	var data = e.value;
    x = data.split(divisor);
    confere = new Date (x[2],x[1]-1,x[0]);
    confere2 = (confere.getDate () < 10 ? '0' : '') + confere.getDate ();
    confere2 += divisor + ((confere.getMonth()+1) < 10 ? '0' : '') + (confere.getMonth()+1);
    confere2 += divisor + confere.getFullYear();
    if (confere2 != data){ 
		e.value = ''; 
		alert('Data inválida');
		e.focus();
	}
  
}

