function Player(id, fn, ln, pos, tm, c, a, pyrd, ptd, pint, ryrd, rtd, rcyrd, rctd, fgm, fga, xpm, pyrd_a, ryrd_a, t_a, p_a, tkl, ast, sk, int, ff, fr, pd, r, a_r, bye, a1, a2, a3, a4, ul1, d, q) {
   this.id = id;
   this.firstname = fn;
   this.lastname = ln;
   this.position = pos;
   this.team = tm;
   this.comp = c;
   this.att = a;
   this.passyrd = pyrd;
   this.passtd = ptd;
   this.passint = pint;
   this.rushyrd = ryrd;
   this.rushtd = rtd;
   this.recyrd = rcyrd;
   this.rectd = rctd;
   this.fgm = fgm;
   this.fga = fga;
   this.xpm = xpm;
   this.passyrd_allowed = pyrd_a;
   this.rushyrd_allowed = ryrd_a;
   this.takeaways = t_a;
   this.points_allowed = p_a;
   this.tkl = tkl;
   this.ast = ast;
   this.sk = sk;
   this.int = int;
   this.ff = ff;
   this.fr = fr;
   this.pd = pd;
   this.RANK = r;
   this.alpha_rank = a_r;
   this.bye = bye;
   this.mystat1 = a1;
   this.mystat2 = a2;
   this.mystat3 = a3;
   this.mystat4 = a4;
   this.ul1 = ul1;
   this.drafted = d;
   this.queued = q;
}

