   function Popular(target) {
   	typeof target == "object" ? this.element = target : this.element = document.getElementById(target); if (!this.element) return false;  
   	this.ul = this.element.getElementsByTagName("ul")[0]; 
   	this.tabs = this.ul.getElementsByTagName("li");
   	this.tabContent = this.getTabContent();
   	this.bind();
   }

   Popular.prototype.getTabContent = function() {
   	tabContent= new Array();    
   	this.divs = this.element.getElementsByTagName("div");
   	for(var i = 0; i < this.divs.length; i++) {
           if (/tabContent/i.test(this.divs[i].className)) {
           tabContent.push(this.divs[i]);                        
   		}
   	}
   	return tabContent;
   }


   Popular.prototype.bind = function() {    
   	var o = this;
   	for(var i = 0; i < this.tabs.length; i++) {
   		this.tabs[i].onclick = function() { 
   		   if (this.className != 'selected') {
   		      o.open(this); return false;
   		      var a = this.getElementsByTagName("a")[0];
   		      if (a) a.onclick = function() { 
                    return false; 
               }
   		   }
   		} 
   	}
   }
   
	function ventanaavisolegal()
	{ 
		window.open('av-leg-tf1.php','Aviso Legal','location=1, status=1, scrollbars=1, width=450, height=400')
	}

   Popular.prototype.open = function(caller) {    
   	for(var i = 0; i < this.tabs.length; i++) {
   		var tab = this.tabs[i]; 
   		if (tab == caller) {  
   			this.collapse();
   			tab.className = "selected"
   			this.tabContent[i].style.display = "block";
   		}
   	}
   }

   Popular.prototype.collapse = function() {
   	for(var i = 0; i < this.tabs.length; i++) {    
   		this.tabs[i].className = "";
   		this.tabContent[i].style.display = "none";                 
   	}                                                                
   }

new Popular("mostPopWidget");
new Popular("mostPopWidget2");
new Popular("mostPopWidget3");

function Time_ParseISO8601 (sISO, bWithTimeZone) {
    var sYear = sISO.substr(0, 4);
    var sMonth = sISO.substr(5, 2);
    var sDay = sISO.substr(8, 2);
    var sHour = sISO.substr(11, 2);
    var sMinute = sISO.substr(14, 2);
    var sZone;
    if (bWithTimeZone)
        sZone = sISO.substr(16, 3).toString() + sISO.substr(20, 2); // offset from UTC 
    else
        sZone = "+0000"; // make it a UTC time

    var sFormat = sYear + "/" + sMonth + "/" + sDay + " " + sHour + ":" + sMinute + ":00 UTC" + sZone
    return new Date(sFormat);
}
function Time_GetMonthName(iMonth) {
    switch (iMonth) {
        case 0: return "January"; break;
        case 1: return "February"; break;
        case 2: return "March"; break;
        case 3: return "April"; break;
        case 4: return "May"; break;
        case 5: return "June"; break;
        case 6: return "July"; break;
        case 7: return "August"; break;
        case 8: return "September"; break;
        case 9: return "October"; break;
        case 10: return "November"; break;
        case 11: return "December"; break;
        default: return ""; 
    }
}
function Time_GetWeekdayName(iDay) {
    switch (iDay) {
        case 0: return "Sunday"; break;
        case 1: return "Monday"; break;
        case 2: return "Tuesday"; break;
        case 3: return "Wednesday"; break;
        case 4: return "Thursday"; break;
        case 5: return "Friday"; break;
        case 6: return "Saturday"; break;
        default: return ""; 
    }
}
function CT_ToggleTimeZones(anchor) {
    var dTime, dOtherTime;
    var sZone = anchor.id.toString().toLowerCase();
    var iDay = 1;
    var iTime = 1;
    var obj;
    var bLocal = false;
    var iLastDay;
    switch (sZone) {
        case "race":
                bLocal = false;
                anchor.childNodes[0].nodeValue = "Convertir a mi horario local";
                anchor.id = "local";
                break;
        default:
                bLocal = true;
                anchor.childNodes[0].nodeValue = "Convertir al horario de carrera";
                anchor.id = "race";
    }
    obj = document.getElementById("Ses_" + iDay + "_" + iTime);
    while (obj == null) {
        iDay++;
        obj = document.getElementById("Ses_" + iDay + "_" + iTime);
    }
    while (obj != null) {
        iLastDay = -1;
        
        while (obj != null) {
			if ((iLastDay == -1) && (bLocal))
			{
				iLastDay = Time_ParseISO8601(obj.className, !bLocal).getUTCDay();
			}
			
            dTime = Time_ParseISO8601(obj.className, bLocal);
            
            if (iTime == 1)
                if (bLocal)
                    var eTime = document.getElementById("Ses_" + iDay);
                    if (eTime) eTime.innerHtml = Time_GetWeekdayName(dTime.getDay()) + "&nbsp;" + dTime.getDate() + "&nbsp;" + Time_GetMonthName(dTime.getMonth());
                else
                    var eTime = document.getElementById("Ses_" + iDay);
                    if (eTime) eTime.innerHtml = Time_GetWeekdayName(dTime.getUTCDay()) + "&nbsp;" + dTime.getUTCDate() + "&nbsp;" + Time_GetMonthName(dTime.getUTCMonth());
            
            obj.childNodes[0].nodeValue = "";
            
            if (bLocal) {
                if ((iLastDay != dTime.getDay()) && (iLastDay >= 0))
                    obj.childNodes[0].nodeValue = "(" + Time_GetWeekdayName(dTime.getDay()).substr(0, 3) + ") ";
                obj.childNodes[0].nodeValue += ZeroPadInteger(dTime.getHours()) + ":" + ZeroPadInteger(dTime.getMinutes());
            } else {
                if ((iLastDay != dTime.getUTCDay()) && (iLastDay >= 0))
                    obj.childNodes[0].nodeValue = "(" + Time_GetWeekdayName(dTime.getUTCDay()).substr(0, 3) + ") ";
                obj.childNodes[0].nodeValue += ZeroPadInteger(dTime.getUTCHours()) + ":" + ZeroPadInteger(dTime.getUTCMinutes());
            }
            
            if (bLocal)
                iLastDay = dTime.getDay();
            else
                iLastDay = dTime.getUTCDay();
            
            iTime++;
            obj = document.getElementById("Ses_" + iDay + "_" + iTime);
        }
        
        iTime = 1;
        iDay++;
        obj = document.getElementById("Ses_" + iDay + "_" + iTime);
    }
    return false;
}

function ZeroPadInteger(integer) {
    string = "";    
    try {
        integer = parseInt(integer, 10);

        if (integer < 0)
            string = integer;
        else if (integer < 10)
            string = "0" + integer.toString();
        else 
            string = integer.toString();
    } catch (error) {
        // ignore it
    }

    return string;
}

