var tgmNum = Math.floor(Math.random() * 1000000);
tgmSite = typeof (tgmSite) == "undefined" ? "" : tgmSite;
tgmZone = typeof (tgmZone) == "undefined" ? "" : tgmZone;
site = typeof (site) == "undefined" ? "" : site;
zone = typeof (zone) == "undefined" ? "" : zone;
var tagman_po = "atomo";
d = document;
pv = 9, po = false, nv = navigator, nm = nv.mimeTypes, ug = nv.userAgent, pg = (nm && nm["application/x-shockwave-flash"]) ? nm["application/x-shockwave-flash"].enabledPlugin : 0;
if (pg) {
	w = nv.plugins["Shockwave Flash"].description.split(" ");
	for (i = 0; i < w.length; ++i) { if (isNaN(parseInt(w[i]))) continue; pv2 = w[i]; } po = pv2 >= pv;
}
else if (ug && ug.indexOf("MSIE") >= 0 && (nv.appVersion.indexOf("Win") != -1)) {
	document.write('<SCR' + 'IPT LANGUAGE=VBScript\>on error resume next \n' + 'po=(IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash."&pv)))\n' + '</SCR' + 'IPT\>\n');
}
var tgd = document;
var tgH;
if ((tgd.location.protocol != "http") && (tgd.location.protocol != "https")) {
	tgH = "http://";
}
else {
	tgH = tgd.location.protocol + "//";
}
switch (tgGetLocal()) {
	case 'br':
		tgH += 'p2.trrsf.com.br/tagmanfe/';
		break;
	default: tgH += 'p2.trrsf.com/tagmanfe/'
}

function cTgm() {

	function createParams(args) {
		var params = '';

		for (i = 1; i < args.length; i++) {
			params += '&' + args[i];
		}

		return params;
	}

	this.ShowArea = function () {
		var args = this.ShowArea.arguments,
			params = createParams(args);

		this.writeScriptTag(this.getShowAreaUrl(args[0]) + params);
	};

	this.ShowPage = function () {
		var args = this.ShowPage.arguments,
			params = createParams(args);

		this.writeScriptTag(this.getShowPageUrl(args[0]) + params);
	};

	/* Busca a url para a chamada ao tagman. */
	this.getShowAreaUrl = function () {
		var url = '';
		var args = this.getShowAreaUrl.arguments;

		if (this.page.noAds || this.page.noTagMan) {
			url = this.page.noAds ? this.page.showAreaUrl + 'NoAds' : '';
		}
		else {
			var len = args.length;
			url = this.page.showAreaUrl + this.page.getTgmKey() + '.' + args[0];
			if (len > 1) {
				url += createParams(args);
			}
		}

		return url;
	};

	this.getShowPageUrl = function () {
		var url = '';

		if (!this.page.noTagMan) {
			var args = this.getShowPageUrl.arguments,
				params = createParams(args),
				key = this.page.noAds ? 'NoAds' : this.page.getTgmKey() + params;

			url = (this.page.showAreaUrl + key).replace('ShowArea.aspx?', 'ShowPage.aspx?');
		}

		return url;
	};

	this.writeScriptTag = function (url) {
		document.write('<scr' + 'ipt type="text/javascript" src="' + url + '"></scr' + 'ipt>');
	};

	this.page = new cPage();

	/* Definição da página para o tagman. */
	function cPage() {
		var _this = this;
		var params = [];

		this.inTest = false;
		this.noAds = false;
		this.noTagMan = false;
        this.rotate = true;
		this.showAreaUrl = tgH + 'ShowArea.aspx?key=';
		this.tgmKeyOriginal = tgmKey;
		this.tgmKeyTest = '';
		this.getTgmKey = function () { return (_this.inTest && this.tgmKeyTest != '') ? _this.tgmKeyTest : _this.tgmKeyOriginal; };

		/* Busca parametros da pagina. */
		function getPageParameter(name) {
			var param = { exists: false, name: '', value: '' };

			for (var i = 0; i < params.length; i++) {
				if (params[i].toUpperCase().indexOf(name.toUpperCase() + '=') != -1) {
					var p = params[i].split('=');	
					param.exists = true;
					param.name = p[0];
					param.value = p[1] ? p[1] : '';
					break;
				}
			}

			return param;
		}

		/* Inicialização da página para o tagman. */
		function init() {
			params = tgd.location.search.replace('?', '').split('&');

			if (params.length > 0) {
				_this.inTest = getPageParameter('INTERNALTEST').exists;

				if (_this.inTest) {

					var tgmHost = getPageParameter('TGMHOST');

					if (tgmHost.exists) {
						if (tgmHost.value != '') {
							_this.showAreaUrl = tgmHost.value + '/ShowArea.aspx?key=';
						}
					}

					var key = getPageParameter('TGMKEY');

					if (key.exists) {
						if (key.value.toUpperCase() == 'NOADS') {
							_this.noAds = true;
						}
						else if (key.value.toUpperCase() == 'NOTAGMAN') {
							_this.noTagMan = true;
						}

						_this.tgmKeyTest = key.value;
					}
					
                    /*Tratamento para o parâmetro "SeloRotativo" na URL de chamada.*/
					var rotatingSeal = getPageParameter('SELOROTATIVO');

					if (rotatingSeal.exists){
						if(rotatingSeal.value == '0'){
							_this.rotate = false;
						}
					}
				}
			}
		}
		init();
	}
}

