// Daniel Pedroche Garrigues
// Parseador AJAX de los Eventos
//
// 2011-04-14. Daniel. Mejora de ordenacion en el listado
//
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>"
	}
}
function toSystemDate( lParam ) {

    var dt = new String(lParam+"");
    var aDate = dt.split('/');
    
    return (aDate[2] +""+ aDate[1] +""+ aDate[0]);
}
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);
		            var sParam = new String(fragment_url + "");

		            // Orden del listado
		            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 = "date";
		                sOrder = "des";
		            }
		            // alert("sParam: " + sParam + " sOrder: " + sOrder);

		            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{ itemContent += eventNode[eN].getElementsByTagName('title').item(0).firstChild.data; }catch(e){}
		                                //try{ itemContent += eventNode[eN].getElementsByTagName('summary').item(0).firstChild.data; }catch(e){}
		                                try {
		                                    ldata = eventNode[eN].getElementsByTagName('date').item(0).firstChild.data;
		                                    if (sParam == "date") ldataSort = toSystemDate(ldata) + "" + ldataSort;
		                                    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{ itemContent += eventNode[eN].getElementsByTagName('date_end').item(0).firstChild.data; }catch(e){}
		                                //try{ row += eventNode[eN].getElementsByTagName('time_end').item(0).firstChild.data+"</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{ itemContent += eventNode[eN].getElementsByTagName('county').item(0).firstChild.data; }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{ row += "<td>"+eventNode[eN].getElementsByTagName('category').item(0).firstChild.data+"</td>"; }catch(e){}
		                                //try{ row += "<td>"+eventNode[eN].getElementsByTagName('language').item(0).firstChild.data+"</td><td>Inscripción</td></tr>"; }catch(e){}
		                                //try{ row += "<td><a href='?action=inscription&id="+eventNode[eN].getElementsByTagName('inscription_uri').item(0).firstChild.data+"'>Inscripción</a></td></tr>"; }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;\">Inscríbete</a></td></tr>";
		                                } catch (e) { }
		                                //try{ itemContent += eventNode[eN].getElementsByTagName('inscription_text').item(0).firstChild.data; }catch(e){}
		                                //try{ itemContent += eventNode[eN].getElementsByTagName('last_update').item(0).firstChild.data; }catch(e){}
		                                //try{ itemContent += eventNode[eN].getElementsByTagName('publisher').item(0).firstChild.data; }catch(e){}
		                                //try{ itemContent += eventNode[eN].getElementsByTagName('producer').item(0).firstChild.data; }catch(e){}
		                                orderRow[orderRow.length] = ldataSort + "%" + row;
		                                //alert(orderRow[orderRow.length - 1]);
		                                //content += sOrder;
		                            }

		                        }
		                    }
		                    catch (e)
							{ itemContent = "Sin eventos, " + e.message; }

		                    //content += '<div id="'+aItemsGlobal[aItemsGlobal.length-1]+'" style="display:none; z-index:'+n+'">'+itemContent+'</div>';
		                    //content += ""+itemContent+"";

		                }
		            }

		            orderRow = orderRow.sort();

		            /*
		            if (sOrder == "des") { orderRow = orderRow.reverse(); }
		            else orderRow = orderRow.sort();
		            */

		            var orden = "";
		            if (sOrder == "asc") {
		                for (l = 0; l < orderRow.length; l++) {
		                    content = orderRow[l].split("%")[1] + content;
		                }
		            } else {
		                for (l = orderRow.length-1; l >= 0 ; l--) {
		                    content = orderRow[l].split("%")[1] + content;
		                }
		            }

		            if ((new String(itemsPags + "")).indexOf("morePages") >= 0) itemsPags += "</div>";


		            //content = '<div id="browseResults"><a href="javascript:backDiv();">&nbsp;&lt;Prev&nbsp;</a>'+ itemsPags +'<a href="javascript:nextDiv();">&nbsp;Next&gt;&nbsp;</a></div>' + content ;
		            //"<div id='bann_eventos' style='float:right;'><a href='#' onclick=\"window.open('../pop-up/presentacionOnline.asp','pop','toolbar=0,scrollbars=1,resizable=1')\"><img border=0 src='../images/banner-presentacion-video.jpg'></a></div>"+
		            content = "<span class='encabezaAzul'>Presentaciones de las Maestrías</span><span class='textogeneral' style='float:none; font-size:12px; padding-left: 10px;'><br><br>Te invitamos a conocer los mejores programas para tu desarrollo profesional.<br><br>" +
							  "<b>ENTRADA GRATUITA</b>. A todos los asistentes se les entregará un CD explicativo sobre Fundesem Business School<br><br></span>" +
							  "<table class='sortable'><thead><tr><th class='col_date'><a href='?date:" + ((sOrder == "asc") ? "des" : "asc") + "' onclick=\"js_sort('date:" + ((sOrder == "des") ? "asc" : "des") + "');return false;\" >Fecha y hora</a></th><th><a href='?country:" + ((sOrder == "asc") ? "des" : "asc") + "' onclick=\"js_sort('country:" + ((sOrder == "asc") ? "des" : "asc") + "');return false;\">País</a></th><th><a href='?city:" + ((sOrder == "asc") ? "des" : "asc") + "' onclick=\"js_sort('city:" + ((sOrder == "asc") ? "des" : "asc") + "');return false;\">Ciudad</a></th><th class='col_place'>Lugar</th><!--<th>Evento</th><th>Idioma</th>--><th>Inscripción</th></tr></thead><tbody>" +
							  content +
		            //"<tr><td colspan='5' height='10px' bgcolor='AliceBlue'><p style='padding-left: 15px;'><B>VENEZUELA:</B><br> Gira de Presentaciones Culminada.</p></td></tr>"+
		            //"<tr><td colspan='5' height='10px' bgcolor='AliceBlue'><p style='padding-left: 15px;'><B>MEXICO:</B><br> Gira de Presentaciones Culminada.</p></td></tr>"+
							  "</tbody>" +
							  "<tfoot><tr><td colspan='5'>&nbsp;</td></tfoot></table>";
		            //"<span class='textogeneral' style='float:none; font-size:12px; padding-left: 10px;'><b>Próximas Presentaciones en mayo en COLOMBIA.</b><br><br>";

		            if (!adding) {
		                element.innerHTML = "" + content + "";
		            } else {
		                element.innerHTML += content;
		            }

		            //showDiv(aItemsGlobal[0]+"");
		            //itemShowing = parseInt( (new String(aItemsGlobal[0]+"")).replace("item_",""), 10);
		            //changeBKG("button_"+itemShowing);
		        } 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 { eDateEdn = eventNode[eN].getElementsByTagName('date_end').item(0).firstChild.data; } catch (e) { eDateEnd="" }
										try{ eTimeEnd = eventNode[eN].getElementsByTagName('time_end').item(0).firstChild.data; } catch(e){ eTimeEnd="" }
										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='rdata'>" + eSummary + "</span></div>");
											contentHTML.push("<div id='date'><span class='label'>Fecha:&nbsp;</span><span class='rdata'>" + eDate + "</span></div>");
											if (eTimeEnd != "") contentHTML.push( "<div id='time'><span class='label'>Hora:&nbsp;</span><span class='rdata'>"+ eTime+"&nbsp;-&nbsp;"+eTimeEnd+"</span></div>" );
											else contentHTML.push( "<div id='time'><span class='label'>Hora:&nbsp;</span><span class='rdata'>"+ eTime+"&nbsp;</span></div>" );
											contentHTML.push( "<div id='place'><span class='label'>Lugar:&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>"
	}

}
/*
** loadDataInToCheckArray(fragment_url, element_id)  
** 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 
*/
function loadDataInToCheckArray(fragment_url, element_id) {
    var element = document.getElementById(element_id);
    contentHTML = new Array;
    returnValue = 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 {
                                    contentHTML = new Array();
                                    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 { eDate = eventNode[eN].getElementsByTagName('date').item(0).firstChild.data; } catch (e) { }
                                        try { eTime = eventNode[eN].getElementsByTagName('time').item(0).firstChild.data; } catch (e) { }
                                        try { eDateEdn = eventNode[eN].getElementsByTagName('date_end').item(0).firstChild.data; } catch (e) { eDateEnd = "" }
                                        try { eTimeEnd = eventNode[eN].getElementsByTagName('time_end').item(0).firstChild.data; } catch (e) { eTimeEnd = "" }
                                        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) { }

                                        append(eCode+"", " "+ eTitle);
                                        returnValue = contentHTML;
                                    }
                                }
                            }
                            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>"
    }

    return returnValue;
}
