/************************************MODELOS********************************************************************/	
 //var http_request = false;
 var varFuncao = false
 
	function getXmlHttp(){
		 if(window.XMLHttpRequest){
			 return new XMLHttpRequest();
		 } else if (window.ActiveXObject) {			 
			 var axO=['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'];
			 for(var i=0;i<axO.length;i++){ 
				try{ 
					return new ActiveXObject(axO[i]);
					}catch(e){
						
					} 
			}
		}
	 }  

	function makeRequest(objSel,url,func){
		varFuncao = func;
        if (!arrObjs[objSel]) {	
			return false;
        }else{	
			
		}		
        arrObjs[objSel].onreadystatechange = function(){
			if (arrObjs[objSel].readyState == 4 && arrObjs[objSel].status == 200){ 
				varFuncao();
			}
		 }
        arrObjs[objSel].open('GET', url, true);
        arrObjs[objSel].send(null);
    }	
	
	
	arrValores = [];		
	function LoadXML(objHttp,url,func){
		objHttp.onreadystatechange = function(){
			if (objHttp.readyState == 4 && objHttp.status == 200){ 
				result = objHTTP.responseXML;	
				tagsPai = result.getElementsByTagName(tagPai);
				for(j=0;j<tagsPai.length;j++){
					arrValores[j] = [];
					filhos = tagsPai[j].childNodes;	
					for(i=0;i<filhos.length;i++){
						if(filhos[i].nodeType == 1){										
							arrValores[j][filhos[i].nodeName] = filhos[i].childNodes[0].data;										
						}	
					}
				}
				func();
			}
		 }
        objHttp.open('GET', url, true);
        objHttp.send(null);
    }
	



/**************************************************************************************************************************/
function isArray(o){
	return(typeof(o.length)=="undefined")?false:true;
}
/****************** CLASSE DE AJAX *********************/
function Xml(){
	var me = this;
	this.objHttp = false;	
	this.getXmlHttp = function(){
		if(window.XMLHttpRequest){
			return  new XMLHttpRequest();
		} else if (window.ActiveXObject) {			 
			var axO=['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'];
			for(var i=0;i<axO.length;i++){ 
				try{ 
					return  new ActiveXObject(axO[i]);
				}catch(e){} 
			}
		}			
	} 	 
	this.initialize = function() {  		 
		me.objHttp = me.getXmlHttp();
	}
	this.readyLoad = function(){	
		if (me.objHttp.readyState == 4 && me.objHttp.status == 200){				
			me.responseXML = me.objHttp.responseXML;
            me.responseText = me.objHttp.responseText;
			if(me.onLoad)
				me.onLoad();            
		}
	}		
	this.Load = function(url){
		me.objHttp.onreadystatechange = me.readyLoad;
		me.objHttp.open('GET', url, true);
		me.objHttp.send(null);		
	}
	this.sendAndLoad = function(url,dados,metodo){
		me.objHttp.onreadystatechange = me.readyLoad;
		me.objHttp.open(metodo, url, true);
		me.objHttp.send(dados);
	}	
	this.getByTagName = function(tagName){
		me.tags = me.responseXML.getElementsByTagName(tagName);		
		var arr = [];
		for(i=0;i<me.tags.length;i++){
			
			arr[i] = me.tags[i];
			if(tagName == 'link'){
				if(i == 0){
					arr[0].text = me.tags[1].childNodes[0].data;
				}else{
					arr[i].text = me.tags[i].childNodes[0].data;
				}
			}else{
				arr[i].text = me.tags[i].childNodes[0].data;
			}
		}				
		return arr;
	}
	this.initialize();
}

function getDadosXml(xml){
	var obj = new Object();
	for(var i=0;i<xml.childNodes.length;i++){
		if(xml.childNodes[i].nodeType == 1){
			var node = xml.childNodes[i].childNodes[0].data;
			node = node.replace(new RegExp("[']",'gi'), "&quot;");
			node = node.replace(new RegExp('["]','gi'), "&quot;");
			var tagNome = xml.childNodes[i].nodeName;
			if(tagNome == "link"){
				tagNome = "Link";
			}
			obj[tagNome] = node;
		}
	}
	return obj;
}


	var reqs = [];
	function MultiRequest(arquivos,callBack) {
		var me = this;
		me.fila = [];
		me.reqs = [];		
		me.arquivos = arquivos;
		me.callBack = callBack;
		me.count = 0;		

		this.insereFila = function (url){
			me.fila[me.fila.length]=url;
			if((me.count+1)==me.fila.length)
			me.executa();
		}
		this.executa = function(){
			me.reqs[me.count] = new Xml();
			me.reqs[me.count].onLoad = me.checkProx;
			me.reqs[me.count].Load(me.arquivos[me.count]+"?cache="+Math.random());			
		}		
		this.checkProx = function(){
			me.count++;
			if(me.count < me.arquivos.length){
				me.executa();
			}else{
				if(me.callBack){			
					me.callBack(me.reqs);			
				}
			}	
		}
		me.executa();
		
	};
	



