YAHOO.namespace("WHS");
YAHOO.namespace("WHS.ROSTER2009");
YAHOO.namespace("WHS.MAP");
YAHOO.namespace("WHS.HONOR_ROLL.DISTRICT");
YAHOO.namespace("WHS.HONOR_ROLL.REGION");
YAHOO.namespace("WHS.HONOR_ROLL.MET");
YAHOO.namespace("WHS.HONOR_ROLL.STATE");
YAHOO.namespace("WHS.HONOR_ROLL.ALLSTAR");
YAHOO.namespace("WHS.HONOR_ROLL.ALL_AMERICAN");
YAHOO.namespace("WHS.HONOR_ROLL.DRAFTED");
YAHOO.namespace("WHS.ALUMNI");
YAHOO.namespace("WHS.SCHEDULE_2009");
YAHOO.namespace("WHS.SCHEDULE_2010");
YAHOO.namespace("WHS.SCHEDULE_2011");
YAHOO.namespace("WHS.SCHEDULE_2012");
YAHOO.namespace("WHS.RECORDS.TEAM.BATTING");
YAHOO.namespace("WHS.RECORDS.TEAM.PITCHING");
YAHOO.namespace("WHS.RECORDS.TEAM.FIELDING");
YAHOO.namespace("WHS.RECORDS.IND.BATTING");
YAHOO.namespace("WHS.RECORDS.IND.PITCHING");
YAHOO.namespace("WHS.RECORDS.IND.FIELDING");
YAHOO.namespace("WHS.URLS");
YAHOO.namespace("WHS.MAP.URLS");
YAHOO.namespace("WHS.COLLEGE.URLS");
YAHOO.namespace("WHS.LINESCORES_2011");
YAHOO.namespace("WHS.JS.VOID");

YAHOO.WHS.JS.VOID = "javascript:void(0)";
Console.enabled = false; // INIT CONSOLE OBJECT