function loadOptions() {
   var list1 = document.f1.list1;
   var position = document.f1.pos.value;
   var str = "";

   if(document.f1.rankings.value=="my") {
      loadRankings();
      return;
   }
   clearList1();
//alert("here");
//return;

   var len = playerArray.length;
   var myArray = new Array();
   for(var i=1; i<len; i++) {
      myArray[i-1] = playerArray[i].id;
   }
   myArray.sort(RANK);

   for (i=0; i<myArray.length; i++) {
      if(!playerArray[myArray[i]].drafted && !isinQueue(playerArray[myArray[i]].id) && isPosition(playerArray[myArray[i]].id, position)) {
         optionsArray[i-1] = playerArray[myArray[i]].id;
         str = "";
         if(playerArray[myArray[i]].position != "DEF") {
            str += playerArray[myArray[i]].lastname + ", " + playerArray[myArray[i]].firstname +
               " " + playerArray[myArray[i]].position + " " + playerArray[myArray[i]].team + " (" + playerArray[myArray[i]].bye + ") ";


            if(playerArray[myArray[i]].position == "QB") {
               str +=
//               playerArray[myArray[i]].comp + "/" +
//               playerArray[myArray[i]].att + " " +
               playerArray[myArray[i]].passyrd + "Yd " +
               playerArray[myArray[i]].passtd + "/" +
               playerArray[myArray[i]].passint + " TD/INT," +
               playerArray[myArray[i]].rushyrd + "/" +
               playerArray[myArray[i]].rushtd + " RuYd/TD";
            } else if(playerArray[myArray[i]].position == "RB") {
               str += playerArray[myArray[i]].rushyrd + "/" +
               playerArray[myArray[i]].rushtd + " RuYd/TD," +
               playerArray[myArray[i]].recyrd + "/" +
               playerArray[myArray[i]].rectd + " RecYd/TD";
            } else if(playerArray[myArray[i]].position == "WR" || (playerArray[myArray[i]].position == "TE")) {
               str += playerArray[myArray[i]].recyrd + " RecYd " +
               playerArray[myArray[i]].rectd + " TD";
            } else if(playerArray[myArray[i]].position == "K") {
               str += playerArray[myArray[i]].fgm + " of " +
               playerArray[myArray[i]].fga + ", " +
               playerArray[myArray[i]].xpm + " PAT";
            } else if(playerArray[myArray[i]].position=="DL" || playerArray[myArray[i]].position=="LB" || playerArray[myArray[i]].position=="DB") {
               str += playerArray[myArray[i]].tkl + " Tkl " +
               playerArray[myArray[i]].sk + " Sk " +
               playerArray[myArray[i]].ff + "/" +
               playerArray[myArray[i]].fr + " FF/FR " +
               playerArray[myArray[i]].int + " INT";
            }
         } else { // defensive team
            str += playerArray[myArray[i]].lastname + " " +
            playerArray[myArray[i]].position + " ... " +
            playerArray[myArray[i]].passyrd_allowed + " PYd, " +
            playerArray[myArray[i]].rushyrd_allowed + " RuYd, " +
            playerArray[myArray[i]].takeaways + " Tk/A, " +
            playerArray[myArray[i]].points_allowed + " Pts/A";
         }
         list1.options[list1.options.length] = new Option(str, myArray[i]);

/*
   for (i=1; i<playerArray.length; i++) {
      if(!playerArray[i].drafted && !isinQueue(playerArray[i].id) && isPosition(playerArray[i].id, position)) {
         optionsArray[i-1] = playerArray[i].id;
         str = "";
         if(playerArray[i].position != "DEF") {
            str += playerArray[i].lastname + ", " + playerArray[i].firstname +
               " " + playerArray[i].position + " " + playerArray[i].team + " ... ";

            if(playerArray[i].position == "QB") {
               str += 
//               playerArray[i].comp + "/" +
//               playerArray[i].att + " " +
               playerArray[i].passyrd + "Yd " +
               playerArray[i].passtd + "/" +
               playerArray[i].passint + " TD/INT," +
               playerArray[i].rushyrd + "/" +
               playerArray[i].rushtd + " RuYd/TD";
            } else if(playerArray[i].position == "RB") {
               str += playerArray[i].rushyrd + "/" +
               playerArray[i].rushtd + " RuYd/TD," +
               playerArray[i].recyrd + "/" +
               playerArray[i].rectd + " RecYd/TD";
            } else if(playerArray[i].position == "WR" || (playerArray[i].position == "TE")) {
               str += playerArray[i].recyrd + " RecYd " +
               playerArray[i].rectd + " TD";
            } else if(playerArray[i].position == "K") {
               str += playerArray[i].fgm + " of " +
               playerArray[i].fga + ", " +
               playerArray[i].xpm + " PAT";
            } else if(playerArray[i].position=="DL" || playerArray[i].position=="LB" || playerArray[i].position=="DB") {
               str += playerArray[i].tkl + " Tkl " +
               playerArray[i].sk + " Sk " +
               playerArray[i].ff + "/" + 
               playerArray[i].fr + " FF/FR " +
               playerArray[i].int + " INT";
            }
         } else { // defensive team
            str += playerArray[i].lastname + " " +
            playerArray[i].position + " ... " +
            playerArray[i].passyrd_allowed + " PYd, " +
            playerArray[i].rushyrd_allowed + " RuYd, " +
            playerArray[i].takeaways + " Tk/A, " +
            playerArray[i].points_allowed + " Pts/A";
         }

         list1.options[list1.options.length] = new Option(str, playerArray[i].id);
*/
      }
   }
}

function sortBy(sortFunction) {
   if(document.f1.rankings.selectedIndex == 1) my_sort = document.f1.stat.selectedIndex;
   else default_sort = document.f1.stat.selectedIndex;

   var myArray = new Array();
   var m = "";

   if(document.f1.rankings.selectedIndex == 0) { // sorting default rankings
      var box = document.getElementById("ul1");
      for(var i=1; i<playerArray.length; i++) {
         if(playerArray[i].ul1 == true) {
            myArray[i] = i;
         }
      }
   } else { // sorting my rankings
      var box = document.getElementById("ul3");
      m = "_my";
      for(var i=1; i<myRankings.length; i++) {
         if(playerArray[myRankings[i]].drafted == false && !isinQueue(myRankings[i])) {
            myArray[i] = myRankings[i];
         }
      }
   }
   myArray.sort(eval(sortFunction));

   for(i=0; i<myArray.length; i++) {
      if(document.getElementById(myArray[i]+m)) box.appendChild(document.getElementById(myArray[i]+m));
   }

}

