var xmlDoc;
var moreInf = 'más información »';
var css_contenedor;
var css_contenedorPags;
var dirImages;
var targetInf;
var itemstoShow;
var cssRSS;
/////
var paginar = false;
var actualPage = 0;
var items;
/////
var rssList = new Array();
var indiceActual = 0;
var RSS_CREATE;
var tryOut = 0;
///
window.onerror = tellerror;
/////
function tellerror() {
	errorList = ['Descripción', 'Url', 'Línea'];
	text = '<div class="error">Error<br>';
	for (i=0; i<arguments.length; i++) {
		if (arguments[i] != ''){
			text += '<label>'+errorList[i]+'\t:'+arguments[i]+'</label><br>';
		}
	}
	for (i=0; i<RSS_CREATE.length; i++) {
		 text += '<label>'+RSS_CREATE[i]+'</label><br>';
	}
	document.getElementById(rssList[indiceActual].DivList.id).innerHTML += text+'</div>';
	if (tryOut < 5){
		document.getElementById(rssList[indiceActual].DivList.id).innerHTML += '<div><p>Intentos de Ejecución : '+tryOut+'</p></div>';
		tryOut++;
		setTimeout('runRSS()', 2000);
	}else{
		stopRSS();
	}
}
function stopRSS(){
		document.getElementById(rssList[indiceActual].DivList.id).innerHTML = '<label>Se realizaron '+tryOut+' Intentos ejecución y no hubo una respuesta satisfactoria del servicio<br> Pedimos Excusas por los inconvenientes causados<br>Intentelo más tarde.</label><br>';
		tryOut = 0;
}
function createRSS() {
	//
	indiceActual = 0;
	RSS_CREATE = arguments;
	runRSS();
	//
}
function refreshRSS(){
		indiceActual = 0;
		runRSS();
}
function createCSS(){
	cssRSS = arguments;
}
function runRSS(){
	//////
	itemstoShow = document.getElementById('rss_showItems').value;
	dirImages = document.getElementById('rss_pathImages').value;
	targetInf = document.getElementById('rss_target').value;
	moreInf = document.getElementById('rss_moreInf').value;
	//
	if (cssRSS.length > 0){
		css_contenedor = cssRSS[indiceActual];
	}else{
		css_contenedor = document.getElementById('rss_css').value;
	}
	//
	css_contenedorPags = document.getElementById('rss_csspags').value;
	//////
	if (indiceActual < RSS_CREATE.length){
	//////
		if (rssList[indiceActual] == null){
			var rssData = new Object();
			//
			rssData.URL = RSS_CREATE[indiceActual];
			rssData.Name = 'RSS_'+indiceActual;
			rssData.items = new Array();
			///
			rssData.pages = new Array();
			rssList[indiceActual] = rssData;
		}
		//
		rssList[indiceActual].NumberofPages = 0;
		rssList[indiceActual].actualPage = 0;
		//validaciones
		if (moreInf == null) {
			moreInf = 'más información »';
		}
		if (css_contenedor == null) {
			css_contenedor = 'content_rss';
		}
		if (dirImages == null) {
			dirImages = 'images/';
		}
		if (targetInf == null) {
			targetInf = '_blank';
		}
		if (css_contenedorPags == null) {
			css_contenedorPags = 'contentPags_rss';
		}
		//LISTADO	
		if (rssList[indiceActual].DivList == null) {
			rssList[indiceActual].DivList = document.createElement("div");
			rssList[indiceActual].DivList.id = rssList[indiceActual].Name+'_List';
			document.getElementById('RSS').appendChild(rssList[indiceActual].DivList);
		} else {
			clearHTML(rssList[indiceActual].DivList.id);
		}
		//PAGINADOR
		if (rssList[indiceActual].DivPages == null) {
			rssList[indiceActual].DivPages = document.createElement("div");
			rssList[indiceActual].DivPages.id = rssList[indiceActual].Name+'_Pags';
			document.getElementById('RSS').appendChild(rssList[indiceActual].DivPages);
		} else {
			clearHTML(rssList[indiceActual].DivPages.id);
		}
		document.getElementById(rssList[indiceActual].DivList.id).innerHTML = '<div class="loader"><br><img src="'+dirImages+'cargando.gif" width="24" height="24"><label>Cargando RSS</label></div>';
		setTimeout('createLoadXML('+indiceActual+')', 100);
	}
}