function MAP() {
	this.westfieldLatLng = new google.maps.LatLng(38.886239,-77.463527);
	this.defaultZoom = 15;
	var hsImg = 'img/cramschool.png';
	var myOptions = {
		zoom : this.defaultZoom,
		center : this.westfieldLatLng,
		mapTypeId : google.maps.MapTypeId.ROADMAP,
		zoomControlOptions : {style:'SMALL'}
	};
	this.markers = [];
	this.infoWindows = [];
	this.layers = [];
	this.layerNames = ['Concorde','Liberty','Patriot','National'];
	this.layerCenters = [
	                    {'district':'Concorde','center':new google.maps.LatLng(38.907599,-77.392159)},
	                    {'district':'Liberty','center':new google.maps.LatLng(38.901855,-77.272682)},
	                    {'district':'Patriot','center':new google.maps.LatLng(38.78045,-77.17432)},
	                    {'district':'National','center':new google.maps.LatLng(38.827138,-77.133465)},
	                    {'district':'allDistricts','center':new google.maps.LatLng(38.860312,-77.286243)},
	                    {'district':'home','center':new google.maps.LatLng(38.886239,-77.463527)}
	                    ];
	this.layerZooms = [
	                   {'district':'Concorde','zoom':11},
	                   {'district':'Liberty','zoom':10},
	                   {'district':'Patriot','zoom':11},
	                   {'district':'National','zoom':11},
	                   {'district':'allDistricts','zoom':13},
	                   {'district':'home','zoom':15}
	                   ];
	this.map = new google.maps.Map(document.getElementById("mapContainer"),
			myOptions);
	var infoContentWHS = '<div class="info-win"><p><a href=\"http://www.fcps.edu/WestfieldHS/\" target=\"_blank\">Westfield High School</a></p><p>4700 Stonecroft Boulevard</p><p>Chantilly, VA 20151-1731</p><p>&nbsp;</p><p>(703) 488-6300</p></div>';
	var infoWindowWHS = new google.maps.InfoWindow({
        content: infoContentWHS
    });
	this.infoWindows.push(infoWindowWHS);
	
    var markerWHS = new google.maps.Marker({
        position: this.westfieldLatLng, 
        map: this.map,
        icon: hsImg,
        title:"Westfield High School"
    });
    this.markers.push(markerWHS);
    
    google.maps.event.addListener(markerWHS, 'click', function() {
    	infoWindowWHS.open(this.map,markerWHS);
      });
}
MAP.prototype.setZoom = function(_district) {
//Console.info('setZoom() - zoom level before: ' + this.map.getZoom());
	this.map.setZoom(this.getZoom(_district));
//Console.info('setZoom() - zoom level after: ' + this.map.getZoom());
};
MAP.prototype.getZoom = function(_district) {
	var retval = this.defaultZoom;
	for(var i=0; i < this.layerZooms.length; i++) {
		if (this.layerZooms[i].district == _district) {
			retval = this.layerZooms[i].zoom;
			break;
		}
	}
//Console.info('getZoom() - retval: ' + retval);
	return retval;
};
MAP.prototype.setCenter = function(_district) {
	this.map.panTo(this.getCenter(_district));
};
MAP.prototype.getCenter = function(_district) {
//	var retval = new google.maps.LatLng(38.886239,-77.463527);
	var retval = this.westfieldLatLng;
//Console.info('getCenter() - _district: ' + _district);
	for(var i=0; i < this.layerCenters.length; i++) {
//Console.info('getCenter() - this.layerCenters[' + i + '].district: ' + this.layerCenters[i].district);
		if (this.layerCenters[i].district == _district) {
//Console.info('getCenter() - MATCH FOUND');
			retval = this.layerCenters[i].center;
			break;
		}
	}
//Console.info('getCenter() - retval: ' + retval.lat() + ', ' + retval.lng());
	return retval;
};
MAP.prototype.getLayerNames = function() {
	return this.layerNames;
};
MAP.prototype.isLayerExists = function(_district) {
	var retval = false;
	for (var i=0; i < this.layers.length; i++) {
		var lyr = this.layers[i];
		if (lyr.district == _district) {
			retval = true;
			break;
		}
	}
	return retval;
};
MAP.prototype.getLayer = function(_district) {
	var retval = null;
	for (var i=0; i < this.layers.length; i++) {
		var lyr = this.layers[i];
		if (lyr.district == _district) {
			retval = lyr.layer;
			break;
		}
	}
	return retval;
};
MAP.prototype.isToggleAllLayers = function(_district, _checked) {
	return (_district == 'allDistricts');
};
MAP.prototype.isShowAllLayers = function(_district, _checked) {
	return (_district == 'allDistricts' && _checked);
};
MAP.prototype.toggleMapLayer = function(_district, _checked) {
	var layerExists = this.isLayerExists(_district);
	var layer;
//	Console.info('toggleMapLayer() - layer exists: ' + layerExists);
	if (!layerExists) {
		var query = 'District=\'' + _district + '\'';
		layer = new google.maps.FusionTablesLayer({
			query: {
				select: 'Address',
				from: '2211798',
				where: query
			}
		});
		this.layers.push({'district':_district,'layer':layer});
	} else {
		layer = this.getLayer(_district);
	}
//	Console.info('toggleMapLayer() - layer.query.where: ' + layer.query.where);
//	Console.info('toggleMapLayer() - chkbox value: ' + _checked);

	if (_checked) {
//		Console.info('toggleMapLayer() - adding layer to map...');
		this.clearMarkers();
		this.setZoom(_district);
		this.setCenter(_district);
		layer.setMap(this.map);
	} else {
//		Console.info('toggleMapLayer() - removing layer from map...');
		layer.setMap(null);
		if (!isLayersDisplayed()) {
			this.showMarkers();
			this.setCenter('');
			this.setZoom('');
		}
	}
	
//	var isMap = layer.getMap() ? true : false;
//	Console.info('toggleMapLayer() - map? ' + isMap);
};
MAP.prototype.showMarkers = function() {
	for(var i=0; i < this.markers.length; i++) {
		this.markers[i].setMap(this.map);
	}
};
MAP.prototype.clearMarkers = function() {
	for(var i=0; i < this.markers.length; i++) {
		this.markers[i].setMap(null);
	}
};
MAP.prototype.getMap = function() {
	return this.map;
};
function isLayersDisplayed() {
	var retval = false;
	var elems = getMapLayerControls();
	if (elems.constructor == Array) {
		for(var i=0; i < elems.length; i++) {
			if (elems[i].checked) {
				retval = true;
				break;
			}
		}
	}
	return retval;
};
function getMapLayerControls() {
	return YAHOO.util.Dom.getElementsByClassName('mapCtrl', 'input');
}
function STANDINGS (_arg) {
	Console.info('STANDINGS constructor - _arg.length; ' + _arg.length);
	this.standings = _arg;
	this.mostWins = 0;
	this.fewestLosses = 100;
	this.highestPct = 0.000;
	
	if (this.isSeasonStarted()) {
		this.calcPct();
		this.calcFewestLossesMostWins();
		Console.info('STANDINGS constructor - mostWins: ' + this.mostWins + '; fewestLosses: ' + this.fewestLosses);
		this.calcGb();
	} else {
		this.init();
	}
	this.sort();
}
STANDINGS.prototype.isSeasonStarted = function() {
	var retval = false;
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		if (obj.Won != this.mostWins && obj.Lost != this.fewestLosses) {
			retval = true;
			break;
		}
	}
	return retval;
};
STANDINGS.prototype.init = function() {
	var pct = 0.0;
	var gb = 0;
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		obj.Pct = pct.toFixed(3);
		obj.GB = gb;
		this.standings[i] = obj;
	}
};
STANDINGS.prototype.calcPct = function() {
	var pct = 0.0;
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		Console.info('STANDINGS.calcPct() - obj.Pct (' + obj.Team + ') - (' + obj.Won + '/(' + obj.Won + ' + ' + obj.Lost + ')).toFixed(3): ' + (obj.Won/(obj.Won + obj.Lost)).toFixed(3));
		if (obj.Won == 0) {
			obj.Pct = pct.toFixed(3);
		} else {
			obj.Pct = (obj.Won/(obj.Won + obj.Lost)).toFixed(3);
		}
		this.standings[i] = obj;
		this.show(this.standings[i]);
		if (obj.Pct > this.highestPct) {
			this.highestPct = obj.Pct;
		}
	}
};
STANDINGS.prototype.calcFewestLossesMostWins = function() {
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		if (obj.Pct == this.highestPct) {
			if (obj.Won > this.mostWins) {
				this.mostWins = obj.Won;
				this.fewestLosses = obj.Lost;
			}
		}
	}	
};
STANDINGS.prototype.calcGb = function() {
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		Console.info('STANDINGS.calcGb() - (' + obj.Team + ') - obj.Pct: ' + obj.Pct + '; this.highestPct: ' + this.highestPct);
		if (obj.Pct == this.highestPct) {
			obj.GB = 0.0;
		} else {
			obj.GB = (Math.abs(this.mostWins - obj.Won) + Math.abs(obj.Lost - this.fewestLosses))/2;
		}
		this.standings[i] = obj;
	}
};
STANDINGS.prototype.show = function(obj) {
	Console.info('STANDINGS.show() - team: ' + obj.Team + '; won: ' + obj.Won + '; lost: ' + obj.Lost + '; pct: ' + obj.Pct);
};
STANDINGS.prototype.showAll = function() {
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		Console.info('STANDINGS.showAll() - team: ' + obj.Team + '; won: ' + obj.Won + '; lost: ' + obj.Lost + '; pct: ' + obj.Pct);
	}
};
STANDINGS.prototype.getStandings = function() {
	return this.standings;
};
STANDINGS.prototype.sort = function() {
	function sortPct(a,b) {
		if(a.GB == b.GB) {
			if (a.Won == b.Won) {
				return a.Team > b.Team;
			} else {
				return a.Won < b.Won;
			}
		} else {
			return a.GB > b.GB;
		}
	}
	this.standings.sort(sortPct);
};
STANDINGS.prototype.getSeasonStatus = function() {
	var retval = ' (final)';
	var maxGamesPossible = (this.standings.length-1)*2;
	for(var i=0; i < this.standings.length; i++) {
		var obj = this.standings[i];
		if ((obj.Won + obj.Lost) != maxGamesPossible) {
			retval = '';
			break;
		}
	}
	return retval;
};
function sortRoster(a,b) {
	return a.SortFld - b.SortFld;
}
function sortHonorRollDistrict(a,b) {
	return b.Year - a.Year;
}
function isPlayerPic(_uniformNum,_noPicList) {
	var retval = true;
	for(var i=0; i < _noPicList.length; i++) {
		if (_uniformNum === _noPicList[i]) {
			retval = false;
			break;
		}
	}
	return retval;
}
YAHOO.WHS.URLS = [
                  {name:'Westfield',url:'http://www.bulldogbaseball.net',map:'http://maps.google.com/maps?q=Westfield+High+School,+4700+Stonecroft+Boulevard,+Chantilly,+VA+20151-1731&hl=en&sll=37.0625,-95.677068&sspn=37.735377,86.572266&vpsrc=0&hq=Westfield+High+School,+4700+Stonecroft+Boulevard,+Chantilly,+VA+20151-1731&t=m&z=15'},
                  {name:'Home',url:'http://www.bulldogbaseball.net',map:'http://maps.google.com/maps?q=Westfield+High+School,+4700+Stonecroft+Boulevard,+Chantilly,+VA+20151-1731&hl=en&sll=37.0625,-95.677068&sspn=37.735377,86.572266&vpsrc=0&hq=Westfield+High+School,+4700+Stonecroft+Boulevard,+Chantilly,+VA+20151-1731&t=m&z=15'},
                  {name:'Oakton',url:'http://oaktonathletics.org/index.cfm?action=main.team&ID=2506',map:'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Oakton+High+School,+2900+Sutton+Rd,+Vienna,+VA+22181-6199&aq=0&g=2900+Sutton+Rd,+Vienna,+VA+22181-6199&ie=UTF8&hq=Oakton+High+School,+2900+Sutton+Rd,+Vienna,+VA+22181-6199&ll=38.877938,-77.282553&spn=0.020413,0.038581&t=h&z=15&iwloc=A&cid=12519860390134280240'},
                  {name:'Robinson',url:'http://www.robinsonathletics.com/index.cfm?action=main.team&ID=26633',map:'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Robinson+Secondary+School,+Sideburn+Road,+Fairfax,+VA&aq=1&sll=38.877938,-77.282553&sspn=0.020413,0.038581&ie=UTF8&hq=Robinson+Secondary+School,+Sideburn+Road,+Fairfax,+VA&ll=38.817676,-77.304869&spn=0.02043,0.038581&t=h&z=15&iwloc=A&cid=18395299079692551443'},
                  {name:'Chantilly',url:'http://www.chantillysports.org/index.cfm?action=main.team&ID=63',map:'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Chantilly+High+School,+Stringfellow+Road,+Fairfax,+VA&aq=0&sll=37.0625,-95.677068&sspn=42.360237,79.013672&ie=UTF8&hq=Chantilly+High+School,&hnear=Stringfellow+Rd,+Sully,+Fairfax,+Virginia&ll=38.882548,-77.407093&spn=0.040823,0.077162&t=h&z=14&iwloc=A&cid=1466521838263717753'},
                  {name:'Herndon',url:'http://www.herndonathletics.org/index.cfm?action=main.team&ID=5077',map:'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Herndon+High+School,+700+Bennett+St,+Herndon,+Virginia+20170&aq=0&sll=38.817676,-77.304869&sspn=0.02043,0.038581&ie=UTF8&hq=Herndon+High+School,&hnear=700+Bennett+St,+Herndon,+Virginia+20170&ll=38.986334,-77.37555&spn=0.009774,0.01929&t=h&z=16&iwloc=A&cid=8890509047517878131'},
                  {name:'Centreville',url:'http://www.wearecville.com/baseball.html',map:'http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=Centreville+High+School,+6001+Union+Mill+Road,+Clifton,+VA+20124-1131&aq=0&sll=37.0625,-95.677068&sspn=42.360237,79.013672&ie=UTF8&hq=Centreville+High+School,+6001+Union+Mill+Road,+Clifton,+VA+20124-1131&ll=38.826035,-77.410655&spn=0.019592,0.038581&t=h&z=15&iwloc=A&cid=1768799274127111805'},
                  {name:'Stone Bridge',url:'http://www.stonebridgesports.org/index.cfm?action=main.team&ID=20264&seasonid=36209',map:'http://maps.google.com/maps/place?q=County+of+Loudoun:+Stone+Bridge+High+School,+Broad+Run,+Virginia&hl=en&cid=1821509177810117907'},
                  {name:'Forest Park',url:'http://baseball.forestpark.groupfusion.net/modules/groups/integrated_home.phtml?gid=25543&sessionid=e0947cda45cf706626b8084620622f9b',map:'http://maps.google.com/maps/place?q=Forest+Park+High+School,+Forest+Park+Drive,+Dale+City,+VA&hl=en&cid=7266076137700658119'},
                  {name:'Loudoun Valley',url:'http://www.lcps.org/site/Default.aspx?PageID=23111',map:'http://maps.google.com/maps?q=Fireman\'s+Field+Center,+Purcellville,+VA&hl=en&ll=39.133855,-77.715096&spn=0.008638,0.021136&hq=Fireman\'s+Field+Center,&hnear=Purcellville,+Loudoun,+Virginia&t=m&z=16&vpsrc=0'},
                  {name:'HIT',url:'http://www.berkeley.k12.sc.us/HanahanHigh.cfm?subpage=4987',map:''},
                  {name:'Bishop Ford',url:'javascript:void(0)',map:''},
                  {name:'Berkeley',url:'javascript:void(0)',map:''},
                  {name:'Starr\s Mill',url:'javascript:void(0)',map:''},
                  {name:'Hanahan',url:'javascript:void(0)',map:''},
                  {name:'Fairfax',url:'http://www.fairfaxhighsports.org/index.cfm?action=main.team&ID=2320',map:'http://maps.google.com/maps?q=Fairfax+County+Public+Schools:+High+Schools,+3501+Rebel+Run,+Fairfax,+Virginia+22030&hl=en&ll=38.859694,-77.286243&spn=0.009073,0.021136&sll=39.133855,-77.715096&sspn=0.008638,0.021136&vpsrc=0&hq=Fairfax+County+Public+Schools:+High+Schools,&hnear=3501+Rebel+Run,+Fairfax,+Virginia+22030&t=m&z=16'},
                  {name:'Madison',url:'http://warhawk-baseball.com/MadisonWarhawkBaseball/Home.html',map:'http://maps.google.com/maps/place?q=James+Madison+High+School,+Vienna,+VA&hl=en&cid=925004539692436695'},
                  {name:'Stonewall Jackson',url:'http://baseball.stonewallhs.schools.pwcs.edu/modules/groups/integrated_home.phtml?gid=3013618&sessionid=a5a7cf9c99eaaeeab7106df98bcb967c',map:'http://maps.google.com/maps/place?q=Stonewall+Jackson+High+School,+Rixlew+Lane,+Manassas,+VA&hl=en&cid=4221135274576235509'},
                  {name:'Battlefield',url:'http://baseball.battlefield.groupfusion.net/modules/groups/integrated_home.phtml?gid=15242&sessionid=c37d0632ed5a31b7ba1abe1648cc9eb8',map:'http://maps.google.com/maps?q=Battlefield+High+School,+Haymarket,+VA&hl=en&ll=38.844788,-77.630768&spn=0.009075,0.021136&hq=Battlefield+High+School,&hnear=Haymarket,+Prince+William,+Virginia&t=h&z=16&vpsrc=6'},
                  {name:'Woodbridge',url:'http://www.vikingsathletics.org/index.cfm?action=main.team&ID=19507',map:'http://maps.google.com/maps?q=Woodbridge+High+School,+Woodbridge,+VA&hl=en&sll=38.844788,-77.630768&sspn=0.009075,0.021136&vpsrc=0&hq=Woodbridge+High+School,&hnear=Woodbridge,+Prince+William,+Virginia&t=h&z=14'},
                  {name:'McLean',url:'http://www.mcleanactivities.org/index.cfm?action=main.team&ID=3642',map:'http://maps.google.com/maps?q=McLean+High+School,+1633+Davidson+Road,+McLean,+VA+22101-4399&hl=en&ll=38.923059,-77.185414&spn=0.009065,0.021136&sll=38.651286,-77.280257&sspn=0.036398,0.084543&vpsrc=6&hq=McLean+High+School,+1633+Davidson+Road,+McLean,+VA+22101-4399&t=h&z=16'},
                  {name:'Paul VI',url:'http://www.paulvi.net/Page.aspx?pid=258',map:'http://maps.google.com/maps?q=Paul+Vi+Catholic+High+School,+Fairfax+Boulevard,+Fairfax,+VA&hl=en&ll=38.855417,-77.31431&spn=0.017345,0.042272&sll=38.923059,-77.185414&sspn=0.009065,0.021136&vpsrc=0&hq=Paul+Vi+Catholic+High+School,+Fairfax+Boulevard,+Fairfax,+VA&t=h&z=15'},
                  {name:'Summerville',url:'javascript:void(0)',map:''},
                  {name:'Fort Dorcester',url:'javascript:void(0)',map:''},
                  {name:'James Island',url:'javascript:void(0)',map:''},
                  {name:'Dematha',url:'http://www.hometeamsonline.com/teams/?u=DEMATHABASEBALL&t=c&s=baseball&p=home',map:'http://maps.google.com/maps?q=DeMatha+Catholic+High+School,+Madison+Street,+Hyattsville,+MD&hl=en&ll=38.957473,-76.941934&spn=0.018121,0.042272&sll=38.855417,-77.31431&sspn=0.017345,0.042272&vpsrc=0&hq=DeMatha+Catholic+High+School,+Madison+Street,+Hyattsville,+MD&t=h&z=15'},
                  {name:'Hylton',url:'http://varsity-baseball.hylton.groupfusion.net/modules/groups/integrated_home.phtml?gid=37623&sessionid=d0f7bf4fad09830a89e5dbb485b338aa',map:'http://maps.google.com/maps/place?q=Hylton+High+School,+Spriggs+Road,+Woodbridge,+VA&hl=en&cid=10882970138484782857'},
                  {name:'Woodson',url:'http://www.wtwoodsonsports.org/index.cfm?action=main.team&ID=3420',map:'javascript:void(0)'},
                  {name:'Lake Braddock',url:'http://www.lakebraddocksports.org/index.cfm?action=main.team&ID=2358',map:'http://maps.google.com/maps?q=Lake+Braddock+Secondary+School,+9200+Burke+Lake+Rd,+Burke,+VA+22015-1682&hl=en&sll=37.0625,-95.677068&sspn=37.735377,86.572266&vpsrc=0&hq=Lake+Braddock+Secondary+School,+9200+Burke+Lake+Rd,+Burke,+VA+22015-1682&t=h&z=15'},
                  {name:'South County',url:'http://www.stallionsports.org/index.cfm?action=main.team&ID=2594',map:'http://maps.google.com/maps?q=South+County+Secondary,+8501+Silverbrook+Road,+Lorton,+VA+22079-3015&hl=en&sll=38.803446,-77.265817&sspn=0.01816,0.042272&vpsrc=0&hq=South+County+Secondary,&hnear=8501+Silverbrook+Rd,+Lorton,+Virginia+22079&t=h&z=16'},
                  {name:'Washington-Lee',url:'http://w-lbaseball.org/',map:'http://maps.google.com/maps?q=Washington-Lee+High+School,+1301+North+Stafford+Street,+Arlington,+VA+22201-4840&hl=en&sll=38.717304,-77.238585&sspn=0.009091,0.021136&vpsrc=0&hq=Washington-Lee+High+School,+1301+North+Stafford+Street,+Arlington,+VA+22201-4840&t=h&z=15'},
                  {name:'MBBC',url:'javascript:void(0)',map:'javascript:void(0)'}
                  ];
