/*
 * Funções gerais de javascript do sistema.
 *
 * Adriano de Oliveira Gonçalves <adriano@ison.com.br>
 */
 
msg_exclusao = 'O registro será permanentemente excluído. Tem certeza?';
function confirmaExclusao(id,url,campo_chave_primaria)
{
    if(confirm(msg_exclusao)==true)
    {
        if(url == '')
            document.excluir.action += '&acao=excluir&Txt'+campo_chave_primaria+'='+id;
        else
            document.excluir.action = url+'&acao=excluir&Txt'+campo_chave_primaria+'='+id;
            
        document.excluir[campo_chave_primaria].value = id;
        document.excluir.submit();
    }
    else
	{
        void(0);
        //return false;
	}
}

function confirmacao_exclusao_multipla(form)
{
    for (i in form.elements)
    {
        if(form.elements[i].type=="checkbox" && form.elements[i].checked==true)
            return confirm("Os registros serão permanentemente excluídos. Tem certeza?");
    }
    alert("Não há nenhum registro selecionado.");
    return false;
}

function item_vazio()
{
    alert('Não há nenhum item definido para esta seção do menu. Para mais informações, por favor contate o administrador.');
    void(0);
}

/**
  * Checks/unchecks all options of a <select> element
  *
  *
  * @param   string   the form name
  * @param   string   the element name
  * @param   boolean  whether to check or to uncheck the element
  *
  * @return  boolean  always true
  */
function setSelectOptions(the_form, the_select, do_check)
{
    var selectObject = document.forms[the_form].elements[the_select];
    var selectCount  = selectObject.length;

    for (var i = 0; i < selectCount; i++) {
        selectObject.options[i].selected = do_check;
    } // end for

    return true;
} // end of the 'setSelectOptions()' function

/* Formatação para qualquer mascara */

function formatarMascara(src, mask)
{
  var i = src.value.length;
  var saida = mask.substring(0,1);
  var texto = mask.substring(i)
  if (texto.substring(0,1) != saida)
  {
	src.value += texto.substring(0,1);
  }
}

/*

Exemplos:
CEP
OnKeyPress="formatarMascara(this, '#####-###')"
CPF
OnKeyPress="formatarMascara(this, '###.###.###-##')"
DATA
OnKeyPress="formatarMascara(this, '##/##/####')"
*/

/* Menu JS */
//adicionada uma chamada no header.tpl para corrigir bug do ie6
startList = function() {
    if (document.all && document.getElementById) {
		navRoot = document.getElementById("dmenu");
		if(navRoot){ //add by Zanotta
    		for (i=0; i < navRoot.childNodes.length; i++) {
    			node = navRoot.childNodes[i];
    			if (node.nodeName=="LI") {
    				node.onmouseover=function() {
    					this.className+=" over";
    				}
    				node.onmouseout=function() {
    					this.className=this.className.replace(" over", "");
    				}
    			}
    		}
        }
	}
}
window.onload=startList;


/* Fim do menu JS */

var link_btn_ok;

function mudaClasseCSS(objeto,classe)
{
    objeto.className = classe;
}

/* Função que trabalho no evento onChange da combo "Exportar como" da tela de pesquisa. */
function mudaSubmitFormPesquisa(campo)
{
    if(campo.value!='TELA')
    {
        campo.form.target = '_blank';
        campo.form._ext.value = "." + campo.value;
    }
    else
    {
        campo.form.target = '_self';
        campo.form._ext.value = "";
    }
}

function mudaSubmitFormPesquisaRelatorio(campo)
{
    if(campo.value!='TELA')
    {
        campo.form.target = '_blank';
        campo.form._ext.value = "." + campo.value;
    }
    else
    {
        campo.form._ext.value = "";
    }
}

function in_array(pesquisa,array)
{
    for(i=0;i<array.length;i++)
    {
        if(array[i]==pesquisa)
            return true;
    }
    return false;
}

/**
 * Não permite que o usuário digite espaços.
 */