function createLoadXML(indicador) {
	//
	if (window.ActiveXObject) {
		// code for IE
		rssList[indicador].xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		rssList[indicador].xmlDoc.async = false;
		rssList[indicador].xmlDoc.load(rssList[indicador].URL);
		getmessage(indicador);
	} else if (document.implementation && document.implementation.createDocument) {
		// code for Mozilla browsers 
		rssList[indicador].xmlDoc = document.implementation.createDocument("", "", null);
		rssList[indicador].xmlDoc.load(rssList[indicador].URL);
		rssList[indiceActual].xmlDoc.onload = getmessage;
	} else {
		alert('Revise las opciones de su Browser');
	}
}

function clearHTML(id) {
	document.getElementById(id).innerHTML = '';
}
function getmessage(indice) {
	if (isNaN(indice)){indice = indiceActual;}
	//
	clearHTML(rssList[indice].DivPages.id);
	clearHTML(rssList[indice].DivList.id);
	//
	rssList[indice].items = rssList[indice].xmlDoc.getElementsByTagName('item');
	rssList[indice].titles = rssList[indice].xmlDoc.getElementsByTagName('channel');
	//TITULO RSS
	rssList[indice].itemTitleRss = '<h2>'+getNodeValueTitle(0, 'title')+'<h2>';
	if (rssList[indice].items.length == 0) {
		tellerror('No se encontro RSS | No hay información disponible.');
	}
	// 
	var list = '';
	if (rssList[indice].items.length>itemstoShow) {
		paginar = true;
	}
	//  
	var itemTitle = "";
	var itemLink = "";
	var itemDate = "";
	var itemDesciption = "";
	var itemContent = "";
	var itemImage = "";
	//
	for (i=0; i<rssList[indice].items.length; i++) {
		//TITULO
		itemTitle = '<h1>'+getNodeValue(i, 'title')+'</h1>';
		//LINK
		itemLink = '<p>[ <a href="'+getNodeValue(i, 'link')+'" target="'+targetInf+'">'+moreInf+'</a> ]</p>';
		if (getNodeValue(i, 'link') == '') {
			itemLink = '';
		}
		//PUBDATE 
		itemDate = '<label>'+getNodeValue(i, 'pubDate')+'</label>';
		//DESCRIPTION
		itemDesciption = '<p>'+getNodeValue(i, 'description')+'</p>';
		if (getNodeValue(i, 'description') == ''){
			itemDesciption = '';
		}
		//CONTENT:ENCODED
		itemContent = '<p>'+getNodeValue(i, 'content:encoded')+'</p>';
		if (getNodeValue(i, 'content:encoded') != ''){
			itemDesciption = '';
		}
		//SUBJECT
		itemSubject = '<h2>'+getNodeValue(i, 'subject')+'</h2>';
		///
		if (getNodeValue(i, 'image') != '') {
			//IMAGE
			itemImage = '<img src="'+getNodeValue(i, 'image')+'">';
		}
		///  
		var text = '<div class='+css_contenedor+'>'+itemImage+itemTitle+itemSubject+itemDate+itemDesciption+itemContent+itemLink+'</div>';
		//
		if (paginar) {
			list = text;
			rssList[indice].pages[i] = list;
		} else {
			list = text;
			rssList[indice].pages[i] = list;
		}
	}
	if (paginar) {
		createPags(rssList[indice].pages.length/itemstoShow);
	}
	showPage(indice, 0);
	indiceActual++;
	runRSS();
}
////////////////////////////////////////////////////////////////////////////////////
//Devuelve el valor del nodo
////////////////////////////////////////////////////////////////////////////////////
function getNodeValueTitle(i, label) {
	var nodeValue = '';
	if (rssList[indiceActual].titles[i] != null){
		if (rssList[indiceActual].titles[i].getElementsByTagName(label)[0] != null) {
			if (rssList[indiceActual].titles[i].getElementsByTagName(label)[0].firstChild != null) {
				nodeValue = rssList[indiceActual].titles[i].getElementsByTagName(label)[0].firstChild.nodeValue;
			}
		}
	}
	return nodeValue;
}
//////////////////////////////////////////////////////////////////////////////////////
function getNodeValue(i, label) {
	var nodeValue = '';
	if (rssList[indiceActual].items[i].getElementsByTagName(label)[0] != null) {
		if (rssList[indiceActual].items[i].getElementsByTagName(label)[0].firstChild != null) {
			nodeValue = rssList[indiceActual].items[i].getElementsByTagName(label)[0].firstChild.nodeValue;
		}
	}
	return nodeValue;
}
////////////////////////////////////////////////////////////////////////////////////
//Devuelve los attributos de un nodo
////////////////////////////////////////////////////////////////////////////////////
function getAttribute(i, label, attribute) {
	var nodeAttribute = '';
	if (rssList[indiceActual].items[i].getElementsByTagName(label)[0] != null) {
		if (rssList[indiceActual].items[i].getElementsByTagName(label)[0].getAttribute(attribute) != null) {
			nodeAttribute = rssList[indiceActual].items[i].getElementsByTagName(label)[0].getAttribute(attribute);
		}
	}
	return nodeAttribute;
}
////////////////////////////////////////////////////////////////////////////////////
//Crea la paginación.
////////////////////////////////////////////////////////////////////////////////////
function createPags(indice) {
	var Pags = '';
	for (i=0; i<indice; i++) {
		Pags += '<div class="page" id="'+rssList[indiceActual].Name+'pag_'+i+'"><a href="javascript:showPage('+indiceActual+','+i+')">'+(i+1)+'</a></div>';
		rssList[indiceActual].NumberofPages++;
	}
	document.getElementById(rssList[indiceActual].DivPages.id).innerHTML = '<div class='+css_contenedorPags+'><div class="page" id="back"><a href="javascript:showPage('+indiceActual+',getBackPage('+indiceActual+'))"><img src="'+dirImages+'back.gif" border="0"/></a></div>'+Pags+'<div class="page" id="back"><a href="javascript:showPage('+indiceActual+',getNextPage('+indiceActual+'))"><img src="'+dirImages+'next.gif" border="0"/></a></div></div>';
}
//Pasar a la pagina siguiente
function getNextPage(indice) {
	var nextPage = (rssList[indice].actualPage+1);
	if (nextPage<(rssList[indice].pages.length/itemstoShow)) {
		return nextPage;
	} else {
		return 0;
	}
}
////////////////////////////////////////////////////////////////////////////////////
//Pasar a la pagina anterior
////////////////////////////////////////////////////////////////////////////////////
function getBackPage(indice) {
	var backPage = (rssList[indice].actualPage-1);
	if (backPage>=0) {
		return backPage;
	} else {
		return (rssList[indice].NumberofPages-1);
	}
}
////////////////////////////////////////////////////////////////////////////////////
//Mostrar la pagina
////////////////////////////////////////////////////////////////////////////////////
function showPage(indicador, pag) {
	rssList[indicador].actualPage = pag;
	if (paginar) {
		for (var i = 0; i<(rssList[indicador].pages.length/itemstoShow); i++) {
			if (i == rssList[indicador].actualPage) {
				document.getElementById(rssList[indicador].Name+'pag_'+i).className = 'actualPage';
			} else {
				document.getElementById(rssList[indicador].Name+'pag_'+i).className = 'page';
			}
		}
	}
	var list = '';
	for (i=0; i<itemstoShow; i++) {
		if (rssList[indicador].pages[(pag*itemstoShow)+i] != undefined) {
			list += rssList[indicador].pages[(pag*itemstoShow)+i];
		}
	}
	
	/*OpenWindow=window.open("", "newwin", "height=800, width=800,toolbar=no,scrollbars=auto,menubar=no");
	OpenWindow.document.write("<TITLE>Title Goes Here</TITLE>")
	OpenWindow.document.write("<BODY BGCOLOR=pink>")
	OpenWindow.document.write(list);
	OpenWindow.document.write("</BODY>")
	OpenWindow.document.write("</HTML>")*/
	
	
	
	document.getElementById(rssList[indicador].DivList.id).innerHTML = rssList[indicador].itemTitleRss+list;
}
/////////////////////////////////////////////////
function showItem(id) {
	var items = xmlDoc.getElementsByTagName('label');
	var respuestas = "";
	for (i=0; i<items.length; i++) {
		if (i == id) {
			var itemPreg = items[i].getElementsByTagName("pregunta")[0].firstChild.nodeValue;
			var itemResp = items[i].getElementsByTagName("respuesta")[0].firstChild.nodeValue;
			respuestas += '<br><p><strong>'+itemPreg+'</strong></p><p>'+itemResp+'</p>';
		}
	}
	document.getElementById("Response").innerHTML = respuestas;
}