YAHOO.WHS.LINESCORES_2011 = [
                        {'year':'2011','opponent':'Herndon','location':'home','linescore':'linescores/linescore_2011b_herndon.html','type':'season'},
                        {'year':'2011','opponent':'Herndon','location':'Herndon','linescore':'linescores/linescore_2011a_herndon.html','type':'season'},
                        {'year':'2011','opponent':'Oakton','location':'home','linescore':'linescores/linescore_2011a_oakton.html','type':'season'},
                        {'year':'2011','opponent':'Oakton','location':'Oakton','linescore':'linescores/linescore_2011b_oakton.html','type':'season'},
                        {'year':'2011','opponent':'Robinson','location':'home','linescore':'linescores/linescore_2011b_robinson.html','type':'season'},
                        {'year':'2011','opponent':'Robinson','location':'Robinson','linescore':'linescores/linescore_2011a_robinson.html','type':'season'},
                        {'year':'2011','opponent':'Chantilly','location':'home','linescore':'linescores/linescore_2011a_chantilly.html','type':'season'},
                        {'year':'2011','opponent':'Chantilly','location':'Chantilly','linescore':'linescores/linescore_2011b_chantilly.html','type':'season'},
                        {'year':'2011','opponent':'Centreville','location':'home','linescore':'linescores/linescore_2011a_centreville.html','type':'season'},
                        {'year':'2011','opponent':'Centreville','location':'Centreville','linescore':'linescores/linescore_2011b_centreville.html','type':'season'},
                        {'year':'2011','opponent':'Loudoun Valley','location':'','linescore':'linescores/linescore_2011_loudoun_valley.html','type':'season'},
                        {'year':'2011','opponent':'Berkeley','location':'Berkeley','linescore':'linescores/linescore_2011_berkeley.html','type':'season'},
                        {'year':'2011','opponent':'Starr\s Mill','location':'away','linescore':'','type':'season'},
                        {'year':'2011','opponent':'Hanahan','location':'away','linescore':'','type':'season'},
                        {'year':'2011','opponent':'Stonewall Jackson','location':'home','linescore':'linescores/linescore_2011_stonewall_jackson.html','type':'season'},
                        {'year':'2011','opponent':'McLean','location':'home','linescore':'linescores/linescore_2011_mclean.html','type':'season'},
                        {'year':'2011','opponent':'Paul VI','location':'home','linescore':'linescores/linescore_2011_pvi.html','type':'season'},
                        {'year':'2011','opponent':'Summerville','location':'Berkeley','linescore':'linescores/linescore_2011_summerville.html','type':'season'},
                        {'year':'2011','opponent':'Fort Dorcester','location':'Collins Park','linescore':'linescores/linescore_2011_ft_dorchester.html','type':'season'},
                        {'year':'2011','opponent':'James Island','location':'Hanahan','linescore':'linescores/linescore_2011_james_island.html','type':'season'},
                        {'year':'2011','opponent':'Woodbridge','location':'home','linescore':'linescores/linescore_2011_woodbridge.html','type':'season'},
                        {'year':'2011','opponent':'Robinson','location':'home','linescore':'linescores/linescore_2011c_robinson.html','type':'district'},
                        {'year':'2011','opponent':'Washington and Lee','location':'home','linescore':'','type':'district'},
                        {'year':'2011','opponent':'South County','location':'Lake Braddock','linescore':'','type':'region'}
                        ];
