// Daniel Pedroche Garrigues
// Parseador AJAX de los Eventos
// Lenguaje: EN 
var xmlhttp=false;

try {
	xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
	try {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} catch (E) {
		xmlhttp = false;
	}
}

if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
	try {
		xmlhttp = new XMLHttpRequest();
	} catch (e) {
		xmlhttp=false;
	}
}
if (!xmlhttp && window.createRequest) {
	try {
		xmlhttp = window.createRequest();
	} catch (e) {
		xmlhttp=false;
	}
}
var loadingHTML = "";
function loadFragmentInToElement(fragment_url, element_id, adding) { 
    var element = document.getElementById(element_id); 
    if(!adding){
		 if(!loadingHTML && loadingHTML !=""){ element.innerHTML = loadingHTML+'';}
		 else{element.innerHTML = '<div id="loadingDiv"><img src="/_ajax/loading.gif" border="0" style="float:left">Cargando ...</div>';}
    }
    try{
		xmlhttp.open("GET", fragment_url);
		xmlhttp.onreadystatechange = function() {			
			if (xmlhttp.readyState==4) {
				if (xmlhttp.status!=404) {
					if( !adding )
						{element.innerHTML = xmlhttp.responseText;}
					else
						{element.innerHTML += xmlhttp.responseText;}
				} else {
					alert("Página no encontrada.");
				}
			}
		} 
		xmlhttp.send(null); 
	}catch(e){
		element.innerHTML = "<font color='red'>Error: "+e+"!!!</font>"
	}
} 
var itemShowing = 1;
var aItemsGlobal = new Array();
function loadFragmentInToElementRSS(fragment_url, element_id, adding) { 
    var element = document.getElementById(element_id); 
    //if(!adding) element.innerHTML = '<p style=\"text-align:left; background-color:red; color:white;display:inline;padding:2px;\">Loading...</p>'; 
    try{
		xmlhttp.open("GET", fragment_url);
		xmlhttp.onreadystatechange = function() {

		    if (xmlhttp.readyState == 4) {
		        if (xmlhttp.status != 404) {

		            var e = document.getElementById(element_id);
		            // Orden del listado
		            var sParam = new String(fragment_url + "");
		            sParam = sParam.substr(sParam.indexOf("?") + 1, sParam.length);
		            var sOrder = (sParam.indexOf(":") > 0) ? sParam.substr(sParam.indexOf(":") + 1, 3) : "";
		            sParam = (sOrder.length > 0) ? sParam.substr(0, sParam.indexOf(":")) : sParam;
		            // --
		            if (sOrder + "" == "") {
		                sParam = "country";
		                sOrder = "des";
		            }

		            var node = xmlhttp.responseXML.documentElement;
		            var content = "";

		            // Get the calendar title
		            var title = node.getElementsByTagName('title').item(0).firstChild.data;

		            //content = '<div class="channeltitle">'+title+'</div><br>';
		            content = "";

		            // Browse events
		            var items = node.getElementsByTagName('item');
		            if (items.length == 0) {
		                content += '<ul><li><div class=error>No events</div></li></ul>';
		            } else {
		                itemsPags = "";
		                orderRow = new Array();
		                for (var n = 0; n < items.length; n++) {
		                    aItemsGlobal[aItemsGlobal.length] = "item_" + n;
		                    if (n == 5) {
		                        itemsPags += '<a id="morePagesLink" style="display:none" href="javascript:;" onclick="showDiv(\'morePages\');showDiv(\'morePagesLink\');">...</a><div id="morePages" style="display:none">';
		                    }
		                    itemsPags += '<a id="button_' + n + '" style="background-color:transparent;" href="javascript:showDiv2(\'' + "item_" + n + '\');">' + n + '</a>';

		                    try
							{ var itemId = items[n].getElementsByTagName('id').item(0).firstChild.data; }
		                    catch (e)
							{ var itemId = "#"; }

		                    try
							{ var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data; }
		                    catch (e)
							{ var itemTitle = "Sin titulo"; alert(itemTitle + " " + e.message); }

		                    try {
		                        //itemContent = "" + itemTitle;
		                        var itemContent = "";
		                        var row = "";
		                        var eventNode = items[n].getElementsByTagName('event');
		                        if (eventNode.length == 0) {
		                            itemContent += '<ul><li><div class=error>No events</div></li></ul>';
		                        } else {
		                            for (eN = 0; eN < eventNode.length; eN++) {
		                                row = "";

		                                ldataSort = "";
		                                try {
		                                    ldata = eventNode[eN].getElementsByTagName('date').item(0).firstChild.data;
		                                    if (sParam == "date") ldataSort = (new Date(ldata)).getTime() + "";
		                                    row += "<tr><td class='col_date'>" + ldata;
		                                } catch (e) { }
		                                try {
		                                    ldata = eventNode[eN].getElementsByTagName('time').item(0).firstChild.data + "&nbsp;";
		                                    if (sParam == "date") ldataSort += "&nbsp;" + ldata + "";
		                                    row += "<br>" + ldata + "</td>";
		                                } catch (e) { }
		                                try {
		                                    ldata = eventNode[eN].getElementsByTagName('country').item(0).firstChild.data;
		                                    if (sParam == "country") ldataSort = ldata + "" + ldataSort;
		                                    if (sParam == "date") ldataSort += ldata + "";
		                                    row += "<td>" + ldata + "</td>";
		                                } catch (e) { }
		                                try {
		                                    ldata = eventNode[eN].getElementsByTagName('city').item(0).firstChild.data;
		                                    if (sParam == "city") ldataSort = ldata + "";
		                                    row += "<td>" + ldata + "</td>";
		                                } catch (e) { }
		                                try { row += "<td>" + eventNode[eN].getElementsByTagName('place').item(0).firstChild.data + "</td>"; } catch (e) { }
		                                try {
		                                    lparams = "action=inscription&id=" + items[n].getElementsByTagName('guid').item(0).firstChild.data + "," + eventNode[eN].getElementsByTagName('id').item(0).firstChild.data;
		                                    row += "<td><a href='?" + lparams + "' onclick=\"js_register('" + lparams + "'); return false;\">Register</a></td></tr>";
		                                } catch (e) { }
		                                orderRow[orderRow.length] = ldataSort + "%" + row;
		                                
		                            }

		                        }
		                    }
		                    catch (e)
							{ itemContent = "Sin eventos, " + e.message; }
		                }
		            }

		            if (sOrder == "des") { orderRow = orderRow.reverse(); }
		            else orderRow = orderRow.sort();

		            var orden = "";
		            for (l = 0; l < orderRow.length; l++) {
		                content = orderRow[l].split("%")[1] + content;
		            }

		            if ((new String(itemsPags + "")).indexOf("morePages") >= 0) itemsPags += "</div>";

		            content = "<span class='encabezaAzul'>Presentations of our Programs</span><span class='textogeneral' style='float:none; font-size:12px; padding-left: 10px;'><br><br>We invite you to find out about the best programs for your professional development.<br><br>" +
							  "<b>FREE ENTRANCE</b>. All the participants will receive an informatory CD, regarding Fundesem Business School<br><br></span>" +
							  "<table class='sortable'><thead><tr><th class='col_date'><a href='?date:" + ((sOrder == "asc") ? "desc" : "asc") + "' onclick=\"js_sort('date:" + ((sOrder == "asc") ? "des" : "asc") + "');return false;\" >Date and time</a></th><th><a href='?country:" + ((sOrder == "asc") ? "des" : "asc") + "' onclick=\"js_sort('country:" + ((sOrder == "asc") ? "des" : "asc") + "');return false;\">Country</a></th><th><a href='?city:" + ((sOrder == "asc") ? "des" : "asc") + "' onclick=\"js_sort('city:" + ((sOrder == "asc") ? "des" : "asc") + "');return false;\">City</a></th><th class='col_place'>Place</th><th>Registration</th></tr></thead><tbody>" +
							  content +
							  "</tbody>" +
							  "<tfoot><tr><td colspan='5'>&nbsp;</td></tfoot></table>";

		            if (!adding) {
		                element.innerHTML = "" + content + "";
		            } else {
		                element.innerHTML += content;
		            }
		        } else {
		            alert("Petición no encontrada.\n" + fragment_url);
		        }
		    }

		} 
		xmlhttp.send(null); 
	}catch(e){
		element.innerHTML = "<font color='red'>Error: "+e+"</font>"
	}
} 
function loadInfo( lurl ){
	loadFragmentInToElementRSS(lurl, 'mainContainer', false);
}
/*
** loadDataInToObjectDOM(fragment_url, element_id, selected_code)  
** fragment_url: URI de la fuente de datos	XML de presentaciones
** element_id: ID DOM HTML de la capa en la que se escribirán los datos 
** selected_code: Clave de la presentación en formato X,Y de forma que X es el número <GUID> de ITEM e Y el de <ID> de EVENT
*/
function loadDataInToObjectDOM(fragment_url, element_id, selected_code) { 
    var element = document.getElementById(element_id); 
    contentHTML = new Array;
    
    try{
		xmlhttp.open("GET", fragment_url);
		xmlhttp.onreadystatechange = function() { 
			if (xmlhttp.readyState==4) {
				if (xmlhttp.status!=404) {
					var e = document.getElementById( element_id  );
					
					// Orden del listado
					var node = xmlhttp.responseXML.documentElement;
					
					// Obtenemos el título del canal
					var title = node.getElementsByTagName('title').item(0).firstChild.data;
					
					contentHTML.push( "<div id='eventData'>" );
					
					// Browse events
					var items = node.getElementsByTagName('item');
					if (items.length == 0) {
						contentHTML.push('<ul><li><div class=error>No events</div></li></ul>');
					} else {
						itemsPags = "";
						for (var n=0; n<items.length ; n++)
						{
							try
							{ var itemId = items[n].getElementsByTagName('id').item(0).firstChild.data; } 
							catch (e) 
							{ var itemId =  "#"; }
							
							try
							{ var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;} 
							catch (e)	
							{ var itemTitle = "Sin titulo"; alert(itemTitle+" "+e.message); }
							
							try
							{ 
								var itemContent = "";
								var row="";
								var eventNode = items[n].getElementsByTagName('event');
								if (eventNode.length == 0) {
									itemContent += '<ul><li><div class=error>No events</div></li></ul>';
								} else {
									for(eN=0 ; eN < eventNode.length ; eN++ ){
										row = "";
										ldataSort = "";
										try{ eCategory = eventNode[eN].getElementsByTagName('category').item(0).firstChild.data; } catch(e){}
										try { eTitle = eventNode[eN].getElementsByTagName('title').item(0).firstChild.data; } catch (e) { eTitle = "" }
										try { eSummary = eventNode[eN].getElementsByTagName('summary').item(0).firstChild.data; } catch (e) { eSummary = "" }
										try{ eDate = eventNode[eN].getElementsByTagName('date').item(0).firstChild.data; } catch(e){}
										try{ eTime = eventNode[eN].getElementsByTagName('time').item(0).firstChild.data; } catch(e){}
										try{ eCountry = eventNode[eN].getElementsByTagName('country').item(0).firstChild.data; } catch(e){}
										try{ eCity = eventNode[eN].getElementsByTagName('city').item(0).firstChild.data; } catch(e){}
										try{ ePlace = eventNode[eN].getElementsByTagName('place').item(0).firstChild.data;} catch(e){}
										try{ eCode = items[n].getElementsByTagName('guid').item(0).firstChild.data+","+eventNode[eN].getElementsByTagName('id').item(0).firstChild.data;}catch(e){}
										
										if(eCode+""==selected_code){
										    contentHTML = new Array();
											contentHTML.push( "<div id='category'><span class='label'></span><span class='rdata'>"+ eCategory +"</span></div>" );
											if (eTitle + "" != "") contentHTML.push("<div id='title'><span class='label'></span><span class='rdata'>" + eTitle + "</span></div>");
											if (eSummary + "" != "") contentHTML.push("<div id='summary'><span class='label'></span><span class='rdata'>" + eSummary + "</span></div>");
											contentHTML.push("<div id='date'><span class='label'>Date:&nbsp;</span><span class='rdata'>" + eDate + "</span></div>");
											contentHTML.push( "<div id='time'><span class='label'>Time:&nbsp;</span><span class='rdata'>"+ eTime+"&nbsp;</span></div>" );
											contentHTML.push( "<div id='place'><span class='label'>Place:&nbsp;</span><span class='rdata'>"+ ePlace +", "+eCity+"&nbsp;("+eCountry+")</span></div>" );
										}
									}
								}
							}
							catch (e)	
							{ itemContent = "Sin eventos, " + e.description;  }
						}
					}
					
					element.innerHTML += contentHTML.join("\n");
					
				} else {
					alert("Petición no encontrada.\n"+fragment_url);
				}
			}
		
		} 
		xmlhttp.send(null); 
	}catch(e){
		element.innerHTML = "<font color='red'>Error: "+e+"</font>"
	}
	
}
