// everestResults.js

var kAlt_ME = 8848;
var kLoginTimeSec = 60 * 30;			//  30min.
var kMinClubMembers = 4;
var kAddTrackFreezeTime = 60 * 60;		//	60min.
var kCacheResTimeSec = 60 * 5;			// 5 min.
var kPageSize = 30;


var gResPage = 0;
var gResHSPage = 0;
var gResCupPage = 0;
var gCacheResUser = "";
var gCacheResClub = "";
var gCacheResLatest = "";
var gCacheResPopular = "";
var gCacheResHighScores = "";
var gCacheResCup = "";
var gCacheResTimer = null;
var gPrevUserTotalHoehe = 0;

var	gResultsCup_request = null;

var gUID = 0;
var gSID = 0;

var gSiteURL = "http://mounteverest.ch/";		// mit / at end
var gSiteURLPrefix = "";						// empty or me-test/


// -----------------------------------------------------------
// RESULTS TABLE
// -----------------------------------------------------------




function displayCupMain()
{
	resetCacheRes();
	gUID = getUIDCookie();
	gSID = getSIDCookie();
	getResults("lst");
	displayCupResults();
//	getResults2("typ",0);
//	doImage("lat");
}



function displayCupResults()
{
	document.getElementById("cupBoxResults").style.top = "410px";
	gResCupPage = 1;
	if (gCacheResCup.length <= 0) {
		document.getElementById("cupBoxResults").innerHTML = "<span class='loading-font'>Loading...</span>";
		getResultsCup("ref",gResCupPage);
		setCacheResTimer();
	}
	else
		document.getElementById("cupBoxResults").innerHTML = gCacheResCup;
}



function displayResultsHead(sel,selTyp)
{
	var txt = "";
	txt = "<span class='boxTitle'>" + getLocStr('RESULTATE') + "</span><br>";
	txt += "</span><br><br>";
	document.getElementById("resultsBoxHead").innerHTML = txt;
}



function displayContactUserBox(evnt,nickname)
{
	var posx = 0;
	var posy = 0;

	if (!evnt) 
		var evnt = window.event;
	if (evnt.pageX || evnt.pageY) 	{
		posx = evnt.pageX;
		posy = evnt.pageY;
	}
	else if (evnt.clientX || evnt.clientY) 	{
		posx = evnt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = evnt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}

	document.getElementById("contactUserBox").style.top = (posy + 10) + "px";
	document.getElementById("contactUserBox").style.left = (posx + 10) + "px";
	document.getElementById("contactUserBox").style.visibility = "visible";
	
	var txt = "";	
	txt += "<table width='100%' border='0'>";
	txt += "<tr><td colspan='2' class='box-text-font'><b>" + getLocStr('Benutzerkontakt') + " " + nickname + "</b></td></tr>";

	txt += "<tr><td class='box-text-font' valign='top'>" + getLocStr('Text') + " *:</td><td><textarea name='contactuser_text' id='contactuser_text' cols='25' rows='4'></textarea></td></tr>";
	txt += "<tr><td>&nbsp;</td><td align='right'><input type='submit' name='contactuserBtnBack' id='contactuserBtnBack' value='" + getLocStr('Abbrechen') + "' /> ";
	txt += "<input type='submit' name='contactuserBtn' id='contactuserBtn' value='" + getLocStr('Senden') + "' /></td></tr>";
	txt += "</table>";
	
	document.getElementById("contactUserBox").innerHTML = txt;
	document.getElementById("contactuser_text").focus();

	var submit2 = document.getElementById("contactuserBtnBack"); 
	submit2.onclick = function(ev) { 
		document.getElementById("contactUserBox").style.visibility = "hidden";
		document.getElementById("contactUserBox").innerHTML = "";
	};
	
	var submit = document.getElementById("contactuserBtn"); 
	submit.onclick = function(ev) { 
		var utext = document.getElementById("contactuser_text").value;
		if (utext.length > 1) {
			getResults("cu",gUID,utext,nickname);
			document.getElementById("contactUserBox").style.visibility = "hidden";
			document.getElementById("contactUserBox").innerHTML = "";
		}
	};	
}




function getResults2(cmd,uid,page,nickname)
{
	gResults2_request = false;
    if (typeof XMLHttpRequest != 'undefined') {
    	try {
			gResults2_request = new XMLHttpRequest();
        } catch(e) {
			gResults2_request = false;
        }
    } else if(window.ActiveXObject) {
       	try {
        	gResults2_request = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		gResults2_request = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		gResults2_request = false;
        	}
		}
    }
	if (gResults2_request) {
		var localfile = document.URL.indexOf("file:",0);
		if (localfile < 0)
			var url = document.URL.substring(0,(document.URL.indexOf(".ch/") + 4)) + gSiteURLPrefix + "cgi-local/";
		else
			var url = gSiteURL + "cgi-local/";
					
		switch (cmd) {
			case 'typ':		url += "Tracks.pl?cmd=LoadByTyp";	
							gResults2_request.onreadystatechange = processTracksReqLoadByTyp;
							break;								

			default: ;
		}		
		
		
		gResults2_request.open("GET",url,true);
		gResults2_request.send(null);
	}
}



function getResults(cmd,uid,page,nickname)
{
	gResults_request = false;
    if (typeof XMLHttpRequest != 'undefined') {
    	try {
			gResults_request = new XMLHttpRequest();
        } catch(e) {
			gResults_request = false;
        }
    } else if(window.ActiveXObject) {
       	try {
        	gResults_request = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		gResults_request = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		gResults_request = false;
        	}
		}
    }

	if (gResults_request) {
		var localfile = document.URL.indexOf("file:",0);
		if (localfile < 0)
			var url = document.URL.substring(0,(document.URL.indexOf(".ch/") + 4)) + gSiteURLPrefix + "cgi-local/";
		else
			var url = gSiteURL + "cgi-local/";
					
		switch (cmd) {
			case 'cu':		url += "Contact.pl?cmd=Contact&nickname=" + nickname + "&user_txt=" + encodeURIComponent(page) + "&uid=" + uid + "&sid=" + gSID;	// name contains the text
							gResults_request.onreadystatechange = processUserReqContactUser;
							break;			
			case 'lst':		url += "Cup.pl?cmd=ListCupNumberWaypoints&cid=4";	
							gResults_request.onreadystatechange = processResultsListCupWaypoints;
							break;								

			default: ;
		}		
		
		
		gResults_request.open("GET",url,true);
		gResults_request.send(null);
	}
}




