/********* AJAX *********/

function SemCache(){
//	Ajax.setRequestHeader('Cache-Control', 'no-store, no-cache, must-revalidate');
//	Ajax.setRequestHeader('Cache-Control', 'post-check=0, pre-check=0');
//	Ajax.setRequestHeader('Pragma', 'no-cache');	
//Response.Cache.SetCacheability(HttpCacheability.NoCache);
}

function pegaHTML(divA,comando,url, metodo, formulario){
    var separador = '&';
    var pars='command='+comando;
    var serializa = Form.serialize(formulario);
    pars = pars + separador + serializa;  
    $(divA).innerHTML="<div align='center'><img src='/al_new/ajax/img/load.gif' alt='load' /></div>";
    $(divA).style.display = "";
    if(metodo=='') metodo = 'post';
		SemCache();
    var meuAjax = new Ajax.Updater(divA, url, 
        {method: metodo, 
            parameters: pars
        });                                
}
		
function pegaHTML_2(divA,url, metodo, formulario){
		var separador = '&';
		var serializa = Form.serialize(formulario);
		var pars = separador + serializa;  
		$(divA).innerHTML="<div align='center'><img src='/al_new/ajax/img/load.gif' alt='load' /></div>";
		$(divA).style.display = "";
		if(metodo=='') metodo = 'post';
		SemCache();
		var meuAjax = new Ajax.Updater(divA, url, 
				{method: metodo, 
						parameters: pars
				});                                
}
    
/* Chama uma fun��o no onComplete*/    
function pegaHTMLFunction(divA,comando,url, metodo, formulario, func){    
		var separador = '&';
		var pars='command='+comando;
		var serializa = Form.serialize(formulario);
		pars = pars + separador + serializa;     
		$(divA).innerHTML="<div align='center'><img src='/al_new/ajax/img/load.gif' alt='load' /></div>";
		$(divA).style.display = "";
		if(metodo=='') metodo = 'post';
		var meuAjax = new Ajax.Updater(divA, url, 
				{method: metodo, 
						parameters: pars,
						onComplete: func
				});                                
}
        
        
function pegaHTMLSimples(divA,comando,url, metodo){
		var separador = '&';
		var pars='command='+comando;
		$(divA).innerHTML="<div align='center'><img src='/al_new/ajax/img/load.gif' alt='load' /></div>";
		$(divA).style.display = "";
		if(metodo=='') metodo = 'post';
		var meuAjax = new Ajax.Updater(divA, url, 
				{method: metodo, 
						parameters: pars});
}
            
// Submete o formul�rio com o enter
function enterPress(e,form){ 
		var k = e.keyCode||e.charCode;                 
		if(k == 13) 
				form.submit(); 
} 
            
function requestFocus(frm) {
		frm.focus();
}
            
// Seleciona todos os elementos 
function selecionarCheck(frm, ch){ 
		for (i=0;i<frm.elements.length;i++) 
				if(frm.elements[i].type == "checkbox" && frm.elements[i].id != "chAll") {           
						if( ch.checked==true) {             
								frm.elements[i].checked=1 
						} else {              
						frm.elements[i].checked=0 
				}
		}   
}
            
// Pega os valores da lista de check e concatena em um campo hidden
function getValueCheck(frm, ch, campoConcat) {
		for (i=0;i<frm.elements.length;i++) {
				//chAll � o campo que clicado seleciona ou desmarca todos os checks de uma s� vez 
				if(frm.elements[i].type == "checkbox" && frm.elements[i].id != "chAll") {           
						if( frm.elements[i].checked==true) {             
								campoConcat.value = campoConcat.value + frm.elements[i].value + ";"
								frm.elements[i].checked=1 
						} 
				}   
		}   
}
						
// Grava o CAdastro da Escola
function Gravar(CodAluno){
		if (document.frmCadastro.txtSenha.value == ""){
			alert("Informe uma Senha!");
			document.frmCadastro.txtSenha.focus();
			return;
		}
		pegaHTML_2('centralescola','cadastroexec.php?Acao=2&CodAluno='+CodAluno, 'post', 'frmCadastro');		
		alert("Cadastro alterado com sucesso");
		atualizaDiv("centralescola","alteraaluno.php?codaluno="+CodAluno,'','');
}
            
						
// Verifica se tem algum valor selecionado, se conter ele faz o submit 
function existsValueCheck(frm, ch, msn) {
		var exists = false; 
		for (i=0;i<frm.elements.length;i++) {
				//chAll � o campo que clicado seleciona ou desmarca todos os checks de uma s� vez 
				if(frm.elements[i].type == "checkbox" && frm.elements[i].id != "chAll") {           
						if( frm.elements[i].checked==true) {             
								exists = true; 
						} 
				}   
		}   
		if( exists == true ) {                
				pegaHTMLFunction('viewList','incluirRecebimento','ServDocumentoController', 'post', frm, atualizaRecebimento);                                                
		} else {
			alert(msn);                 
		}    
}
        
