/*
	Biblioteca de fun��es javascript - Sinestesia Publicidade e Propaganda
*/

//Associa uma funcao javascript a um evento em um objeto [crossbrownser]
function addEvent( obj, type, fn )
{
	if ( obj.attachEvent ) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
		obj.attachEvent( 'on'+type, obj[type+fn] );
	} else {
		obj.addEventListener( type, fn, false );
	}
}

//Separa o endereco, o nome do arquivo e a extensao
function extrairInformacoes(arq)
{
	arq = arq.replace(/\\/g, "/");
	var Extensao = arq.substring(arq.lastIndexOf('.'));
	var Arquivo = arq.substring(arq.lastIndexOf('/') + 1, arq.length - Extensao.length);
	var Caminho = arq.substring(0, arq.length-Arquivo.length - Extensao.length);
	return {arquivo:Arquivo, extensao:Extensao, caminho:Caminho};
}

//Se n�o existe a palavra, adiciona
function adicionaPalavra(nome, palavra){
	if (nome.indexOf(palavra) != -1) {
		return nome;
	} else {
		return (nome+palavra);
	}
}

//Adiciona as funcoes de focus, over, etc em seus respectivos componentes.
function adicionaFocus()
{
	var elementos = document.getElementsByTagName("input");
	for (i = 0; i < elementos.length; i++) {
		if ((elementos[i].type == "text") || (elementos[i].type == "file")) {
			elementos[i].className = "edit"; //Define a classe inicial como sendo edit, assim, faz-se desnecessario definir a mesma na cria��o do layout
			addEvent(elementos[i], "focus", function() { this.className = "edit_over"; return true; }); 
			addEvent(elementos[i], "blur", function() { this.className = "edit"; return true; }); 
		}
		if (elementos[i].type == "password") {
			elementos[i].className = "edit"; //Define a classe inicial como sendo edit, assim, faz-se desnecessario definir a mesma na cria��o do layout
			addEvent(elementos[i], "focus", function() { this.className = "edit_over"; return true; }); 
			addEvent(elementos[i], "blur", function() { this.className = "edit"; return true; }); 
		}
		if (elementos[i].type == "image") {
			elementos[i].className = "botao"; //Define a classe inicial como sendo botao, assim, faz-se desnecessario definir a mesma na cria��o do layout
			addEvent(elementos[i], "mouseover", function() { this.className = "botao_over"; this.src = (extrairInformacoes(this.src).caminho + adicionaPalavra(extrairInformacoes(this.src).arquivo, "_over") + extrairInformacoes(this.src).extensao); return true; }); 
			addEvent(elementos[i], "mouseout", function() { this.className = "botao"; this.src = (extrairInformacoes(this.src).caminho + extrairInformacoes(this.src).arquivo.substring(0,extrairInformacoes(this.src).arquivo.length-5) + extrairInformacoes(this.src).extensao); return true; }); 
		}
		if (elementos[i].type == "radio") {
			elementos[i].className = "radio"; //Define a classe inicial como sendo radio, assim, faz-se desnecessario definir a mesma na cria��o do layout
		}
		if (elementos[i].type == "checkbox") {
			elementos[i].className = "checkbox"; //Define a classe inicial como sendo checkbox, assim, faz-se desnecessario definir a mesma na cria��o do layout
		}
	}
	var elementos = document.getElementsByTagName("select");
	for (i = 0; i < elementos.length; i++) {
		elementos[i].className = "dropdown"; //Define a classe inicial como sendo dropdown, assim, faz-se desnecessario definir a mesma na cria��o do layout
		addEvent(elementos[i], "focus", function() { this.className = "dropdown_over"; return true; }); 
		addEvent(elementos[i], "blur", function() { this.className = "dropdown"; return true; }); 
	}
	var elementos = document.getElementsByTagName("textarea");
	for (i = 0; i < elementos.length; i++) {
		elementos[i].className = "area_texto"; //Define a classe inicial como sendo area_texto, assim, faz-se desnecessario definir a mesma na cria��o do layout
		addEvent(elementos[i], "focus", function() { this.className = "area_texto_over"; return true; }); 
		addEvent(elementos[i], "blur", function() { this.className = "area_texto"; return true; }); 
	}
	//Adiciona o over nas listagens e executa o efeito zebrado
	var elementos = document.getElementsByTagName("tr");
	for (i = 0; i < elementos.length; i++) {
		if (i % 2 == 0) {
			elementos[i].className = "registro"; //Define a classe inicial como sendo area_texto, assim, faz-se desnecessario definir a mesma na cria��o do layout
			addEvent(elementos[i], "mouseover", function() { this.className = "registro_over"; return true; }); 
			addEvent(elementos[i], "mouseout", function() { this.className = "registro"; return true; }); 
		} else {
			elementos[i].className = "registro_par"; //Define a classe inicial como sendo area_texto, assim, faz-se desnecessario definir a mesma na cria��o do layout
			addEvent(elementos[i], "mouseover", function() { this.className = "registro_par_over"; return true; }); 
			addEvent(elementos[i], "mouseout", function() { this.className = "registro_par"; return true; }); 
		}
	}
}

