// 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 displayResultsMain()
{
	resetCacheRes();
	gUID = getUIDCookie();
	gSID = getSIDCookie();
	switchResultsRangliste(2);
	getResults2("typ",0);
	doImage("lat");		// remove when using cup
//	getResultsCup("lst");
}





function switchResultsRangliste(sel)
{
	displayResultsHead(sel,-1);
	
//	document.getElementById("contactUserBox").style.visibility = "hidden";
//	document.getElementById("contactUserBox").innerHTML = "";
//	hideImageViewBox();

	switch (sel) {
		case 0:		displayUserResults();		break;
		case 1:		displayClubResults();		break;
		case 2:		displayLastTracks();		break;
		case 3:		displayHighScores();		break;
		case 4:		displayCupResults();		break;

		default: ;
	}
}



function displayUserResults()
{
	document.getElementById("resultsBoxList").style.top = "170px";
	gResPage = 1;
	if (gCacheResUser.length <= 0) {
		document.getElementById("resultsBoxList").innerHTML = "<span class='loading-font'>Loading...</span>";
		getResults("lur",0,gResPage);
		setCacheResTimer();
	}
	else 
		document.getElementById("resultsBoxList").innerHTML = gCacheResUser;
}



function displayClubResults()
{
	document.getElementById("resultsBoxList").style.top = "250px";
	if (gCacheResClub.length <= 0) {
		document.getElementById("resultsBoxList").innerHTML = "<span class='loading-font'>Loading...</span>";
		getResults("lcr",0);
		setCacheResTimer();
	}
	else
		document.getElementById("resultsBoxList").innerHTML = gCacheResClub;
}



function displayTrackStats()
{
	if (gCacheResPopular.length <= 0) {
		document.getElementById("resultsBoxList").innerHTML = "<span class='loading-font'>Loading...</span>";
//		getResults("typ",0);	// first typ then pop
		setCacheResTimer();
	}
	else
		document.getElementById("resultsBoxList").innerHTML = gCacheResPopular;
}



function displayLastTracks()
{
	document.getElementById("resultsBoxList").style.top = "100px";
	if (gCacheResLatest.length <= 0) {
		document.getElementById("resultsBoxList").innerHTML = "<span class='loading-font'>Loading...</span>";
		getResults("loa",0);
		setCacheResTimer();
	}
	else
		document.getElementById("resultsBoxList").innerHTML = gCacheResLatest;
}


function displayHighScores()
{
	document.getElementById("resultsBoxList").style.top = "100px";
	gResHSPage = 1;
	if (gCacheResHighScores.length <= 0) {
		document.getElementById("resultsBoxList").innerHTML = "<span class='loading-font'>Loading...</span>";
		getResults("luh",0,gResHSPage);
		setCacheResTimer();
	}
	else
		document.getElementById("resultsBoxList").innerHTML = gCacheResHighScores;
}


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



function displayResultsHead(sel,selTyp)
{
	var txt = "";
	txt = "<span class='boxTitle'>" + getLocStr('RESULTATE') + "</span><br>";
	txt += "<span class='boxText'>";
	switch (sel) {
		case 0:		txt += "<b class='tabTextSelected'>" + getLocStr('Rangliste Einzelpersonen') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(1);'>" + getLocStr('Rangliste Clubs') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(2);'>" + getLocStr('Neuste Strecken') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(3);'>" + getLocStr('Ewige Bestenliste') + "</b><br><br>";
					txt += "<b>" + getLocStr('Txt-Results-User') + "</b><br>";
					txt += "<dl><dd><img src='img/icon/usr_diamond.png'> " + getLocStr('Txt-Results-User-Diamant');
					txt += "</dd><dd><img src='img/icon/usr_gold.gif'> " + getLocStr('Txt-Results-User-Gold') + "</dd><dd><img src='img/icon/usr_silber.gif'> " + getLocStr('Txt-Results-User-Silber');
					txt += "</dd><dd><img src='img/icon/usr_bronze.gif'> " + getLocStr('Txt-Results-User-Bronze')  + "</dd></dl>";
					break;
		case 1:		txt += "<b class='tabText' onclick='switchResultsRangliste(0);'>" + getLocStr('Rangliste Einzelpersonen') + "</b> | ";
					txt += "<b class='tabTextSelected'>" + getLocStr('Rangliste Clubs') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(2);'>" + getLocStr('Neuste Strecken') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(3);'>" + getLocStr('Ewige Bestenliste') + "</b><br><br>";
					txt += "<b>" + getLocStr('Txt-Results-Club2') + "</b><br>";
					txt += "<dl><dd><img src='img/icon/usr_gold.gif'> " + getLocStr('Txt-Results-Club-Gold') + "</dd><dd><img src='img/icon/usr_silber.gif'> " + getLocStr('Txt-Results-Club-Silber');
					txt += "</dd><dd><img src='img/icon/usr_bronze.gif'> " + getLocStr('Txt-Results-Club-Bronze')  + "</dd></dl>";
					txt += getLocStr('Txt-Results-Club') + "<br>";
					break;
		case 2:		txt += "<b class='tabText' onclick='switchResultsRangliste(0);'>" + getLocStr('Rangliste Einzelpersonen') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(1);'>" + getLocStr('Rangliste Clubs') + "</b> | ";
					txt += "<b class='tabTextSelected'>" + getLocStr('Neuste Strecken') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(3);'>" + getLocStr('Ewige Bestenliste') + "</b><br><br>";
					txt += displayResultsTyp(selTyp);	
					break;
		case 3:		txt += "<b class='tabText' onclick='switchResultsRangliste(0);'>" + getLocStr('Rangliste Einzelpersonen') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(1);'>" + getLocStr('Rangliste Clubs') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(2);'>" + getLocStr('Neuste Strecken') + "</b> | ";
					txt += "<b class='tabTextSelected'>" + getLocStr('Ewige Bestenliste') + "</b><br><br>";
					txt += getLocStr('Txt-Results-HighScores') + "<br>";	
					break;	
		case 4:		txt += "<b class='tabText' onclick='switchResultsRangliste(0);'>" + getLocStr('Rangliste Einzelpersonen') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(1);'>" + getLocStr('Rangliste Clubs') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(2);'>" + getLocStr('Neuste Strecken') + "</b> | ";
					txt += "<b class='tabText' onclick='switchResultsRangliste(3);'>" + getLocStr('Ewige Bestenliste') + "</b><br><br>";
					txt += getLocStr('Txt-Results-CupResults') + "<br>";	
					break;	
					
		default: ;
	}
	txt += "</span><br><br>";
	document.getElementById("resultsBoxHead").innerHTML = txt;
}


