/*

Este arquivo contem a classe para tratamento de animacoes Flash

Pre-requisito: geral

*/

function flash() {

	// Instancia da classe geral

	this.objGeral = new geral();

	// Caminho do diretorio aonde estao as animacoes

	this.caminhoPadrao = "swf/";

	// Armazena o status do plugin Flash (encontrado ou nao)

	this.pluginEncontrado = 0;

	// Maior e menor versao de flash player utilizado
	this.maiorVersao = 9;
	this.menorVersao = 6;

	// Atributos padroes para animacoes

	this.atributosPadroes = new Array();
	this.atributosPadroes["allowScriptAccess"] = "always";
	this.atributosPadroes["codebase"] = "https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0";
	this.atributosPadroes["height"] = 100;
	this.atributosPadroes["quality"] = "high";
	this.atributosPadroes["scale"] = "showall";
	this.atributosPadroes["width"] = 100;
	this.atributosPadroes["wmode"] = "transparent";

	/*

	Descricao: Verifica se o Plugin Flash esta instalado
	Retorno:
		- status do plugin = boolean informando se o plugin esta instalado ou nao (true = instalado / false = nao instalado)
	Parametros: nao admite parametros

	*/

	this.verificaPlugin = function () {

		var versaoBrowser = this.objGeral.versaoBrowser();

		if ((versaoBrowser[0] == "Internet Explorer")&&(versaoBrowser[1] >= 5)) {

			for (var i = this.maiorVersao; i >= this.menorVersao; i--) {

				try {

					var objActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
					return true;

				}
				catch(e) {
				}

			}

		}
		else {

			with (navigator) {

				if ((plugins)&&(plugins.length > 0)&&(plugins["Shockwave Flash"])) {

					return true;

				}
				else {

					if ((mimeTypes)&&(mimeTypes.length > 0)&&(mimeTypes["application/x-shockwave-flash"])&&(mimeTypes["application/x-shockwave-flash"].enabledPlugin)) {

						return true;

					}
					else {

						return false;

					}

				}

			}

		}

	}

	// Executa a procura pelo plugin e atribui o resultado a variavel de controle

	this.pluginEncontrado = this.verificaPlugin();

	/*

	Descricao: Insere um animacao na pagina ou insere uma imagem para substituir a animacao (caso o plugin Flash nao esteja instalado)
	Retorno: nao retorna nenhuma informacao
	Parametros:
		- nomeAnimacao = nome do arquivo de animacao (ex.: topo.swf)
		- atributos = array contendo as propriedades da animacao (ou imagem alternativa)
		- [imagemAlternativa] = nome do arquivo da imagem alternativa (ex.: topo.jpg)

	*/

	this.insereAnimacao = function (nomeAnimacao, atributos) {

		var animacao = "";

		if (arguments.length > 2) {

			var imagemAlternativa = arguments[2];

		}

		if (!atributos) {

			var atributos = new Array();

		}

		if (this.atributosPadroes) {

			for (var nomeParametro in this.atributosPadroes) {

				if (nomeParametro != "") {

					atributos[nomeParametro] = (atributos[nomeParametro]) ? atributos[nomeParametro] : this.atributosPadroes[nomeParametro];

				}

			}

		}

		if (this.pluginEncontrado) {

			if (atributos["height"]) {

				atributos["movie"] = this.caminhoPadrao + nomeAnimacao + ((nomeAnimacao.substr(nomeAnimacao.lastIndexOf(".")+1) == "swf") ? "" : ".swf");

				animacao += "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='" + atributos["codebase"] + "' height='" + atributos["height"] + "' width='" + atributos["width"] + "'>";

				for (var nomeParametro in atributos) {

					animacao += "<param name='" + nomeParametro + "' value='" + atributos[nomeParametro] + "'>";

				}

				animacao += "<embed src='" + atributos["movie"] + "' quality='" + atributos["quality"] + "' wmode='" + atributos["wmode"] + "' pluginspage='https://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' height='" + atributos["height"] + "' width='" + atributos["width"] + "'></embed>";
				animacao += "</object>";

			}

		}
		else {

			if (imagemAlternativa) {

				animacao += "<img alt='' border='0' height='" + atributos["height"] + "' src='" + imagemAlternativa + "' width='" + atributos["width"] + "'>";

			}

		}

		document.write(animacao);

	}

}
