var gstrDirImagem = "InstImagem";	//Localização das imagens
var gstrDirIconeFilme = "Icone";	//Localização dos ícones
var gstrDirDados = "InstDados";		//Localização dos dados
var EXT_JPG = ".jpg";				//Extensão JPG
var EXT_GIF = ".gif";				//Extensão GIF
var EXT_XML = ".xml";				//Extensão XML
var BARRA = "/";					//Barra

var gstrIdItemMenuAtivo;			//ID da figura descritiva da sala de V&iacute;deo no menu
var gintIDSI;						//ID utilizado para controle de execução de funlções com intervalo de tempo determinado

/*******************************************************************************************************
/ Objetivo  : Determinar navegador e capacitações
/ Premissas : 
/ Entradas  : 
/ Retorno   : Objeto objNavegador
/*******************************************************************************************************/
function DeterminarNavegador(){
	try {
		this.strAppCodeName = navigator.appCodeName.toUpperCase();
		this.strAppName = navigator.appName.toUpperCase();
		this.strVersion = navigator.appVersion.toUpperCase();
		this.strUserAgent = navigator.userAgent.toUpperCase();
		this.blnDOM = document.getElementById?true:false;

		with (this.strUserAgent){
			this.blnOpera = (indexOf("OPERA")>-1)?true:false;
			this.blnIE4 = (document.all && !this.blnDOM)?true:false;
			this.blnIE5 = (indexOf("MSIE 5.0")>-1)?true:false;
			this.blnIE55 = (indexOf("MSIE 5.5")>-1)?true:false;
			this.blnIE6 = (indexOf("MSIE 6")>-1)?true:false;
			this.blnIE7 = (indexOf("MSIE 7")>-1)?true:false;
			this.blnIE = (this.blnIE4||this.blnIE5||this.blnIE55||this.blnIE6||this.blnIE7)?true:false;
			this.blnPIE = (this.strAppName.indexOf("POCKET")>-1)?true:false;
			this.blnNS4 = (document.layers && !this.blnDOM)?true:false;
			this.blnNS7 = (indexOf("NETSCAPE/7")>-1)?true:false;
			this.blnNS8 = (indexOf("NETSCAPE/8")>-1)?true:false;
			this.blnFF = (indexOf("FIREFOX")>-1)?true:false;
			this.blnMac = (indexOf("MAC")>-1)?true:false;
		}
		this.objNavegador = (this.blnIE7 || this.blnIE6 || this.blnIE55 || this.blnNS8 || this.blnFF || this.blnPIE || this.blnOpera)
		return (this)
	}
	catch (objErro){
		alert("Erro na identificação do navegador.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Instanciar objeto SWF
/ Premissas : 
/ Entradas  : 
/ Retorno   : Objeto SWF
/*******************************************************************************************************/
function InstanciarSWF(strIDSWF) {

	var objNavegador = new DeterminarNavegador();	//Navegador utilizado
	
	try {
	    if (objNavegador.blnIE) return window[strIDSWF]
	    else return document[strIDSWF]
	}
	catch (objErro){
		alert("Houve um erro no acesso à aplicação Sala de V&iacute;deo BOVESPA.\nPor favor, recarregue a página e caso o erro continue, verifique a instalação do Adobe Flash Player.\n\n" + objErro.description)
	}
}

/******************************************************************************************
/ Objetivo  : Abrir navegador personalizado
/ Premissas : 
/ Entradas  : strUrl - Url da página que será aberta
/ 			: strPopup - Identificação da da janela que será aberta
/ 			: intLargura - Largura da janela
/ 			: intAltura - Altura da janela
/ 			: intLocation - Exibir / Ocultar barra de endereços
/ 			: intMenubar - Exibir / Ocultar menu de opções
/ 			: intResizable - Exibir / Ocultar opção de redimensionamento
/ 			: intScrollbars - Exibir / Ocultar barras de rolagem
/ 			: intStatus - Exibir / Ocultar barra de status
/ 			: intTitlebar - Exibir / Ocultar barra de título
/ 			: intToolbar - Exibir / Ocultar barra de ferramentas
/ Retorno   : Nenhum
/******************************************************************************************/
function AbreUrl(strUrl, strPopup, intLargura, intAltura, intLocation, intMenubar, intResizable, intScrollbars, intStatus, intTitlebar, intToolbar){

	var objWReprodutorPalestra;		//Instância da janela aberta

	try {
		if(parseInt(intLargura) == 0){intLargura = screen.availWidth;};
		if(parseInt(intAltura) == 0){intAltura = screen.availHeight;};
		
		if(intLargura > 1 && intAltura > 1)
		{
			var intDistEsq = (screen.availWidth - intLargura) / 2;				//Distancia esquerda da janela aberta
			var intDistTop = (screen.availHeight - intAltura) / 2;				//Distancia direita da janela aberta
		}
		else
		{
			var intLargura = screen.availWidth - 10;								//Distancia esquerda da janela aberta
			var intAltura = screen.availHeight - 28;								//Distancia direita da janela aberta
			var intDistEsq = 0;													//Distancia esquerda da janela aberta
			var intDistTop = 0;													//Distancia direita da janela aberta
		}
		
		objWReprodutorPalestras = window.open(strUrl,strPopup,'menubar=' + (parseInt(intLocation) == 0 ? 'no':'yes') + ',menubar=' + (parseInt(intMenubar) == 0 ? 'no':'yes') + ',resizable=' + (parseInt(intResizable) == 0 ? 'no':'yes') + ',scrollbars=' + (parseInt(intScrollbars) == 0 ? 'no':'yes') + ',status=' + (parseInt(intStatus) == 0 ? 'no':'yes') + ',titlebar=' + (parseInt(intTitlebar) == 0 ? 'no':'yes') + ',toolbar=' + (parseInt(intToolbar) == 0 ? 'no':'yes') + ',width=' + intLargura + ',height=' + intAltura + ',top=' + intDistTop + ',left=' + intDistEsq);
		
		return (objWReprodutorPalestra)
	}
	catch (objErro){
		alert("Seu navegador está com o bloqueador de popup ativado.\nPor favor, desative esta funcionalidade e recarregue a página novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Instanciar objeto XMLHttp
/ Premissas : 
/ Entradas  : 
/ Retorno   : Objeto XMLHttp
/*******************************************************************************************************/
function InstanciarXMLHttp(){
	
	objXMLHttp = null;		//Objeto
	
	try {
		objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch (objErro){
		try {
			objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (objErro){
			objXMLHttp = new XMLHttpRequest();
		}
	}

	return (objXMLHttp)
}

/*******************************************************************************************************
/ Objetivo  : Enviar e receber solicitações HTTP
/ Premissas : 
/ Entradas  : strMetodoEnvio - Método de envio dos parâmetros
/			: strUrl - Url da página que será aberta
/ 			: blnSolicitacaoAssincrona - Execução de solicitação assíncrona (true) ou síncrona (false)
/ 			: strParametro - Parâmetros enviados ao servidor
/ Retorno   : Html gerado pelo servidor
/*******************************************************************************************************/
function EnviarReceberHTTP(strMetodoEnvio, strUrl, blnSolicitacaoAssincrona, strParametro){

	try {
		var objXMLHttp = InstanciarXMLHttp();	//Objeto XMLHttp

		with (objXMLHttp){
			open(strMetodoEnvio, strUrl, blnSolicitacaoAssincrona);
			setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
			setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
			setRequestHeader("Pragma", "no-cache");
			send(strParametro);
		}

		return (objXMLHttp.responseText)
	}
	catch (objErro){
		alert("Houve um erro de comunicação com os servidores da Sala de V&iacute;deo BOVESPA.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Executar solicitação HTTP ao servidor
/ Premissas : 
/ Entradas  : strFiltroElemento - Elemento pesquisado
/			: strFiltroAtributo - Atributo pesquisado
/ 			: intIndicePrimeiroFilme - Índice do primeiro filme a ser exibido
/ 			: intQtdadeFilme - Quantidade de filmes a serem exibidos
/ 			: intCodigoSalaVideo - Código da sala onde os filmes serão exibidos
/ Retorno   : Html gerado pelo servidor
/*******************************************************************************************************/
function SolicitarFilmeSalaVideo(strFiltroElemento, strFiltroAtributo, intIndicePrimeiroFilme, intQtdadeFilme, intCodigoSalaVideo, intCodigoSubSalaVideo){

	try {
		var strParametro = "FiltroElemento=" + strFiltroElemento + "&FiltroAtributo=" + strFiltroAtributo + "&IndicePrimeiroFilme=" + intIndicePrimeiroFilme + "&QtdadeFilme=" + intQtdadeFilme + "&CodigoSalaVideo=" + intCodigoSalaVideo + "&CodigoSubSalaVideo=" + intCodigoSubSalaVideo;	// Parametros
		var strMetodoEnvio = "POST";											//Metodo de envio dos parametros
		var strUrl = "ExecutaAcaoPesquisarXMLFilmes.asp?rnd=" + Math.random();	//URL da página para solicitação
		var blnSolicitacaoAssincrona = false;									//Tipo de solicitação

		document.getElementById("divFilmes").innerHTML = EnviarReceberHTTP(strMetodoEnvio, strUrl, blnSolicitacaoAssincrona, strParametro);
	}
	catch (objErro){
		alert("Houve um erro de comunicação com os servidores da Sala de V&iacute;deo BOVESPA.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Executar solicitação HTTP ao servidor
/ Premissas : 
/ Entradas  : strFiltroElemento - Elemento pesquisado
/			: strFiltroAtributo - Atributo pesquisado
/ 			: intIndicePrimeiroFilme - Índice do primeiro filme a ser exibido
/ 			: intQtdadeFilme - Quantidade de filmes a serem exibidos
/ 			: intCodigoSalaVideo - Código da sala onde os filmes serão exibidos
/ Retorno   : Html gerado pelo servidor
/*******************************************************************************************************/
function SolicitarSubSalaVideo(strFiltroElemento, strFiltroAtributo, intIndicePrimeiroFilme, intQtdadeFilme, intCodigoSalaVideo){

	try {
		var strParametro = "FiltroElemento=" + strFiltroElemento + "&FiltroAtributo=" + strFiltroAtributo + "&IndicePrimeiroFilme=" + intIndicePrimeiroFilme + "&QtdadeFilme=" + intQtdadeFilme + "&CodigoSalaVideo=" + intCodigoSalaVideo;	// Parametros
		var strMetodoEnvio = "POST";											//Metodo de envio dos parametros
		var strUrl = "ExecutaAcaoPesquisarXMLSubSala.asp?rnd=" + Math.random();	//URL da página para solicitação
		var blnSolicitacaoAssincrona = false;									//Tipo de solicitação

		document.getElementById("divFilmes").innerHTML = EnviarReceberHTTP(strMetodoEnvio, strUrl, blnSolicitacaoAssincrona, strParametro);
	}
	catch (objErro){
		alert("Houve um erro de comunicação com os servidores da Sala de V&iacute;deo BOVESPA.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Ativar item de menu
/ Premissas : nenhuma
/ Entradas  : objItemMenu - Instancia de item de menu
/ Retorno   : nenhum
/*******************************************************************************************************/
function AtivarItemMenu(objItemMenu){
	try {
		objItemMenu.src = gstrDirImagem + BARRA + objItemMenu.id.substr(3) + "Ativo" + EXT_GIF;
	}
	catch (objErro){
		alert("Erro de carregamento.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Desativar item de menu
/ Premissas : nenhuma
/ Entradas  : objItemMenu - Instancia de item de menu
/ Retorno   : nenhum
/*******************************************************************************************************/
function DesativarItemMenu(objItemMenu){
	try {
		if (objItemMenu.id != gstrIdItemMenuAtivo){
			objItemMenu.src = gstrDirImagem + BARRA + objItemMenu.id.substr(3)  + EXT_GIF;
		}
	}
	catch (objErro){
		alert("Erro de carregamento.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Selecionar item de menu
/ Premissas : nenhuma
/ Entradas  : objItemMenu - Instancia de item de menu
/ Retorno   : nenhum
/*******************************************************************************************************/
function SelecionarItemMenu(objItemMenu){

	var strIdItemMenuAtivo = gstrIdItemMenuAtivo;

	try {
		AtivarItemMenu(objItemMenu);
		gstrIdItemMenuAtivo = objItemMenu.id;

		DesativarItemMenu(document.getElementById(strIdItemMenuAtivo));
	}
	catch (objErro){
		alert("Erro de carregamento.\nPor favor, recarregue a página e tente novamente.\n\n" + objErro.description)
	}
}

/*******************************************************************************************************
/ Objetivo  : Verificar se a estação do usuário atende aos requisitos mínimos
/ Premissas : nenhuma
/ Entradas  : objItemMenu - Instancia de item de menu
/ Retorno   : nenhum
/*******************************************************************************************************/
function TestarRecursosUsuario(){
	AbreUrl("ExecutaAcaoTestarRecursosUsuario.htm", "SalaVideoTesteRecursos", 580, 280, 0, 0, 0, 0, 0, 0, 0)
}

/*******************************************************************************************************
/ Objetivo  : Exibir ajuda
/ Premissas : nenhuma
/ Entradas  : objItemMenu - Instancia de item de menu
/ Retorno   : nenhum
/*******************************************************************************************************/
function AcessarAjuda(){
	AbreUrl("FormConsultaAjuda.htm", "SalaVideoAjuda", 580, 280, 0, 0, 0, 1, 0, 0, 0)
}

/*******************************************************************************************************
/ Objetivo  : Efetuar as configurações iniciais para inicializar a Sala de V&iacute;deo BOVESPA
/ Premissas : nenhuma
/ Entradas  : nenhuma
/ Retorno   : nenhum
/*******************************************************************************************************/
function InicializarSalaVideo(){

	if (gintCodigoSalaVideo == 0){gstrIdItemMenuAtivo = "imgMenuPaginaInicial";}
	else if (gintCodigoSalaVideo == 1){gstrIdItemMenuAtivo = "imgMenuInicioNegociacao";}
	else if (gintCodigoSalaVideo == 2){gstrIdItemMenuAtivo = "imgMenuPalestrasVirtuais";}
	else if (gintCodigoSalaVideo == 3){gstrIdItemMenuAtivo = "imgMenuEventos";}

	AtivarItemMenu(document.getElementById(gstrIdItemMenuAtivo));
	SolicitarFilmeSalaVideo(gstrFiltroElemento, gstrFiltroAtributo, gintIndicePrimeiroFilme, gintQtdadeFilme, gintCodigoSalaVideo, gintCodigoSubSalaVideo);
	(gstrIDFilme != '')?ReproduzirFilmeInicializacao(gstrIDFilme):ReproduzirFilmeInicializacao('VNBovespa');
}

/*******************************************************************************************************
/ Objetivo  : Iniciar reprodução de filme pelo navegador
/ Premissas : nenhuma
/ Entradas  : strIDFilme - ID do filme a ser executado
/ Retorno   : nenhum
/*******************************************************************************************************/
function ExecutarIniciarReproducaoFilmeNavegador(strIDFilme){
	var gobjListaReproducao = InstanciarSWF('ListaReproducao');

	gobjListaReproducao.ExecutarIniciarReproducaoFilmeNavegadorJS(strIDFilme);

	clearInterval(gintIDSI);
}

/*******************************************************************************************************
/ Objetivo  : Iniciar reprodução de filme na inicialização
/ Premissas : nenhuma
/ Entradas  : strIDFilme - ID do filme a ser executado
/ Retorno   : nenhum
/*******************************************************************************************************/
function ReproduzirFilmeInicializacao(strIDFilme){
	gintIDSI = setInterval("ExecutarIniciarReproducaoFilmeNavegador('" + strIDFilme + "')", 1000);
}

/*******************************************************************************************************
/ Objetivo  : Iniciar reprodução de filme no flash
/ Premissas : nenhuma
/ Entradas  : strIDFilme - ID do filme a ser executado
/ Retorno   : nenhum
/*******************************************************************************************************/
function ExecutarIniciarReproducaoFilme(intIndiceFilme){
	var gobjListaReproducao = InstanciarSWF('ListaReproducao');
	gobjListaReproducao.ExecutarIniciarReproducaoFilmeJS(intIndiceFilme);
}

/*******************************************************************************************************
/ Objetivo  : Adcionar filme à lista de reprodução do flash
/ Premissas : nenhuma
/ Entradas  : intTipoFilme - Tipo de filme
/			: strIDFilme - ID do filme
/			: strTituloFilme - Título do filme
/			: strSubTituloFilme - Título do filme
/			: strDescricaoFilme - Descrição do filme
/			: strDataFilme - Data de gravação do filme
/			: strAutorFilme - Apresentador do filme
/			: strDuracaoFilme - Duração do filme
/			: intCodigoSiteExibicaoFilme - Código do site onde o filme pode ser exibido
/			: intSlideFilme - Identificação de existencia de slides no filme (0 ou 1)
/ Retorno   : nenhum
/*******************************************************************************************************/
function AdicionarFilmeListaReproducao(intTipoFilme, strIDFilme, strTituloFilme, strSubTituloFilme, strDescricaoFilme, strDataFilme, strAutorFilme, strDuracaoFilme, intCodigoSiteExibicaoFilme, intSlideFilme){
	var gobjListaReproducao = InstanciarSWF('ListaReproducao');		//Instância da Sala de V&iacute;deo
	
    gobjListaReproducao.ExecutarAdicionarFilmeListaReproducaoJS(intTipoFilme, strIDFilme, ((strTituloFilme.toString()=="")?"":strTituloFilme), ((strSubTituloFilme.toString()=="")?"":strSubTituloFilme), strDescricaoFilme, strDataFilme, strAutorFilme, strDuracaoFilme, intCodigoSiteExibicaoFilme, intSlideFilme);
}

/*******************************************************************************************************
/ Objetivo  : Executar reprodução de filme com Slides
/ Premissas : nenhuma
/ Entradas  : intTipoFilme - Tipo de filme
/			: strIDFilme - ID do filme
/			: strTituloFilme - Título do filme
/			: strSubTituloFilme - Título do filme
/			: strDescricaoFilme - Descrição do filme
/			: strDataFilme - Data de gravação do filme
/			: strAutorFilme - Apresentador do filme
/			: strDuracaoFilme - Duração do filme
/			: intCodigoSiteExibicaoFilme - Código do site onde o filme pode ser exibido
/			: intSlideFilme - Identificação de existencia de slides no filme (0 ou 1)
/ Retorno   : nenhum
/*******************************************************************************************************/
function ExecutarReprodutorPalestra(strIDFilme, strTituloFilme, strSubTituloFilme, strDescricaoFilme, strAutorFilme, strDuracaoFilme, strAcessoFilme, intIndiceFilme, intSiteAcessoFilme, intSiteSolicitacaoFilme, gintCodigoIdioma){
	var objWReprodutorPalestra = AbreUrl("ReprodutorPalestra.asp?IDFilme=" + strIDFilme + "&TituloFilme=" + ((strTituloFilme == 'null')?'':strTituloFilme) + "&SubTituloFilme=" + ((strSubTituloFilme == 'null')?'':strSubTituloFilme) + "&DescricaoFilme=" + ((strDescricaoFilme == 'null')?'':strDescricaoFilme) + "&AutorFilme=" + ((strAutorFilme == 'null')?'':strAutorFilme) + "&DuracaoFilme=" + ((strDuracaoFilme == 'null')?'':strDuracaoFilme) + "&AcessoFilme=" + strAcessoFilme + "&IndiceFilme=" + intIndiceFilme + "&SiteAcessoFilme=" + intSiteAcessoFilme + "&SiteSolicitacaoFilme=" + intSiteSolicitacaoFilme + "&CodigoIdioma=" + gintCodigoIdioma, "ReprodutorPalestra", 795, 440, 0, 0, 0, 0, 0, 0, 0);	//Navegador aberto
}

/*******************************************************************************************************
/ Objetivo  : Executar a interrupção do reprodutor de filmes com slides
/ Premissas : nenhuma
/ Entradas  : nenhuma
/ Retorno   : nenhum
/*******************************************************************************************************/
function ExecutarInterromperReproducaoFilme(){
	var gobjListaReproducao = InstanciarSWF('ListaReproducao');		//Instância da Sala de V&iacute;deo

	gobjListaReproducao.ExecutarInterromperReproducaoFilmeJS();
}
