// Descrição da barra de Status do navegador.
function hidestatus(){
    window.status='Portal de Governo';
    return true;
}
document.onmouseover=hidestatus;
document.onmouseout=hidestatus;
document.click=hidestatus;
hidestatus();


/**
 * Função para pedir confirmação de inclusão de registro 
 *
 * Autor: José Alonso Soler Filho
*/
function confirmar(){
    //pede confirmação e em caso positivo realiza o submit
    if(confirm("Deseja realmente salvar?")){
        document.forms[0].submit();
    }
    return false;
}

/**
 * Função para exibir mensagem de sucesso após inserção de registros
 *
 * Autor: José Alonso Soler Filho
*/

function checkInsercao(){
    //Caso o registro tenha sido salvo, exibe mensagem de sucesso
    if( document.getElementById('operacao').value=="Salvar" ){
        alert('Operação efetuada com sucesso!');
    }
} 


/**
 * Sai do sistema
 *
 * Autor: José Alonso Soler Filho
 */
function sair(){
    if(confirm("Tem certeza que deseja sair do sistema?")){
        location = "Login!sair.action";
    }
    return;
}

/**
 * Função para atribuir um valor para um objeto
 *
 * Autor: Marcio M Hirazawa
 */
function setValue(valor, objeto){
    document.getElementById(objeto).value = valor;
}

/*
Descrição.: formata um campo do formulário de
acordo com a máscara informada...
Parâmetros: - objForm (o Objeto Form)
- strField (string contendo o nome do textbox)

* - sMask (mascara que define o formato que o dado será apresentado,
* usando o algarismo "9" para definir números e o símbolo "!" para
* qualquer caracter...
* - evtKeyPress (evento)
* Uso.......: <input type="textbox"
* name="xxx".....
* onkeypress="return txtBoxFormat(document.rcfDownload, 'str_cep', '99999-999', event);">
* Observação: As máscaras podem ser representadas como os exemplos abaixo:
* CEP -> 99.999-999
* CPF -> 999.999.999-99
* CNPJ -> 99.999.999/9999-99
* Data -> 99/99/9999
* Tel Resid -> (99) 999-9999
* Tel Cel -> (99) 9999-9999
* Processo -> 99.999999999/999-99
* C/C -> 999999-!
* E por aí vai...
***/

function txtBoxFormat(objForm, strField, sMask, evtKeyPress) {

    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

    if(document.all) { // Internet Explorer
        nTecla = evtKeyPress.keyCode;
    } else if(document.layers) { // Nestcape
        nTecla = evtKeyPress.which;
    } else {
        nTecla = evtKeyPress.which;
        if (nTecla == 8) {
            return true;
        }
    }

    sValue = objForm[strField].value;
    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    // toString().replace [transforma em sring e troca elementos por ""]
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
    bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ":") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
    bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " ") || (sMask.charAt(i) == "."))

    //Se for true utiliza elementos especiais aumenta a máscara
    if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++;
    //Caso false mostra o sValue(o q foi digitado)
    } else {
        sCod += sValue.charAt(nCount);
        nCount++;
    }
    i++;
    }

    objForm[strField].value = sCod;
    if (nTecla != 8) { // backspace
        if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
    else { // qualquer caracter...
        return true;
    }
    } else {
        return true;
    }
}
//Fim da Função Máscaras Gerais


/* 
 * Função para validação de datas.
 * Esta funcção é utilizada no módulo do Portal.
 *
 * Data: 25/09/2008
 * Alterada 29/01/2010. A data não é mais obrigatória.
 *
*/

 function validaDat(campo,valor) {
	if (valor != "")  {
	   var date=valor;
            var ardt=new Array;
            var ExpReg=new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
            ardt=date.split("/");
            erro=false;
            if ( date.search(ExpReg)==-1){
                    erro = true;
                    }
            else if (((ardt[1]==4)||(ardt[1]==6)||(ardt[1]==9)||(ardt[1]==11))&&(ardt[0]>30))
                    erro = true;
            else if ( ardt[1]==2) {
                    if ((ardt[0]>28)&&((ardt[2]%4)!=0))
                            erro = true;
                    if ((ardt[0]>29)&&((ardt[2]%4)==0))
                            erro = true;
            }
            if (erro) {
                    alert("Data inválida");
                    campo.focus();
                    campo.value = "";
                    return false;
            }
            return true;     
	
        } else {
            return true
	}
}