var iFrameHeights = [
                      {name:'home',height:580},
                      {name:'roster',height:935},
                      {name:'schedule',height:1087},
                      {name:'standings',height:320},
                      {name:'records',height:810},
                      {name:'map',height:530},
                      {name:'alumni',height:640},
                      {name:'honor_roll',height:1234},
                      {name:'photo_gallery',height:67},
                      {name:'camp',height:67}
                      ]
;
var columnDefsHonorRoll_1 = [
                             
                             {
                            	 key : "Year",
                            	 resizeable : true,
                            	 sortable: true
                             }, {
                            	 key : "Player",
                            	 resizeable : true
                             }, {
                            	 key : "Position",
                            	 resizeable : true,
                            	 sortable: true
                             }
                             
                             ];
var columnDefsHonorRoll_2 = [
                             
                             {
                            	 key : "Year",
                            	 resizeable : true,
                            	 sortable: true
                             }, {
                            	 key : "Player",
                            	 resizeable : true
                             }
                             
                             ];
var responseSchemaRosters = {
		fields : [ "SortFld", "Year", "Number", "Name", "Position",
				"Height", "Weight", "BT", "Grade" ]
};
var responseSchemaStandings = {
		fields : [ "Team", "Won", "Lost",
				"Pct", "GB" ]
};
var responseHonorRoll_1 = {
		fields : [ "Year", "Player", "Position" ]
};
var responseHonorRoll_2 = {
		fields : [ "Year", "Player" ]
};
var responseAlumni = {
		fields : [ "Player", "WHS Class", "College or Pro Team" ]
};
var responseRecords = {
		fields : [ "Blank", "Value", "Year" ]
};
var responseRecordsInd = {
		fields : [ "Blank", "Value", "Player", "Year" ]
};
var responseRecordsNoHitter = {
		fields : [ "Player", "Opponent", "Date" ]
};
var responseSched = {
		fields : [ "Year", "Date", "Day", "Opponent", "Location (time)", "WonLost", "Score", "Pitcher of Record", "GameType" ]
};
var columnDefsRecords = [
                         
                         {
                        	 key : "Blank",
                        	 label: '&nbsp;',
                        	 className: 'recordType'
                         }, {
                        	 key : "Value"
                         }, {
                        	 key : "Year"
                         }
                         
                         ];