function processUserReqContactUser()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText == "true") {
				alert(getLocStr('Msg-Contact-Mail-Sent'));
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": U6 (contact user)");
		}
		else {
			alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}


// -----------------------------------------------------------
// Result Cup
// -----------------------------------------------------------



function getResultsCup(cmd,unused,page)
{
	gResultsCup_request = false;
    if (typeof XMLHttpRequest != 'undefined') {
    	try {
			gResultsCup_request = new XMLHttpRequest();
        } catch(e) {
			gResultsCup_request = false;
        }
    } else if(window.ActiveXObject) {
       	try {
        	gResultsCup_request = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		gResultsCup_request = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		gResultsCup_request = false;
        	}
		}
    }
	if (gResultsCup_request) {
		var localfile = document.URL.indexOf("file:",0);
		if (localfile < 0)
			var url = document.URL.substring(0,(document.URL.indexOf(".ch/") + 4)) + gSiteURLPrefix + "cgi-local/";
		else
			var url = gSiteURL + "cgi-local/";
					
		switch (cmd) {
			case 'res':		url += "Cup.pl?cmd=LoadCupResults&page=" + page + "&psize=30";
							gResultsCup_request.onreadystatechange = processResultsLoadCupResults;
							break;								

			case 'ref':		url += "Cup.pl?cmd=LoadCupResultsFull&page=" + page + "&psize=30";
							gResultsCup_request.onreadystatechange = processResultsLoadCupResultsFull;
							break;								

			default: ;
		}		
		
		gResultsCup_request.open("GET",url,true);
		gResultsCup_request.send(null);
	}
}




function switchCupWaypointDesc(num) 
{
	var wtxt = "";
	var mtxt = "";
	switch (num) {
			case 1:
			mtxt += "<b class='tabTextSelected'>Surselva</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(2);'>Urseren</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(3);'>Goms</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(4);'>Aletsch</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(5);'>Mattertal</b>";
			break;
			case 2:
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(1);'>Surselva</b> | ";
			mtxt += "<b class='tabTextSelected'>Urseren</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(3);'>Goms</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(4);'>Aletsch</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(5);'>Mattertal</b>";
			break;
			case 3:
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(1);'>Surselva</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(2);'>Urseren</b> | ";
			mtxt += "<b class='tabTextSelected'>Goms</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(4);'>Aletsch</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(5);'>Mattertal</b>";
			break;
			case 4:
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(1);'>Surselva</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(2);'>Urseren</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(3);'>Goms</b> | ";
			mtxt += "<b class='tabTextSelected'>Aletsch</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(5);'>Mattertal</b>";
			break;
			case 5:
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(1);'>Surselva</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(2);'>Urseren</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(3);'>Goms</b> | ";
			mtxt += "<b class='tabText' onclick='switchCupWaypointDesc(4);'>Aletsch</b> | ";
			mtxt += "<b class='tabTextSelected'>Mattertal</b>";
			break;
	}
	var mtxt = "";
	
	switch (getLanguageCookie()) {
			case 'de':
			wtxt += "<span class='boxText'><strong>Hotel des alpes - Fiesch am Eggishorn</strong></span><br><br>";
			wtxt += "<table><tr><td valign='top'><a href='http://www.des-alpes.ch' target='_blank'><img src='img/promo/top5_desalpes_eggishorn.png' class='imgBorder' /></a>&nbsp;&nbsp;</td><td valign='top'><span class='boxText'>Alle Teilnehmenden, welche 5 Gipfel schaffen, können ein Wochenende in Fiesch gewinnen – inklusive der Fahrt aufs Eggishorn. Ein tolles Angebot im Goms wartet!<br>Das Wanderhotel des alpes ist Ausgangspunkt für viele unvergessliche Wanderungen in der Aletscharena. Die Familie von Skiweltmeister Daniel Albrecht offeriert ein Weekend (2 Übernachtungen inkl. Frühstück für 2 Personen). Freuen Sie sich auf neu eingerichtete Feng Shui-Zimmer. <a href='http://www.des-alpes.ch' target='_blank'>www.des-alpes.ch</a>.<br><i>Gewinner: Hansruedi Ruchti</i></span></td><td valign='top'></td></tr></table>";
			break;
			case 'fr':	
			wtxt += "<span class='boxText'><strong>Hotel des alpes - Fiesch am Eggishorn</strong></span><br><br>";
			wtxt += "<table><tr><td valign='top'><a href='http://www.des-alpes.ch' target='_blank'><img src='img/promo/top5_desalpes_eggishorn.png' class='imgBorder' /></a>&nbsp;&nbsp;</td><td valign='top'><span class='boxText'>Tous les participants ayant gravi 5 sommets peuvent gagner un week-end à Fiesch, trajet en téléphérique sur l'Eggishorn compris. Une superbe offre dans la vallée de Conches vous attend!<br>L'Hôtel des alpes est le point de départ pour de nombreuses randonnées inoubliables dans la région de l'Aletsch. La famille du champion du monde de ski Daniel Albrecht offre un week-end (2 nuitées, petit-déjeuner compris, pour 2 personnes). Réjouissez-vous des nouvelles chambres aménagées selon les principes du feng shui. <a href='http://www.des-alpes.ch' target='_blank'>www.des-alpes.ch</a>.<br><i>Gewinner: Hansruedi Ruchti</i></span></td><td valign='top'></td></tr></table>";
			break;
			case 'it':	
			wtxt += "<span class='boxText'><strong>Hotel des alpes - Fiesch am Eggishorn</strong></span><br><br>";
			wtxt += "<table><tr><td valign='top'><a href='http://www.des-alpes.ch' target='_blank'><img src='img/promo/top5_desalpes_eggishorn.png' class='imgBorder' /></a>&nbsp;&nbsp;</td><td valign='top'><span class='boxText'>Tutti i partecipanti che raggiungono 5 vette, possono vincere un fine settimana a Fiesch – incluso il biglietto per salire sull'Eggishorn. Un'offerta allettante attende a Goms!<br>L'albergo per gli escursionisti des alpes è un punto di partenza per molte escursioni indimenticabili nell'Aletscharena. La famiglia dello sciatore campione del mondo Daniel Albrecht offre un fine settimana (2 pernottamenti con colazione per 2 persone). Godetevi le nuove stanze arredate secondo il Feng Shui. <a href='http://www.des-alpes.ch' target='_blank'>www.des-alpes.ch</a>.<br><i>Gewinner: Hansruedi Ruchti</i></span></td><td valign='top'></td></tr></table>";
			break;
			default:
			wtxt += "<span class='boxText'><strong>Hotel des alpes - Fiesch am Eggishorn</strong></span><br><br>";
			wtxt += "<table><tr><td valign='top'><a href='http://www.des-alpes.ch' target='_blank'><img src='img/promo/top5_desalpes_eggishorn.png' class='imgBorder' /></a>&nbsp;&nbsp;</td><td valign='top'><span class='boxText'>Every participant that climbs 5 peaks could win a weekend in Fiesch - including a ride to the top of the Eggishorn. A great offer awaits you in Goms!<br>Hotel des Alpes, the hiking hotel, is the ideal point of departure for many trips to the Aletsch Glacier. The family of Daniel Albrecht, the world champion skier, is offering a weekend as a prize (2 nights bed and breakfast for 2). Get ready to enjoy the newly renovated Feng Shui rooms: <a href='http://www.des-alpes.ch' target='_blank'>www.des-alpes.ch</a>.<br><i>Winner: Hansruedi Ruchti</i></span></td><td valign='top'></td></tr></table>";
			break;
	}
	document.getElementById("cupBoxHead2").innerHTML = mtxt + "<br><br>"+wtxt;
}