//Redireciona a pagina para um endereco
function redireciona(endereco) {
	document.location = endereco;
	/*
		Se o componente que estiver usando esta fun��o for um input e estiver
		dentro de algum form, adicionar um "return false" depois do comando.
	*/
}

//Foca um elemento baseado no nome.
function focar(nome)
{
	var elemento = document.getElementById(nome);
	elemento.focus();
}

//Funcao para mascara de data
function mascaraData(campoData)
	{
		var campo = document.getElementById(campoData);
		/*campo.setAttribute("maxlength", 10);*/
		if (campo.value.length == 2){
			data = campo.value + '/';
			campo.value = data;
			return true;              
		}
		if (campo.value.length == 5){
			data = campo.value + '/';
			campo.value = data;
			return true;              
		}
		if (campo.value.length > 10) {
			//campo.value = campo.value.substr(0,10);
		}
	}

//Funcao para mascara de CNPJ
function mascaraCNPJ(campoCNPJ){
	var campo = document.getElementById(campoCNPJ);
	campo.setAttribute('maxlength', 18);
	if (campo.value.length == 2){
		data = campo.value + '.';
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 6){
		data = campo.value + '.';
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 10){
		data = campo.value + '/';
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 15){
		data = campo.value + '-';
		campo.value = data;
		return true;              
	}
}

//Funcao para mascara de CPF
function mascaraCPF(campoCPF){
	var campo = document.getElementById(campoCPF);
	campo.setAttribute('maxlength', 14);
	if (campo.value.length == 3){
		data = campo.value + '.';
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 7){
		data = campo.value + '.';
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 11){
		data = campo.value + '-';
		campo.value = data;
		return true;              
	}
}

//Funcao para mascara de TEL
function mascaraTEL(campoTEL){
	var campo = document.getElementById(campoTEL);
	campo.setAttribute('maxlength', 14);
	if (campo.value.length == 1){
		data = '(' + campo.value;
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 3){
		data = campo.value + ') ';
		campo.value = data;
		return true;              
	}
	if (campo.value.length == 9){
		data = campo.value + '-';
		campo.value = data;
		return true;              
	}
}

//Funcao para mostra esconder div e afins
function mostraEsconde(div){
	campo = document.getElementById(div).style.display;
	if(campo == 'none'){
		document.getElementById(div).style.display = 'block';
	}
	else{
		document.getElementById(div).style.display = 'none';
	}
	
}

//Funcao que esconde os div e afins
function esconde(div){
	document.getElementById(div).style.display = 'none';
	
}

function mostra(div){
	document.getElementById(div).style.display = 'block';
	
}

function limpaValue(div){
	document.getElementById(div).value = '';

}

//Funcao para dar focus nos campos quando entra na pagina
function campoFocus(campo){
	document.getElementById(campo).focus();
}


//Funcao para abrir o suporte
function abreJanela(janela, caption, largura, altura){
	window.open(janela, caption,'height=' + altura + 'px , width='+largura+'px');
	return false;
}

function formataReais(fld, milSep, decSep, e) {
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	
	if (whichCode == 13)
		return true;
	key = String.fromCharCode(whichCode);  // Valor para o c�digo da Chave
	if (strCheck.indexOf(key) == -1)
		return false;  // Chave inv�lida
	len = fld.value.length;
	for(i = 0; i < len; i++) {
		if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep))
			break;
	}
	aux = '';
	for(; i < len; i++) {
		if (strCheck.indexOf(fld.value.charAt(i))!=-1)
			aux += fld.value.charAt(i);
	}
	aux += key;
	len = aux.length;
	if (len == 0)
		fld.value = '';
	if (len == 1)
		fld.value = '0'+ decSep + '0' + aux;
	if (len == 2)
		fld.value = '0'+ decSep + aux;
	if (len > 2) {
		aux2 = '';
		for (j = 0, i = len - 3; i >= 0; i--) {
			if (j == 3) {
				aux2 += milSep;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		fld.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--)
			fld.value += aux2.charAt(i);
		fld.value += decSep + aux.substr(len - 2, len);
	}
	return false;
}

function backspace(obj,event){
/*
Essa fun��o basicamente altera o  backspace nos input com m�scara reais para os navegadores IE e opera.
O IE n�o detecta o keycode 8 no evento keypress, por isso, tratamos no keydown.
Como o opera suporta o infame document.all, tratamos dele na mesma parte do c�digo.
*/

var whichCode = (window.Event) ? event.which : event.keyCode;
if (whichCode == 8 && navigator.appName == 'Netscape') {	
	var valor = obj.value;
	var x = valor.substring(0,valor.length-1);
	obj.value = x;
	return false;
	}// end if		
}// end backspace

function extraiNome(nome){
	var caminho = new String(nome);
	return(caminho.substr(0,caminho.length-5));
}

function copiaConteudo(de, para){
	for (i=1;i<=34;i++) {
		document.getElementById(para+i).innerHTML = document.getElementById(de).innerHTML;	
	}
}

function retiraConteudo(para){
	for (i=1;i<=34;i++) {
		document.getElementById(para+i).innerHTML = '';
	}
}

function mudaTamanho(id, tamanho){
		document.getElementById(id).width = tamanho;
		document.getElementById(id).style.height = tamanho+'px';
	}