var columnDefsRecordsInd = [
                         
                         {
                        	 key : "Blank",
                        	 label: '&nbsp;',
                        	 className: 'recordType'
                         }, {
                        	 key : "Value"
                         }, {
                        	 key : "Player"
                         }, {
                        	 key : "Year"
                         }
                         
                         ];
var columnDefsRecordsNoHitters = [

                                  {
                                	  key : "Player",
                                  }, {
                                	  key : "Opponent"
                                  }, {
                                	  key : "Date"
                                  }

                                  ];
function getLinescore(_year, _opponent, _loc) {
	var retval = '';
	switch(_year) {
		case '2011': {
			for(var i=0; i < YAHOO.WHS.LINESCORES_2011.length; i++) {
				Console.info('getLinescore() - searching \'' + _opponent + '\' for \'' + YAHOO.WHS.LINESCORES_2011[i].opponent +'\'; searching \'' + _loc + '\' for \'' + YAHOO.WHS.LINESCORES_2011[i].location + '\'');
				if (_opponent.indexOf(YAHOO.WHS.LINESCORES_2011[i].opponent) >= 0 && _loc.toLowerCase().indexOf(YAHOO.WHS.LINESCORES_2011[i].location.toLowerCase()) >= 0) {
					Console.info('getLinescore() - record found - linescore: ' + YAHOO.WHS.LINESCORES_2011[i].linescore);
					retval = YAHOO.WHS.LINESCORES_2011[i].linescore;
					break;
				}
			}
			break;
		}
		case '2012': {
			break;
		}
	}
	Console.info('getLinescore() - retval: ' + retval);
	return retval;
}
function calcWonLostDistrict(_schedule) {
	var numWon = 0;
	var numLost = 0;
	for (var i=0; i < _schedule.length; i++) {
		if (_schedule[i].GameType == 'district') {
			var score = _schedule[i].Score.split('-');
			var homeTeamRuns = new Number(score[0]);
			var visitorTeamRuns = new Number(score[1]);
			if (homeTeamRuns > visitorTeamRuns) {
				numWon++;
			} else if (homeTeamRuns < visitorTeamRuns) {
				numLost++;
			}
		}
	}
	return [numWon,numLost];	
}
function calcWonLost(_schedule) {
	var numWon = 0;
	var numLost = 0;
	for (var i=0; i < _schedule.length; i++) {
		var score = _schedule[i].Score.split('-');
		var homeTeamRuns = new Number(score[0]);
		var visitorTeamRuns = new Number(score[1]);
		if (homeTeamRuns > visitorTeamRuns) {
			numWon++;
		} else if (homeTeamRuns < visitorTeamRuns) {
			numLost++;
		}
	}
	return [numWon,numLost];
}
function trim(_str) {
	return _str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}
