/* Repositório de Scripts que são usados em várias partes do site */

//alert('Inicio do Arquivo: site.js');

Event.observe(window, 'load', inicial);

function inicial(){

	//alert('Função: inicial');
	
	//Aplica efeito "zebra" nas linhas de uma tabela
	zebraTable();
	
	// Menu
	activateMenu('menu','submenu_normal','ativo');
	
	
	//alert('/Função: inicial');
	
}//inicial


	//Aplica efeito "zebra" nas linhas do corpo de uma tabela
	function zebraTable(){
		
		//Variaveis
		var i = 0;
		
		//Loop
		$$('table tbody tr').each(function(linha){
				linha.addClassName('zebra_'+ i++%2);
			}//function
		)//each
		
	}//zebraTable
	
	
	function debug(str){
		try{
			console.log(str);
		}catch(erro){
			
		}
	}
	
	
	function soNum(campo){
		//Pega o valor atual do campo, substitui e retorna o valor
		campo.value = campo.value.replace(/\D/g,"");
	}
	

	function setInnerHTML(obj, html){
		
		//alert("setInnerHTML()\nCampo: "+obj.id+"\nHTML: "+html);
		
		try{
			obj.innerHTML = html;
		}catch(erro){
			//Solucionando o BUG do IE ao setar o innerHTML
			var t = document.createElement('div');
			t.innerHTML = html;
			obj.appendChild(t);
		}				
	}		
	
	//Abrir popup
	function openBrWindow(theURL,winName,features) { 
	  window.open(theURL,winName,features);
	}
	
	
	//menu
	
	function navHover() {
	var lis = document.getElementById("menu").getElementsByTagName("LI");
	for (var i=0; i<lis.length; i++) {
		lis[i].onmouseover=function() {
			this.className+=" iehover";
		}
		lis[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" iehover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", navHover);



/**
 * Activate Menu
 * 
 * Adiciona uma classe no item do menu referente a página atual e também ao seu item "pai" caso aplicavél
 * 
 * Parametros
 * - divMenu: ID do menu
 * - classSubmenu: nome da classe que indica que se trata de sub-menus
 * - classActive: nome da class que será adicionada para indicar o item ativo
 * 
 */function activateMenu(divMenu, classSubmenu, classActive){
    var url = location.href;  
    var last_bar = url.lastIndexOf('/');

    if(url.substr(last_bar).search(/\./) == -1){
        if(last_bar < (url.length-1)){
            url = url+'/';
        }
        url = url+'index.php';
    }
    
    var aux = url.split("?");
    if(aux.length>1){
        url = aux[0];
    }

    $$('#'+divMenu+' a').each(
        function(e){
            if(e == url){
            	// Add no elemento
                e.addClassName(classActive);
                // Add no elemento pai
                if(e.up(2).hasClassName(classSubmenu)){
                	e.up(2).down(0).addClassName(classActive);
                }
            }
        }
    );
}// activateMenu()
 




/*
 * Função Auto Tabindex
 * 
 * Define automaticamente o tabindex de todos elementos do seletor (1º parametro)
 * Opicionalmente o tabindex inicial pode ser definido no 2º parametro
 * 
 * Retorna o numero do ultimo tabindex
 * 
 */function autoTabindex(seletor, index){
	 
	 var index = (index>0)?index:0;
	 
	 if(seletor!=null){
		 
		 if(seletor.nodeName=='FORM'){
			 var seletor = $(seletor).getElements();
		 }else{
			 var seletor = $$(seletor);
		 }
		 
	     $A(seletor).each(function(campo){
	    	 index++;
			 campo.writeAttribute('tabindex', index);
	    	 debug('TABINDEX: '+campo.id +' ('+campo.readAttribute('tabindex')+')');
		 });
	     
	 }else{
		 try{
			 alert('autoTabindex()\n\nseletor "'+seletor.id+'" é NULL');
		 }catch(e){
			 alert('autoTabindex()\n\nseletor "elemento sem ID" é NULL');
		 }
	 }
    
    return index;	 
}
 
 
/**
 * Função AutoTextareaHeight
 * 
 * Altera a altura da Textarea automaticamente conforme o usuário vai incluindo conteudo nela
 * 
 */function autoTextareaHeight(campo){
	
	// qde minima de linhas
	var min = 3;
	// qde maxima de linhas
	var max = 30;
	
	// fator de divisão da largura do campo
	var wDiv = 8.3;
	var w = campo.getWidth()/wDiv;
	
	// qde de caracteres
	var qde = campo.value.length;
	// cada newline e como se fosse uma linha "cheia" de caracteres
	qde += campo.value.split("\n").length * w; 
	
	// seta qde de linhas
	var row = Math.ceil(qde/w);
	row = (row<min)? min: ((row>max)?max:row);
	campo.writeAttribute('rows', row)
	 
} // autoTextareaHeight()