/*
	Arquivo contendo funções javascript para o Portal da Chesf.
*/

/*
Função utilizada para trocar as imagens dos botões no onmouseover. 
A função irá funcionar da seguinte forma: o nome do objeto tem que ser o nome da imagem + o sufixo _sobre
ex: ex: <img src="...botao1_foco.jpg" name="botao1" />
*/
function fncMouseOver (obj) {
	obj.src = "/portal/page/portal/chesf_portal/paginas/imagens/"+obj.name+"_sobre.png";
}

/*
Função utilizada para trocar as imagens dos botões no onmouseout. 
A função irá funcionar da seguinte forma: o nome do objeto tem que ser o nome da imagem + o sufixo _normal
ex: <img src="...botao1_normal.jpg" name="botao1" />
*/
function fncMouseOut (obj) {
	obj.src = "/portal/page/portal/chesf_portal/paginas/imagens/"+obj.name+"_normal.png";
}


function change(id){
     ID = document.getElementById(id);
     ID.style.overflow = "auto";
     //ID.style.height = ID.offsetHeight;
}
	  
	 	

/*
Função "Criar cookie do usuario" - Início
Fonte: http://scripts.ringsworld.com/e-commerce/enterprise3.01/admin/includes/menu.js.html
*/
function fncCreateCookie(name,value,days,useLang){
	var langString = useLang ? ndeGetLang() : '';
	var cookie = name + langString + '=' + value + ';';

	if (days){
		var date = new Date();
		var ndeMilliSecondsInDay = 86400000; // 24*60*60*1000
		date.setTime(date.getTime()+(days*ndeMilliSecondsInDay));
		cookie += ' expires=' + date.toGMTString() + ';';
	}
	cookie += ' path=/';
	document.cookie = cookie;
}

/*
Função "ler cookie do usuario" - Início
Fonte: http://scripts.ringsworld.com/e-commerce/enterprise3.01/admin/includes/menu.js.html
*/
function fncReadCookie(name, useLang){
	var langString = useLang ? fncGetLang() : '';
	var nameEQ = name + langString + '=';
	var ca = document.cookie.split(';');

	for(var i = 0; i < ca.length; i++){
		var c = ca[i];
		while (c.charAt(0) == ' ')	{
			c = c.substring(1, c.length);
		}
		if (c.indexOf(nameEQ) == 0)	{
			return c.substring(nameEQ.length,c.length);
		}
	}
	return null;
}
/*
Fonte: http://scripts.ringsworld.com/e-commerce/enterprise3.01/admin/includes/menu.js.html
*/
function fncGetLang(){
	var langString = '';

	if (document.documentElement){
		langString = document.documentElement.lang;
		if (langString != ''){
			langString = '-' + langString;
		}
	}
	return langString;
}

/*
  Função reponsável por ativar as funcionalidades do menu selecionado pelo usuário.
*/

function carregarFuncionalidadesCanalAdm(repositorio) {
	alterarMenuPortletConteudoEstatico(repositorio,'1');
	
	var lista = new Array("institucional","investidores","sistema_chesf",
				"negocios","ped","fornecedores",
				"sustentabilidade_chesf","comunicacao");
			
	for (var i = 0; i < 8; i++) {
		if (repositorio == lista[i]) {
			changeClass(lista[i],'menuSelecionado');
		} else {
			changeClass(lista[i],'menuNormal');
		}
	}

}

/*
  Função do portlet de publicação de conteúdo estático para alterar a funcionalidade
  que está em operação dentro do flex.
*/
function alterarMenuPortletConteudoEstatico(funcionalidade) {

	if (navigator.appName.indexOf ("Microsoft") !=-1){
		window.frames['iframeFlex'].window['conteudoEstatico'].alterarMenuPortletConteudoEstatico(funcionalidade);;
	}else{
		window.frames['iframeFlex'].document['conteudoEstatico'].alterarMenuPortletConteudoEstatico(funcionalidade);;
	}


	changeClass('faq','menuNormal');
	changeClass('banners','menuNormal');
	changeClass('destaques','menuNormal');
	changeClass('enquete','menuNormal');
	changeClass('textos','menuNormal');
	changeClass('fotosDosCanais','menuNormal');
	changeClass('configCanal','menuNormal');
	changeClass('albumFotos','menuNormal');
	changeClass('fantasma','menuNormal');
	changeClass('portlet','menuNormal');


	
	if(funcionalidade == 1){
		changeClass('textos','menuSelecionado');	
	}else if(funcionalidade == 2){
		changeClass('banners','menuSelecionado');
	}else if(funcionalidade == 3){
		changeClass('faq','menuSelecionado');
	}else if(funcionalidade == 4){
		changeClass('destaques','menuSelecionado');
	}else if(funcionalidade == 5){
		changeClass('enquete','menuSelecionado');		
	}else if(funcionalidade == 7){
		changeClass('configCanal','menuSelecionado');
	}else if(funcionalidade == 9){
		changeClass('fotosDosCanais','menuSelecionado');
	}else if(funcionalidade == 10){
		changeClass('albumFotos','menuSelecionado');
	}else if(funcionalidade == 11){
		changeClass('fantasma','menuSelecionado');
	}else if(funcionalidade == 12){
		changeClass('portlet','menuSelecionado');
	}
}