function switchResultsTyp(typ)
{
	displayResultsHead(2,typ);
	document.getElementById("resultsBoxList").innerHTML = "<span class='loading-font'>Loading...</span>";
	if (typ == -1)
		getResults("loa",0);
	else
		getResults("lot",typ);

	
}


function displayResultsTyp(typ)
{
	var txt = getLocStr('Txt-Results-Latest')+" ";
	if (typ == -1)
		txt += "<span class='tabTextSelected'>" + getLocStr('Alle') + "</span> | ";
	else
		txt += "<span class='tabText' onclick='switchResultsTyp(-1);'>" + getLocStr('Alle') + "</span> | ";
	
	for (var i = 0; i < 10; i++) {
		if (typ == i) {
			txt += "<b class='tabTextSelected'>" + getWalkTypeDesc(i,true) + "</b>";
		}
		else {
			txt += "<b class='tabText' onclick='switchResultsTyp("+i+");'>" + getWalkTypeDesc(i,true) + "</b>";
		}
		if (i < 9)
			txt += " | ";
	}
	txt += "<br><br>";
	return 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 'loa': 	url += "Tracks.pl?cmd=LoadLast&uid=" + uid;
							gResults_request.onreadystatechange = processTracksReqLoadLast;
							break;
			case 'lot': 	url += "Tracks.pl?cmd=LoadLastByTyp&typ=" + uid;					// uid contains typ
							gResults_request.onreadystatechange = processTracksReqLoadLastByTyp;
							break;
			case 'lur':		url += "Tracks.pl?cmd=LoadUserResults&page=" + page + "&psize=30";
							gResults_request.onreadystatechange = processTracksReqLoadUserResults;
							gResPage = page;
							break;			
			case 'luh':		url += "Tracks.pl?cmd=LoadUserHighScoreResults&page=" + page + "&psize=30";
							gResults_request.onreadystatechange = processTracksReqLoadUserHighScoreResults;
							gResHSPage = page;
							break;			
			case 'lcr':		url += "Tracks.pl?cmd=LoadClubResults";	
							gResults_request.onreadystatechange = processTracksReqLoadClubResults;
							break;		
			case 'rnk':		url += "Tracks.pl?cmd=GetUserRank&uid=" + uid;
							gResults_request.onreadystatechange = processTracksReqGetUserRank;
							break;			
			case 'top':		url += "Tracks.pl?cmd=LoadUserClubTopTen";	
							gResults_request.onreadystatechange = processTracksReqLoadUserClubTopTen;
							break;								
			case 'pop':		url += "Tracks.pl?cmd=LoadPopular";	
							gResults_request.onreadystatechange = processTracksReqLoadPopular;
							break;								
			case 'cu':		url += "Contact.pl?cmd=Contact&nickname=" + encodeURIComponent(nickname) + "&user_txt=" + encodeURIComponent(page) + "&uid=" + uid + "&sid=" + gSID;	// name contains the text
							gResults_request.onreadystatechange = processUserReqContactUser;
							break;			

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


function processTracksReqLoadLast()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText.length > 0) {
				var txt = "";
				txt += "<table width='100%' border='0' cellspacing='0' cellpadding='3'>";
				txt += "<tr><td colspan='4'></td></tr>";
				txt += "<tr><td class='track1-font' width='65'>" + getLocStr('Datum') + "</td><td width='50' align='center' class='track1-font'>" + getLocStr('Höhe') + "</td><td width='270' class='track1-font' colspan='2'>" + getLocStr('Strecke') + "</td><td>&nbsp;</td><td>&nbsp;</td><td colspan='2' class='track1-font'>" + getLocStr('Nickname') + "</td></tr>";
				
				var bgcolor = "";
				var imgIcon = "";
				var tdClass;
				var items = gResults_request.responseXML.getElementsByTagName("track");
				var tid, nickname, hoehe, datum, status, altitude, walktype, utid, trackName, typ, imgCnt, weather;
				for (var i = 0; i < items.length; i++) {
					tid = parseInt(getElementTextNS("", "tid", items[i], 0),10);
					nickname = getElementTextNS("", "nickname", items[i], 0);
					hoehe = parseInt(getElementTextNS("", "hoehe", items[i], 0),10);
					datum = getElementTextNS("", "datum", items[i], 0);
					status = parseInt(getElementTextNS("", "status", items[i], 0),10) * kAlt_ME;
					altitude = parseInt(getElementTextNS("", "alt", items[i], 0),10);
					walktype = parseInt(getElementTextNS("", "typ", items[i], 0),10);
					utid = parseInt(getElementTextNS("", "utid", items[i], 0),10);
					trackName = getElementTextNS("", "name", items[i], 0);
					typ = getTrackTypeIcon(parseInt(getElementTextNS("", "ttyp", items[i], 0),10));
					imgCnt = parseInt(getElementTextNS("", "images", items[i], 0),10);
					weather = parseInt(getElementTextNS("", "meteo", items[i], 0),10);
					
					if (imgCnt > 0)
						imgIcon = "<span style='cursor:pointer' onclick='displayImageViewBox(event,"+utid+",false,0);'><img src='img/icon/icon_hasImage.gif' width='16' height='12' alt='track image' /></span>";
					else 
						imgIcon = "";

					if (i % 2) {
						tdClass = "class='track2e-font'";
					}
					else {
						tdClass = "class='track2o-font'";
					}					
					
					txt += "<tr><td "+tdClass+" align='center'>" + formatDateFromDB(datum) + "</td><td "+tdClass+" align='right'>" + hoehe + "m &nbsp;&nbsp;</td><td "+tdClass+" width='20'>" + typ + "</td><td "+tdClass+">" + trackName+" ("+altitude+"m)<br><span style='font-size: 9px; color:#CCCCCC'>"+getWalkTypeDesc(walktype)+"</span></td><td "+tdClass+">"+imgIcon+"</td><td "+tdClass+" width='18' align='center'>" + getWeatherIcon(weather)+"</td><td "+tdClass+" align='left' width='80'>" + truncateStr(nickname,9) + "</td><td "+tdClass+" width='18'>" + getUserStatusIcon(status) + "</td></tr>";
				}
				txt += "</table>";
				var now = new Date();
				txt += "<br><span class='small-size-font'>" + getLocStr('Stand') + ": " + displayDateObj(now) + "</span><br>";
				
				document.getElementById("resultsBoxList").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 processTracksReqLoadLastByTyp()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText.length > 0) {
				var txt = "";
				txt += "<table width='100%' border='0' cellspacing='0' cellpadding='3'>";
				txt += "<tr><td colspan='4'></td></tr>";
				txt += "<tr><td class='track1-font' width='65'>" + getLocStr('Datum') + "</td><td width='50' align='center' class='track1-font'>" + getLocStr('Höhe') + "</td><td width='270' class='track1-font' colspan='2'>" + getLocStr('Strecke') + "</td><td>&nbsp;</td><td>&nbsp;</td><td colspan='2' class='track1-font'>" + getLocStr('Nickname') + "</td></tr>";
				
				var bgcolor = "";
				var imgIcon = "";
				var tdClass;
				var items = gResults_request.responseXML.getElementsByTagName("track");
				var tid, nickname, hoehe, datum, status, altitude, walktype, utid, trackName, typ, imgCnt, weather;
				for (var i = 0; i < items.length; i++) {
					tid = parseInt(getElementTextNS("", "tid", items[i], 0),10);
					nickname = getElementTextNS("", "nickname", items[i], 0);
					hoehe = parseInt(getElementTextNS("", "hoehe", items[i], 0),10);
					datum = getElementTextNS("", "datum", items[i], 0);
					status = parseInt(getElementTextNS("", "status", items[i], 0),10) * kAlt_ME;
					altitude = parseInt(getElementTextNS("", "alt", items[i], 0),10);
					walktype = parseInt(getElementTextNS("", "typ", items[i], 0),10);
					utid = parseInt(getElementTextNS("", "utid", items[i], 0),10);
					trackName = getElementTextNS("", "name", items[i], 0);
					typ = getTrackTypeIcon(parseInt(getElementTextNS("", "ttyp", items[i], 0),10));
					imgCnt = parseInt(getElementTextNS("", "images", items[i], 0),10);
					weather = parseInt(getElementTextNS("", "meteo", items[i], 0),10);
					
					if (imgCnt > 0)
						imgIcon = "<span style='cursor:pointer' onclick='displayImageViewBox(event,"+utid+",false,0);'><img src='img/icon/icon_hasImage.gif' width='16' height='12' alt='track image' /></span>";
					else 
						imgIcon = "";

					if (i % 2) {
						tdClass = "class='track2e-font'";
					}
					else {
						tdClass = "class='track2o-font'";
					}					
					
					txt += "<tr><td "+tdClass+" align='center'>" + formatDateFromDB(datum) + "</td><td "+tdClass+" align='right'>" + hoehe + "m &nbsp;&nbsp;</td><td "+tdClass+" width='20'>" + typ + "</td><td "+tdClass+">" + trackName+" ("+altitude+"m)</span></td><td "+tdClass+">"+imgIcon+"</td><td "+tdClass+" width='18' align='center'>" + getWeatherIcon(weather)+"</td><td "+tdClass+" align='left' width='80'>" + truncateStr(nickname,10) + "</td><td "+tdClass+" width='18'>" + getUserStatusIcon(status) + "</td></tr>";
				}
				txt += "</table>";
				var now = new Date();
				txt += "<br><span class='small-size-font'>" + getLocStr('Stand') + ": " + displayDateObj(now) + "</span><br>";
				
				document.getElementById("resultsBoxList").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 processTracksReqLoadByTyp()
{
	var err = 0;
	
    if (gResults2_request.readyState == 4) {
        // only if "OK"
        if (gResults2_request.status == 200) {
			if (gResults2_request.responseText.length > 0) {
				var txt = "<span class='boxTitle'>" + getLocStr('Zusammenfassung') + " MountEverest.ch</span>";
				txt += "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td width='140' class='track1-font'>" + getLocStr('Typ') + "</td><td class='track1-font' align='right' width='70'>" + getLocStr('Anzahl') + "</td><td width='80' align='right' class='track1-font'>" + getLocStr('Höhenmeter') + "</td></tr>";
				
				var bgcolor = "";
				var totalAnzahl = 0;
				var totalHoehe = 0;
				var stripe = false;
				var tdClass = "";

				var tmp0Anz = 0, tmp0Hoehe = 0;
				var items = gResults2_request.responseXML.getElementsByTagName("track");
				for (var i = 0; i < items.length; i++) {
					var typ = parseInt(getElementTextNS("", "typ", items[i], 0),10);
					var anzahl =  parseInt(getElementTextNS("", "anzahl", items[i], 0),10);
					var hoehe = parseInt(getElementTextNS("", "hoehe", items[i], 0),10);
					
					totalAnzahl += anzahl;
					totalHoehe += hoehe;

					if (i % 2) {
						tdClass = "class='track2e-font'";
					}
					else {
						tdClass = "class='track2o-font'";
					}
					
					if (typ == 0) {
						tmp0Anz = anzahl;
						tmp0Hoehe = hoehe;
					}
					else {
						if (stripe) {
							stripe = false;
							tdClass = "class='track2e-font'";
							}
						else {
							stripe = true;
							tdClass = "class='track2o-font'";
						}

						txt += "<tr><td "+tdClass+" style='color:#DDDDDD'>" + getWalkTypeDesc(typ,true) +"</td><td "+tdClass+" align='right'>" + anzahl + "</td><td "+tdClass+" align='right'>" + hoehe + "m</td></tr>";
					}
																																																																																	
				}
				if (stripe) {
					stripe = false;
					tdClass = "class='track2e-font'";
				}
				else {
					stripe = true;
					tdClass = "class='track2o-font'";
				}
				txt += "<tr><td "+tdClass+" style='color:#DDDDDD'>" + getWalkTypeDesc(0,true) +"</td><td "+tdClass+" align='right'>" + tmp0Anz + "</td><td "+tdClass+" align='right'>" + tmp0Hoehe + "m</td></tr>";
				if (stripe) {
					stripe = false;
					tdClass = "class='track2e-font'";
				}
				else {
					stripe = true;
					tdClass = "class='track2o-font'";
				}

				txt += "<tr><td "+tdClass+"><b>" + getLocStr('Total') +"</b></td><td "+tdClass+" align='right'><b>" + totalAnzahl + "</b></td><td "+tdClass+" align='right'><b>" + totalHoehe + "m</b></td></tr>";
				
				txt += "<tr><td colspan=3>&nbsp;</td></tr><tr><td colspan=3>&nbsp;</td></tr>";
				
				var bgcolor = "";
				var totalAnzahl = 0;
				var totalHoehe = 0;
				stripe = false;
				var tmpAnz = 0;
				var tmpHoehe = 0;

				var items = gResults2_request.responseXML.getElementsByTagName("gender");
				for (var i = 0; i < items.length; i++) {
					var typ = parseInt(getElementTextNS("", "typ", items[i], 0),10);
					var anzahl =  parseInt(getElementTextNS("", "anzahl", items[i], 0),10);
					var hoehe = parseInt(getElementTextNS("", "hoehe", items[i], 0),10);
					
					totalAnzahl += anzahl;
					totalHoehe += hoehe;
					
					if (typ == 0) {
						var tmpAnz = anzahl;
						var tmpHoehe = hoehe;
					} 
					else {
						if (isNaN(typ)) {
							anzahl += tmpAnz;
							hoehe += tmpHoehe;
						}
						if (stripe) {
							stripe = false;
							tdClass = "class='track2e-font'";
							}
						else {
							stripe = true;
							tdClass = "class='track2o-font'";
						}
						txt += "<tr><td "+tdClass+" style='color:#DDDDDD'>" + getGenderDesc(typ) +"</td><td "+tdClass+" align='right'>" + anzahl + "</td><td "+tdClass+" align='right'>" + hoehe + "m</td></tr>";
					}															
				}
//				tdClass = "class='track2o-font'";
//				txt += "<tr><td "+tdClass+" style='color:#DDDDDD'>" + getGenderDesc(0) +"</td><td "+tdClass+" align='right'>" + tmpAnz + "</td><td "+tdClass+" align='right'>" + tmpHoehe + "m</td></tr>";


				txt += "</table>";
				document.getElementById("summaryBox").innerHTML = txt;
				gCacheResPopular = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R6 (load byTyp tracks)");
		}
		else {
			//alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}



function processTracksReqLoadUserResults()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText.length > 0) {
				var txt = "";
				txt += "<a name='top'></a><table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td class='track1-font'width='50'>" + getLocStr('Rang') + "</td><td class='track1-font' width='80'>" + getLocStr('Höhenmeter') + "</td><td width='50' class='track1-font'>" + getLocStr('Anzahl') + "</td><td></td><td class='track1-font' width='290'>" + getLocStr('Nickname') + "</td><td></td><td class='track1-font' width='35' align='center'>" + getLocStr('Status') + "</td><td width='70' align='center' class='track1-font'>" + getLocStr('Jahrgang') + "</td></tr>";
				
				var pageSize = 30;
				
				var items = gResults_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 = gResults_request.responseXML.getElementsByTagName("track");
				var bgcolor = "";
				var pageCnt = 0;
				var tdClass = "";
				var tdClassLink = "";
				var pictureStr;
				var nickname, picture, hoehe, hoehePrev, anzahl, jahrgang, 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);
					hoehe = parseInt(getElementTextNS("", "ranking", items[i], 0),10);
					anzahl = getElementTextNS("", "anzahl", items[i], 0);
					jahrgang = getElementTextNS("", "jahrgang", items[i], 0);
					gender = parseInt(getElementTextNS("", "gender", items[i], 0),10);
					fullname = getElementTextNS("", "fullname", items[i], 0);
					desc = getElementTextNS("", "desc", items[i], 0);
					interest = parseInt(getElementTextNS("", "interest", items[i], 0),10);
					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'";
					}

					var jg = "-";
					if (jahrgang.length == 4)
						jg = jahrgang;						
	
					var status = getUserStatusIcon(hoehe);
					if (status.length == 0)
						status = "-";						

					txt += "<tr><td "+tdClass+" align='center'>" + ((gResPage -1) * kPageSize + i + 1) + ". &nbsp;&nbsp;</td><td "+tdClass+" align='right'>" + hoehe + "m </td>";
					txt += "<td "+tdClass+" align='center'>" + anzahl + "</td><td "+tdClass+">"+pictureStr+"</td>";

					if (gUID > 0) {
						txt += "<td "+tdClass+" align='left'>" + nickname + " " + fullname + "</td><td "+tdClass+"><span style='cursor:pointer' onclick='displayContactUserBox(event,\"" + nickname + "\");'>";
						txt += "<img src='img/icon/icon_sendmail.jpg' width='15' height='9' alt=sendmail' /></span></td>";
					}
					else {
						txt += "<td "+tdClass+" align='left'>" + nickname + " " + fullname + " </td><td "+tdClass+">&nbsp;</td>";
					}
					
					txt += "<td "+tdClass+" align='center'>" + status + "</td><td "+tdClass+" align='center'>" + jg + "</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='getResults(\"lur\",0,"+j+");'>"+j+"</span>&nbsp;";
					
					if (curPage * 30 < totalTracks)
						nextText = " <span class='tabText' onclick='getResults(\"lur\",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("resultsBoxList").innerHTML = txt;
				if (curPage > 1)
					window.scrollTo(0, 250);
				gCacheResUser = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R2 (load tracks)");
		}
		else {
			//alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}

function processTracksReqLoadUserHighScoreResults()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText.length > 0) {
				var txt = "";
				txt += "<a name='top'></a><table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td colspan='5'></td></tr>";
				txt += "<tr><td class='track1-font'width='50'>" + getLocStr('Rang') + "</td><td class='track1-font' width='70'>" + getLocStr('Höhenmeter') + "</td><td></td><td class='track1-font' width='260'>" + getLocStr('Nickname') + "</td><td class='track1-font' width='60' align='center'>" + getLocStr('Status') + " 2011</td><td width='70' class='track1-font' align='center'>" + getLocStr('Jahrgang') + "</td></tr>";
				
				var pageSize = 30;
				
				var items = gResults_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 = gResults_request.responseXML.getElementsByTagName("track");
				var bgcolor = "";
				var pageCnt = 0;
				var tdClass = "";
				var tdClassLink = "";
				var pictureStr;
				var nickname, picture, hoehe, status, anzahl, jahrgang, gender, fullname, desc, interest, statusTxt, jg;
				for (var i = 0; i < items.length; i++) {
					pageCnt++;
					nickname = getElementTextNS("", "nickname", items[i], 0);
					picture = getElementTextNS("", "picture", items[i], 0);
					hoehe = parseInt(getElementTextNS("", "ranking", items[i], 0),10);
					status = parseInt(getElementTextNS("", "status", items[i], 0),10);
					jahrgang = getElementTextNS("", "jahrgang", items[i], 0);
					gender = parseInt(getElementTextNS("", "gender", items[i], 0),10);
					fullname = getElementTextNS("", "fullname", items[i], 0);
					desc = getElementTextNS("", "desc", items[i], 0);
					interest = parseInt(getElementTextNS("", "interest", items[i], 0),10);
					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'";
					}

					jg = "-";
					if (jahrgang.length == 4)
						jg = jahrgang;						

					statusTxt = getUserStatusIconFromLevel(status);
					if (statusTxt.length == 0)
						statusTxt = "-";						

					txt += "<tr><td "+tdClass+" align='center'>" + ((gResHSPage -1) * kPageSize + i + 1) + ". &nbsp;&nbsp;</td><td "+tdClass+" align='right'>" + hoehe + "m &nbsp;&nbsp;</td>";
					txt += "<td "+tdClass+">"+pictureStr+"</td>";

					txt += "<td "+tdClass+" align='left'>" + nickname + " " + fullname + " </td>";
					txt += "<td "+tdClass+" align='center'>" + statusTxt + "</td><td "+tdClass+" align='center'>" + jg + "</td></tr>";
				}
				txt += "</table>";

				if (totalPages > 1) {
					var prevText = "";
					var nextText = "";
					if (curPage > 1)
						prevText = "<span class='tabText' onclick='getResults(\"luh\",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='getResults(\"luh\",0,"+j+");'>"+j+"</span>&nbsp;";
					
					if (curPage * 30 < totalTracks)
						nextText = " <span class='tabText' onclick='getResults(\"luh\",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("resultsBoxList").innerHTML = txt;
				if (curPage > 1)
					window.scrollTo(0, 250);
				gCacheResHighScores = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R2 (load tracks)");
		}
		else {
			//alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}



	

function processTracksReqLoadClubResults()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText.length > 0) {
				var txt = "";
				txt += "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
				txt += "<tr><td colspan='4'></td></tr>";
				txt += "<tr><td class='track1-font' width='50'>" + getLocStr('Rang') + "</td><td class='track1-font' width='70'>" + getLocStr('Höhenmeter') + "</td><td class='track1-font' width='60'>" + getLocStr('Anzahl') + "</td><td class='track1-font' width='300'>" + getLocStr('Club') + "</td><td class='track1-font' width='35'>" + getLocStr('Status') + "</td></tr>";
				
				var items = gResults_request.responseXML.getElementsByTagName("track");
				var bgcolor = "";
				var tdClass = "";
				var tdClassLink = "";
				for (var i = 0; i < items.length; i++) {
					var name = getElementTextNS("", "name", items[i], 0);
					var url = getElementTextNS("", "url", items[i], 0);
					var hoehe = parseInt(getElementTextNS("", "ranking", items[i], 0),10);
					var anzahl = getElementTextNS("", "anzahl", items[i], 0);
					var members = parseInt(getElementTextNS("", "members", items[i], 0),10);
					if (i % 2) {
						tdClass = "class='track2e-font'";
						tdClassLink = "class='track2el-font'";
					}
					else {
						tdClass = "class='track2o-font'";
						tdClassLink = "class='track2ol-font'";
					}
					
					if (url.length > 0)
						url = "<a href='http://" + url + "' target='cluburl'><img src='img/icon/icon_link.gif' border='0'></a>";
					
					if (members >= kMinClubMembers) {
						txt += "<tr><td "+tdClass+" align='center'>" + (i + 1) + ". &nbsp;&nbsp;</td><td "+tdClass+" align='right'>" + hoehe + "m&nbsp;&nbsp;</td>";
						txt += "</td><td "+tdClass+" align='center'>" + anzahl + "</td><td "+tdClass+" align='left'>" + name + " (" + members + ") " + url + "</td><td "+tdClass+" align='center'>" + getClubStatusIcon(hoehe)+ "</td></tr>";
					}
					else {
						txt += "<tr><td "+tdClass+" align='center' style='color:#999999'>" + (i + 1) + ". &nbsp;&nbsp;</td><td "+tdClass+" align='right' style='color:#999999'>" + hoehe + "m&nbsp;&nbsp;</td>";
						txt += "</td><td "+tdClass+" align='center' style='color:#999999'>" + anzahl + "</td><td "+tdClass+" align='left' style='color:#999999'>" + name + " (" + members + ") " + url + "</td><td "+tdClass+" align='center'>" + getClubStatusIcon(hoehe)+ "</td></tr>";
					}
				}
				txt += "</table>";
				
				var now = new Date();
				txt += "<br><span class='small-size-font'>" + getLocStr('Stand') + ": " + displayDateObj(now) + "</span>";
				document.getElementById("resultsBoxList").innerHTML = txt;
				gCacheResClub = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R3 (load tracks)");
		}
		else {
			//alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}



function processTracksReqGetUserRank()
{
	var err = 0;
	
    if (gResults_request.readyState == 4) {
        // only if "OK"
        if (gResults_request.status == 200) {
			if (gResults_request.responseText == "false") {
				gUserRang = 0;
				displayUserOverview();
			}
			else {
				var sep = gResults_request.responseText.indexOf('\t',3);
				gUserRang = parseInt(gResults_request.responseText.substring(3,sep),10);
				
				var sep2 = gResults_request.responseText.indexOf('\t',sep+1);
				gUserTotalHoehe = parseInt(gResults_request.responseText.substring(sep+1,sep2),10);
				gUserAnzahlTracks = gResults_request.responseText.substring(sep2+1,gResults_request.responseText.length);		
				displayUserOverview();
				if (gPrevUserTotalHoehe > 0)
					displayStatusUserBox(gPrevUserTotalHoehe,gUserTotalHoehe);
				gPrevUserTotalHoehe = gUserTotalHoehe;
			}
		}
		else {
			alert("Failed to retrieve data (" + gResults_request.status + "/" + err + ")");
		}
	}
	else {
	}
}



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,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 'lst':		url += "Cup.pl?cmd=ListCupWaypoints";	
							gResultsCup_request.onreadystatechange = processResultsListCupWaypoints;
							break;								
			case 'res':		url += "Cup.pl?cmd=LoadCupResults&page=" + page + "&psize=30";
							gResultsCup_request.onreadystatechange = processResultsLoadCupResults;
							break;								

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



function processResultsListCupWaypoints()
{
	var err = 0;
	
    if (gResultsCup_request.readyState == 4) {
        // only if "OK"
        if (gResultsCup_request.status == 200) {
			if (gResultsCup_request.responseText.length > 0) {
				
				var items = gResultsCup_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>"+getLocStr('Txt-Results-CupSubTitle')+" "+formatDateFromDB(dateFrom)+" - "+formatDateFromDB(dateTo)+".</strong></span><br><br>";
				txt += "<b class='tabText' onclick='switchResultsRangliste(4);'>" + getLocStr('Aktuelle Cupliste') + "</b><br><br>";
				txt += getLocStr('Txt-Results-CupMinimalTracks')+"<br>";
				var fname = "cups/cup-mgb-skitouren-"+getLanguageCookie()+".html";
				txt += "<span style='cursor:pointer; color:#00CCFF; font-size:12px;'><span onclick='openSimpleWin(\""+fname+"\",820,700);'>&gt; "+getLocStr('Detailliertere Tourenbeschreibungen')+"</span></span><br><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 tdClass;
				items = gResultsCup_request.responseXML.getElementsByTagName("track");
				var hoehe, trackName, ort, typ, kanton;
				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);
					
					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 = "";


					txt += "<tr><td "+tdClass+" width='20'>" + typ + "</td><td "+tdClass+">" + trackName+", "+kanton+"</td><td "+tdClass+" align='right'>" + hoehe + "m</td><td "+tdClass+" align='center'>" +url+ "</td></tr>";
				}
				txt += "</table>";
				
				txt += "<br><br>";
				switch (getLanguageCookie()) {
					case 'fr':
				txt += "<table width='100%'><tr><td colspan='2'><span class='boxText'>Ces prix vous attendent:</span></td></tr><tr><td width='90' valin='top'><img src='img/promo/hotelBinn.jpg' width='80' height='80' class='imgBorder' /></td><td valign='top'><span class='boxText'>1er prix: 4 nuitées à l\'hôtel Ofenhorn à Binn pour 2 personnes, demi-pension comprise, d\'une valeur d\'env. CHF 640.--.</span></td></tr><tr><td colspan='2'><span class='boxText'>Offert par les charmants hôtes Jacqueline et Hanspeter Berchtold-Rossé. Toutes les infos sur: <a href='http://www.ofenhorn.ch' target='_blank'>www.ofenhorn.ch</a></span></td></tr><tr><td colspan='2'><span class='boxText'>2ème prix: 2 cartes aventure pour 5 jours d\'une valeur de CHF 350.--, offertes par le chemin de fer Matterhorn Gotthard.</td></tr><tr><td colspan='2'><span class='boxText'>3ème prix: 2 cartes aventure du chemin de fer Matterhorn Gotthard pour 3 jours d\'une valeur de CHF 250.--. Toutes les infos sur: <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a></span></td></tr></table>";
					break;
					case 'it':
				txt += "<table width='100%'><tr><td colspan='2'><span class='boxText'>Questi sono i premi che la attendono:</span></td></tr><tr><td width='90' valin='top'><img src='img/promo/hotelBinn.jpg' width='80' height='80' class='imgBorder' /></td><td valign='top'><span class='boxText'>1° premio: 4 pernottamenti nell’Hotel Ofenhorn a Binn per 2 persone, incl. mezza pensione, MP per un valore di ca. CHF 640.–.</span></td></tr><tr><td colspan='2'><span class='boxText'>Offerto dai gentili coniugi gestori Jacqueline e Hanspeter Berchtold-Rossé. Tutte le informazioni su: <a href='http://www.ofenhorn.ch' target='_blank'>www.ofenhorn.ch</a></span></td></tr><tr><td colspan='2'><span class='boxText'>2° premio: 2 “Tessere avventura” per 5 giorni per un valore di CHF 350.–, offerte dalla Matterhorn Gotthard Bahn.</td></tr><tr><td colspan='2'><span class='boxText'>3° premio: 2 “Tessere avventura” della Matterhorn Gotthard Bahn per 3 giorni per un valore di CHF 250.–. Tutte le informazioni su: <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a></span></td></tr></table>";
					break;
					case 'en':
				txt += "<table width='100%'><tr><td colspan='2'><span class='boxText'>The prizes awaiting the winners:</span></td></tr><tr><td width='90' valin='top'><img src='img/promo/hotelBinn.jpg' width='80' height='80' class='imgBorder' /></td><td valign='top'><span class='boxText'>1st prize: 4 nights for two in Hotel Ofenhorn in Binn including half-board worth approximately CHF 640.-.</span></td></tr><tr><td colspan='2'><span class='boxText'>This prize is offered by charming hosts Jacqueline and Hanspeter Berchtold-Rossé. Further information: <a href='http://www.ofenhorn.ch' target='_blank'>www.ofenhorn.ch</a></span></td></tr><tr><td colspan='2'><span class='boxText'>2nd prize: 2 Adventure Cards for 5 days worth CHF 350.- offered by the Matterhorn Gotthard Railway.</td></tr><tr><td colspan='2'><span class='boxText'>3rd prize: 2 Adventure Cards offered by the Matterhorn Gotthard Railway for 3 days worth CHF 250.-. Further information: <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a></span></td></tr></table>";
					break;
					default:
				txt += "<table width='100%'><tr><td colspan='2'><span class='boxText'>Diese Preise warten:</span></td></tr><tr><td width='90' valin='top'><img src='img/promo/hotelBinn.jpg' width='80' height='80' class='imgBorder' /></td><td valign='top'><span class='boxText'>1. Preis: 4 Übernachtungen im Hotel Ofenhorn in Binn für 2 Personen, inkl. HP, Halbpension im Wert von ca. CHF 640.—.</span></td></tr><tr><td colspan='2'><span class='boxText'> Offeriert vom charmanten Gastgeberpaar Jacqueline und Hanspeter Berchtold-Rossé. Alle Infos: <a href='http://www.ofenhorn.ch' target='_blank'>www.ofenhorn.ch</a></span></td></tr><tr><td colspan='2'><span class='boxText'>2. Preis: 2 Erlebnis Cards für 5 Tage im Wert von CHF 350.—, offeriert von der Matterhorn Gotthard Bahn.</td></tr><tr><td colspan='2'><span class='boxText'>3. Preis: 2 Erlebnis Cards der Matterhorn Gotthard Bahn für 3 Tage im Wert von CHF 250.— Alle Infos: <a href='http://www.mgbahn.ch' target='_blank'>www.mgbahn.ch</a></span></td></tr></table>";
				}
				document.getElementById("cupListBox").innerHTML = txt;
//				gCacheResLatest = txt;
			}
			else
				alert(getLocStr('Msg-Failed-Operation') + ": R1 (load tracks)");
		}
		else {
			alert("Failed to retrieve data (" + gResultsCup_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><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>";
					}
				}
				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("resultsBoxList").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 {
	}	
}


// -----------------------------------------------------------
// 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;
	}
}

