//ler XML
var rssXML = {'imagem':false,'videos':false,'noticia':false};
var rssStartAt = {'imagem':0,'videos':0,'noticia':0};


function changeStartAt(step, RSS, maxItens, maxClear) {
	var totalItens = rssXML[RSS].getElementsByTagName("item").length;
	var totalPaginas = Math.ceil(totalItens / maxItens);
	
	rssStartAt[RSS] += step;
	if(rssStartAt[RSS] < 0) { 
		rssStartAt[RSS] = 0;
		return false;
	} else if(rssStartAt[RSS] > totalPaginas - 1) {
		rssStartAt[RSS] = totalPaginas - 1;
		return false;
	}

	document.getElementById(RSS).innerHTML = "";
	onReady(rssXML[RSS], RSS, maxItens, maxClear);
	return false;
}

function xmlLoader(url,RSS,maxItens,maxClear){ 
	
	
	
	if(rssXML[RSS]) {
		return;
	}
	noCache= new Date().getTime();
	url = url+"&noCache="+noCache;
	
	if(window.XMLHttpRequest){
		var Loader = new XMLHttpRequest();
		Loader.RSS = RSS;
		Loader.maxItens = maxItens;
		Loader.maxClear = maxClear;
		Loader.onreadystatechange=function(){
			if(Loader.readyState == 4){
				rssXML[RSS] = Loader.responseXML;
				onReady(Loader.responseXML,Loader.RSS,Loader.maxItens,Loader.maxClear);
			}
		}
		Loader.open("GET", url,true);
		Loader.send(null);
		
		
	}else if(window.ActiveXObject){
		
		var Loader = new ActiveXObject("Msxml2.DOMDocument.3.0");
//		Loader.RSS = RSS;
//		Loader.maxItens = maxItens;
//		Loader.maxClear = maxClear;
		Loader.onreadystatechange=function(){
			if(Loader.readyState == 4){
//				onReady(Loader,Loader.RSS,Loader.maxItens,Loader.maxClear);
				rssXML[RSS] = Loader;
				onReady(Loader,RSS,maxItens,maxClear);
			}
		}
		Loader.async = true;
		Loader.load(url);
		
		return Loader;
	}
	
}

//Encontrar os itens
function onReady(xmlNode, RSS, maxItens, maxClear){

	if(!xmlNode)return;
	var objNodeList = xmlNode.getElementsByTagName("item");
	
	var RSSTitleNodes = xmlNode.getElementsByTagName("title")
	var RSSLinkNodes  = xmlNode.getElementsByTagName("link")
	
	if(!RSSTitleNodes[0])return;
	
	RSSTitle = RSSTitleNodes[0].firstChild.nodeValue;
	RSSLink  = RSSLinkNodes[0].firstChild.nodeValue;

	setLinkRss(RSS,RSSLink);
	
	iClear=0;

	for(var i=(rssStartAt[RSS]*maxItens); i<objNodeList.length && i< ((rssStartAt[RSS]*maxItens) + maxItens); i++){
		var objNode = objNodeList[i];
		if(objNode.nodeType == 1){//ignorar espaços em branco
			iClear++;
			
			if(iClear==maxClear){
				clearDiv=true;
				iClear=0;
				
			}else clearDiv = false;
			
			if(i==(objNodeList.length-1) || i==(maxItens-1))
				setRss(objNode,RSS,true,clearDiv);
			else
				setRss(objNode,RSS,false,clearDiv);
		}
	}
	if(i>0)
		if(document.getElementById("box_"+RSS))
			document.getElementById("box_"+RSS).style.display="block";
	
	document.getElementById(RSS).innerHTML+="<div class='clear'></div>";
}