/*
  Função responsável por ativar uma funcionalidade específica dentro da página de administração.
*/
function carregarFuncionalidadeSubMenuAdm(funcionalidade) {
	alterarMenuPortletConteudoEstatico(funcionalidade);	
}

/* 
  This function returns the appropriate reference,
  depending on the browser.
Fonte: http://www.switchonthecode.com/tutorials/flex-javascript-tutorial-simple-interaction
*/
function getFlexApp(appName)
{
  if (navigator.appName.indexOf ("Microsoft") !=-1)
  {
    return window[appName];
  }
  else
  {
    return document[appName];
  }
}

/*
Função responsável para mudar o tipo do cursor ao passar por um componente específico
*/
function changeCursor(modo) {
	document.body.style.cursor = modo;
}

/*
Função responsável por alterar dinamicamente o css de um elemento.
*/
function changeClass(Elem,newClass) {
	var elem;
	if(document.getElementById) {
		var elem = document.getElementById(Elem);
	} else if (document.all){
		var elem = document.all[Elem];
	}
	if(elem != null){
		elem.className = newClass;
	}
}

/*
Função responsável por Mostrar ou Esconder um layer da página
@layer_ref = id do Layer
@mostrar = true para exibir, false para esconder
*/
function exibirLayer(layer_ref, mostrar){

	if(mostrar == true){
		state = 'block';
	}else{
		state = 'none';
	}
	
	if(document.all){ //IS IE 4 or 5 (or 6 beta)
		eval("document.all." +layer_ref+ ".style.display = state");
	}
	if (document.layers) { //IS NETSCAPE 4 or below
		document.layers[layer_ref].display = state;
	}
	if (document.getElementById &&!document.all) {
		hza = document.getElementById(layer_ref);
		hza.style.display = state;
	}
}

/*
Função responsável por Mudar o valor de um input
@input = id do input
@valor = novo valor
*/
function setarValor(input, valor){
	document.getElementById(input).value = valor;
}

function buscaSimples(value){
	exibirLayer('divBusca', true);
	exibirLayer('divBusca2', false);
	setarValor('p_qualquer_palavra', '');
	setarValor('inputBusca','');
	setarValor('p_todas_palavras','');
	setarValor('data_1','');
	setarValor('data_2','');
	setarValor('buscaSimples',value);
	document.getElementById('p_numero_registros').options[0].value = '';
	document.getElementById('p_numero_registros').options[0].selected = true;

	document.getElementById('p_tipo_arquivo').options[0].value = '';
	document.getElementById('p_tipo_arquivo').options[0].selected = true;

	document.getElementById('p_canal').options[0].value = '';
	document.getElementById('p_canal').options[0].selected = true;
}

function buscaSimplesInicial(){
	exibirLayer('divBusca', true);
	exibirLayer('divBusca2', false);
	setarValor('p_qualquer_palavra', '');
	setarValor('inputBusca','');
	setarValor('p_todas_palavras','');
	setarValor('data_1','');
	setarValor('data_2','');
	document.getElementById('p_numero_registros').options[0].value = '';
	document.getElementById('p_numero_registros').options[0].selected = true;

	document.getElementById('p_tipo_arquivo').options[0].value = '';
	document.getElementById('p_tipo_arquivo').options[0].selected = true;

	document.getElementById('p_canal').options[0].value = '';
	document.getElementById('p_canal').options[0].selected = true;
	
}

function buscaAvancada(value){
	setarValor('p_qualquer_palavra', value);
	exibirLayer('divBusca2', true);
	exibirLayer('divBusca', false);
	setarValor('inputBusca','1');
	setarValor('buscaSimples','');
}

function nova_jan(newwindow){
	var desktop = window.open(newwindow,'','toolbar=yes,location=yes,directories=yes,status=yes,scrollbars=yes,menubar=yes,resizable=yes');
}

function eabvFinal(){
	setarValor('p_qualquer_palavra', '');
	exibirLayer('divBusca2', true);
	exibirLayer('divBusca', false);
	setarValor('inputBusca','1');
	setarValor('buscaSimples','');
}

function eabvInicial(){
	setarValor('p_qualquer_palavra', '');
	exibirLayer('divBusca2', true);
	exibirLayer('divBusca', false);
	setarValor('inputBusca','1');
	setarValor('buscaSimples','');
}


function CheckDate(pObj) {
	  var expReg = /^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/(19|20)?\d{2}$/;
	  var aRet = true;
	  if ((pObj) && (pObj.value.match(expReg)) && (pObj.value != '')) {
		var dia = pObj.value.substring(0,2);
		var mes = pObj.value.substring(3,5);
		var ano = pObj.value.substring(6,10);
		if ((mes == 4 || mes == 6 || mes == 9 || mes == 11 ) && dia > 30)
		  aRet = false;
		else
		  if ((ano % 4) != 0 && mes == 2 && dia > 28)
			aRet = false;
		  else
			if ((ano%4) == 0 && mes == 2 && dia > 29)
			  aRet = false;
	  }  else
		aRet = false;  
	  return aRet;
}