/**
 * Função para exibir a data no rodapé da página
 *
 */
function setData(){
    var hoje = new Date();
    var meses = ['janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'];
    var mes = meses[hoje.getMonth()];
    document.write('São José do Rio Preto, ' +  hoje.getDate() + ' de ' + mes + ' de ' + hoje.getFullYear() );        
}


/*
 * Esta função troca a classe CSS do elemento passado como parâmetro
 *
 */
function trocaCSS(obj,classe) {
    obj.className = classe;
}


/*+-----------------------------------------------------+
  |Atribui a máscara dd/mm/aaaa para data.              |
  |Sintaxe:                                             |
  |   onKeyPress="return mascaraData(event, 'data');"   |
  +-----------------------------------------------------+*/
function mascaraData(e, campo) {
    var data = document.getElementById(campo);
    if (data.value.length == 2 || data.value.length == 5) {   
        if (e.keyCode == 8) {
            return;
        }
        data.value += "/";
    }
}

/*+-----------------------------------------------------+
  |Valida se a data digitada é válida, conforme a       |
  |máscara dd/mm/aaaa.                                  |
  +-----------------------------------------------------+*/
function validarData(campo) {
    var d = document.getElementById(campo).value;
    var dias = d.substring(0, 2);
    var bar1 = d.substring(2, 3);
    var meses = d.substring(3, 5);
    var bar2 = d.substring(5, 6);
    var anos = d.substring(6, 10);
    var hoje = new Date();
    var anoAtual = hoje.getYear();
    if (navigator.appName == "Netscape") {
        anoAtual += 1900;
    }
    if (d == "" || d == "undefined") {
        alert('Por favor, informe a Data.');return false;
    }
    if (d.length != 10) {
        alert("Data deve possuir a máscara dd/mm/aaaa.");return false;
    }
    if (isNaN(dias) || isNaN(meses) || isNaN(anos) || 
       bar1 != "/" || bar2 != "/" || parseInt(dias, 10) <= 0 || 
       parseInt(meses, 10) <= 0 || parseInt(anos, 10) <= 0) {
        alert("Data inválida. Preencha novamente.");return false;
    }
    if (parseInt(meses, 10) > 12 || parseInt(meses, 10) < 1) {
        alert("Mês deve estar entre 1 e 12.");return false;
    }
    if (parseInt(meses, 10) == 1 || parseInt(meses, 10) == 3 || 
        parseInt(meses, 10) == 5 || parseInt(meses, 10) == 7 || 
        parseInt(meses, 10) == 8 || parseInt(meses, 10) == 10 || 
        parseInt(meses, 10) == 12) {
        if (parseInt(dias, 10) < 1 || parseInt(dias, 10) > 31) {
            alert("Dia deve estar entre 1 e 31.");return false;
        }
    }
    if (parseInt(meses, 10) == 4 || parseInt(meses, 10) == 6 || 
        parseInt(meses, 10) == 9 || parseInt(meses, 10) == 11) {
        if (parseInt(dias, 10) < 1 || parseInt(dias, 10) > 30) {
            alert("Dia deve estar entre 1 e 30.");return false;
        }
    }
    if (parseInt(meses, 10) == 2) {
        if (parseInt(anos, 10) % 4 != 0) {
            if (parseInt(dias, 10) < 1 || parseInt(dias, 10) > 28) {
                alert("Dia deve estar entre 1 e 28.");return false;
            }
        } else {
            if (parseInt(dias, 10) < 1 || parseInt(dias, 10) > 29) {
                alert("Dia deve estar entre 1 e 29.");return false;
            }
        }
    }

    return true;
}

/**
 * Impede a entrada de caracteres nao númericos
 *
 * Autor: José Roberto P. Ribeiro
 */