/*
function sortBy(sortFunction) {
   my_sort = sortFunction;
   var list1 = document.f1.list1;
   var len = list1.options.length;
   var position = document.f1.pos.value;

   var myArray = new Array();
   for(var i=0; i<len; i++) {
      myArray[i] = list1.options[i].value;
   }

   clearList1();
   myArray.sort(sortFunction);
   for (i=0; i<len; i++) {
      if(!playerArray[myArray[i]].drafted && !isinQueue(playerArray[myArray[i]].id) && isPosition(playerArray[myArray[i]].id, position)) {
         str = "";
         if(playerArray[myArray[i]].position != "DEF") {
            str += playerArray[myArray[i]].lastname + ", " + playerArray[myArray[i]].firstname +
               " " + playerArray[myArray[i]].position + " " + playerArray[myArray[i]].team + " (" + playerArray[myArray[i]].bye + ") ";

            if(playerArray[myArray[i]].position == "QB") {
               str += 

//               playerArray[myArray[i]].comp + "/" +
//               playerArray[myArray[i]].att + " " +
               playerArray[myArray[i]].passyrd + "Yd " +
               playerArray[myArray[i]].passtd + "/" +
               playerArray[myArray[i]].passint + " TD/INT," +
               playerArray[myArray[i]].rushyrd + "/" +
               playerArray[myArray[i]].rushtd + " RuYd/TD";
            } else if(playerArray[myArray[i]].position == "RB") {
               str += playerArray[myArray[i]].rushyrd + "/" +
               playerArray[myArray[i]].rushtd + " RuYd/TD," +
               playerArray[myArray[i]].recyrd + "/" +
               playerArray[myArray[i]].rectd + " RecYd/TD";
            } else if(playerArray[myArray[i]].position == "WR" || (playerArray[myArray[i]].position == "TE")) {
               str += playerArray[myArray[i]].recyrd + " RecYd " +
               playerArray[myArray[i]].rectd + " TD";
            } else if(playerArray[myArray[i]].position == "K") {
               str += playerArray[myArray[i]].fgm + " of " +
               playerArray[myArray[i]].fga + ", " +
               playerArray[myArray[i]].xpm + " PAT";
            } else if(playerArray[myArray[i]].position == "DL" || playerArray[myArray[i]].position == "LB" || playerArray[myArray[i]].position == "DB") {
               str += playerArray[myArray[i]].tkl + " Tkl " +
               playerArray[myArray[i]].sk + " Sk " +
               playerArray[myArray[i]].ff + "/" +
               playerArray[myArray[i]].fr + " FF/FR " +
               playerArray[myArray[i]].int + " INT";
            }
         } else { // defensive team
            str += playerArray[myArray[i]].lastname + " " +
            playerArray[myArray[i]].position + " ... " +
            playerArray[myArray[i]].passyrd_allowed + " PYd, " +
            playerArray[myArray[i]].rushyrd_allowed + " RuYd, " +
            playerArray[myArray[i]].takeaways + " Tk/A, " +
            playerArray[myArray[i]].points_allowed + " Pts/A";
         }

         list1.options[list1.options.length] = new Option (str, playerArray[myArray[i]].id);

      }
   }
}
*/

function isPosition(id, p) {
//return true;

   if(p == "all") return true;

   var pos = playerArray[id].position;

   if(p == pos) return true;

   if((pos == "RB" || pos == "WR") && p == "RB/WR") return true;

   if((pos == "DL" || pos == "LB" || pos == "DB") && p == "DL/LB/DB") return true;

   return false;
}

function RANK(x, y) {
   return (playerArray[x].RANK - playerArray[y].RANK);
}
function alpha_rank(x, y) {
   var a = playerArray[x].lastname.toLowerCase();
   var b = playerArray[y].lastname.toLowerCase();
   return ((a < b) ? -1 : ((a > b) ? 1 : 0));
}

//function alpha_rank(x, y) {
//   return (playerArray[x].alpha_rank - playerArray[y].alpha_rank);
//}

function passyrd(x, y) {
   return (playerArray[y].passyrd - playerArray[x].passyrd);
}

function passtd(x, y) {
   return (playerArray[y].passtd - playerArray[x].passtd);
}

function passint(x, y) {
   return (playerArray[y].passint - playerArray[x].passint);
}

function rushyrd(x, y) {
   return (playerArray[y].rushyrd - playerArray[x].rushyrd);
}

function rushtd(x, y) {
   return (playerArray[y].rushtd - playerArray[x].rushtd);
}

