// Banner
	//GLOBAL
	var vetBanner = Array();			//CONTEM A ESTRUTURA DE LOCAIS DE BANNER NA PÁGINA
	var vetBannerPks = Array();			//CONTEM OS PKS DOS BANNERS QUE ESTÃO SENDO EXIBIDOS AGORA
	var vetFilaBanner = Array();		//CONTEM A ESTRUTURA DOS DADOS DO BANNER, PARA QUE A FILA SEJA FEITA
	
	//Adcionando o evento no onload da pagina. Está função addLoadEvent, verifica se já existe um evento sendo adcionado.
    //caso sim, ela adciona mais este, sem sobreescrever o anterior.
	addLoadEvent(acionaBanners);    	//INICIA PROCESSO DE CRIAÇÃO DOS BANNERS

	//FUNÇÃO QUE E CHAMADA PELO FLASH
	function AbreBanner(janela,codigo){
	   // alert('abre banner');
		if (janela=="true" || janela=="True" || janela==true){
			window.open('inc_banner.aspx?pk='+codigo);
		}else{
			location = 'inc_banner.aspx?pk='+codigo;
		}
	}

	//FUNÇÂO QUE ADICIONA UMA NOVA ESTRUTURA DE BANNERS NA FILA DE BANNER
	function reloadBanner(divs, canal_referencia, local, tempo, pk, posicaoVetor){
		//alert('reload banner');
		if (pk==undefined){
		 pk = "";
		}
		if (tempo>0)
		setTimeout("vetFilaBanner[vetFilaBanner.length] = new addVetor('"+divs+"','"+canal_referencia+"','"+local+"','"+pk+"','"+posicaoVetor+"','displayBanner')", parseInt(tempo)*1000);
	}
	
	//ESTRUTURA COM OS DADOS DO BANNER
	function addVetor(div, canal_referencia, local, pk, posicaoVetor, callback_function){
		//alert('add vetor');
		this.div = div;
		this.canal_referencia = canal_referencia;
		this.local = local;
		this.pk = pk;
		this.posicaoVetor = posicaoVetor;
		this.callback_function = callback_function;
	}

	//TRATA VETOR TIRANDO A 1º POSIÇÃO E MOVENDO AS OUTRAS PARA CIMA
	function trataVetor(vetor) {
		//alert('trata vetor');
		if (vetor.length<=0)
		{
		    //alert('vetor == 0');
			return null;
			}
		else{
			var result = vetor[0];
			for (var i = 0; i < vetor.length - 1; i++)
			  vetor[i] = vetor[i + 1];
			  
			vetor.length--;
			//alert(result);
			return result;
		}
	}

	//TRATA OS PKS DOS BANNERS, MONTANDO UMA SEQUENCIA DE PKS DOS BANNERS QUE NÃO PODEM SER EXIBIDOS
	function criaPksRestricao(pkAtual){
		//alert('cria pks restricao');
		var _pks = new String();
		for (i = 0; i< vetBannerPks.length;i++){
			if (vetBannerPks[i]!="0" && parseInt(vetBannerPks[i])!=parseInt(pkAtual)){
				_pks+=((_pks!=null && _pks!="")?";":"")+ vetBannerPks[i];
			}
		}
		return _pks;
	}

	//PRIMEIRA FUNÇÃO A SER CHAMADA, CRIA A 1º FILA DE BANNERS
	function acionaBanners(){
	    //alert('aciona banner');
		if (typeof document.body.style.maxHeight == "undefined"){
			procuraFocus();
		}
		var obj, locais
		var div = new String();
		var canal_referencia = new String();
		var local = new String();
		var posicaoVetor = new String();
		for (i=0;i<vetBanner.length;i++){
			obj = vetBanner[i];
			locais = obj.divs.split(';');
			for(y=0;y<locais.length;y++){
				//vetFilaBanner[vetFilaBanner.length] = new addVetor(locais[y],obj.canal_referencia, obj.local, '', (i+y),'displayBanner');
				vetBannerPks[i+y] = 0;
				posicaoVetor+= ((posicaoVetor!=null && posicaoVetor!="")?",":"")+ (i+y);
				div+= ((div!=null && div!="")?",":"")+ locais[y];
				canal_referencia+= ((canal_referencia!=null && canal_referencia!="")?",":"")+  + obj.canal_referencia;
				local+= ((local!=null && local!="")?",":"")+  encodeURIComponentNew(obj.local);
			}
		}
        var now = new Date();
        
		var url = 'inc_banner.aspx?init=ok&div='+div+'&canal_referencia='+canal_referencia+'&local='+local+'&posicao_vetor='+posicaoVetor+'&banner_atual=&remove=&datacache='+ now.getSeconds();;
		
		makeRequest("init", displayBanner_init,url);
	}
	
	function displayBanner_init(xml){
	    //alert('display banner');
		var myNodes = xml.getElementsByTagName("banner");
		//alert('My nodes'+myNodes.length);
		for(var counter=0;counter<myNodes.length;counter++) {
			displayBanner(myNodes.item(counter), myNodes.item(counter).getElementsByTagName('nome_div')[0].firstChild.data, myNodes.item(counter).getElementsByTagName('canal_referencia')[0].firstChild.data, myNodes.item(counter).getElementsByTagName('local')[0].firstChild.data, myNodes.item(counter).getElementsByTagName('posicao_vetor')[0].firstChild.data);
		}
		
		makeRequest('todos', null, null)
	}
	
	//ARMAZENA DADOS DE LOCALIZAÇÃO DOS BANNERS
	function callBanner(divs, canal_referencia, local){
	    //alert('call banner');
		this.divs = divs;
		this.canal_referencia = canal_referencia;
		this.local = local;
	}

	//FUNÇÂO QUE FAZ A REQUISIÇÃO NO SERVIDOR
	function makeRequest(todos, fn_retorno, url){
	    //alert("Todos: "+ todos);
	    //alert("Fn Retorno: "+ fn_retorno);
	    //alert("URl: "+url);
		//alert('Chamou makReques');
		var newVetor = trataVetor(vetFilaBanner);
		if (newVetor!=null || todos=='init'){
			if (url==null){
			    var now = new Date();   
				this.url = 'inc_banner.aspx?div='+newVetor.div+'&canal_referencia='+newVetor.canal_referencia+'&local='+encodeURIComponentNew(newVetor.local)+'&banner_atual='+newVetor.pk+'&remove='+criaPksRestricao(newVetor.pk)+'&data='+ now.getSeconds();
			}else this.url = url;

			var metodo = 'GET';
			var modo = true;
			xmlhttp = new XMLHttpRequest();
            if(metodo == "GET") {
                xmlhttp.open("GET", this.url, modo);
            } else {        
                xmlhttp.open("POST", this.url, modo);
                xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
                xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
                xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
                xmlhttp.setRequestHeader("Pragma", "no-cache");
            }    
            
            xmlhttp.onreadystatechange = function(){
                if(xmlhttp.readyState == 4){
					if (fn_retorno!=null)
						eval('fn_retorno(xmlhttp.responseXML)');
					else
						eval(newVetor.callback_function + '(xmlhttp.responseXML.getElementsByTagName("banner").item(0), newVetor.div, newVetor.canal_referencia, newVetor.local, newVetor.posicaoVetor)');
				}
            }
            if(metodo == "GET") {
                xmlhttp.send(null);
            } else {        
                xmlhttp.send(parametros);
            }
		}
		if (todos!='init')
			if (todos=="all") setTimeout("makeRequest('all',null, null)", 1000);
			else setTimeout("makeRequest('', null, null)", 10000);
	}

	var campoAtualFocusBanner = null;
	function exibe(div, text){
		if (typeof document.body.style.maxHeight == "undefined" && text.indexOf('.swf')>-1) {
			$(div).innerHTML = text;
			if (campoAtualFocusBanner!=null){
				$(campoAtualFocusBanner).focus();
			}
		}else{
			$(div).innerHTML = text;
		}
	}

	function procuraFocus(){
		var obj = document.getElementsByTagName('input');
		for (var i=0;i<obj.length;i++){
			if (obj[i].type=='text' || obj[i].type=='password'){
				var getFunctions = $(obj[i].id).getAttribute("onkeypress");
				if (new String(getFunctions).indexOf('WBR_Formata')==-1){
					if (new String(getFunctions).indexOf('campoAtualFocusBanner')==-1){
						if (getFunctions!=null){
				            extendEvent(obj[i], 'onkeypress', "setacampoAtualFocusBanner('"+obj[i].id+"')");
						}else{
							$(obj[i].id)['onkeypress'] = function(){ campoAtualFocusBanner = obj[i].id; };
						}
					}
				}
			}	
		}
	}
	
	function setacampoAtualFocusBanner(obj){
		campoAtualFocusBanner = obj;
	}

	function extendEvent(oElement,sEvent,fnNew){
		oElement = oElement || window;

		sEvent = /^on/.test(sEvent)?sEvent:'on'+sEvent;
		var fnOld = oElement[sEvent]||function(){};
	   
		return (oElement[sEvent]=function(){
					var res=[fnOld(), eval(fnNew)];
					return (res[0]&&res[1]);
					}
				);
	}
		
	//FUNÇÂO QUE EXIBE O BANNER
	function displayBanner(xml, div, canal_referencia, local, posicaoVetor){
	    //alert('display banner not init');
		var HTML = ((document.all)?xml.childNodes.item(6).text:xml.childNodes[13].data);
		exibe(div,HTML);
		//Calcula o tempo do novo banner
		vetBannerPks[posicaoVetor] = xml.getElementsByTagName('pk')[0].firstChild.data;
		reloadBanner(div, canal_referencia, local, parseInt(xml.getElementsByTagName('reload')[0].firstChild.data),xml.getElementsByTagName('pk')[0].firstChild.data, posicaoVetor);
	}