/********************************************************************
function to change page when player is selected in dropdown
*********************************************************************/
function changePage(){
var page_id = $("#page").val();
if(page_id != ""){
document.location.href="/en_US/players/player_"+page_id+".html";
}
}
var players = new Array();
var players_filtered = new Array();
var players_sorted = new Array();
var selectedFilter;
var selectedSort;
var load = true;
/********************************************************************
sort functions
*********************************************************************/
function sortLastName(a,b){
x = a.last_name.toLowerCase();
y = b.last_name.toLowerCase();
if (x == y){
x = a.first_name.toLowerCase();
y = b.first_name.toLowerCase();
}
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function sortFirstName(a,b){
x = a.first_name.toLowerCase();
y = b.first_name.toLowerCase();
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function sortCountry(a,b){
x = a.country.toLowerCase();
y = b.country.toLowerCase();
return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function getSort(which){
if(which == "fn"){
players.sort(sortFirstName);
selectedSort = "fn";
writeList();
}
else if(which == "ln"){
players.sort(sortLastName);
selectedSort = "ln";
writeList();
}
else if(which == "cy"){
if(selectedSort != "ln"){
players.sort(sortLastName);
}
players.sort(sortCountry);
selectedSort = "cy";
writeList();
}
}
/********************************************************************
function to write invitees to page either by first or last name sort
*********************************************************************/
function writePlayers(){
var playerHTML = "";
var count = 0;
$.each(players, function(index,value){
if(this.display == true){
count++;
}
});
$.each(players, function(index,value){
var list_name = this.first_name.substring(0,1) + ". " + this.last_name;
if(this.display == true){
playerHTML+='<div class="item">';
playerHTML+='	<a href="/en_US/players/player_'+this.id+'.html"><img src="/images/players/'+this.id+'.jpg" width="76" height="102" border="0" alt="'+this.first_name+' '+this.last_name+'"/></a>';
playerHTML+='	<a href="/en_US/players/player_'+this.id+'.html">'+list_name+'</a><br/>';
playerHTML+=	this.country;
playerHTML+='</div>';
}
});
$('#playerList').html('');
$('#playerList').html(playerHTML);
}
/********************************************************************
function to write invitees to page either by first or last name sort
*********************************************************************/
function writeInvitees(){
var inviteeHTML = "";
var count = 0;
var displayCount = 0;
var amateurText;
var firstText;
$.each(players, function(index,value){
if(this.display == true){
count++;
}
});
var playerDivLength = Math.ceil(count/2);
inviteeHTML='<div class="inviteesListColumn" style="margin-right:22px;">';
$.each(players, function(index,value){
if(this.first_time == true){ firstText = "#"; }
else { firstText = ""; }
if(this.amateur == true){ amateurText = "*"; }
else { amateurText = ""; }
if(this.display == true){
inviteeHTML+='<div class="item">'+firstText+amateurText;
if(firstText != "" || amateurText != ""){
inviteeHTML+=' ';
}
if(selectedSort == "ln" || selectedSort == "cy"){inviteeHTML+='<b>'+this.last_name+', '+this.first_name+'</b>';}
else {inviteeHTML+='<b>'+this.first_name+' '+this.last_name+'</b>';}
inviteeHTML+=' '+this.quals+'<br/>'+this.country+'</div>';
if((displayCount+1) == playerDivLength){
inviteeHTML+='</div><div class="inviteesListColumn">';
}
displayCount++;
}
});
inviteeHTML+='</div>';
$('#inviteesList').html('');
$('#inviteesList').html(inviteeHTML);
}
/********************************************************************
function to pull out players based on selected filter
*********************************************************************/
function filterPlayers(which){
//B = professionals
//C = amateurs
//D = first time
//E = past champs
selectedFilter = which;
if (which){
$.each(players, function(index,value){
this.display = false;
});
$.each(players, function(index,value){
switch(which){
case "B" : str = this.professional; filter_text = "Professionals"; break;
case "C" : str = this.amateur; filter_text = "Amateurs"; break;
case "D" : str = this.first_time; filter_text = "First-Time Invitees"; break;
case "E" : str = this.past_champ; filter_text = "Past Champions"; break;
}
if(!str){ this.display = false; }
else { this.display = true; }
});
} else {
$.each(players, function(index,value){
this.display = true;
});
}
writeList();
}
/***************************************************************************
function to create player objects
***************************************************************************/
function player(){
this.last_name;
this.first_name;
this.id;
this.country;
this.quals;
this.professional;
this.amateur;
this.first_time;
this.past_champ;
this.display;
}
/***************************************************************************
function to populate player objects
***************************************************************************/
function setPlayerObjects(xmlDoc){
$(xmlDoc).find("player").each(function() {
players[players.length] = new player();
players[players.length-1].last_name = $(this).attr('lname');
players[players.length-1].first_name = $(this).attr('fname');
players[players.length-1].id = $(this).attr('id');
players[players.length-1].country = $(this).attr('cntry');
players[players.length-1].quals = $(this).attr('qualifications');
/* get amateurs and professionals */
if( $(this).attr('Amateur') == "1" ){
players[players.length-1].professional = false;
players[players.length-1].amateur = true;
} else {
players[players.length-1].professional = true;
players[players.length-1].amateur = false;
}
/* get first timers */
if( $(this).attr('First') == "1" ){ players[players.length-1].first_time = true; }
else { players[players.length-1].first_time = false; }
/* get past champs */
if(which_page == "players"){
if( $(this).attr('Past') == "1" ){ players[players.length-1].past_champ = true; }
else { players[players.length-1].past_champ = false; }
} else {
var qualstring = $(this).attr('qualifications').replace('(','').replace(')','');
var tmp = qualstring.split(',');
$.each(tmp, function(index,val){
if(val == "1"){ players[players.length-1].past_champ = true; }
});
}
});
$.each(players, function(index,value){
this.display = true;
});
players.sort(sortLastName);
//getSort('ln');
writeList();
}
/***************************************************************************
choose which list to write - invitees or players
***************************************************************************/
function writeList(){
if(which_page.indexOf("invitees") > -1){ writeInvitees(); }
else { writePlayers(); }
}
/***************************************************************************
load xml - either players or invitees
***************************************************************************/
function getInvitees(){
if(which_page == "invitees2011"){var datafile = "/en_US/xml/gen/players/invitees_2011.xml"; }
if(which_page == "invitees2012"){var datafile = "/en_US/xml/gen/players/invitees_2012.xml"; }
$.ajax({
url: datafile,
type: 'GET',
dataType: 'xml',
error: function(){
//alert('Error loading inviteees data');
},
success: function(xmlResp){
setPlayerObjects(xmlResp);
}
});
}
function getPlayers(){
$.ajax({
url: '/en_US/xml/gen/players/select.xml',
type: 'GET',
dataType: 'xml',
error: function(){
//alert('Error loading player data');
},
success: function(xmlResp){
setPlayerObjects(xmlResp);
}
});
}
/***************************************************************************
functions to execute on page load
***************************************************************************/
$(document).ready(function(){
if(which_page.indexOf("invitees") > -1){
$('.scroll-pane').jScrollPane({showArrows: true});
var resetScroll = function(){
$('.scroll-pane').jScrollPane({showArrows: true});
}
getInvitees();
}
if(which_page == "players"){getPlayers();}
});
