    function dmsLL(divname){
		var me = this;
		this.ajaxTarget 	= 'gerarEspecial.php'; //Fonte dos dados
		this.updateInterval	= 2000; //em milisegundos
		this.totalItens = ''; // Total de itens, vem do Ajax
		this.itemAtual = 0;
		this._loadingState 	= 0; // Status do Carregando
		this._target 		= document.getElementById(divname);
		this._timer 		= "";
		this._timerDelete	= "";
		this._resultReady 	= 0;
		this._oldDiv 		= '';

		//Crate AJAX Request
		this.ajaxReq = createRequest();
		// Iniciar
		this.init = function(){
			// Carregando
			me.showLoading();
			// Gerar XML com lista
			me.getNewItems();
			// Pegar Itens
			me.insertNewItems();
			// Atualizar
			me.updateList();
		} // fim init
		
		// Mostrar Carregando
		this.showLoading = function (){
			me._target.innerHTML = "<div class='loading'>Carregando...</div>";	
			me._loadingState = 1;
		}
		// Esconder Loading
		this.hideLoading = function (){
			me._target.innerHTML = "";	
			me._loadingState = 0;
		}
		// Gerar XML
		this.getNewItems = function(init){
			me.resultReady = 0;
			if (me.ajaxReq != undefined){
					me.ajaxReq.open("POST", me.ajaxTarget, true);
					me.ajaxReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					me.ajaxReq.onreadystatechange = me.insertNewItems;
					params = null;
					me.ajaxReq.send(params);
			}
		} // fim de gerar XML
		// PEGAR ÍTENS
		this.insertNewItems = function(){
			if (me.ajaxReq.readyState == 4){
				var xmlRes = me.ajaxReq.responseXML;
				var itens = xmlRes.getElementsByTagName('item');
				var itCnt = itens.length;
				me.resultReady = 1;
			} // fim if carregou
		} // fim de insertNewItens
		// DELETAR NÓ
		this.deleteNode = function(pai,filho){
			clearTimeout(me._timerDelete);
			pai.removeChild(filho);
		}
	
		// ATUALIZAR LISTA
		this.updateList = function(){
			if (!me.resultReady){
				me._timer = setTimeout( function(){ me.updateList(); }, 500);
				return false;
			}

			// Exibe
				var xmlRes = me.ajaxReq.responseXML;
				var itens = xmlRes.getElementsByTagName('item');
				var itCnt = itens.length;
				if (itCnt > 0){
					// se for o ultimo zera e começa denovo
					if ((me.itemAtual > 0) && (me.itemAtual==itCnt)) {me.itemAtual = 0;}
					// monta item
					var nitem = new Array;
					nitem['id'] =  itens[me.itemAtual].getAttribute("id");
					nitem['value'] =  unescape(itens[me.itemAtual].getAttribute("value"));
					// se for primeira geração
					if ( me._oldDiv=='' || me._oldDiv == 'undefined') { divPai = divname ; }
					// senão
					else { divPai = me._oldDiv; }

					// adicionar ao final da lista
					var newDiv = document.createElement("div");
					newDiv.setAttribute("id", "divEsp_"+me.itemAtual);
					newDiv.innerHTML=nitem['value'];
					// Se for o primeiro, apaga tudo
					if (me.itemAtual == 0) {document.getElementById(divPai).innerHTML="";}
					// Adiciona ao final
					document.getElementById(divname).appendChild(newDiv);
					
					// Remover item atual (dar efeito de Fade)
					if (!( me._oldDiv=='' || me._oldDiv == 'undefined') && (me._oldDiv != divname)) {
						var quem = document.getElementById(me._oldDiv);
						Effect.Fade(quem,'{duration: 1}');
						var noPai = quem.parentNode;
						me._timerDelete = setTimeout( function(){ me.deleteNode(noPai,quem); }, 1000);
					}
					// Remover nó
					me._oldDiv = "divEsp_"+me.itemAtual;
				}
				me.itemAtual++;
			// Chama Denovo
			me._timer = setTimeout( function(){ me.updateList(); }, me.updateInterval);
		} // FIM ATUALIZAR LISTA
	} // Fim função principal
	
	//Função que cria AJAX Request
	function createRequest() {
	  try {
		request = new XMLHttpRequest();
	  } catch (trymicrosoft) {
		try {
		  request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (othermicrosoft) {
		  try {
			request = new ActiveXObject("Microsoft.XMLHTTP");
		  } catch (failed) {
			request = false;
		  }
		}
	  }
	
	  if (!request)
		alert("Error initializing XMLHttpRequest!");
	  else
		return request;
	}
