// high.jumper.com - JavaScript - HyperRes.js
// Copyright 2003, 2004,  M. Rand Crippen

// Load Athlete info into separate arrays
//Last	= Array()
//First	= Array()
//Year	= Array()
//MF	= Array()
//School	= Array()
//for (i=0; a=Athlete[i]; i++) {
// c1	= a.indexOf(',')
// c2	= a.indexOf(':')
// Last[i]	= a.substring(0,c1)
// First[i]	= a.substring(c1+1,c2)
// n	= a.charCodeAt(c2+1)
// n	= 1852 + a.charCodeAt(c2+2) + 10*((n>64)?(n&31)+9:n-48)
// Year[i]	= (n<1736) ? 0 : n
// MF[i]	= a.charAt(c2+3)
// School[i]	= eval(a.substring(c2+4,99))
//}
//xcAth = i

var aLast, aFirst, aYear, aMF, aSchool
function aParse(a){
 if(a<1){ aFirst="";aLast=aYear=aSchool= na; aMF="?"; return}
 i1	= a.indexOf(',')
 i2	= a.indexOf(':')
 aLast	= a.substring(0,i1)
 aFirst	= a.substring(i1+1,i2)
 n	= a.charCodeAt(i2+1)
 n	= 1852 + a.charCodeAt(i2+2) + 10*((n>64)?(n&31)+9:n-48)
 aYear	= (n<1736) ? 0 : n
 aMF	= a.charAt(i2+3)
 aSchool= eval(a.substring(i2+4,99))
}


function subb(s){ while (s.indexOf('_')>=0) s=s.replace('_',' '); return s }

function DrawPage(p1,p2,p3){
 //if(!p1)p1=p2=p3=0
 //alert('DrawPage: '+p1+' '+p2+(p3?' '+p3:''))
 s=	p1==0?	sSearch(p2):
	p1==1?	sAthlete(p2):
	p1==2?	sSchool(p2,p3):
	p1==3?	sMeet(p2,p3):
	p1==4?	sList(p2,p3):
	"Unknown HyperResult request: "+p1
 D=content.document;D.write(s);D.close()
} //DrawPage()

function DrawFirstPage(s){
 s+=' 0?3,0'
 DrawPage(parseInt(s.substr(s.indexOf('?')+1)),
	  parseInt(s.substr(s.indexOf(',')+1)))
} //DrawFirstPage()



function sSearch(p2){
 return "HyperResults Search Page!"
}



function sAthlete(p2){
 //return "HyperResults AthleteBio Page!"
 aParse(hrAthletes[p2])
 s =
"<title>HyperResults: "+athleteF()+"</title><body>"+

//"<img src=ath000001.jpg width=320 height=240 align=right>"+
"<H2>"+athleteF()+", "+aMF+" "+classF(aYear,0)+"</H2>"+


"<table border=0 cellpadding=2 cellspacing=0 bgcolor=#f0f0f0><td>Affiliations (schools, clubs):<tr>"+
 "<tr><td><ul><a href=javascript:parent.DrawPage(2,parent.aSchool)>"+schoolF(aSchool)+"</a>"+
"</table><p>"

 for (var z="",i=0; a=hrMeets[i]; i++) {
  meet = new ParseMeet(a)
  for (j=meet.ath.length; j--; ) 
   if(meet.ath[j]==p2) {
	z+="<tr><td><ul><a href=javascript:parent.DrawPage(3,"+i+","+p2+")>"+meet.title+"</a>"
	z+="<td>&nbsp; "+meet.mm+'/'+pad2(meet.dd)+'/'+meet.yy
	j=0
   }
 }

 if(z)s+="<table border=0 cellpadding=2 cellspacing=0 bgcolor=#f0f0f0><td colspan=2>Meet Results:<tr>"+
z+"</table><p>"

"Photos:<ul>"+
	"<a href=PhotoGallery.htm?1>PhotoCap1</a><br>"+
	"<a href=PhotoGallery.htm?2>PhotoCap2</a>"+
"</ul>"+

"Videos:<ul>"+
	"<a href=VideoGallery.htm?1>VideoCap1</a><br>"+
	"<a href=VideoGallery.htm?2>VideoCap2</a>"+
"</ul>"

s+=
"</body>"

//alert(s)
return(s)

}

function lState(s,i)	{ return szStates.split(s+';')[1].split(';')[0] }
function phoneF(s)	{ return '('+s.substr(0,3)+') '+s.substr(3,3)+'-'+s.substr(6) }