function semEspacos(evento)
{
    if(window.event)
        key = evento.keyCode;
    else if(evento.which)
        key = evento.which;

    return (key!=32)
}

/**
 * Impõe uma restrição à digitação do usuário.
 *
 * O código da tecla digitada é dada pela variável key.
 * Ex.:
 * <code>
 * <!-- Bloqueia a digitação de espaços no campo -->
 * <input tupe="text" name="nome" onKeyPress="return restricoesPreenchimento(event,'(key!=32)')">
 * </code>
 *
 * @author Adriano O. Gonçalves <adriano@ison.com.br>
 */
function restricoesPreenchimento(evento,restricoes)
{
    var key="";
    if(window.event)
        key = evento.keyCode;
    else if(evento.which)
        key = evento.which;

    return eval(restricoes);
}

var numb = '0123456789';
var lwr = 'abcdefghijklmnopqrstuvwxyz';
var upr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var special = '?*\'"\\/!@#$%¨&*()-_=+{}[]ªº`´^~<>,.¹²³£¢¬°';

function isValid(parm,val) {
    if (parm == "")
        return false;
    if(parm.length==1)
    {
        if (val.indexOf(parm,0) == -1)
            return false;
    }
    else
    {
      for (i=0; i<parm.length; i++) {
        if (val.indexOf(parm.charAt(i),0) == -1) return false;
      }
    }
    return true;
}

function isNum(parm) {return isValid(parm,numb);}
function isLower(parm) {return isValid(parm,lwr);}
function isUpper(parm) {return isValid(parm,upr);}
function isAlpha(parm) {return isValid(parm,lwr+upr);}
function isAlphanum(parm) {return isValid(parm,lwr+upr+numb);}
function isSpecial(parm) {return isValid(parm,special);}

/**
 * Verifica senha forte no cliente. (pelo menos 6 caracteres, pelo menos 0 letra, pelo menos 0 número e pelo menos um caracter especial.)
 *
 * @author Adriano O. Gonçalves <adriano@ison.com.br>
 */
function senhaForte(senha)
{
    min_caracteres      = 6;
    min_letras          = 0;
    min_numeros         = 0;
    min_char_especiais  = 1;

    if(senha.length<min_caracteres)
        return false;
        
    letras         = 0;
    numeros        = 0;
    char_especiais = 0;
    
    for(i=0;i<senha.length;i++)
    {
        if(isNum(senha.charAt(i)))
            numeros++;
        else if(isAlpha(senha.charAt(i)))
            letras++;
        else if(isSpecial(senha.charAt(i)))
            char_especiais++;
    }
    
    return (letras >= min_letras && numeros >= min_numeros && char_especiais >= min_char_especiais);
}

function selecionaTodasOptions(select,marca)
{
  	for(cont = 0 ; cont < select.options.length ; cont++)
  	{
  	  	select.options[cont].selected = marca;
  	}  
}  

function selecionaTodasCheckboxes(campo,opcao)
{
    for(cont = 0 ; cont < campo.length ; cont++) 
    {
        campo[cont].checked = opcao;
    }
}    

function disableForm(form,valor)
{
    for(cont in form.elements)
    {
        form.elements[cont].disabled = valor;
    }  
} 

function ajustaHora(inc){
	if($('hora_srv')){
		if(inc){
			var horasrv = $('hora_srv').innerHTML;
			var hora    = horasrv.substr(0,2);
			var minuto  = horasrv.substr(3,2);
			var segundo = horasrv.substr(6,2);
			
			if (segundo == 59){
				segundo = 0;
				if (minuto == 59){
					minuto = 0;
					if(hora == 23) hora = 0; else hora++;
				}else
					minuto++;
			}else
				segundo++;
			
			if(minuto.toString().length == 1)
				minuto  = "0" + minuto;
			if(segundo.toString().length == 1)
				segundo = "0" + segundo.toString();
			$('hora_srv').innerHTML = hora + ":" + minuto + ":" + segundo;
		}
		else
			setInterval('ajustaHora(true)', 1000);
	}
}

