teamData = new Object();  //hash from teamNumber to team data
teamIndex = new Object();  //year --> type -->  array of team numbers
lastTeam = null;

statusNames = ["[Preliminary]","[Pending]","","[Limited]"];

function Team(n,t,y,nam,
              org,loc,tl,
			  e,url,
			  log,st)
{
  this.num = n;
  this.type = t;
  this.year = y;
  this.name = nam;
  this.organization = org;
  this.homeTown = loc;
  this.teamLeader = tl;
  this.email = e;
  this.homePage = url;
  this.logo = log;
  this.status = st;

  teamData[n] = this;
  
  if (teamIndex[y] == null)
    teamIndex[y] = new Object();
  
  if (teamIndex[y][t] == null)
    teamIndex[y][t] = new Array();

  teamIndex[y][t][teamIndex[y][t].length] = n;
  
  lastTeam = this;
}


Team.prototype.writeTableLine = function()
{
 document.write("<tr style='border:1px solid black'>");
 document.write("<td width=50 align='left' valign='top'>");
 document.write("<big><big>");
// document.write("<a class='expb' href='team?"+this.num+"'>#"+this.num+" </a>");
 document.write("<span class='pageHeading'>#"+this.num+" </span>");
 document.write("</big></big>");
 document.write("</td>");
 document.write("<td align='left' valign='middle' nowrap class='grayBox'>");
 if (this.name)
   document.write("<b>Name:</b> "+this.name+" "+statusNames[this.status]+"<br>");
 if (this.organization)
   document.write("<b>Organization:</b> "+this.organization+"<br>");
 if (this.homeTown)
   document.write("<b>Home Town:</b> "+this.homeTown+"<br>");
 if (this.teamLeader)
   document.write("<b>Fearless Leader:</b> "+this.teamLeader+"<br>");
 if (this.email)
   document.write("<b>EMail:</b> "+this.email+"<br>");
 if (this.homePage)
   document.write("<b>Home page:</b> <a class='expb' target='exLinkWin' href='http://"+this.homePage+"'>"+this.homePage+"</a><br>");
 document.write("<b>Related Blog posts:</b> (coming soon)");
 document.write("</td>");
 document.write("<td width=300 align='center' valign='middle' nowrap style='border:1px black solid'>");
 if (this.html)
   document.write(this.html);
 else if (this.logo)
   document.write("<img src='images/teams/T"+this.num+"/"+this.logo+"'>");
 else
   document.write("&nbsp;");
 document.write("</td>");
 document.write("<tr>");
}


Team.prototype.writeSection = function(name, title, sepDflt, trlDflt)
{
 var s = this[name];
 if (!s || !s.length)
   return;
 if (sepDflt == null)
   sepDflt = ":";
 if (trlDflt == null)
   trlDflt = "";
 document.write("<div class='blockHeading' style='text-align: center'>"+title+"</div><br>");
 document.write("<ul>");
 for (var i=0; i<s.length; i++)
 {
   var s0 = s[i][0];
   var s1 = s[i][1];
   var sep = (s0 && s1) ? sepDflt : "";
   document.write("<li><b>" + s0 + sep + "</b> " + s1 + trlDflt);
  }
 document.write("</ul>"); 
}

Team.prototype.writePhotoSection = function()
{
 var s = this["images"];
 if (!s || !s.length)
   return;
 document.write("<div class='blockHeading' style='text-align: center'>Image Gallery</div><br>");
 for (var i=0; i<s.length; i++)
 {
   var s0 = s[i][0];
   var s1 = s[i][1];
   var isGallery = s[i][2];
   var imgSrc = "images/" + (isGallery ? "gallery/" : "teams/T"+this.num+"/") + s0
   document.write("<img src='"+imgSrc+"'><br>" + s1 + "<p>");
  }
}

//----------------------


new Team("101","c","2009","KC Space Pirates LLC",
         "Kansas City Robotics","Kansas City, MO","Brian Turner",
		 "brian[at]kcspacepirates.com","www.kcspacepirates.com",
		 "space-pirate-flag-07c.90h.gif",2);