function somenteNumeros(e, arr){
    var retorno = false;
    var codigo;

    if(window.event){ 
        codigo = window.event.keyCode;
    } 
    else{
        if (e){
            codigo = e.which;
        }
    }
    if ((codigo >= 48 && codigo <= 57) || codigo == 8  || codigo == 0){ 
        retorno = true; 
    }
    else{
        if(arr != null){
            var temp = new Array();
            temp = arr.split('^');
            for(var i = 0; i < temp.length; i++) {
                if (String.fromCharCode(codigo) == temp[i]){
                    retorno = true;
                    break;
                }
            }
        }
    }
    return retorno;
}

/**
 * Função para uso do ajax
 *
 * Autor: José Alonso Soler Filho
 */
function pesquisar(formName,url,divConteudo,divMsg) {
    //Serializa o formulário com uma função do Jquery
    var form = document.getElementsByName(formName);
    var params = $(form).serialize();
    requestAjax(url,"?"+params,divConteudo,divMsg);
}

/**
 * Função que recebe como parâmetro a url de consulta, o parâmetro informado
 * pelo usuário, o nome da div que exibirá a lista e o nome da div que contém
 * a informação que a página está carregando, e chama a função MostrarLista.
 *
 * Autor: José Alonso Soler Filho
*/
function requestAjax(url, param, divConteudo, divMsg){
    $.ajax({
        url: url+param,
        cache: false,
        beforeSend: function(){
            document.getElementById(divConteudo).style.display = 'none';
            document.getElementById(divMsg).style.display = 'inline';
        },
        error: function(transport){
            alert(transport);
        },
        success: function(transport){
            var testeValidacao = transport.match(/intranet.php/);
            if (testeValidacao != null){ 
                alert('Sua sessão pode ter expirado ou você não tem permissão para acessar este Aplicativo.\nPor favor, conectar novamente na Intranet.');
                top.document.location.href = "http://www.riopreto.sp.gov.br/servicos/intranet/php/intranet.php";
                self.blur();
                window.parent.close();
            } else {
            
                if (document.getElementById('erros') != null) {
                    document.getElementById('erros').style.display = 'none';
                }
                
                if (transport.match(/erros/) != null) {
                    var elemento = $(transport);
                    var divErros = $('#erros', elemento);
                    
                    $('form').prepend(divErros);
                    
                    document.getElementById(divMsg).style.display = 'none';
                    
                }else {
                    MostrarLista(transport,divMsg,divConteudo);
                }
            }
        }
    });     
}

/**
 * Função que insere a jsp de retorno na div correspondente e esconde a div de 
 * mensagem.
 *
 * Autor: José Alonso Soler Filho
*/
function MostrarLista(transport, divMsg, divConteudo){
    document.getElementById(divConteudo).innerHTML = transport;
    document.getElementById(divMsg).style.display = 'none';
    document.getElementById(divConteudo).style.display = 'inline';
}


/**
 * Função que recebe o valor da lista, verifica se existem campos e seta-los com os valores
 * recebidos.
 *
 * Autor: José Alonso Soler Filho
*/
function passBack(valor,id) { 

    campoExisteParent('tituloMidia', valor);
    campoExisteParent('idMidia', id);

    //Fecha janela ajax
    parent.$.fancybox.close();
} 

/**
 * Função que verifica se os campos passados existem no formulário pai
 * 
 * Autor: José Alonso Soler Filho
*/
function campoExisteParent(campo, valor){
    // verifica se o campo existe
    if (window.parent.document.getElementById(campo) != null) {
        setaValorParent(campo, valor);
    }
}

/**
 * Função que insere o valor no campo do formulário pai 
 *
 * Autor: José Alonso Soler Filho
*/
function setaValorParent(campo,valor){    
    window.parent.document.getElementById(campo).value = valor;    
}

function barraBuscar() {
    document.form.action = 'do/busca';
    document.form.op.value = 'buscaForm';
    document.form.buscaAvancada.value = 'false';
    document.form.buscaSimples.value = 'false';
    document.form.isHead.value = 'true';
    document.form.submit();
}

 function limpa_caixa(id_box)
 {
        if(id_box.value==id_box.defaultValue){
            id_box.value='';
        }
 }
 
 function enterBuscar(e) {
    if(e.keyCode == 13){
       e.preventDefault();
       barraBuscar();
    }
}

function voltaValueDefault(obj){
    if(obj.value==''){
        obj.value=obj.defaultValue;
    }
}