function validarBusca(data1, data2){
	
	if(document.getElementById('p_todas_palavras').value != ""){
		document.getElementById('p_qualquer_palavra').value = "";
	}
	
	if(data1.value != ""){
		if(!CheckDate(data1)){
			alert('Data de inicio é inválida');
			return false;
		}		
	}
	if(data2.value != ""){
		
		if(!CheckDate(data2)){
			alert('Data final é inválida');
			return false;
		}
	}
	
	document.getElementById('formBusca').submit();
}

/*  
Funções referente a slide horizontal da página de Marcos
*/
function desce(){
	var el = document.getElementById("teste2");
	el.scrollLeft += 10;
}

function descer(){
	tempo = window.setInterval(function(){ desce(); }, 50);
}

function sobe(){
	var el = document.getElementById("teste2");
	el.scrollLeft -= 10;
}

var anoAtual;

function sobeTeste(intervalo,ano){

	if(ano != anoAtual){
		var el = document.getElementById("teste2");
		el.scrollLeft = intervalo;
		anoAtual = ano;
	}else{
		return;
	}
}

function subir(){
	tempo = window.setInterval(function(){ sobe(); }, 50);
}

function parar(){
	window.clearInterval(tempo);
}

function move_up1() {
	teste2.scrollTop = 0;
}

function Scroll() {
	self.scrollTo(0, 0);
}

function travaAncora(idAncora){
window.location.href="#"+ancora;
self.scrollTo(0, 0);
}
/*
Fim das funções referente aos slides da pagina de marcos
*/

function fcDefocus(movieId) {
						
	var movie = fcGetMovieById(movieId);
	window.focus();
	movie.focus();
}

function fcGetMovieById(id) {
	if (navigator.appName.indexOf ("Microsoft") !=-1) {
		return window[id];
	} else {
		return window.document[id];
	}
} 

/*
  Autor: Thiago Melo
  Data Criação: 03/08/2009
  Resumo: Função responsável por alterar o tamanho da fonte dentro das aplicações flex.
*/
function setFontFlexApplications(newSize) {
	if (getFlexApp('portlet_contratos_servicos_materiais') != null) {
		getFlexApp('portlet_contratos_servicos_materiais').setFontFlexApplications(newSize);
	}else if (getFlexApp('portlet_conteudo_statico') != null){
		getFlexApp('portlet_conteudo_statico').setFontFlexApplications(newSize);
	}else if (getFlexApp('graficoIndicadores') != null){
		getFlexApp('graficoIndicadores').setFontFlexApplications(newSize);
	}else if (getFlexApp('portlet_newsletter') != null){
		getFlexApp('portlet_newsletter').setFontFlexApplications(newSize);
	}
	
	
}


function checkMail(mail){
	var er = new RegExp(/^[A-Za-z0-9_\-\.]+@[A-Za-z0-9_\-\.]{2,}\.[A-Za-z0-9]{2,}(\.[A-Za-z0-9])?/);
	if(typeof(mail) == "string"){
		if(er.test(mail)){ return true; }
	}else if(typeof(mail) == "object"){
		if(er.test(mail.value)){ 
					return true; 
				}
	}else{
		return false;
		}
}
function ValidaCep(cep){ 
var exp = new RegExp( /^[0-9]{2}.[0-9]{3}-[0-9]{3}$/); 
	if(typeof(cep) == "string"){ 
		if(exp.test(cep)){ 
		return true; 
		} 
	}else{ 
		if(typeof(cep) == "object"){ 
			if(exp.test(cep.value)){ 
			return true; 
			} 
		}else{ 
			return false; 
		} 
	} 
	//return strTexto.replace(/^s+|s+$/g, ''); 
} 
function IsCEP(strCEP, blnVazio) { 
var objER = /^[0-9]{2}.[0-9]{3}-[0-9]{3}$/; 
strCEP = Trim(strCEP); 
	if(strCEP.length > 0) { 
		if(objER.test(strCEP)) {
		return true; 
	}else{
		return false; 
		}
	} 
	else{ 
		return blnVazio; 
	}
} 
function validaFormularioDenuncia(){ 

	formOk = true; 
	alertEmail = ""; 
	AlertCep = ""; 
	AlertMsg =""; 
	
	if (document.formDenuncia.email.value !='' && !checkMail(document.formDenuncia.email.value) ){
		alertEmail = "- O campo Email está invalido \n"; 
		formOk = false; 
	} 
	if (document.formDenuncia.cep.value !='' && !ValidaCep(document.formDenuncia.cep.value)){ 
		AlertCep = "- O campo Cep está invalido \n"; 
		formOk = false; 
	}
	if (document.formDenuncia.comentarios.value==''){ 
		AlertMsg = "- O campo mensagem é obrigatório"; 
		formOk = false; 
	}
	if (formOk){ 
		document.formDenuncia.submit(); 
	}else{ 
		alert (alertEmail+AlertCep+AlertMsg); 
	} 
} 