/*		 
new Team("102","c","2009","TXL",
         "TXL","El Paso, TX","David Nemir",
		 "david.nemir[at]gmail.com","www.txlgroup.com",
		 "TXL Group logo 010308.jpg",2);
*/
		 
new Team("103","c","2009","M Climber",
         "University of Michigan","Ann Arbor, MI","Andrew Lyjak",
		 "lyjak[at]umich.edu","www.mclimber.org",
		 "logo76.png",2);

/*
new Team("104","c","2009","University of Alberta Space Elevator Racing Team",
         "University of Alberta","Edmonton, Alberta, Canada","Andrew Burke",
		 "andrewcburke[at]gmail.com","www.ece.ualberta.ca/~elevator",
		 "asert_logo.100h.jpg",2);
	 
new Team("105","c","2009","E-T-C",
         "Earth Track Controllers","Tsukuba, Japan","Akira Tsuchida",
		 "e-t-c[at]earth-track-controllers.com","earth-track-controllers.com",
		 "E-T-C_Logo4.80h.jpg",2);

new Team("106","c","2009","Queen's Space Elevator Team",
         "Queen's University","Kingston, Ontario, Canada","Justin Charbonneau",
		 "4jb7[at]qlink.queensu.ca","www.qset.org",
		 "logo.95h.png",2);
*/
new Team("107","c","2009","USST",
         "University of Saskatchewan","Saskatchewan, Canada","Clayton Ruszkowski",
		 "usst[at]usask.ca","www.usst.ca",
		 "newLogo.100h.jpg",1);

new Team("108","c","2009","Lasermotive",
         "Lasermotive","Seattle, WA","Jordin Kare",
		 "jordin.kare[at]lasermotive.com","www.lasermotive.com",
		 "LaserMotive_logo-100.gif",2);

new Team("109","c","2009","McGill Space Elevator Team",
         "McGill University","Montreal, Quebec, Canada","Cyrus Foster",
		 "space.elevator[at]mail.mcgill.ca","space-elevator.mcgill.ca",
		 "logo.84h.jpg",2);

new Team("110","c","2009","NSS Space Elevator Team",
         "National Space Society","Ellicott City, Maryland","Bert Murray",
		 "hcm1955[at]gmail.com","www.nssspaceelevator.org",
		 "nss.80h.jpg",2);

/*
new Team("111","c","2009","Team Nippon",
         "","Nara, Japan","William Rieken",
		 "rieken[at]is.naist.jp","www.teamnippon.org",
		 "nippon.80h.png",2);
*/	 
//------------------------------------

function writeTeams(year, type, doRand, printAll)
{
 var l = 0;
 if (teamIndex[year])
   if (teamIndex[year][type])
     l = teamIndex[year][type].length;
 if (l == 0)
 {
   document.write("<div align='center'>(None yet...)</div><br><br>");
   document.write("<p><hr align='center' width='40%'><br>");
   return;
 }
 else
 {
   var perm = new Array();
   for (var i=0; i<l; i++)
     perm[i] = i;
   if(doRand)
     for (var i=0; i<l; i++)
     {
       var x = i + Math.floor(Math.random() * (l-i));
       var temp = perm[i];
       perm[i] = perm[x];
       perm[x] = temp;
     }
  
   document.write("<a name='"+type+year+"'></a>");
   document.write("<table cellspacing=10 cellpadding=5 border=0>");

   for (var i=0; i<teamIndex[year][type].length; i++)
   {
     var team = teamData[teamIndex[year][type][perm[i]]];
	 if (printAll || (team.status > 0))
       team.writeTableLine();
   }
  
   document.write("</table><p>");
 }

 document.write("<p><hr align='center' width='40%'><br>");
 
}

function printCount(title, year, type)
{
 var l = 0;
 if (teamIndex[year])
   if (teamIndex[year][type])
     l = teamIndex[year][type].length;
 document.write("<a class='expb' href='#"+type+year+"'>"+title+"</a>:&nbsp;&nbsp;"+l+" teams<br>");
}


