<!--

        function sortBy(prop, let) {

		var tophowmany = 30;

                var a2z = new Array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
                sortProp = prop;
                if ( sortProp == "artistname" ) {
                         thisTog = 1;
                } else {
                         thisTog = 0;
                }
                toggle = thisTog;
                Artists = Artists.sort(sortFunc);
                thisletter = let;
 
                var sortResult = "";
                var titleResult = "";
		switch (thisletter) {
			case '*':
				titleResult += "<h4>all artists</h4>";
				break;
			case '#':
				titleResult += "<h4>artists filed under 0-9</h4>";
				break;
			case '@':
				titleResult += "<h4>top " + tophowmany + " artists</h4>";
				break;
			default:
				titleResult += "<h4>artists filed under " + thisletter + "</h4>";
				break;
		}
                var count=1;
                for ( j=0 ; j<Artists.length ; j++ ) {
			var rank = count;
			if (( Artists[j].totaltracks == lasttotaltracks ) && ( sortProp == "totaltracks" )) {
				rank = "&nbsp;";
			}
			if (( Artists[j].totalplayed == lasttotalplayed ) && ( sortProp == "totalplayed" )) {
				rank = "&nbsp;";
			}
			if (( Artists[j].ratio == lastratio ) && ( sortProp == "ratio" )) {
				rank = "&nbsp;";
			}
                        if ( j == 0 ) {
                                sortResult += "<table class='ipod' border='0' cellspacing='1' cellpadding='3' width='500'>\n";
                                sortResult += "<tr class='headerbg'><th colspan='5'>\n";
                                sortResult += "<span title='artists not filed under a-z' onclick=\"letter = '#'; toggle = " + thisTog + "; sortBy(sortProp, letter);\"><strong>&nbsp;#&nbsp;</strong></span>";
                                for ( l=0 ; l<a2z.length ; l++ ) {
                                        sortResult += "<span title='artists filed under " + a2z[l] + "' onclick=\"letter = '" + a2z[l] + "'; toggle = " + thisTog + "; sortBy(sortProp, letter);\"><strong>&nbsp;" + a2z[l] + "&nbsp;</strong></span>";
                                }
                                sortResult += "<span title='all artists' onclick=\"letter = '*'; toggle = " + thisTog + "; sortBy(sortProp, letter);\"><strong>&nbsp;*&nbsp;</strong></span>";
                                sortResult += "<span title='top " + tophowmany + " artists' onclick=\"letter = '@'; toggle = " + thisTog + "; sortBy(sortProp, letter);\"><strong>&nbsp;" + tophowmany + "&nbsp;</strong></span>";
                                sortResult += "</th></tr>\n";
 
                                sortResult += "<tr class='headerbg'>\n";
				sortResult += "<td width=30></td>";
                                sortResult += "<th align=left><span title='sort by artist' onclick=\"sortedby = 'artistname'; toggle = " + thisTog + "; sortBy(sortedby, thisletter);\">artist</span></th>";
                                sortResult += "<th align=left><span title='sort by tracks' onclick=\"sortedby = 'totaltracks'; toggle = " + thisTog + "; sortBy(sortedby, thisletter);\">tracks</span></th>";
                                sortResult += "<th align=left><span title='sort by played' onclick=\"sortedby = 'totalplayed'; toggle = " + thisTog + "; sortBy(sortedby, thisletter);\">played</span></th>";
                                sortResult += "<th align=left><span title='sort by ratio' onclick=\"sortedby = 'ratio'; toggle = " + thisTog + "; sortBy(sortedby, thisletter);\">ratio</span></th>";
                                sortResult += "</tr>\n";
                        }
 
                        if (( thisletter == "*" ) || ( thisletter == "@" )) {
				if (( thisletter == "@" ) && ( count > tophowmany )) { break; }
	                        sortResult += "<tr class='ipodrow'>";
				sortResult += "<td align=center valign=center>" + rank + "</td>";
				sortResult += "<td align=left valign=center>";
				sortResult += "<span class='totalsartist'>";
	                        sortResult += Artists[j].artistname;
				sortResult += "</span>";
				sortResult += "</td>";
				sortResult += "<td align=left valign=center>";
				sortResult += "<span class='totalsartist'>";
	                        sortResult += Artists[j].totaltracks;
				sortResult += "</span>";
				sortResult += "</td>";
				sortResult += "<td align=left valign=center>";
				sortResult += "<span class='totalsartist'>";
	                        sortResult += Artists[j].totalplayed;
				sortResult += "</span>";
				sortResult += "</td>";
				sortResult += "<td align=left valign=center>";
				sortResult += "<span class='totalsartist'>";
	                        sortResult += Artists[j].ratio;
				sortResult += "</span>";
				sortResult += "</td>";
	                        sortResult += "</tr>";
	                        count++;
				var lasttotaltracks = Artists[j].totaltracks;
				var lasttotalplayed = Artists[j].totalplayed;
				var lastratio = Artists[j].ratio;
                        }
                        if ( thisletter == "#" ) {
                                var lctrack = Artists[j].artistname.toLowerCase();
                                if ( lctrack.substring(0,4) == "the " ) {
                                        lctrack = lctrack.substring(4);
                                }
                                var range = /[a-z]/;
                                if (! lctrack.substr(0,1).match(range) ) {
		                        sortResult += "<tr class='ipodrow'>";
					sortResult += "<td align=center valign=center>" + rank + "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].artistname;
					sortResult += "</span>";
					sortResult += "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].totaltracks;
					sortResult += "</span>";
					sortResult += "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].totalplayed;
					sortResult += "</span>";
					sortResult += "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].ratio;
					sortResult += "</span>";
					sortResult += "</td>";
		                        sortResult += "</tr>";
		                        count++;
					var lasttotaltracks = Artists[j].totaltracks;
					var lasttotalplayed = Artists[j].totalplayed;
					var lastratio = Artists[j].ratio;
                                }
                        }
                        if (( thisletter != "*" ) && ( thisletter != "#" )) {
                                var lctrack = Artists[j].artistname.toLowerCase();
                                if ( lctrack.substring(0,4) == "the " ) {
                                        lctrack = lctrack.substring(4);
                                }
                                if ( lctrack.substr(0,1).toLowerCase() == thisletter ) {
		                        sortResult += "<tr class='ipodrow'>";
					sortResult += "<td align=center valign=center>" + rank + "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].artistname;
					sortResult += "</span>";
					sortResult += "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].totaltracks;
					sortResult += "</span>";
					sortResult += "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].totalplayed;
					sortResult += "</span>";
					sortResult += "</td>";
					sortResult += "<td align=left valign=center>";
					sortResult += "<span class='totalsartist'>";
		                        sortResult += Artists[j].ratio;
					sortResult += "</span>";
					sortResult += "</td>";
		                        sortResult += "</tr>";
		                        count++;
					var lasttotaltracks = Artists[j].totaltracks;
					var lasttotalplayed = Artists[j].totalplayed;
					var lastratio = Artists[j].ratio;
                               }
                        }
                }
                if ( count == 1 ) {
                        sortResult += "<tr class='ipodrow'>";
                        sortResult += "<td colspan='4'>";
                        sortResult += "<span class='totalsartist'>";
                        sortResult += "no data found";
                        sortResult += "</span>";
                        sortResult += "</td>";
                        sortResult += "</tr>";
                }
                if ( j > 0 ) sortResult += "</table>\n";
//                sortResult += "<p class='date'>count : " + count + "</p>\n";
                sortResult += "<p class='lastupdate'>" + lastupdate + " GMT</p>\n";
//                document.getElementById('whichsort').innerHTML=prop;
                document.getElementById('displaytable').innerHTML=sortResult;
                document.getElementById('displaytitle').innerHTML=titleResult;
                if ( toggle == 0 ) { toggle = 1; }
                else if ( toggle == 1 ) { toggle = 0; }
        }


        function sortFunc(track1, track2) {
		switch (sortProp) {
			case 'artistname':
		                var lctrack1 = track1[sortProp].toLowerCase();
		                var lctrack2 = track2[sortProp].toLowerCase();
	                        if ( lctrack1.substring(0,4) == "the " ) {
	                                lctrack1 = lctrack1.substring(4);
	                        }
	                        if ( lctrack2.substring(0,4) == "the " ) {
	                                lctrack2 = lctrack2.substring(4);
	                        }
				break;
			case 'ratio':
		                var lctrack1 = parseInt(track1[sortProp] * 100);
		                var lctrack2 = parseInt(track2[sortProp] * 100);
				break;
			default:
		                var lctrack1 = parseInt(track1[sortProp]);
		                var lctrack2 = parseInt(track2[sortProp]);
				break;
		}
                if ( toggle == 0 ) {
                        if ( lctrack1 < lctrack2 ) retVal = 1;
                        else if ( lctrack1 > lctrack2 ) retVal = -1;
                        else retVal = 0;
                }
                if ( toggle == 1 ) {
                        if ( lctrack1 < lctrack2 ) retVal = -1;
                        else if ( lctrack1 > lctrack2 ) retVal = 1;
                        else retVal = 0;
                }
                return retVal;
        }

	var sortedby = 'totalplayed';
	var toggle = 1;

// -->