function sSchool(p2){
 if(p2<1) p2=1 /* ADD SEARCH */
 s=(hrSchools[p2]+";;;;;;;;;;").split(';')
 
 r=
 "<title>HyperResults: "+schoolF(p2)+"</title><body>"+

 //"<img src=hs"+p2+".jpg width=100 height=50 align=right>"+
 "<H1>"+schoolF(p2,2)+"</H1>"

 r+=lState((i=parseInt(s[1]+' 6'))?'CA':s[1])
 if(i)r+=" - "+hrCIFSections[i]+" Section ("+hrCIFSec[i]+")"

 r+="<p>"
 if(s[3])r+=s[3]+"<br>"
 if(s[4])r+=s[4]+", "+(i?'CA':s[1])+' '+s[5]+"<p>"

 z=""
 if(s[ 9])z+="<a href=mailto:"+s[9]+">Email</a> &nbsp; "
 if(s[10])z+="<a href=http://"+s[10]+">Website</a> &nbsp; "
 if(s[ 5])z+="<a href=http://us.rd.yahoo.com/maps/home/submit_a/*-http://maps.yahoo.com/maps?getmap=Get+Yahoo%21+Map&newFL=Use+Address+Below&addr="+s[3].split(' ').join('+')+"&csz="+s[5].slice(0,5)+"&country=us&name=&lat=&lon=&qty=&srchtype=a target=_blank>Get Yahoo! Map</a> &nbsp; "
 if(s[ 6])z+="Phone: "+phoneF(s[6])

 if(z)r+=z+"<p>",z=""

 if(s[8]) s[8]='The "'+s[8]+'"'
 if(s[7]){
  cc=s[7].split(','); cl=cc.length
  z=	"<table border=1 cellpadding=0 cellspacing=0><tr>"
  //for (i=0; i<cl; i++) z+= "<td bgcolor="+cc[i]+"><pre> <br> </td>"
  for (i=0; i<cl; i++) z+= "<td bgcolor="+cc[i]
	.replace("Cardinal","#ff2000")
	.replace("Scarlet","Crimson")
	.replace("Dark Brown","#6e1c1c")
	.replace("Burgundy","#c71530")
	.replace("Burgundy","#c71530")
	.replace("Columbia","")
	.replace(" ","")
	+">&nbsp; &nbsp;&nbsp;<br>&nbsp;</td>"
  //for (i=0; i<cl; i++) cc[i]=String.fromCharCode(cc[i].charCodeAt(0)&223)+cc[i].slice(1)
  z+=	"</tr></table>"
  //alert(z)

  z = "<table><tr><td>"+z+"<td>"+(s[8]?s[8]:'')+"<br>"+cc.join(', ')+"</table>"
  //alert(z)
 }
 if(!z)z=s[8]
 if(z)r+=z+"<p>"

 //"Host school of the <a href=http://www.hs000001.com>HS000001 Relays</a><p>"+

 for (var z="",i=0; a=hrAthletes[i]; i++) {
  c2	= a.indexOf(':')
  if(p2==eval(a.substring(c2+4,99))) {
   aParse(a)
   z+= "<tr>"+
	"<td><ul><a href=javascript:parent.DrawPage(1,"+i+")>"+athleteF()+"</a>"+
	"<td><ul> "+aMF+
	"<td>&nbsp; "+classF(aYear,0)
  }
 }

 if(z)r+=
"<table border=0 cellpadding=2 cellspacing=0 bgcolor=#f0f0f0><tr>"+
 "<td colspan=3><big>High Jumpers:<tr>"+z+"</table>"

 r+="<hr><small>"+
	schoolF(p2>1?p2-1:p2,1)+" << "+schoolF(p2,1)+" >> "+schoolF(p2+1,1)+"</body>"

 //alert(z)
 return(r)
}


function iHex(c,i) {return ((c.charCodeAt(i)&31)+9)%25}