window.tgm = new cTgm();

function tgGetLocal() {
	var tgparts = tgmKey.split(".")
	return tgparts[0];
}

/*
* Selos rotativos do ppi.
*/
/*Objeto para controle das funcionalidades de rotacao.*/
function tgm_ppi_rotate_control() { };
/**/
(function () {
	/*Mantem um id sequencial para o escopo corrente.*/
	var tgm_ppi_id = 0;
	/*Armazena mensagens decorrentes da execução.*/
	var tgm_ppi_messages = "";
	/*Define se a rotação deve ocorrer.*/
	tgm_ppi_rotate_control.rotate = window.tgm.page.rotate;
	/*Define o intervalo de transicao entre lojas de um container*/
	tgm_ppi_rotate_control.interval = "4000";
	/*Adiciona uma mensagen a lista de mensagens.*/
	tgm_ppi_rotate_control.addMessage = function (message) { tgm_ppi_messages += message; };
	/*Exibir as lista de mensagens armazenadas.*/
	tgm_ppi_rotate_control.showMessage = function (message) { return tgm_ppi_messages; };
	/*Gera um novo identificador para containers.*/
	tgm_ppi_rotate_control.newId = function () { return "ctn-tgm-ppi-rotate-" + tgm_ppi_id++; };
	/*Modifica a visibilidade de um determinado elemento.*/
	tgm_ppi_rotate_control.setVisibility = function (element, show) {
		element.style.display = show ? "inline" : "none";
		element.style.visibility = show ? "visible" : "hidden";
	};
})();
/*Representa um container rotacionavel.*/
function tgm_ppi_rotate() {
	/*Identificador do objeto, utilizado tambem para identificar o container*/
	var id = "";
	/*Container para rotacao.*/
	var container = null;
	/*Lojas do objeto atual.*/
	var stores = new Array();
	/*Indice atual de exibicao no container*/
	var currentIndex = 0;
	/*Valor a ser sorteado para definir primeira loja a ser exibida.*/
	var startIndex = 0;
	/*Numero de posicoes no container.*/
	var positions = 0;
	/*Lista de elementos html mantidos pelo container*/
	var list = new Array();

	/*Cria o container para rotacao das lojas.*/
	function create() {
		id = tgm_ppi_rotate_control.newId();
		document.write("<ul id='" + id + "' style='cursor: pointer;'></ul>");
		container = document.getElementById(id);
	};

	/*Sorteia a primeira loja a ser exibida e altera a lista.*/
	function randFirst() {
		if (positions > 1) {
			var i = 0;
			var result = new Array();
			var startIndex = Math.floor(Math.random() * positions);
			var first = stores[startIndex];

			result.push(first);
			/*Adiciona elementos posteriores ao selecionado.*/
			for (i = startIndex + 1; i < positions; i++) {
				result.push(stores[i]);
			}
			/*Adiciona elementos anteriores ao selecionado.*/
			for (i = 0; i < startIndex; i++) {
				result.push(stores[i]);
			}
			/*Atribui a nova ordem.*/
			stores = result;
		}
	};

	/*Rotaciona as lojas do container, quando a loja nao possui seu elemento cria.*/
	function rotate() {
		if (stores.length > 0) {
			var store = stores.shift();
			var li = document.createElement('li');
			var link = document.createElement('a');
			var img = document.createElement('img');

			img.setAttribute("src", store.img);
			link.setAttribute("target", "_blank");
			link.href = store.click;

			link.appendChild(img);
			li.appendChild(link);
			container.appendChild(li);

			list.push(li);
		}

		/*Verifica se container possui elementos para rotacionar.*/
		if (list.length > 1) {
			tgm_ppi_rotate_control.setVisibility(list[currentIndex++], false);
			if (currentIndex >= positions) { currentIndex = 0; }
			tgm_ppi_rotate_control.setVisibility(list[currentIndex], true);
		}
	};

	/*Adiciona uma lojas a lista do objeto*/
	this.add = function (store) {
		positions = stores.push(store);
	};

	/*Inicia o rotina de rotacao das lojas contidas no objeto.*/
	this.start = function () {
		if (positions > 0) {
			try {
				create();
				if (container) {
					randFirst();
					rotate();
                    /*Verifica se deve rotacionar o selo.*/
					if(tgm_ppi_rotate_control.rotate){
						/*Cria rotacao somente se apos exibir a primeira ainda existirem lojas a serem montados.*/
						if (stores.length > 0) {
							setInterval(function () { rotate(); }, tgm_ppi_rotate_control.interval);
						}
					}
				}
			}
			catch (ex) {
				var error = ex.description ? ex.description : ex;
				/*Loga o erro no objeto tgm_ppi_rotate_control.*/
				tgm_ppi_rotate_control.addMessage('[Erro:' + error + ']');
			}
		}
	};
}