//Adicionar o item na VIEW
function setRss(objNode,RSS,last,clearDiv){

	xml_title=
	xml_link=
	xml_description=
	xml_pubDate=
	xml_media_title=
	xml_media_category=
	xml_media_credit=
	xml_enclosure_url=
	xml_enclosure_duration=
	xml_midia_url=
	xml_linkVideo=
	xml_thumbnail="";
	
	for(var j=0;j<objNode.childNodes.length;j++){
		var objNode2 = objNode.childNodes[j];
		
		/*if(RSS == "videos"){
			alert(objNode2.nodeName + " : " + objNode2.firstChild.nodeValue)
		}*/
		
		if(objNode2.nodeType == 1){//ignorar espaços em branco

			switch (objNode2.nodeName) {
				
case "title": 
				xml_title = objNode2.firstChild.nodeValue; 
				xml_title = fmtRSS(objNode2.nodeName,xml_title,RSS);
				break;
				
case "link": 
				xml_link = objNode2.firstChild.nodeValue; 
				xml_link = fmtRSS(objNode2.nodeName,xml_link,RSS);
				break;
				
case "description": 
				xml_description = objNode2.firstChild.nodeValue; 
				xml_description = fmtRSS(objNode2.nodeName,xml_description,RSS);
				break;
				
case "pubDate": 
				xml_pubDate = objNode2.firstChild.nodeValue; 
				xml_pubDate = fmtRSS(objNode2.nodeName,xml_pubDate,RSS);
				break;
				
case "media:content":
				xml_midia_url	= objNode2.attributes[0].value;
				break;
				
case "media:thumbnail":
				xml_thumbnail = objNode2.attributes[0].value;
				break;
				
case "media:title":
				xml_media_title = objNode2.firstChild.nodeValue;
				break;
				default:
				
case "media:category":
				if(objNode2.firstChild)
					xml_media_category = objNode2.firstChild.nodeValue;
				break;
				
case "media:credit":
				if(objNode2.firstChild)
					xml_media_credit = objNode2.firstChild.nodeValue;
				break;

case "guid":
				if(objNode2.firstChild)
					if(RSS == "videos"){
						xml_linkVideo = objNode2.childNodes[0].nodeValue;
						xml_linkVideo = xml_linkVideo.substring(xml_linkVideo.lastIndexOf(":")+1 , xml_linkVideo.length);
					}
					
				break;
				
case "enclosure":
				xml_enclosure_url = objNode2.attributes[0].value;
				xml_enclosure_duration  = fmtRSS("enclosure_duration",objNode2.attributes[1].value,RSS);
				break;

			}
		}
	}

	html = document.getElementById("mod_"+RSS).innerHTML;
	
	html = html.replace("#RSSTitulo#", RSSTitle);
	html = html.replace("#titulo#", xml_title);
	html = html.replace("#link#", xml_link);
	html = html.replace("#descricao#", xml_description);
	html = html.replace("#data#", xml_pubDate);
	
	html = html.replace("#thumbYouTube#", xml_description);
	html = html.replace("#thumbFlickr#", xml_thumbnail);

	html = html.replace("#url_media#", xml_midia_url);
	html = html.replace("#titulo_media#", xml_media_title);
	html = html.replace("#categoria_media#", xml_media_category);
	html = html.replace("#credit_media#", xml_media_credit);
	html = html.replace("#linkVideo#", xml_linkVideo);
	html = html.replace("#enclosure_duration#", xml_enclosure_duration);
	
	if(last) {
		html = html.replace("#class#", "no-borda");
	} else {
		html = html.replace("#class#", "");
	}

	document.getElementById(RSS).innerHTML+=html;
	
	if(clearDiv==true){
		document.getElementById(RSS).innerHTML+="<div class='clear'></div>";
	}
	
}

//Formatar dados
function fmtRSS(node,val,RSS){
	switch(node){
		case "title": 
			if(RSS == "noticia")
				val = val;
			
			return val;
		break;
		case "link": 
			if(RSS == "noticia")
				val = val;
			
			return val;
		break;
		case "description": 
			if(RSS == "noticia")
				val = val.substring(val.indexOf(": ")+2,99999);
				
			if(RSS == "videos"){
				tempVal = val.substring((val.indexOf('src')+4) +1);
				val = tempVal.substring(0 , tempVal.indexOf('">'));
			}
			
			return val;
		break;
		case "pubDate": 
			data = val;
			if(RSS == "noticia"){
				val = new Date(val);
				data = zero(val.getDate())+" "+Month(val.getMonth());
			}
			if(RSS == "imagem" || RSS == "videos" ){
				val = new Date(val);
				data = zero(val.getDate())+"/"+zero((val.getMonth()+1))+"/"+val.getFullYear();
			}
			return data;
		break;
		case "enclosure_duration": 
			if(RSS == "videos")
				time = new Date((val*1000));
				val = zero(time.getMinutes())+":"+zero(time.getSeconds());

			return val;
		break;
		default:
			return val;
	}
	
}

function zero(D){
	D = String(D);
	if(D.length <2){
		D="0"+D;
	}
	return D;
}

function Month(MonthId){
	switch(MonthId){
		case 0:
		return("Jan");
		break;
		case 1:
		return("Fev");
		break;
		case 2:
		return("Mar");
		break;
		case 3:
		return("Abr");
		break;
		case 4:
		return("Mai");
		break;
		case 5:
		return("Jun");
		break;
		case 6:
		return("Jul");
		break;
		case 7:
		return("Ago");
		break;
		case 8:
		return("Set");
		break;
		case 9:
		return("Out");
		break;
		case 10:
		return("Nov");
		break;
		case 11:
		return("Dez");
		break;
	}
}

function setLinkRss(RSS,RSSLink){
	
	elements = getElementsById('lnk_'+RSS);
	
	if(elements)
	for(iLnk in elements)
		elements[iLnk].href=RSSLink;
}