function getiFrameHeight(_str) {
	var retval = 500;
	for(var i=0; i < iFrameHeights.length; i++) {
//alert('getiFrameHeight() - _str: ' + _str + '\niFrameHeights[' + i + '].name: ' + iFrameHeights[i].name);
		if(_str.toLowerCase().indexOf(iFrameHeights[i].name) >= 0) {
			retval = iFrameHeights[i].height;
			break;
		}
	}
//alert('getiFrameHeight() - _str: ' + _str + '\nretval: ' + retval);
	return retval;
}
function calcOpeningDay(liId, spanId) {
	var spanObj = document.getElementById(spanId);
	var liObj = document.getElementById(liId);
	var today = new Date();
	var todayMs = today.getTime();
	var openingDay = new Date(2012, 2, 16, 0, 0, 0, 0);
	var openingDayMs = openingDay.getTime();
	var msBeforeOpeningDay = openingDayMs - todayMs;

	if (msBeforeOpeningDay >= 0) {
		spanObj.innerHTML = "" + Math.round(msBeforeOpeningDay/86400000);
	} else {
		spanObj.innerHTML = "";
		liObj.style.display = "none";
	}
}
function setSidebar(_id) {
	var objArr = document.getElementsByTagName('li');
//Console.info("setSidebar() - objArr.length: " + objArr.length + "; id to set: " + _id);
	for (var i=0; i < objArr.length; i++) {
		if (YAHOO.util.Dom.hasClass(objArr[i], 'menu')) {
			YAHOO.util.Dom.removeClass(objArr[i], 'active');
			YAHOO.util.Dom.removeClass(objArr[i], 'mouseover');
		}
	}

	YAHOO.util.Dom.addClass(_id, 'active');
}
function showTinyBoxHtml(_linescore, _event) {
	try {
		Console.info('showTinyBoxHtml() - _linescore: ' + _linescore + '; x: ' + _event.clientX + '; y: ' + _event.clientY);
		var iFrameWidth = 380;
		var posLeft = _event.clientX - iFrameWidth/2 - 10;
		var posTop = _event.clientY;
		TINY.box.show({iframe:_linescore,width:iFrameWidth,height:100,top:posTop,left:posLeft});
	} catch(e) {
		alert('showTinyBoxHtml() - ' + e);
	}
}
function setBackgroundColor (_id, _color) {
	var obj = document.getElementById(_id);
	obj.style.backgroundColor = _color;
}
function procSidebar(_menuId, _iframeId, _iframeSrc) {
//Console.info("procSidebar() - _menuId: " + _menuId);
	var menuIdPhotoGallery = 'menuPhotoGallery';
//	var menuIdAlumni = 'menuAlumni';
	var menuObj = document.getElementById(_menuId);
//	if (_menuId != menuIdPhotoGallery && _menuId != menuIdAlumni) {
	if (_menuId != menuIdPhotoGallery) {
//Console.info("procSidebar() - removing class 'open' from _menuId: " + menuIdPhotoGallery + " & " + menuIdDirections);
		YAHOO.util.Dom.removeClass(document.getElementById(menuIdPhotoGallery), 'open');
//		YAHOO.util.Dom.removeClass(document.getElementById(menuIdAlumni), 'open');
	} else {
		YAHOO.util.Dom.removeClass(document.getElementById(menuIdPhotoGallery), 'open');
//		YAHOO.util.Dom.removeClass(document.getElementById(menuIdAlumni), 'open');
		if (!YAHOO.util.Dom.hasClass(menuObj, 'open')) {
//Console.info("procSidebar() - adding class 'open' to _menuId: " + _menuId);
			YAHOO.util.Dom.addClass(menuObj, 'open');
		}
	}
	setSidebar(_menuId);
	setIframeViaParent(_iframeId, _iframeSrc);
}
function getImgPath(_arr, _name) {
//Console.info("getImgPath() - _name: " + _name);
//Console.info("getImgPath() - _arr.length: " + _arr.length);
	var retval = '';
	for(var i=0; i < _arr.length; i++) {
//Console.info("getImgPath() - _arr[" + i + "].name: " + _arr[i].name);
		if (_arr[i].name == _name) {
			retval = 'img/' +_arr[i].path;
			break;
		}
	}
//Console.info("getImgPath() - retval: " + retval);
//alert("getImgPath() - retval: " + retval);
	return retval;
}
/*
function getSchoolBaseballUrl(_arr, _name) {
//Console.info("getSchoolBaseballUrl() - _name: " + _name);
//Console.info("getSchoolBaseballUrl() - _arr.length: " + _arr.length);
		var retval = 'javascript:void(0)';
		for(var i=0; i < _arr.length; i++) {
//Console.info("getSchoolBaseballUrl() - _arr[" + i + "].name: " + _arr[i].name);
			if (_name.indexOf(_arr[i].name) >= 0) {
				retval = _arr[i].url;
				break;
			}
		}
//Console.info("getSchoolBaseballUrl() - retval: " + retval);
//alert("getSchoolBaseballUrl() - retval: " + retval);
		return retval;
}
*/
function getSchoolUrl(_arr, _name, _type) {
Console.info("getSchoolUrl() - _name: " + _name);
Console.info("getSchoolUrl() - _arr.length: " + _arr.length);
	var retval = YAHOO.WHS.JS.VOID;
	for(var i=0; i < _arr.length; i++) {
Console.info("getSchoolUrl() - _arr[" + i + "].name: " + _arr[i].name);
		if (_name.indexOf(_arr[i].name) >= 0) {
			if (_type == 'url') {
				retval = _arr[i].url;
			} else if (_type == 'map') {
				retval = _arr[i].map;
			}
			break;
		}
	}
Console.info("getSchoolUrl() - retval: " + retval);
//alert("getSchoolUrl() - retval: " + retval);
	return retval;
}
function getCollegeUrl(_arr, _name) {
//Console.info("getCollegeUrl() - _name: " + _name);
//Console.info("getCollegeUrl() - _arr.length: " + _arr.length);
	var retval = 'javascript:void(0)';
	for(var i=0; i < _arr.length; i++) {
//Console.info("getCollegeUrl() - _arr[" + i + "].name: " + _arr[i].name);
		if (_name.indexOf(_arr[i].name) >= 0) {
			retval = _arr[i].url;
			break;
		}
	}
//Console.info("getCollegeUrl() - retval: " + retval);
//alert("getCollegeUrl() - retval: " + retval);
	return retval;
}
function isHomeGame(_arg) {
	var retval = false;
	var homeFlag = 'home';
	try {
		retval = _arg.toLowerCase().indexOf(homeFlag) >= 0;
	} catch(e) {
		retval = false;
	}
	return retval;
}
function writePhoto(_contentId, _playerName, _path) {
Console.info("writePhoto() - _contentId: " + _contentId + "; _playerName: " + _playerName + "; _path: " + _path);
	document.write("<a href=\"javascript:void(0)\" onclick=\"return hs.htmlExpand(this, {contentId: '" + _contentId + "'})\" class=\"highslide\">" + _playerName + "</a>");
	document.write("<div class=\"highslide-html-content\" id=\"" + _contentId + "\">");
	document.write("<div class=\"highslide-header\">");
	document.write("<ul>");
	document.write("<li class=\"highslide-move\">");
	document.write("<a href=\"javascript:void(0)\" onclick=\"return false\">Move</a>");
	document.write("</li>");
	document.write("<li class=\"highslide-close\">");
	document.write("<a href=\"javascript:void(0)\" onclick=\"return hs.close(this)\">Close</a>");
	document.write("</li>");
	document.write("</ul>");
	document.write("</div>");
	document.write("<div class='highslide-body'><img src='img/" + _path + "' alt='" + _playerName + "'title='" + _playerName + "'></div>");
	document.write("</div>");
}