function processResultsListCupWaypoints()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText.length > 0) {
				
				var items = gResults_request.responseXML.getElementsByTagName("cup");
				var cupname = getElementTextNS("", "cupname", items[0], 0);
				var dateFrom = getElementTextNS("", "datefrom", items[0], 0);
				var dateTo = getElementTextNS("", "dateto", items[0], 0);
				var txt = "<span class='boxTitle'>"+cupname+"</span><br>";
				txt += "<span class='boxText'><strong>"+formatDateFromDB(dateFrom)+" - "+formatDateFromDB(dateTo)+"</strong></span><br><br>";
//				txt += "<span class='boxText'><strong>"+getLocStr('Txt-Results-CupSubTitle')+" "+formatDateFromDB(dateFrom)+" - "+formatDateFromDB(dateTo)+".</strong></span><br><br>";
				
				switch (getLanguageCookie()) {
					case 'de':	txt += "<span class='boxText'>So funktioniert’s: steigen Sie bis Ende Oktober  auf mindestens 5 Berge (Top5) aus den 30 vorgegebenen Top-Aussichtspunkten der Schweiz. Sie haben die Wahl. Registrieren Sie die geleisteten Höhenmeter auf www.MountEverest.ch  Ist bei der Eingabe Ihrer Höhenmeterstrecken einer der 30-Top-Aussichtpunkte dabei, wird dieser automatisch dazu gezählt. <br><br>Unter allen Teilnehmenden, die zu mindestens 5 dieser Top-Berge aufgestiegen sind, gibt es schöne Preise zu gewinnen (Weekend in Fiesch, Tickets fürs Jungfraujoch, Gornergrat, Eggishorn, Jakobshorn, Stanserhorn, Niesen, Rigi).</span>";
					break;
					case 'fr':	txt += "<span class='boxText'>Voilà comment cela fonctionne: grimpez d’ici la fin octobre au moins sur 5 montagnes (Top 5) des 30 magnifiques points de vue prédéfinis de Suisse. Vous avez le choix. Enregistrez les mètres d’altitude sur www.MountEverest.ch  Si un point de vue du Top 30 figure dans les itinéraires que vous enregistrez, celui-ci sera automatiquement ajouté. <br><br>Parmi tous les participants qui ont gravi au moins 5 de ces montagnes du Top 30, de superbes prix sont tirés au sort (week-end à Fiesch, tickets pour le Jungfraujoch, Gornergrat, Eggishorn, Jakobshorn, Stanserhorn, Niesen, Rigi).</span>";
					break;
					case 'it':	txt += "<span class='boxText'>Ecco come funziona: salga entro la fine di ottobre almeno su 5 montagne (Top5) delle 30 vette panoramiche svizzere indicate. A lei la scelta. Registri il dislivello realizzato sul sito www.MountEverest.ch. Se al momento della registrazione la sua montagna scalata è una delle 30 vette panoramiche, sarà aggiunta automaticamente. <br><br>Tutti i partecipanti che hanno raggiunto almeno 5 delle vette indicate possono vincere dei bei premi (fine settimana a Fiesch, biglietti per Jungfraujoch, Gornergrat, Eggishorn, Jakobshorn, Stanserhorn, Niesen, Rigi).</span>";
					break;
					default:
						txt += "<span class='boxText'>This is how it works: climb at least 5 mountains (Top 5) from the 30 top vantage points selected in Switzerland by the end of October. The choice is yours. Register the total altitude climbed on www.MountEverest.ch. If one of the 30 top vantage points is included when you enter the trail you have taken, this will be counted automatically. <br><br>All participants who have climbed to the summit of at least 5 of the top mountains have the opportunity to win great prizes (weekend in Fiesch, tickets for Jungfraujoch, Gornergrat, Eggishorn, Jakobshorn, Stanserhorn, the Niesen and Rigi).</span>";

				}
				switchCupWaypointDesc(1);

				document.getElementById("cupBoxHead").innerHTML = txt;
				txt = "";
				txt += "<span class='boxText'>"+getLocStr('Txt-Results-CupTracksSubtitle')+"</span><br>";
				txt += "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td colspan='3'></td></tr>";
				txt += "<tr><td width='270' class='track1-font' colspan='2'>" + getLocStr('Strecke') + "</td><td class='track1-font'>" + getLocStr('Höhe') + "</td><td class='track1-font' width='25'>" +getLocStr('Link')+ "</td></tr>";
				
				var bgcolor = "";
				var imgIcon = "";
				var url = "";
				var maplink = "";
				var tdClass;
				items = gResults_request.responseXML.getElementsByTagName("track");
				var hoehe, trackName, ort, typ, kanton, lat, lng;
				for (var i = 0; i < items.length; i++) {
					trackName = getElementTextNS("", "name", items[i], 0);
					ort = getElementTextNS("", "ort", items[i], 0);
					typ = getTrackTypeIcon(parseInt(getElementTextNS("", "typ", items[i], 0),10));
					hoehe = parseInt(getElementTextNS("", "hoehe", items[i], 0),10);
					kanton = getElementTextNS("", "kanton", items[i], 0);
					url = getElementTextNS("", "url", items[i], 0);
					lat = parseInt(getElementTextNS("", "lat", items[i], 0),10);
					lng = parseInt(getElementTextNS("", "lng", items[i], 0),10);

					
					if (i % 2) {
						tdClass = "class='track2e-font'";
					}
					else {
						tdClass = "class='track2o-font'";
					}

					if (url.length > 0)
						url = "<a href='" + decodeURIComponent(url) + "' target='url'><img src='img/icon/icon_link.gif' border='0'></a>";
					else
						url = "";

					maplink = "<a href='http://www.mapplus.ch?x="+lat+"&y="+lng+"&zl=15' target='maplink'><img src='img/icon/icon_link.gif' border='0'></a>";


					txt += "<tr><td "+tdClass+" width='20'>" + typ + "</td><td "+tdClass+">" + trackName+", "+kanton+"</td><td "+tdClass+" align='right'>" + hoehe + "m</td><td "+tdClass+" align='center'>" +maplink+ "</td></tr>";
				}
				txt += "</table>";
				txt += "<br><br>";
				switch (getLanguageCookie()) {
					case 'de':
								txt += "<span class='boxText'>Diese Preise warten, auf alle, die mindestens 5 der 30 Top-Berge bestiegen haben:<br><br>";
								txt += "<strong>Jakobshorn – Davos</strong><br>6x5 Tageskarten auf für die Davos Kloster Mountains - eine abwechslungsreiche Gegend, welche für Schneesportler, Biker und Wanderer tolle Angebote  bietet. Offeriert von<br><a href='http://www.davosklosters.ch'>www.davosklosters.ch</a>.<br><i>Gewinner: Hanspeter Hess, Gregor Schelbert, Urs Hubacher, Anita Näf, Hansruedi Gnos, Monica Loretz</i><br><br>";
								txt += "<strong>Niesen</strong><br>Ab auf den Niesen - die Pyramide mit der wunderbaren Aussicht im Berner Oberland. Unter allen Finishern werden 4x5 Retourfahrten verlost. 1669 Höhenmeter für einmal per Bahn! Offeriert von <a href='http://www.niesen.ch' target='_blank'>www.niesen.ch</a>.<br><i>Gewinner: Heidy Kunz, Bless Dario, Felix Scherrer, Albert Zünd</i><br><br>";
								txt += "<strong>Jungfraujoch - Top of Europe</strong><br>Ein unvergesslicher Tagesausflug mit Europas höchstgelegener Eisenbahn in die hochalpine Wunderwelt auf 3454 Metern über Meer. Rauf aufs Jungfraujoch - ein Kollektiv-Ticket für 2x5 Personen. Offeriert von den Jungfraubahnen. Alle Infos unter: <a href='http://www.jungfraubahnen.ch' target='_blank'>www.jungfraubahnen.ch</a>.<br><i>Gewinner: Beat Losenegger, Ruedi Suter</i><br><br>";
								txt += "<strong>Gornergrat</strong><br>2x5 Retourfahrten auf den Gornergrat. Gültig im Winter oder im Sommer. Monte Rosa, Dufourspitze, Matterhorn zum Greifen nah! Offeriert von <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a>.<br><i>Gewinner: Esther Lanz Linder, Joas Wyss</i><br><br>";
								txt += "<strong>Stanserhorn</strong><br>5x2 Retourfahrten aufs Stanserhorn – mit dem phantastischen Rundblick. Offeriert von <a href='http://www.stanserhorn.ch' target='_blank'>www.stanserhorn.ch</a>.<br><i>Gewinner: Fredy Rueegsegger, Melanie Weber, Ursula Alayan, Daniel Fluck, Kurt Oberli</i><br><br>";
								txt += "<strong>Rigi</strong><br>2x5 Retourfahrten auf die Rigi – die Königin der Berge – auch im Winter mit tollen Winterwanderwegen immer einen Ausflug wert. Offeriert von <a href='http://www.rigi.ch' target='_blank'>www.rigi.ch</a>.<br><i>Gewinner: Flurina Schnider, Ursula Habegger</i><br><br>";
								txt += "Allgemeine Bedingungen<br>Die Teilnahme am Wettbewerb erfolgt auf eigenes Risiko. Der Rechtsweg ist ausgeschlossen. Die Auslosung der Preise erfolgt am 1. November 2011. Ueber den Wettbewerb wird keine Korrespondenz geführt. Die Gewinner werden veröffentlicht.</span><br><br>";
					break;
					case 'fr':
								txt += "Ces prix attendent tous ceux qui ont au moins gravi 5 montagnes du Top 30:<br><br>";
								txt += "<span class='boxText'><strong>Jungfraujoch - Top of Europe</strong><br>Une excursion inoubliable d’une journée avec le chemin de fer le plus haut d’Europe dans le monde merveilleux des hautes Alpes à 3454 mètres au-dessus de la mer. Une journée au Jungfraujoch – un ticket collectif pour 2x5 personnes. Offert par les Jungfraubahnen. Toutes les infos sous: <a href='http://www.jungfraubahnen.ch' target='_blank'>www.jungfraubahnen.ch</a>.<br></span><i>Gewinner: Beat Losenegger, Ruedi Suter</i><br><br>";
								txt += "<span class='boxText'><strong>Niesen</strong><br>Une excursion sur le Niesen – la pyramide avec le panorama merveilleux dans l’Oberland bernois. 4x5 trajets retour sont tirés au sort parmi tous les finisseurs. 1669 mètres d’altitude pour une fois en funiculaire! Offerts par <a href='http://www.niesen.ch' target='_blank'>www.niesen.ch</a>.<br><i>Gewinner: Heidy Kunz, Bless Dario, Felix Scherrer, Albert Zünd</i></span><br><br>";
								txt += "<span class='boxText'><strong>Jakobshorn – Davos</strong><br>6x5 cartes journalières pour les «Davos Klosters Mountains» - un paysage diversifié pour les sports de neige, le VTT et la randonnée. Offertes par <a href='http://www.davosklosters.ch' target='_blank'>www.davosklosters.ch</a>.<br></span><i>Gewinner: Hanspeter Hess, Gregor Schelbert, Urs Hubacher, Anita Näf, Hansruedi Gnos, Monica Loretz</i><br><br>";
								txt += "<span class='boxText'><strong>Gornergrat</strong><br>2x5 trajets retour sur le Gornergrat. Valables en hiver ou en été. Mont Rose, Pointe  Dufour, Cervin à portée de main! Offerts par <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a>.<br></span><i>Gewinner: Esther Lanz Linder, Joas Wyss</i><br><br>";
								txt += "<span class='boxText'><strong>Stanserhorn</strong><br>5x2 trajets retour sur le Stanserhorn – avec sa vue panoramique fantastique. Offerts par <a href='http://www.stanserhorn.ch' target='_blank'>www.stanserhorn.ch</a>.<br></span><i>Gewinner: Fredy Rueegsegger, Melanie Weber, Ursula Alayan, Daniel Fluck, Kurt Oberli</i><br><br>";
								txt += "<span class='boxText'><strong>Rigi</strong><br>2x5 trajets retour sur la Rigi – la reine des montagnes – ses sentiers pédestres valent toujours une excursion aussi en hivers. Offerts par <a href='http://www.rigi.ch' target='_blank'>www.rigi.ch</a>.<br></span><i>Gewinner: Flurina Schnider, Ursula Habegger</i><br><br>";
								txt += "<span class='boxText'>Conditions générales<br>La participation au concours intervient à ses propres risques et périls. La voie juridique est exclue. Le tirage au sort des prix a lieu le 1er novembre 2011. Aucune correspondance n’est échangée à propos du concours. Les gagnants sont publiés.</span><br><br>";
					break;
					case 'it':
								txt += "Questi sono i premi che possono vincere tutti coloro che hanno scalato almeno 5 delle 30 vette panoramiche:<br><br>";
								txt += "<span class='boxText'><strong>Jungfraujoch - Top of Europe</strong><br>Un’indimenticabile escursione giornaliera con la ferrovia più alta d’Europa per raggiungere il meraviglioso mondo alpino a 3454 metri sopra al livello del mare. Per salire sullo Jungfraujoch – un biglietto collettivo per 2x5 persone. Offerto dalle Jungfaubahnen. Tutte le informazioni su: <a href='http://www.jungfraubahnen.ch' target='_blank'>www.jungfraubahnen.ch</a>.<br></span><i>Gewinner: Beat Losenegger, Ruedi Suter</i><br><br>";
								txt += "<span class='boxText'><strong>Niesen</strong><br>Si parte per il Niesen – la piramide con il meraviglioso panorama sull’Oberland bernese. Fra chi passa il traguardo saranno estratti 4x5 biglietti di andata e ritorno. Per una volta 1669 metri d’altitudine in funicolare! Offerto da <a href='http://www.niesen.ch' target='_blank'>www.niesen.ch</a>.<br><i>Gewinner: Heidy Kunz, Bless Dario, Felix Scherrer, Albert Zünd</i></span><br><br>";
								txt += "<span class='boxText'><strong>Jakobshorn – Davos</strong><br>6x5 biglietti giornalieri per le Davos Kloster Mountains – una regione che offre una grande varietà per gli sportivi della neve i ciclisti e gli escursionisti. Offerto da <a href='http://www.davosklosters.ch' target='_blank'>www.davosklosters.ch</a>.<br></span><i>Gewinner: Hanspeter Hess, Gregor Schelbert, Urs Hubacher, Anita Näf, Hansruedi Gnos, Monica Loretz</i><br><br>";
								txt += "<span class='boxText'><strong>Gornergrat</strong><br>2x5 viaggi di andata e ritorno sul Gornergrat. Vale sia d’inverno che d’estate. Monte Rosa, Dufourspitze, Cervino a portata di mano! Offerto da <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a>.<br></span><i>Gewinner: Esther Lanz Linder, Joas Wyss</i><br><br>";
								txt += "<span class='boxText'><strong>Stanserhorn</strong><br>5x2 viaggi di andata e ritorno sullo Stanserhorn – panorama mozzafiato incluso. Offerto da <a href='http://www.stanserhorn.ch' target='_blank'>www.stanserhorn.ch</a>.<br></span><i>Gewinner: Fredy Rueegsegger, Melanie Weber, Ursula Alayan, Daniel Fluck, Kurt Oberli</i><br><br>";
								txt += "<span class='boxText'><strong>Rigi</strong><br>2x5 andate e ritorno sulla Rigi – la regina di tutte le montagne – anche d’inverno con magnifici sentieri percorribili che rendono un successo ogni escursione. Offerto da <a href='http://www.rigi.ch' target='_blank'>www.rigi.ch</a>.<br></span><i>Gewinner: Flurina Schnider, Ursula Habegger</i><br><br>";
								txt += "<span class='boxText'>Condizioni generali<br>Ognuno partecipa a proprio rischio al concorso. Le vie legali sono escluse. L’estrazione dei premi avrà luogo il 1o novembre 2011. Non si tiene alcuna corrispondenza concernente il concorso. I vincitori saranno pubblicati.</span><br><br>";
					break;
					default:
								txt += "These are the prizes awaiting all participants who have climbed at least 5 of the top 30 mountains:<br><br>";
								txt += "<span class='boxText'><strong>Jungfraujoch - Top of Europe</strong><br>An unforgettable day excursion on Europe’s highest railway through the wonderful world of the Alps at 3,454 m above sea level. Let’s go to Jungfraujoch – a group ticket for 2x5 people. Offered by the Jungfraubahnen. Further information: <a href='http://www.jungfraubahnen.ch' target='_blank'>www.jungfraubahnen.ch</a>.<br></span><i>Gewinner: Beat Losenegger, Ruedi Suter</i><br><br>";
								txt += "<span class='boxText'><strong>Niesen</strong><br>Let’s go up the Niesen – the pyramid with the marvellous view of the Bernese Oberland. A draw will be made among all finishers for 4x5 return journeys. 1,669 meters of altitude by rail for once! Offered by <a href='http://www.niesen.ch' target='_blank'>www.niesen.ch</a>.<br><i>Gewinner: Heidy Kunz, Bless Dario, Felix Scherrer, Albert Zünd</i></span><br><br>";
								txt += "<span class='boxText'><strong>Jakobshorn – Davos</strong><br>6x5 day return tickets for the Davos Klosters Mountains – an area full of variety offering winter sport fans, bikers and hikers all that they need. Offered by <a href='http://www.davosklosters.ch' target='_blank'>www.davosklosters.ch</a>.<br></span><i>Gewinner: Hanspeter Hess, Gregor Schelbert, Urs Hubacher, Anita Näf, Hansruedi Gnos, Monica Loretz</i><br><br>";
								txt += "<span class='boxText'><strong>Gornergrat</strong><br>2x5 return tickets to the Gornergrat. Valid in winter or in summer. The Monte Rosa, Dufourspitze, and the Matterhorn near enough to touch! Offered by <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a>.<br></span><i>Gewinner: Esther Lanz Linder, Joas Wyss</i><br><br>";
								txt += "<span class='boxText'><strong>Stanserhorn</strong><br>5x2 return tickets to the top of the Stanserhorn – the mountain with the fantastic panorama. Offered by <a href='http://www.stanserhorn.ch' target='_blank'>www.stanserhorn.ch</a>.<br></span><i>Gewinner: Fredy Rueegsegger, Melanie Weber, Ursula Alayan, Daniel Fluck, Kurt Oberli</i><br><br>";
								txt += "<span class='boxText'><strong>Rigi</strong><br>2x5 return tickets to the top of the Rigi – the queen of the mountains – always worth the journey even in winter because of the great hiking trails. Offered by <a href='http://www.rigi.ch' target='_blank'>www.rigi.ch</a>.<br></span><i>Gewinner: Flurina Schnider, Ursula Habegger</i><br><br>";
								txt += "<span class='boxText'>General terms and conditions<br>Participation in the competition takes place at the participant’s own risk. No legal action may be taken. Prizes will be drawn on 1 November 2011. No correspondence will be entered into with respect to the competition. The winners’ names will be published.</span><br><br>";
					break;
				}
				document.getElementById("cupListBox").innerHTML = txt;
//				gCacheResLatest = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R1 (load tracks)");
		}
		else {
			alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}


