var thruSort = true;
var holePar = new Array(4,5,4,3,4,3,4,5,4,4,4,3,5,4,5,3,4,4);
var sortCnt = 0;
var criteriaCnt = 0;
var scorecardCnt = 0;
var out;
var splitMsg = false;
var shotMsg = false;
var holeDisp = false; //indicates if hole display is open
var drag = false; //indicates scorecard has been moved
var xMousePos;
var yMousePos;
var xMousePosMax;
var yMousePosMax;
var posText = "POS";
var playerText = "PLAYER";
var todayText = "TODAY";
var totalText = "TOTAL";
var roundsText = "ROUNDS";
var scorecardText = "SCORECARD";
var posWidth = 41;
var playerWidth = 130;
var todayWidth = 64;
var thruWidth = 52;
var totalWidth = 53;
var total2Width = 54;
var moreWidth = 60;
var posSortX = "15px";
var playerSortX = "103px";
var todaySortX = "200px";
var thruSortX = "260px";
var rnd1SortX = "357px";
var rnd2SortX = "392px";
var rnd3SortX = "427px";
var rnd4SortX = "462px";
var out;
var g=-1;
var b;
var row;
var insert;
var thruLink;
var top;
var rowNum;
var matchB; //past champion
var matchC; //american
var matchD; //international
var matchE; //amateurs
var matchF; //first-time
var matchG; //custom
var playerText;
var scoreText;
var moreText;
var name;
var rCnt = 0;
/**********************************************************
Writes out projected cut row in leaderboard table
**********************************************************/
var insertCut = false;
function checkCutPosition(x){
matchB = playerCheck("B",x);
matchC = playerCheck("C",x);
matchD = playerCheck("D",x);
matchE = playerCheck("E",x);
matchF = playerCheck("F",x);
matchG = playerCheck("G",x);
if(projectedCut != "none"){
projectedCut = parseInt(projectedCut);
}
if(players[x].total == "E"){
var playerTotal = 0;
} else {
var playerTotal = parseInt(players[x].total);
}
if(x+1 < players.length){
if(players[x+1].total == "E"){
var nextPlayerTotal = 0;
} else {
var nextPlayerTotal = parseInt(players[x+1].total);
}
} else {
var nextPlayerTotal = "theend";
}
//traceDebug("projectedCut="+projectedCut+", playerTotal="+playerTotal+", nextPlayerTotal="+nextPlayerTotal);
if (!cutPosition){
if((playerTotal <= projectedCut) && ((projectedCut < nextPlayerTotal) || nextPlayerTotal == "theend")){
if(sortItem == "Pos"){
traceDebug("Projected cut after "+players[x].name);
if(matchB && matchC && matchD && matchE && matchF && matchG) {
insertCut = true;
cutPosition = true;
}
}
}
}
}
/**********************************************************
Writes out expanded rows in leaderboard table
**********************************************************/
function getMoreRow(x){
moreText = "";
moreText+=' <table border="0" cellspacing="0" cellpadding="0" width="100%" id="scoresMore">';
moreText+=' <tr><td colspan="2" height="13" align="right" style="padding-bottom:0px;"><a href="javascript:hideMore(\''+x+'\',\''+players[x].id+'Table\');"><img style="display:inline;" src="/images/scores/mas_sc_01000g1.gif" width="12" height="11" border="0" alt="Close"/></a></td></tr>';
moreText+=' <tr>';
moreText+=' <td>';
moreText+=' <table width="100%" cellpadding="0" cellspacing="1" border="0" id="moreTable">';
moreText+=' <tr>';
moreText+=' <td id="morePhoto" rowspan="2"><img src="/images/players/lg/'+players[x].id+'_lg.jpg" width="55" height="82" border="0" alt="'+players[x].name+'"/></td>';
moreText+=' <td class="whiteBg" height="91" valign="top">';
moreText+=' <table border="0" cellspacing="1" cellpadding="0">';
moreText+=' <tr align="center" class="hbhText"><td width="35"><b>Hole</b></td><td width="15">1</td><td width="15">2</td><td width="15" >3</td><td width="15" >4</td><td width="15" >5</td><td width="15" >6</td><td width="15" >7</td><td width="15" >8</td><td width="15" >9</td><td width="15" >10</td><td width="15" >11</td><td width="15" >12</td><td width="15" >13</td><td width="15" >14</td><td width="15" >15</td><td width="15" >16</td><td width="15" >17</td><td width="15" >18</td><td width="25" ><b>Total</b></td></tr>';
showByHole(x);
moreText+=scoreText;
moreText+=' </table>';
moreText+=' </td>';
moreText+=' <td width="184" rowspan="2" id="moreStats" valign="top" style="overflow:hidden;">';
moreText+=' <table width="184" cellpadding="0" cellspacing="0" border="0">';
moreText+=' <tr style="height:15px; line-height:15px; overflow:hidden;"><td class="statsTitle">Greens Hit</td><td class="statsTD1">'+players[x].greens+' of '+players[x].greens_att+'</td><td class="statsTD2">'+players[x].greens_per+'%</td></tr>';
moreText+=' <tr style="height:18px; line-height:18px; overflow:hidden;"><td class="statsTitle">Fairways Hit</td><td class="statsTD1">'+players[x].fairways+' of '+players[x].fairways_att+'</td><td class="statsTD2">'+players[x].fairways_per+'%</td></tr>';
moreText+=' <tr style="height:18px; line-height:18px; overflow:hidden;"><td class="statsTitle">Sand Saves</td><td class="statsTD1">'+players[x].sand_saves+' of '+players[x].bunker_shots+'</td><td class="statsTD2">'+players[x].sand_save_per+'%</td></tr>';
moreText+=' <tr style="height:18px; line-height:18px; overflow:hidden;"><td class="statsTitle">Number of Putts</td><td class="statsTD1">'+players[x].no_putts+'</td><td class="statsTD2">'+players[x].avg_putts_hole+' Strokes</td></tr>';
moreText+=' <tr style="height:23px; overflow:hidden;"><td class="statsTitle">Average Driving<br/>Distance</td><td class="statsTD1"></td><td class="statsTD2">'+players[x].avg_drv_dist+' Yards</td></tr>';
moreText+=' </table>';
moreText+=' </td>';
moreText+=' </tr>';
moreText+=' <tr class="blackBg">';
moreText+=' <td height="14">';
moreText+=' <table cellpadding="0" cellspacing="0" border="0" style="margin-top:1px;">';
moreText+=' <tr class="vstext" class="blackBg">';
moreText+=' <td bgcolor="#FF9999" width="91" height="13">&nbsp;Eagle and better</td><td width="2"></td>';
moreText+=' <td bgcolor="#FFCCCC" width="42" height="13">&nbsp;Birdie&nbsp;</td><td width="2"></td>';
moreText+=' <td bgcolor="#FFFFFF" width="34" height="13">&nbsp;Par</td><td width="2"></td>';
moreText+=' <td bgcolor="#99FF99" width="47" height="13">&nbsp;Bogey</td><td width="2"></td>';
moreText+=' <td bgcolor="#00CCCC" width="125" height="13">&nbsp;Double Bogey and higher&nbsp;</div>';
moreText+=' </tr>';
moreText+=' </table>';
moreText+=' </td>';
moreText+=' </tr>';
moreText+=' </table>';
moreText+=' </td>';
moreText+=' </tr>';
moreText+=' </table>';
}
/**********************************************************
Writes out rows in leaderboard table
**********************************************************/
function getPlayerRow(x){
playerText = "";
matchB = playerCheck("B",x);
matchC = playerCheck("C",x);
matchD = playerCheck("D",x);
matchE = playerCheck("E",x);
matchF = playerCheck("F",x);
matchG = playerCheck("G",x);
if (players[x].name != 'Not Available'){
name = '<a href="/' + lang + '/players/bio' + players[x].id + '.html" class="tb1">' + players[x].name + '</a>';
}
else {
name = players[x].name;
}
if (dispStatus.indexOf(players[x].player_status) > -1 && matchB && matchC && matchD && matchE && matchF && matchG){ // use this line when cut players should not be displayed
row = true;
b = (g*=-1)<0?1:2;
if (players[x].position == "999"){players[x].position = "MC";}
playerText+=' <table cellpadding="0" cellspacing="1" border="0" id="'+players[x].id+'Table">';
playerText+=' <tr>';
playerText+=' <td height="15" width="' + posWidth + '" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].position + '</td>';
playerText+=' <td width="' + playerWidth + '" align="center" bgcolor="#FFFFFF" class="' + ghtmlClass + '">' + name + '</td>';
playerText+=' <td width="' + todayWidth + '" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].today + '</td>';
playerText+=' <td width="' + thruWidth + '" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].thru + '</td>';
playerText+=' <td width="' + totalWidth + '" align="center" bgcolor="#FFFFFF" class="' + ghtmlClass + '">' + players[x].total + '</td>';
playerText+=' <td width="34" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].r1 + '</td>';
playerText+=' <td width="34" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].r2 + '</td>';
playerText+=' <td width="34" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].r3 + '</td>';
playerText+=' <td width="34" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '">' + players[x].r4 + '</td>';
playerText+=' <td width="' + total2Width + '" align="center" bgcolor="#FFFFFF" class="' + ghtmlClass + '">' + players[x].total_score + '</td>';
playerText+=' <td width="' + moreWidth + '" align="center" bgcolor="#DBEADB" class="' + ghtmlClass + '"><a href="javascript:openMore(\''+x+'\',\''+players[x].id+'Table\');" class="redLink2"><b>view</b></a></td>';
playerText+=' </tr>';
playerText+=' </table>';
top++;
}
matchB = true; //past champion
matchC = true; //american
matchD = true; //international
matchE = true; //amateurs
matchF = true; //first-time
matchG = true; //custom
if (players[x].start_type == "N" && (splitMsg == true || shotMsg == true)){
document.getElementById("shotMsgDiv").innerHTML = "";
document.getElementById("splitMsgDiv").innerHTML = "";
shotMsg = false;
splitMsg = false;
}
if (players[x].start_type == "S" && splitMsg == false){
document.getElementById("splitMsgDiv").innerHTML = "* Player began round on hole No. 10<br><br>";
document.getElementById("shotMsgDiv").innerHTML = "";
splitMsg = true;
shotMsg = false;
}
if (players[x].start_type == "G" && shotMsg == false){
document.getElementById("splitMsgDiv").innerHTML = "";
document.getElementById("shotMsgDiv").innerHTML = "Today's start was a shotgun start. Groups began their round on each of the 18 holes.<br>The THRU column of this scoreboard represents the number of holes the player has<br>played and NOT the number of the last hole completed.<br><br>";
splitMsg = false;
shotMsg = true;
}
}
/**********************************************************
Writes out leaderboard table when page first loads
**********************************************************/
function showAll(){
out = "";
g=-1;
row = false;
insert = true;
thruLink;
if (thruSort){
thruLink = '<a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'Thru\');callMeasureClick(\'Thru_sort\');">THRU</a>';
}
else{
thruLink = '<div class="sortText">THRU</div>';
}
out = "";
out+='<table cellpadding="0" cellspacing="0" border="0" bgcolor="#006633">';
out+=' <tr>';
out+=' <td>';
out+=' <table cellpadding="0" cellspacing="1" border="0">';
out+=' <tr align="center" height="28" class="bg1">';
out+=' <td width="' + posWidth + '" align="center" class="sortText" rowspan="2"><a href="javascript:void(0);" class="sortText" onClick="sortDisp(\'Pos\');callMeasureClick(\'Pos_sort\');">' + posText + '</a></td>';
out+=' <td width="' + playerWidth + '" align="center" class="sortText" rowspan="2"><a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'Player\');callMeasureClick(\'Player_sort\');">' + playerText + '</a></td>';
out+=' <td width="' + todayWidth + '" class="sortText" rowspan="2"><a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'Today\');callMeasureClick(\'Today_sort\');">' + todayText + '</a></td>';
out+=' <td width="' + thruWidth + '" class="sortText" rowspan="2">' + thruLink + '</td>';
out+=' <td width="' + totalWidth + '" class="sortText" rowspan="2">' + totalText + '</td>';
out+=' <td class="sortText" height="13" colspan="4">' + roundsText + '</td>';
out+=' <td width="' + total2Width + '" class="sortText" rowspan="2">' + totalText + '</td>';
out+=' <td width="' + moreWidth + '" class="sortText" rowspan="2">MORE</td>';
out+=' </tr>';
out+=' <tr align="center" height="13" class="bg1">';
out+=' <td width="34" class="sortText"><a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'R1\');callMeasureClick(\'R1_sort\');">1</a></td>';
out+=' <td width="34" class="sortText"><a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'R2\');callMeasureClick(\'R2_sort\');">2</a></td>';
out+=' <td width="34" class="sortText"><a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'R3\');callMeasureClick(\'R3_sort\');">3</a></td>';
out+=' <td width="34" class="sortText"><a href="javascript:void(0);" class="sortText" onclick="sortDisp(\'R4\');callMeasureClick(\'R4_sort\');">4</a></td>';
out+=' </tr>';
out+=' </table>';
out+=' </td>';
out+=' </tr>';
out+=' <tr>';
out+=' <td>';
out+=' <table border="0" cellspacing="0" cellpadding="0" id="leaderTable">';
top = 0;
rowNum = 1;
matchB = true; //past champion
matchC = true; //american
matchD = true; //international
matchE = true; //amateurs
matchF = true; //first-time
matchG = true; //custom
name;
rCnt = 0;
for (var x=0; x<players.length; x++){
getPlayerRow(x);
if (row){
out+='<tr id="'+players[x].id+'"><td>';
out+= playerText;
out+='</td></tr>';
//write cut row if correct location
checkCutPosition(x);
if(insertCut && x<players.length-1){
out+='<tr id="pcRow"><td class="pcTableRow">Projected Cut</td></tr>';
insertCut = false;
}
}
if (!A && top>24){
traceDebug("showAll: " + A + " " + top);
//alert(A);
break;
}
}
if (!row){
out+='<tr align="center" class="bgTbl2" id="noplayers">';
out+=' <td height="40" width="602" class="ltext"><b>No players meet the criteria selected.</b></td>';
out+='</tr>';
}
out+=' </table>';
out+=' </td>';
out+=' </tr>';
out+='</table>';
document.getElementById("innerDiv").innerHTML = out;
showLoading(false);
}
/**********************************************************
Writes out leaderboard table when page refreshes
**********************************************************/
function showRefresh(){
row = false;
var cri=0;
var pid; //id of current player in player array
var lid; //id of current row in leaderboard row array
var lhtml; //inner html of current row in leaderboard row array
var chtml = "";
cutPosition = false;
leaderboard = document.getElementById("leaderTable");
traceDebug("On refresh, players.length = "+players.length);
if(players.length > 0){
for(var i=0; i<players.length; i++){
pid = players[i].id;
//traceDebug("retrieving player data for "+players[i].name);
if(leaderboard.rows.length == 1 && leaderboard.rows[0].id == "noplayers"){
leaderboard.deleteRow(0);
}
for(var j=0; j<leaderboard.rows.length; j++){
//first time through loop, remove projected cut row, it will get added in later
if((i==0) && (leaderboard.rows[j].id == "pcRow")){
leaderboard.deleteRow(j);
}
if(leaderboard.rows[j]){
lid = leaderboard.rows[j].id;
}
if (lid == pid){
//delete row in previous location
leaderboard.deleteRow(j);
}
}
getPlayerRow(i); //get html to fill row
if(row){
lhtml = playerText; //write data into row
//insert row in new location
leaderboard.insertRow(cri);
leaderboard.rows[cri].insertCell(0);
//set id of new row
x = leaderboard.rows[cri];
x.id = players[i].id;
//traceDebug(lhtml);
if((players[i].more_data_open) && (players[i].more_data != "")){
showMore(i);
var lhtmlNew = players[i].more_data + "</table>";
lhtml = lhtml.replace("</table>",lhtmlNew);
}
leaderboard.rows[cri].cells[0].innerHTML = lhtml;
cri++;
//write cut row if next player score is higher than/equal to projected cut score
checkCutPosition(i);
if(insertCut && i<players.length-1){
leaderboard.insertRow(cri);
leaderboard.rows[cri].insertCell(0);
x = leaderboard.rows[cri];
x.id = "pcRow";
y = leaderboard.rows[cri].cells[0];
y.className = "pcTableRow";
y.innerHTML = "Projected Cut";
cri++;
insertCut = false;
}
}
}
if (!row){
if(leaderboard.rows.length == 1){
leaderboard.deleteRow(0);
}
leaderboard.insertRow(0);
leaderboard.rows[0].id="noplayers";
leaderboard.rows[0].align="center";
leaderboard.rows[0].className = "bgTbl2";
leaderboard.rows[0].insertCell(0);
leaderboard.rows[0].cells[0].width="602";
leaderboard.rows[0].cells[0].height="40";
leaderboard.rows[0].cells[0].className="ltext";
leaderboard.rows[cri].cells[0].innerHTML = "<b>No players meet the criteria selected.</b>";
}
}
}
/**********************************************************
Expands player by adding second row of data
**********************************************************/
function openMore(x,tid){
var measureURL = "/latestscores_"+players[x].id+"_openRow_v2.html";
measureClick(measureURL);
showMore(x,tid);
}
function showMore(x,tid){
players[x].more_data_open = true;
if (tid){
var moreId = tid.substr(0,tid.indexOf("Table"));
var playerTable = document.getElementById(tid);
if (playerTable && (playerTable.rows.length < 2)){
playerTable.insertRow(1);
playerTable.rows[1].insertCell(0);
playerTable.rows[1].cells[0].colSpan = "11";
getMoreRow(x);
playerTable.rows[1].cells[0].innerHTML = moreText;
players[x].more_data = '<tr><td colspan="11">'+moreText+'</td></tr>';
}
} else {
getMoreRow(x);
players[x].more_data = '<tr><td colspan="11">'+moreText+'</td></tr>';
}
}
/**********************************************************
Contracts player by removing second row of data
**********************************************************/
function hideMore(x,tid){
var measureURL = "/latestscores_"+players[x].id+"_closeRow_v2.html";
measureClick(measureURL);
players[x].more_data_open = false;
var playerTable = document.getElementById(tid);
if(playerTable && (playerTable.rows.length > 1)){
playerTable.deleteRow(1);
}
players[x].more_data = "";
//alert(players[x].more_data_open+", "+players[x].more_data)
}
/**********************************************************
Fills in data of show by hole scorecard
**********************************************************/
function showByHole(x){
var out = "";
var rInfo;
var score;
var parTot = 0;
var score1Tot = 0;
var score2Tot = 0;
var score3Tot = 0;
var score4Tot = 0;
scoreText = "";
var color;
//write out Par row in scorecard
scoreText+='<tr align="center" class="hbhText"><td><b>Par</b></td>';
for (var i=1; i<=18; i++){
scoreText+='<td id="hole'+i+'par">'+holePar[i-1]+'</td>';
parTot += holePar[i-1];
}
scoreText+='<td id="parTotal">'+parTot+'</td></tr>';
//write out Round 1-4 rows in scorecard
for (var j=1; j<=4; j++){
scoreText+='<tr align="center"><td><b>Rd '+j+'</b></td>';
for (var i=1; i<=18; i++){
rInfo = eval("players[" + x + "].r" + j + "_hbh");
if (rInfo.substr(i-1,1) != ' ' && i <= rInfo.length){
score = rInfo.charCodeAt(i-1)-64;
eval("score"+j+"Tot += " + score);
//traceDebug(eval("score"+j+"Tot"));
} else {
score = "";
}
if (rInfo.indexOf(' ') > -1){
//eval("score"+j+"Tot = 0");
}
color = "#FFFFFF";
if (score == "") {
color = "#FFFFFF";
} else if (score != ""){
if (score == holePar[i-1]+1) //bogey
color = "#99FF99";
if (score >= holePar[i-1]+2) //double bogey and better
color = "#00CCCC";
if (score == holePar[i-1]-1) //birdie
color = "#FFCCCC";
if (score <= holePar[i-1]-2) //eagle and better
color = "#FF9999";
}
scoreText+='<td id="hole'+i+'r'+j+'" bgcolor="'+color+'">'+score+'</td>';
}
if(j==1) {score1Tot>0?score1Tot=score1Tot:score1Tot=""; scoreText+='<td id="r1Total">'+score1Tot+'</td></tr>';}
if(j==2) {score2Tot>0?score2Tot=score2Tot:score2Tot=""; scoreText+='<td id="r2Total">'+score2Tot+'</td></tr>';}
if(j==3) {score3Tot>0?score3Tot=score3Tot:score3Tot=""; scoreText+='<td id="r3Total">'+score3Tot+'</td></tr>';}
if(j==4) {score4Tot>0?score4Tot=score4Tot:score4Tot=""; scoreText+='<td id="r4Total">'+score4Tot+'</td></tr>';}
}
}
/**********************************************************
Sets which player string to use when a leaderboard display is selected
**********************************************************/
function playerCheck(which,ind){
var str;
var found;
switch(which){
case "B" : str = past_champ.toString(); break;
case "C" : str = american.toString(); break;
case "D" : str = international.toString(); break;
case "E" : str = amateurs.toString(); break;
case "F" : str = first_time.toString(); break;
case "G" : str = custom.toString(); break;
}
if (eval(which)){
re = players[ind].id;
found = str.search(re);
if(found < 0){
return false;
}
}
return true;
}
/**********************************************************
Sorts the players array based on total score (default sort)
**********************************************************/
function posSort(){
players.sort(compareTotal);
var prev;
var last = 999;
var pos2;
var p=0;
var cutPlayers = new Array();
for (var x=0; x<players.length; x++){
if (players[x].player_status == "A") {
p = p+1
players[x].position = p;
if (x>0 && last != 999){
//alert(x + " " + players[last].name + " " + players[last].total + " \n " + players[x].name + " " + players[x].total);
prev = players[last].total;
} else {
prev = "Z";
}
if (players[x].total == prev){
pos2 = players[last].position + "";
if (pos2.indexOf("T") == -1){
players[last].position = "T" + players[last].position;
}
players[x].position = players[last].position;
}
last = x;
} else {
//players[x].position = ""; //use this line if you don't want to display cut players
players[x].position = "999"; //use this line if you want to display cut players
}
}//end for
//put the cut players into new array
/*for (var x=0; x<players.length; x++){ 
traceDebug(players[x].name+", "+players[x].position+", "+players[x].total) 
if (players[x].position == "") {
traceDebug("removing "+players[x].name);
cutPlayers.push(players[x]); 
players.splice(x,1); 
}
}*///end for
}
/**********************************************************
Sort Functions
**********************************************************/
function compareTotal(a,b){
var num1, num2;
num1 = a.total=="E"?0:parseInt(a.total);
num2 = b.total=="E"?0:parseInt(b.total);
if (num1 == num2){
num1 = parseInt(a.tee_pos);
num2 = parseInt(b.tee_pos);
}
return num1-num2;
}
function comparePos(a,b){
var aPos = a.position + "";
var bPos = b.position + "";
var num1, num2;
num1 = (aPos.indexOf("T") > -1)?parseInt(aPos.substring(1,aPos.length)):aPos;
num2 = (bPos.indexOf("T") > -1)?parseInt(bPos.substring(1,bPos.length)):bPos;
if (num1 == num2){
num1 = parseInt(a.tee_pos);
num2 = parseInt(b.tee_pos);
}
return num1-num2;
}
function compareThru(a,b){
var num1, num2;
num1 = a.thru==""?0:parseInt(a.thru);
num2 = b.thru==""?0:parseInt(b.thru);
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num2-num1;
}
function compareToday(a,b){
var num1, num2;
if (a.today == ""){
num1 = 1000;
}
else if (a.teeTime != -1){
num1 = a.teeTime.valueOf();
}
else {
num1 = a.today=="E"?"0":parseInt(a.today)
}
if (b.today == ""){
num2 = 1000;
}
else if (b.teeTime != -1){
num2 = b.teeTime.valueOf();
}
else {
num2 = b.today=="E"?"0":parseInt(b.today)
}
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num1-num2;
}
function compareR1(a,b){
var num1, num2;
num1 = a.r1==""?500:parseInt(a.r1);
num2 = b.r1==""?500:parseInt(b.r1);
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num1-num2;
}
function compareR2(a,b){
var num1, num2;
num1 = a.r2==""?500:parseInt(a.r2);
num2 = b.r2==""?500:parseInt(b.r2);
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num1-num2;
}
function compareR3(a,b){
var num1, num2;
num1 = a.r3==""?500:parseInt(a.r3);
num2 = b.r3==""?500:parseInt(b.r3);
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num1-num2;
}
function compareR4(a,b){
var num1, num2;
num1 = a.r4==""?500:parseInt(a.r4);
num2 = b.r4==""?500:parseInt(b.r4);
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num1-num2;
}
function comparePlayers(a,b){
var num1, num2 = 0;
var pla = (a.name=="Not Available")?"zzzzz":a.name;
var plb = (b.name=="Not Available")?"zzzzz":b.name;
pla = pla.substr(pla.indexOf(".")+2);
plb = plb.substr(plb.indexOf(".")+2);
num1 = pla>plb?1:0;
num2 = pla<plb?1:0;
if (num1 == num2){
var val = compareTotal(a,b);
return val;
}
return num1-num2;
}
function compareActive(a,b){
var act1 = a.player_status;
var act2 = b.player_status;
if (act1 == act2){
return 0;
} else if (act1 < act2){
return -1;
} else return 1;
}
/**********************************************************
Sets which table item to use for sorting and moves marker to
top of that column
**********************************************************/
function sortDisp(which){
switch (which){
case "Pos" : players.sort(comparePos); moveMarker(1); break;
case "Today" : players.sort(compareToday); moveMarker(2);break;
case "Thru" : players.sort(compareThru); moveMarker(3);break;
case "R1" : players.sort(compareR1); moveMarker(4);break;
case "R2" : players.sort(compareR2); moveMarker(5);break;
case "R3" : players.sort(compareR3); moveMarker(6);break;
case "R4" : players.sort(compareR4); moveMarker(7);break;
case "Player" : players.sort(comparePlayers); moveMarker(8);break;
default : break;
}
sortItem = which;
if(load){
traceDebug("calling showAll() from sortDisp()");
setTimeout("showAll()",0);
} else {
traceDebug("calling showRefresh() from sortDisp()");
setTimeout("showRefresh()",0);
}
}
/**********************************************************
Sets position of marker when sort items are selected
**********************************************************/
function moveMarker(x){
var arrowDiv = document.getElementById("sortEnDiv");
switch (x){
case 1 : arrowDiv.style.left = posSortX; break;
case 2 : arrowDiv.style.left = todaySortX; break;
case 3 : arrowDiv.style.left = thruSortX; break;
case 4 : arrowDiv.style.left = rnd1SortX; break;
case 5 : arrowDiv.style.left = rnd2SortX; break;
case 6 : arrowDiv.style.left = rnd3SortX; break;
case 7 : arrowDiv.style.left = rnd4SortX; break;
case 8 : arrowDiv.style.left = playerSortX; break;
default : arrowDiv.style.visibility = "hidden"; break;
}
}
function getCnt(x){
if (x == "sort")
return sortCnt;
if (x == "criteria")
return criteriaCnt;
if (x == "scorecard")
return scorecardCnt;
return "";
}
function resetCnt(){
sortCnt = 0;
criteriaCnt = 0;
scorecardCnt = 0;
}
/**********************************************************
modifies table display font size
**********************************************************/
function changefontsize(newClass){
ghtmlClass = newClass;
var cells = document.getElementsByTagName("td");
for (var i=0; i<cells.length; i++){
if (cells[i].className.indexOf("ghtmlText") != -1 && cells[i].className.indexOf("redUnderlineText") == -1){
cells[i].className = newClass;
}
if (cells[i].className.indexOf("redUnderlineText") != -1){
cells[i].className = "redUnderlineText " + newClass;
}
}
}