function writeLinescore(_contentId, _winLose, _path) {
	document.write("<a href=\"javascript:void(0)\" onclick=\"return hs.htmlExpand(this, {contentId: '" + _contentId + "'})\" class=\"highslide\">" + _winLose + "</a>");
	document.write("<div class=\"highslide-html-content\" id=\"" + _contentId + "\">");
	document.write("<div class=\"highslide-header\">");
	document.write("<ul>");
	document.write("<li class=\"highslide-move\">");
	document.write("<a href=\"javascript:void(0)\" onclick=\"return false\">Move</a>");
	document.write("</li>");
	document.write("<li class=\"highslide-close\">");
	document.write("<a href=\"javascript:void(0)\" onclick=\"return hs.close(this)\">Close</a>");
	document.write("</li>");
	document.write("</ul>");
	document.write("</div>");
	document.write("<div class='highslide-body'><iframe width='100%' style='border-width:1px;' src='" + _path + "'></iframe>");
	document.write("</div>");
}

function writeLightBoxImg(_hrefId, _path, _relTag, _title, _firstImg) {
	if (_firstImg) {
		document.write("<p>");
	}

	document.write("<a id='" + _hrefId + "' href='img/" + _path + "' rel='lightbox[" + _relTag + "]' title='" + _title + "'>" + _title + "</a>");
	
	if (_firstImg) {
		document.write("<\p>");
	}

}

function writeLightBoxImg_2(_path, _relTag, _title, _firstImg) {
	if (_firstImg) {
	
		document.write("<a class='photo' href='img/" + _path + "' rel='lightbox[" + _relTag + "]'title='" + _title + "'>" + _title + "</a>");	

	} else {
	
		document.write("<a href='img/" + _path + "' rel='lightbox[" + _relTag + "]'title='" + _title + "'></a>");	

	}
}

function setIframeViaParent (_frameId, _iframeSrc) {
    try {
        parent.document.getElementById(_frameId).src = _iframeSrc;
    } catch(_e) {
        showException("setIframeViaParent()", _e);
    }
}
function setInnerHtml(_id, _text) {
    var obj = null;

    if (parent) {
        obj = parent.document.getElementById(_id);
    } else {
        obj = document.getElementById(_id);
    }

    try {
        if (obj != null || typeof obj != "undefined") {
            obj.innerHTML = _text;
        }
    } catch(e) {
        showException("setInnerHtml()", "error w/ _od: '" + _id + "'\n\n" + e);
    }
}
function showException(_source, _e) {
    alert(_source + " - exception\n\n" + _e);
}