function processResultsLoadCupResults()
{
	var err = 0;
	
    if (gResultsCup_request.readyState == 4) {
        // only if "OK"
        if (gResultsCup_request.status == 200) {
			if (gResultsCup_request.responseText.length > 0) {
				var txt = "";
				txt += "<a name='top'></a><div class='hoizontalLine' style='position:relative; left:0px; top:6px;'>&nbsp;</div><table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td class='track1-font' width='250' colspan='2'>" + getLocStr('Nickname') + "</td><td></td><td width='50' class='track1-font'>" + getLocStr('Anzahl') + "</td><td width='100' align='center' class='track1-font'>" + getLocStr('Erreicht am') + "</td></tr>";
				
				var pageSize = 30;
				
				var items = gResultsCup_request.responseXML.getElementsByTagName("total");
				var totalTracks = parseInt(getElementTextNS("", "anzahl", items[0], 0),10);
				var curPage = parseInt(getElementTextNS("", "page", items[0], 0),10);
				var totalPages = (totalTracks / pageSize) + 1;
				if (totalTracks % pageSize == 0)
					totalPages--;
					
				var items = gResultsCup_request.responseXML.getElementsByTagName("track");
				var bgcolor = "";
				var pageCnt = 0;
				var tdClass = "";
				var tdClassLink = "";
				var pictureStr;
				var nickname, picture, hoehe, hoehePrev, anzahl, reachedDate, gender, fullname, desc, interest;
				for (var i = 0; i < items.length; i++) {
					pageCnt++;
					nickname = getElementTextNS("", "nickname", items[i], 0);
					picture = getElementTextNS("", "picture", items[i], 0);
					anzahl = parseInt(getElementTextNS("", "anzahl", items[i], 0),10);
					desc = getElementTextNS("", "desc", items[i], 0);
					interest = parseInt(getElementTextNS("", "interest", items[i], 0),10);
					reachedDate = getElementTextNS("", "reached", items[i], 0);
					gender = parseInt(getElementTextNS("", "gender", items[i], 0),10);
					fullname = getElementTextNS("", "fullname", items[i], 0);
					if (fullname.length > 2)
						fullname = "(" + fullname + ")";
					else
						fullname = "";
						
					pictureStr = profilePictureBoxString(picture,nickname,fullname,gender,desc,interest);
					
					if (i % 2) {
						tdClass = "class='track2e-font'";
						tdClassLink = "class='track2el-font'";
					}
					else {
						tdClass = "class='track2o-font'";
						tdClassLink = "class='track2ol-font'";
					}

	
					txt += "<tr><td width='30'"+tdClass+">"+pictureStr+"</td>";
					
					if (reachedDate.length <= 1) {
						txt += "<td "+tdClass+" align='left' style='color:#999999'>" + nickname + " " + fullname + " </td><td "+tdClass+">&nbsp;</td>";					
						txt += "<td "+tdClass+" align='center' style='color:#999999'>" + anzahl + "</td><td "+tdClass+" align='center' style='color:#999999'>-</td></tr>";

						
					}
					else {
						txt += "<td "+tdClass+" align='left'>" + nickname + " " + fullname + " </td><td "+tdClass+">&nbsp;</td>";					
						txt += "<td "+tdClass+" align='center'>" + anzahl + "</td><td "+tdClass+" align='center'>" + convertDBDateToShortDateTime(reachedDate) + "</td></tr>";
					}
				}
				if (items.length == 0) {
					txt += "<tr><td colspan='5' class='messageYellow'>" + getLocStr('Msg-No-Tracks') + "</td></tr>";
				}
				
				txt += "</table>";

				if (totalPages > 1) {
					var prevText = "";
					var nextText = "";
					if (curPage > 1)
						prevText = "<span class='tabText' onclick='getResults(\"lur\",0,"+ (curPage - 1) +");'>" + getLocStr('Zurück') + "</span>";
					
	 				var indexes = " ";
					for (var j=1; j<= (totalPages); j++)
						if (j == curPage)
							indexes +=  "&nbsp;<span class='tabTextSelected'>"+j+"</span>&nbsp;";
						else
							indexes +=  "&nbsp;<span class='tabText' onclick='getResultsCup(\"res\",0,"+j+");'>"+j+"</span>&nbsp;";
					
					if (curPage * 30 < totalTracks)
						nextText = " <span class='tabText' onclick='getResultsCup(\"res\",0,"+ (curPage + 1) +");'>" + getLocStr('Vorwärts') + "</span>";
				
					txt += "<p align='center'>" + prevText + indexes + nextText + "</p>";
				}
				
				var now = new Date();
				txt += "<br><span class='small-size-font'>" + getLocStr('Stand') + ": " + displayDateObj(now) + "</span>";
				document.getElementById("cupBoxResults").innerHTML = txt;
				if (curPage > 1)
					window.scrollTo(0, 250);
				gCacheResCup = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R2 (load tracks)");
		}
		else {
			//alert("Failed to retrieve data (" + gResultsCup_request.status + "/" + err + ")");
		}
	}
	else {
	}	
}


function processResultsLoadCupResultsFull()
{
	var err = 0;
	
    if (gResultsCup_request.readyState == 4) {
        // only if "OK"
        if (gResultsCup_request.status == 200) {
			if (gResultsCup_request.responseText.length > 0) {
				var txt = "";
				txt += "<a name='top'></a><div class='hoizontalLine' style='position:relative; left:0px; top:6px;'>&nbsp;</div><table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td class='track1-font' width='150' colspan='2'>" + getLocStr('Nickname') + "</td><td></td><td width='310' class='track1-font'>" + getLocStr('Strecken') + "</td><td width='100' align='right' class='track1-font'>" + getLocStr('Erreicht am') + "</td></tr>";
				
				var pageSize = 30;
				
				var items = gResultsCup_request.responseXML.getElementsByTagName("total");
				var totalTracks = parseInt(getElementTextNS("", "anzahl", items[0], 0),10);
				var curPage = parseInt(getElementTextNS("", "page", items[0], 0),10);
				var totalPages = (totalTracks / pageSize) + 1;
				if (totalTracks % pageSize == 0)
					totalPages--;
					
				var items = gResultsCup_request.responseXML.getElementsByTagName("track");
				var bgcolor = "";
				var pageCnt = 0;
				var tdClass = "";
				var tdClassLink = "";
				var pictureStr;
				var nickname, picture, hoehe, hoehePrev, anzahl, reachedDate, gender, fullname, desc, interest, reachedList, reachedArray, reachedListStr;
				for (var i = 0; i < items.length; i++) {
					pageCnt++;
					nickname = getElementTextNS("", "nickname", items[i], 0);
					picture = getElementTextNS("", "picture", items[i], 0);
					anzahl = parseInt(getElementTextNS("", "anzahl", items[i], 0),10);
					desc = getElementTextNS("", "desc", items[i], 0);
					interest = parseInt(getElementTextNS("", "interest", items[i], 0),10);
					reachedDate = getElementTextNS("", "reached", items[i], 0);
					reachedList = getElementTextNS("", "reachedList", items[i], 0);
					gender = parseInt(getElementTextNS("", "gender", items[i], 0),10);
					fullname = getElementTextNS("", "fullname", items[i], 0);
					if (fullname.length > 2)
						fullname = "(" + fullname + ")";
					else
						fullname = "";
						
					pictureStr = profilePictureBoxString(picture,nickname,fullname,gender,desc,interest);
					
					if (i % 2) {
						tdClass = "class='track2e-font'";
						tdClassLink = "class='track2el-font'";
					}
					else {
						tdClass = "class='track2o-font'";
						tdClassLink = "class='track2ol-font'";
					}

	
					txt += "<tr><td width='30'"+tdClass+">"+pictureStr+"</td>";
					
					reachedArray = reachedList.split("!");
					reachedListStr = "";
					for (var j=0;j<anzahl*3;j+=3) {
						reachedListStr += trackBoxString(parseInt(reachedArray[j],10),reachedArray[j+1],reachedArray[j+2]) + "&nbsp;";
					}
					
					if (reachedDate.length <= 1) {
						txt += "<td "+tdClass+" align='left' style='color:#999999'>" + nickname + " " + fullname + " </td><td "+tdClass+">&nbsp;</td>";					
						txt += "<td "+tdClass+" align='left' style='color:#999999'>" + reachedListStr + "</td><td "+tdClass+" align='right' style='color:#999999'>-</td></tr>";

						
					}
					else {
						txt += "<td "+tdClass+" align='left'>" + nickname + " " + fullname + " </td><td "+tdClass+">&nbsp;</td>";					
						txt += "<td "+tdClass+" align='center'>" + reachedListStr + "</td><td "+tdClass+" align='right'>" + convertDBDateToShortDate(reachedDate) + "</td></tr>";
					}
				}
				if (items.length == 0) {
					txt += "<tr><td colspan='5' class='messageYellow'>" + getLocStr('Msg-No-Tracks') + "</td></tr>";
				}
				
				txt += "</table>";

				if (totalPages > 1) {
					var prevText = "";
					var nextText = "";
					if (curPage > 1)
						prevText = "<span class='tabText' onclick='getResultsCup(\"ref\",0,"+ (curPage - 1) +");'>" + getLocStr('Zurück') + "</span>";
					
	 				var indexes = " ";
					for (var j=1; j<= (totalPages); j++)
						if (j == curPage)
							indexes +=  "&nbsp;<span class='tabTextSelected'>"+j+"</span>&nbsp;";
						else
							indexes +=  "&nbsp;<span class='tabText' onclick='getResultsCup(\"ref\",0,"+j+");'>"+j+"</span>&nbsp;";
					
					if (curPage * 30 < totalTracks)
						nextText = " <span class='tabText' onclick='getResultsCup(\"ref\",0,"+ (curPage + 1) +");'>" + getLocStr('Vorwärts') + "</span>";
				
					txt += "<p align='center'>" + prevText + indexes + nextText + "</p>";
				}
				
				var now = new Date();
				txt += "<br><span class='small-size-font'>" + getLocStr('Stand') + ": " + displayDateObj(now) + "</span>";
				document.getElementById("cupBoxResults").innerHTML = txt;
				if (curPage > 1)
					window.scrollTo(0, 250);
				gCacheResCup = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R2 (load tracks)");
		}
		else {
			//alert("Failed to retrieve data (" + gResultsCup_request.status + "/" + err + ")");
		}
	}
	else {
	}	
}



// -----------------------------------------------------------
// Track Box
// -----------------------------------------------------------


function trackBoxString(tracktype,track,desc)
{
	var str = "";
	
	if (track.length > 1) {
		var name = "";
		var left = " align='left'";
		switch (tracktype) {
		case 1:		;
		case 2:		;
		case 3:		;
		case 5:		name = "<img src='img/icon/iconTypeSeilbahn.png' width='20' height='19'" +left;		break;
		case 4:		;
		case 6:		name = "<img src='img/icon/iconTypeZahnradbahn.png' width='20' height='19'" +left;		break;
		case 7:		name = "<img src='img/icon/iconTypeZug.png' width='20' height='19'" +left;				break;
		case 8:		name = "<img src='img/icon/iconTypeKlettersteig.png' width='20' height='19'" +left;	break;
		case 9:		name = "<img src='img/icon/iconTypeBus.png' width='20' height='19'" +left;				break;
		case 10:	name = "<img src='img/icon/iconTypeOrt.png' width='20' height='19'" +left;				break;
		case 11:	name = "<img src='img/icon/iconTypeHuette.png' width='20' height='18'" +left;			break;
		case 12:	name = "<img src='img/icon/iconTypePass.png' width='20' height='18'" +left;			break;
		case 13:	name = "<img src='img/icon/iconTypePassstrasse.png' width='20' height='19'" +left;		break;
		case 14:	name = "<img src='img/icon/iconTypeBergsee.png' width='20' height='20'" +left;			break;
		case 15:	name = "<img src='img/icon/iconTypeAussichtspunkt.png' width='20' height='20'" +left;	break;
		case 20:	name = "<img src='img/icon/iconTypeHuegel.png' width='20' height='19'" +left;			break;
		case 21:	name = "<img src='img/icon/iconTypeGipfel.png' width='20' height='19'" +left;			break;
		default: ;		}
		str = name + " cursor='pointer' onmouseover='showTrackDetailBox(event,\""+track+"\",\""+desc+"\");' onmouseout='hideTrackDetailBox();' />";

	}
	return str;
}

function showTrackDetailBox(evnt,track,text)
{
	var posx = 0;
	var posy = 0;

	if (!evnt) 
		var evnt = window.event;
	if (evnt.pageX || evnt.pageY) 	{
		posx = evnt.pageX;
		posy = evnt.pageY;
	}
	else if (evnt.clientX || evnt.clientY) 	{
		posx = evnt.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		posy = evnt.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}

	document.getElementById("detailTrackBox").style.top = (posy - 50) + "px";
	document.getElementById("detailTrackBox").style.left = (posx + 10) + "px";
//	document.getElementById("detailTrackBox").style.visibility = "visible";
	document.getElementById("detailTrackBox").style.display = "block";
	
	var txt = "";	
	txt += "<table width='100%' border='0'>";
	txt += "<tr><td colspan='2'>" + track + "</td></tr>";
	txt += "<tr><td colspan='2'>" + getLocStr('Datum') + ": " + formatDateFromDB(text) + "</td></tr>";
	txt += "</table>";
	
	document.getElementById("detailTrackContent").innerHTML = txt;
}


function hideTrackDetailBox()
{
	document.getElementById("detailTrackBox").style.display = "none";	
}


// -----------------------------------------------------------
// Result Cache Timer
// -----------------------------------------------------------

function setCacheResTimer()
{
	if (gCacheResTimer == null)
		gCacheResTimer = window.setInterval("resetCacheRes()",1000 * kCacheResTimeSec);
}


function resetCacheRes()
{
	gCacheResUser = "";
	gCacheResClub = "";
	gCacheResLatest = "";
	gCacheResPopular = "";
	gCacheResHighScores = "";
	gCacheResCup = "";
	
	clearCacheResTimer();
}


function clearCacheResTimer()
{
	if (gCacheResTimer) {
		window.clearInterval(gCacheResTimer);
		gCacheResTimer = null;
	}
}