//var aLast, aFirst, aYear, aMF, aSchool
function ParseMeet(a){
 b = a.split("|")
 n = b[0].split('*')
 u = b[1].indexOf('q')<0?'c':'q'
 j = b[1].split(this.units=u)
 //alert (n[0]+'  '+n[1]+'  '+j[0]+'  '+u+'  '+j[1])

 this.name = n[0]=='dm'?"Dual Meet":n[0]
 this.title = (n.length>1 ? (n[1]+'_') : this.name)
	.replace('TF',' Track & Field')
	.replace('Tf',' Track and Field')
	.replace('Cc',' Classic')
	.replace('LM',' League Meet')
	.replace('I_',' Invitational')
	.replace('R_',' Relays')
	.replace('F_',' Finals')
	.replace('P ',' Prelims')
	.replace('T_',' Trials')
	.replace('C_',' Championships')
	.replace('_','')

 this.yy= 1900+10*iHex(j[0],0)+iHex(j[0],1)
 this.mm= iHex(j[0],2)
 this.dd= 10*iHex(j[0],3)+iHex(j[0],4)

 this.team  = new Array
 var k=5,i=0,s=j[0]
 while(k<s.length) {
	var z=s.charAt(k++)
	ai = parseInt(s.substr(k))
	if(z=='a')this.site=ai
	if(z=='@')this.home=this.team[i++]=ai
	if(z=='v')this.team[i++]=ai
	k+=(""+ai).length
 }
 //alert (this.team+';'+this.team.length+';'+i)
 if(n[0]=='dm')
	for(this.title=schoolF(this.team[0],-1),i=1;i<this.team.length;i++)
		this.title+=" vs "+schoolF(this.team[i],-1)

 this.place = new Array
 this.ath   = new Array
 this.mark  = new Array
 var p,k,h,i,s=j[1]
 for (k=h=i=0; k<s.length; i++) {
  //if(!confirm(" s:"+s+"\rp:"+p+" h:"+h+" i:"+i+" k:"+k+" s[k]:"+s.substr(k)))return
  this.ath[i]	= ai = parseInt(s.substr(k))
  k+=(""+ai).length
  switch(s.charAt(k)){
	case '+':k++;
	case '-':dh = parseInt(s.substr(k)); h+=dh; k+=(""+dh).length
	case '=':p=i+1
	case 't':k++
  }
  this.place[i]	= p
  this.mark[i]	= h
 }
 return

 i1	= a.indexOf(',')
 i2	= a.indexOf(':')
 aLast	= a.substring(0,i1)
 aFirst	= a.substring(i1+1,i2)
 n	= a.charCodeAt(i2+1)
 n	= 1852 + a.charCodeAt(i2+2) + 10*((n>64)?(n&31)+9:n-48)
 aYear	= (n<1736) ? 0 : n
 aMF	= a.charAt(i2+3)
 aSchool= eval(a.substring(i2+4,99))
}

sMonth= Array(	"","January","February","March","April","May","June",
		"July","August","September","October","November","December")

function sMonthf(m,f) {
 s= sMonth[m].substr(0,9-6*(f&1))
 return f&2? s.toLowerCase(): f&4? s.toUpperCase(): s
}

//alert (sMonthf(9,0)+sMonthf(9,1)+sMonthf(9,2)+sMonthf(9,3)+sMonthf(9,4)+sMonthf(9,5)+sMonthf(9,6)+sMonthf(9))

function sMeet(p2,p3){
 if(p2<1) p2=hrMeets.length-1
 while(!hrMeets[p2])p2--
 meet = new ParseMeet(hrMeets[p2])

 //alert (s=meet.name+','+meet.place.length)
 //return s

 s=
 //"<style> .invis{position:absolute; visibility:hidden} </style>"+
 "<title>HyperResults: "+meet.name+"</title><body><center>"+

 "<H3>"+meet.title+"<small><br>"+
 sMonthf(meet.mm)+" "+meet.dd+", "+meet.yy+
 "</small></H3>"

 z="<table border=0 cellspacing=0 cellpadding=2 bgcolor=#f0f0f0>"
 z+="<tr><td><b>P<small>lace"
 z+="<td><b>Athlete"
 z+="<td><b>Sex"
 z+="<td><b>Class"
 z+="<td><b>School"
 z+="<td><b>Mark<tr>"
 for (i=0; i<meet.place.length; i++) {
	aParse(hrAthletes[meet.ath[i]])
	z+="<tr><td>"+meet.place[i]
	z+="<td><a href=javascript:parent.DrawPage(1,"+meet.ath[i]+")>"+athleteF()+"</a>"
	z+="<td>"+aMF
	z+="<td>"+classF(aYear,2004)
	z+="<td>"+schoolF(aSchool)
	z+="<td>"+markF(meet.mark[i],meet.units)
 }

 s+=z+"</table><p><hr><small>"+
	"<a href=javascript:parent.DrawPage(3,"+(p2>1?p2-1:p2)+")>Prev</a>"+
	" << Other Results >> "+
	"<a href=javascript:parent.DrawPage(3,"+(p2+1)+")>Next</a>"+"</body>"

 //alert(s)
 return(s)
}



function sList(p2,p3){
 return "HyperResults List Results Placeholder!"
}