// Abre um pop-up para a url e tamanho especificado
function setPageAlign(url, width, height) {
		x = (screen.width-width)/2;
		y = (screen.height-height)/2;
		w = window.open( url ,"_blank","left="+x+",top="+y+",height=" + height + ",width=" + width + ",channelmode=0,dependent=1,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=1,toolbar=0,titlebar=0,dependent=yes,alwaysRaised=yes");
		w.document.clear();
}
        
// Limpa um campo em espec�fico
function clearField(field) {
		field.value = "";
}
        
/* Esconde a div */
function hiddenMenu(dynamicTable) {
		var thisLevel = $(dynamicTable);
		thisLevel.style.display = "none";
}
        
function visibleMenu(dynamicTable) {
		var thisLevel = $(dynamicTable);
		if ( thisLevel.style.display == "none") {
				thisLevel.style.display = "block";
		}
		else {
				hiddenMenu(dynamicTable);
		}
}
        
function busca(divA,comando,url, metodo, formulario){            
		pegaHTML(divA,comando+'&pgBusca=1',url, metodo, formulario);
}
        
function returnCons(comando, formulario){
		formulario.comando.value = comando;
		formulario.submit();
}
        
// Remove uma op��o do combo
function removeOption(index,id) {
		var x=$(id)    
		x.remove(index);
}
        
// Adiciona um op��o no combo
function addOption(id,text,value) {
		var campo=$(id);
		opt = document.createElement('OPTION');
		opt.text = text;
		opt.value = value;
		campo.options.add(opt);
}
        
function deleta(divA,comando,url, metodo, formulario, id){
		//if (confirm("Deseja mesmo apagar o registro com c�digo "+id+"?")){
		if (confirm("Deseja mesmo apagar o registro?")){
				formulario.Id.value = id;       
				pegaHTML(divA,comando,url, metodo, formulario);
		}
}
        
// Faz a exclus�o sem precisar estar ligado a um formul�rio
function deletaForId(divA,url, pars, metodo){
		if (confirm("Deseja mesmo apagar o registro?")){        
				atualizaDiv(divA,url, pars, metodo);
		}
}
        
function atualizaDiv(divA,url, pars, metodo){
	$(divA).innerHTML="<div align='center'><img src='/al_new/ajax/img/load.gif' alt='load' /></div>";
	$(divA).style.display = "";
	if(metodo=='') metodo = 'get';        
	SemCache();
	var meuAjax = new Ajax.Updater(divA, url, 
			{ method: metodo,                                 
					parameters: pars});                                
}  
            
/* Muda as guias */
function mostraTab( option ) {
		/* Captura todos os links da página */
		var menuItens = document.getElementsByTagName('a');
		var totalItens = 0;
		for (var x=0; x<menuItens.length; x++){ 
				// Verifica quais dentre os links tem a propriedade rel definida 
				if (menuItens[x].getAttribute("rel")){
						totalItens++; // Guarda total de ítens de link para a propriedade rel
				} 
		}                 
		for( i = 0; i< totalItens; i++ ) {        
				var item = menuItens[i].getAttribute("rel");       
				if( option == (i+1) ) {            
						$(item).style.display = "block";              
				} else {   
					$(item).style.display = "none";                                          
				}     
		}                           
}
        
        
function editar(formulario, id, comando, url){
		formulario.Id.value = id;   
		formulario.action = url+'?command='+comando;
		formulario.submit();
}
        
function ordena(divisao, url, comando, formulario, campo, tipo){
		formulario.tipoOrdem.value=tipo;
		formulario.campoOrdem.value = campo;
		pegaHTML(divisao,comando,url,'', formulario);
}
        
function returnCons(comando, formulario){
		formulario.command.value = comando;
		formulario.submit();
}
        
function returnCancelar(comando, formulario, url){
		formulario.command.value = comando;
		formulario.action = url;
		formulario.submit();
}
        
function validaSenhaRedigitada( senha, senhaRedig) {            
		if( senha == senhaRedig || senhaRedig == "" || senha == "" ) {
				if($("viewMessageSenhaRedig").innerHTML != null ) {
						$("viewMessageSenhaRedig").innerHTML = "";
				} else    
				return;
		} else {                                                          
				$("viewMessageSenhaRedig").innerHTML = "<div style='color:red; font-weight: bold;'>As senhas digitadas n&atilde;o conferem!</div>";
		}
}