function recyrd(x, y) {
   return (playerArray[y].recyrd - playerArray[x].recyrd);
}

function rectd(x, y) {
   return (playerArray[y].rectd - playerArray[x].rectd);
}

function fgm(x, y) {
   return (playerArray[y].fgm - playerArray[x].fgm);
}

function takeaways(x, y) {
   return (playerArray[y].takeaways - playerArray[x].takeaways);
}

function points_allowed(x, y) {
   return (playerArray[x].points_allowed - playerArray[y].points_allowed);
}

function tkl(x, y) {
   return (playerArray[y].tkl - playerArray[x].tkl);
}

function sk(x, y) {
   return (playerArray[y].sk - playerArray[x].sk);
}

function int(x, y) {
   return (playerArray[y].int - playerArray[x].int);
}

function ff(x, y) {
   return (playerArray[y].ff - playerArray[x].ff);
}

function fr(x, y) {
   return (playerArray[y].fr - playerArray[x].fr);
}

function filterPositions(p) {
   if(document.f1.rankings.selectedIndex == 1) { // filtering my rankings
      my_pos = document.f1.pos.selectedIndex;
      for(var i=1; i<myRankings.length; i++) {
         if(!isinQueue(myRankings[i]) && playerArray[myRankings[i]].drafted == false && pos_match(myRankings[i], p)) {
            if(document.getElementById(myRankings[i]+"_my")) document.getElementById(myRankings[i]+"_my").style.display = "block";
         } else if(document.getElementById(myRankings[i]+"_my")) document.getElementById(myRankings[i]+"_my").style.display = "none";
      }
   } else { // filtering default rankings
      default_pos = document.f1.pos.selectedIndex;
      for(var i=1; i<playerArray.length; i++) {
         if(playerArray[i].ul1 == true) {
            if(!isinQueue(i) && !playerArray[i].drafted && pos_match(i, p)) {
               if(document.getElementById(i)) document.getElementById(i).style.display = "block";
            } else if(document.getElementById(i)) document.getElementById(i).style.display = "none";
         }
      }
   }
}

function filterPositionsx(p) {

   var f1 = document.f1;

   clearList1();

   if(f1.rankings.value=="my") {
      for(var i=1; i<myRankings.length; i++) {
         if(!isinQueue(playerArray[myRankings[i]].id) && !playerArray[myRankings[i]].drafted) {

            if(p=="RB/WR") {
               if(playerArray[myRankings[i]].position == "RB" || playerArray[myRankings[i]].position == "WR") {
                  createPlayerString(myRankings[i], 1);
               }
            } else if(p=="DL/LB/DB") {
               if(playerArray[myRankings[i]].position=="DL" || playerArray[myRankings[i]].position=="LB" || playerArray[myRankings[i]].position=="DB") {
                  createPlayerString(myRankings[i], 1);
               }
            } else if(p!="all") { // not "all"
               if(playerArray[myRankings[i]].position == p) {
                  createPlayerString(myRankings[i], 1);
               }
            } else { // p is "all"
               createPlayerString(myRankings[i], 1);
            }
         }
      }

   } else {
      if(p=="all") {
         loadOptions();
         return;
      }
      loadOptions();
/*
      for(var i=1; i<playerArray.length; i++) {
         if(!isinQueue(i) && !playerArray[i].drafted) {
            if(p=="RB/WR") {
               if(playerArray[i].position == "RB" || playerArray[i].position == "WR") {
                  createPlayerString(i, 1);
               }
            } else if(p=="DL/LB/DB") {
               if(playerArray[i].position=="DL" || playerArray[i].position=="LB" || playerArray[i].position=="DB") {
                  createPlayerString(i, 1);
               }
            } else { // not RB/WR
               if(playerArray[i].position == p) {
                  createPlayerString(i, 1);
               }
            }
         }
      }
*/
   }
}