// Verifica se a senha atual confere
function validaSenhaUsuario(value) {
    if(value=='')
        return
    else {  
        if($("viewMessage").innerHTML != null ) {
            //frmUsuario.txtLogin.value="";
            atualizaDiv("viewMessage","ServUsuarioController", "command=validaSenhaUsuario&txtSenhaAtual="+value, "post");
        } else
        return;
    }
}                        

// Verifica se o usuário já não foi cadastrado
function validaLogin(value) {
    if(value=='')
        return
    else {  
        if($("viewMessage").innerHTML != null ) {
            //frmUsuario.txtLogin.value="";
            atualizaDiv("viewMessage","ServUsuarioController", "command=validaUsuario&txtLogin="+value, "post");
        } else
        return;
    }
}

// Verifica se o usuário já não foi cadastrado para a alteração
function validaLoginForUpdate(value, valueComp) {            
    if( value.toUpperCase() != valueComp ) {
        if(value=='')
            return
        else {  
            if($("viewMessage").innerHTML != null ) {
                //frmUsuario.txtLogin.value="";
                atualizaDiv("viewMessage","ServUsuarioController", "command=validaUsuario&txtLogin="+value, "post");
            } else 
            return;
        }
    } else {                
        if($("viewMessage").innerHTML != null ) {
            $("viewMessage").innerHTML="";
        } else {
            return;
        }    
    }
}





//********************************************
//  FUN��ES DE MANIPULA��O DE PAGINA��O
//********************************************

function carregaPagina(divisao, url, comando, formulario, paginaAtual){
    formulario.pgAtual.value = paginaAtual;
    pegaHTML(divisao,comando,url,'post', formulario);
}


/* Usado para carregar as div com as combos e mostrar uma mensagem de carregando no combo */
function atualizaDivBox(divA,box, url, pars, metodo){ 
    $(box).options.add( new Option("Carregando...",0));
    $(box).remove(0);
    if(metodo=='') metodo = metodo;
    var meuAjax = new Ajax.Updater(divA, url, 
        {method: metodo, 
            parameters: pars});                                
    }
    
    /*
    function clearComboBox(id){   
    total = $(id).length;   
    for(i=0;i<total;i++){
    $(id).remove(0);   
    }   
    }*/
    
    function replace(strSource, strFrom, strTo) {
        wCounter = 0;
        while (strSource.indexOf(strFrom) >= 0 && wCounter < 1000) {
            wCounter ++;
            strResult = "";
            if (strSource.indexOf(strFrom) > 0) {
                strResult = strSource.substr(0,strSource.indexOf(strFrom));
            }
            strResult += strTo;
            if (strSource.indexOf(strFrom)+strFrom.length < strSource.length) {
                strResult += strSource.substr(strSource.indexOf(strFrom)+strFrom.length);
            }
            strSource = strResult;
        }
        return strSource;
    }
    
    
    
    //******************************************************************************************//
    //**********************************VALIDA��O DOS CAMPOS************************************//
    
    function validateFieldNumber(fld, dec) {
        fld.value = replace(fld.value ," (inv�lido)","");
        if (fld.value == '' || fld.value == null) {
            return;
        }
        txt = fld.value;
        txt = replace(txt,".","");
        txt = replace(txt,",",".");
        txt = parseFloat(txt).toString();
        firstChar = txt.substr(0,1);
        if ("-0123456789".indexOf(firstChar) == -1) {
            alert("N�mero inv�lido...");
            fld.value = fld.value + " (inv�lido)";
            fld.focus();
        } else {
        dotPosition = txt.indexOf(".") + 1;
        if (dotPosition == 0) {
            txt = txt + ".";
            dotPosition = txt.length;
        }
        while (txt.length < dotPosition + dec) {
            txt = txt + "0";
        }
        if (txt.length > dotPosition + dec) {
            txt = txt.substr(0,dotPosition + dec);
        }
        txt = replace(txt,".",",");
        for (i = txt.length - 4 - dec; i > 0; i=i-3) {
            txt = txt.substr(0,i) + "." + txt.substr(i, txt.length-i)
        }
        fld.value = txt;
    }
}