function createPlayerString(i, listnum) {
   if(listnum==1)
      var f1 = document.f1.list1;
   else
      var f1 = document.f1.list2;
   var str = "";

         if(playerArray[i].position != "DEF") {
            str += playerArray[i].lastname + ", " + playerArray[i].firstname +
               " " + playerArray[i].position + " " + playerArray[i].team + " (" + playerArray[i].bye + ") ";

            if(playerArray[i].position == "QB") {
               str += 
//               playerArray[i].comp + "/" +
//               playerArray[i].att + " " +
               playerArray[i].passyrd + "Yd " +
               playerArray[i].passtd + "/" +
               playerArray[i].passint + " TD/INT," +
               playerArray[i].rushyrd + "/" +
               playerArray[i].rushtd + "RuYd/TD";
            } else if(playerArray[i].position == "RB") {
               str += playerArray[i].rushyrd + "/" +
               playerArray[i].rushtd + " RuYd/TD," +
               playerArray[i].recyrd + "/" +
               playerArray[i].rectd + " RecYd/TD";
            } else if(playerArray[i].position == "WR" || (playerArray[i].position == "TE")) {
               str += playerArray[i].recyrd + "/" +
               playerArray[i].rectd + " RecYd/TD";
            } else if(playerArray[i].position == "K") {
               str += playerArray[i].fgm + " of " +
               playerArray[i].fga + ", " +
               playerArray[i].xpm + " PAT";
            } else if(playerArray[i].position=="DL" || playerArray[i].position=="LB" || playerArray[i].position=="DB") {
               str += playerArray[i].tkl + " Tkl " +
               playerArray[i].sk + " Sk " +
               playerArray[i].ff + "/" +
               playerArray[i].fr + " FF/FR " +
               playerArray[i].int + " INT";
            }
         } else { // defensive team
            str += playerArray[i].lastname + " " + 
            playerArray[i].position + " ... " +
            playerArray[i].passyrd_allowed + " PYd, " +
            playerArray[i].rushyrd_allowed + " RuYd, " +
            playerArray[i].takeaways + " Tk/A, " +
            playerArray[i].points_allowed + " Pts/A";
         }

         f1.options[f1.options.length] = new Option (str, playerArray[i].id);


}


function loadRankings() {
   clearList1();
   var f1 = document.f1;
   var position = document.f1.pos.value;

   f1.pos.options[0].selected = "true";
   if(f1.rankings.value=="my") {
      for(var i=1; i<myRankings.length; i++) {
         if(!isinQueue(playerArray[myRankings[i]].id) && !playerArray[myRankings[i]].drafted && isPosition(playerArray[myRankings[i]].id, position)) {
            createPlayerString(myRankings[i], 1);
         }
      }
   } else {
      loadOptions();
      return;
      for(var i=1; i<playerArray.length; i++) {
         if(!playerArray[i].queued && !playerArray[i].drafted) {
            createPlayerString(i, 1);
         }
      }
      orderByRank();
   }
}

function getText(id, listnum) {
   var temp_id = id.toString();
   id = id.toString();
   id = id.split("_", 1);
   var returnText = "";
   var rk = playerArray[id].RANK;
   if(rk<10) rk = " " + rk;
   var ln = playerArray[id].lastname;
   var fn = playerArray[id].firstname;
   var pos = playerArray[id].position;
   var tm = playerArray[id].team;
   var s1 = playerArray[id].mystat1;
   var s2 = playerArray[id].mystat2;
   var s3 = playerArray[id].mystat3;
   var s4 = playerArray[id].mystat4;
   returnText += '<div class="player_name_'+pos+'">';
   returnText += '<div class="player_fullname">';
   returnText += '<a href="javascript:confirm_draft_player('+id+');">';
   returnText += ln+', '+fn+'</a></div>';
   returnText += '<div class="player_pos_team">'+pos+' - '+tm+'</div>';
   returnText += '<div class="player_stats">'+s1+' '+s2+' '+s3+' '+s4+'</div>';
   if(listnum == "list1") {
      returnText += "<div class=\"player_link\">";
      returnText += "<a href=\"javascript:;\" onclick=\"addToList('"+temp_id+"');\">Q+</a>"+rk+"</div>";
   } else {
      returnText += '<div class="player_link">';
      returnText += '<a style="color:red;text-decoration:none;" ';
      returnText += 'href="javascript:queue_remove(\''+id+'_q1_'+qctr+'\');">[X]</a>'+rk+'</div>';
   }
   returnText += '</div>';
   returnText += '<div class="clear"></div>';
   return returnText;
}