function validateFieldDate(fld) {
    dToday = new Date();
    fld.value = replace(fld.value ," (inv�lida)","");
    if (fld.value == '' || fld.value == null) {
        return;
    }
    txt = fld.value;
    dia = "";
    mes = "";
    ano = "";
    
    for (i = 0; i < txt.length; i++) {
        dChar = txt.substr(i,1);
        if ("0123456789/-.".indexOf(dChar) < 0) {
            alert("Data inv�lida...");
            fld.value = fld.value + " (inv�lida)";
            return;
        }
        if ("0123456789".indexOf(dChar) >= 0) {
            if (dia.length < 2) {
                dia = dia + dChar;
                continue;
            }
            if (mes.length < 2) {
                mes = mes + dChar;
                continue;
            }
            if (ano.length < 4) {
                ano = ano + dChar;
                continue;
            }
            alert("Data inv�lida...");
            fld.value = fld.value + " (inv�lida)";
            return;
        } else {
        if (dia.length <= 2) {
            while (dia.length < 3) {
                
                dia = " " + dia;
            }
            continue;
        }
        if (mes.length <= 2) {
            while (mes.length < 3) {
                mes = " " + mes;
            }
            continue;
        }
        if (ano.length < 4) {
            while (ano.length < 4) {
                ano = " " + ano;
            }
            continue;
        }
        alert("Data inv�lida...");
        fld.value = fld.value + " (inv�lida)";
        return;
    }
}

dia = replace(dia," ","");
mes = replace(mes," ","");
ano = replace(ano," ","");

while (dia.indexOf("0") == 0 && dia.length > 0) { dia = dia.substring(1); }
while (mes.indexOf("0") == 0 && mes.length > 0) { mes = mes.substring(1); }
while (ano.indexOf("0") == 0 && ano.length > 0) { ano = ano.substring(1); }

if (dia == "" || dia == null) {
    dia = dToday.getDate().toString();
}
if (mes == "" || mes == null) {
    mes = (dToday.getMonth()+1).toString();
}
if (ano == "" || ano == null) {
    if (dToday.getYear() < 1900) {
        ano = (dToday.getYear()+1900).toString();
    } else {
    ano = (dToday.getYear()).toString();
}
}

dia = parseInt(dia);
mes = parseInt(mes);
ano = parseInt(ano); if (ano < 100) { ano = ano + 2000; }

errMessage = "";
if (dia < 1 || dia > 31) {
    errMessage = errMessage + " dia (1-31)";
}
if (mes < 1 || mes > 12) {
    errMessage = errMessage + " mes (1-12)";
}
if (ano < 1) {
    errMessage = errMessage + " ano (0)";
}
if (errMessage.length > 0) {
    alert("Data inv�lida: " + errMessage);
}

dia = dia.toString(); while (dia.length < 2) { dia = "0" + dia; }
mes = mes.toString(); while (mes.length < 2) { mes = "0" + mes; }
ano = ano.toString(); while (ano.length < 4) { ano = "0" + ano; }

fld.value = dia + "/" + mes + "/" + ano;
}


// VALIDA��O DE CPF ??? VERIFICAR SE EST� TUDO OK
function validaCPF(campo) {
    var CPF = campo.value; // Recebe o valor digitado no campo
    
    // Aqui come�a a checagem do CPF
    var POSICAO, I, SOMA, DV, DV_INFORMADO;
    var DIGITO = new Array(10);
    DV_INFORMADO = CPF.substr(9, 2); // Retira os dois �ltimos d�gitos do n�mero informado
    
    // Desemembra o n�mero do CPF na array DIGITO
    for (I=0; I<=8; I++) {
        DIGITO[I] = CPF.substr( I, 1);
    }
    
    // Calcula o valor do 10� d�gito da verifica��o
    POSICAO = 10;
    SOMA = 0;
    for (I=0; I<=8; I++) {
        SOMA = SOMA + DIGITO[I] * POSICAO;
        POSICAO = POSICAO - 1;
    }
    DIGITO[9] = SOMA % 11;
    if (DIGITO[9] < 2) {
        DIGITO[9] = 0;
    }
    else{
        DIGITO[9] = 11 - DIGITO[9];
    }
    
    // Calcula o valor do 11� d�gito da verifica��o
    POSICAO = 11;
    SOMA = 0;
    for (I=0; I<=9; I++) {
        SOMA = SOMA + DIGITO[I] * POSICAO;
        POSICAO = POSICAO - 1;
    }
    DIGITO[10] = SOMA % 11;
    if (DIGITO[10] < 2) {
        DIGITO[10] = 0;
    }
    else {
        DIGITO[10] = 11 - DIGITO[10];
    }
    
    // Verifica se os valores dos d�gitos verificadores conferem
    DV = DIGITO[9] * 10 + DIGITO[10];
    if (DV != DV_INFORMADO) {
        alert('CPF inv�lido');
        campo.value = '';
        campo.focus();
        return false;
    } 
}