var $jq = jQuery;
var selectSport = "";
var selectDivision = "";
var btnFullScoreboard = "";
var strSportName = "";
var strDivisionID = "";

$jq(function() {
	// ~~~~~ cache elements ~~~~~			
	selectSport = $jq('#schedulesport');
	selectDivision = $jq('#scheduledivision');
	btnFullScoreboard = $jq('div.full_scoreboard a');
	
	// ~~~~~ reset elements ~~~~~
	if(selectSport.length){
		selectSport.empty().append('<option>Loading...</option>').selectbox();
	};
	if(selectDivision.length){
		selectDivision.empty().append('<option>Loading...</option>').selectbox();
	};
	
	if(btnFullScoreboard.length){
		$jq(btnFullScoreboard).parent("li").hide();
	};
	
	// ~~~~~ init ~~~~~
	$jq.ajax({
		type:"GET",
		url:"/scheduleprocessor.aspx?type=sport",
		success:function(xml){
			parseSports(xml);
		}
	});
	
});	

function loadSchedule(path) {
	var flash = getFlashMovie("schedule_flash");
	flash.loadData(path);
};

// /////////////////////////////////////////////////////////////////////////
function parseSports(xml) {
	
	var aList = [];
	var menuArrayID = [];
	var menuArrayDesc = [];
	
	// ~~~~~ reset elements ~~~~~
	$jq('#schedulesport_container').remove();
	$jq('#schedulesport_input').remove();
	$jq(btnFullScoreboard)
		.attr('href','/highschoollanding.aspx?id=1719')
		.css({'cursor':'pointer','opacity':'1'}).click(function(){ return true });
	
	// ~~~~~ parse xml to array ~~~~~
	$jq(xml).find("Sport").each(function()
	{
		// filter: display FOOTBALL ONLY
		switch ( $jq(this).attr('SportTypeId') )
		{
			case "1": //College Football
			case "3": //College Basketball
			case "4": //NBA
			case "5": //Womens College Basketball
			case "6": //HS Football
			case "7": //HS Basketball
			case "8": //WHS Basketball
				menuArrayID.push($jq(this).attr('SportTypeId')+"|"+$jq(this).attr('Title'));
				menuArrayDesc.push($jq(this).attr('Title'));
				break;
		}
		//if ($jq(this).attr('Title').toLowerCase().indexOf('football') > -1 || $jq(this).attr('Title').toLowerCase().indexOf('basketball') > -1)
		//{
		//};
	});
	
	// ~~~~~ parse array to <options> list ~~~~~
	for(var i = 0, il = menuArrayID.length; i < il; i++){
		var isSelected = '';
				
		var sportId = $jq('#SportTypeId').val();
		if(sportId==menuArrayID[i].substring(menuArrayID[i].indexOf("|")-1,menuArrayID[i].indexOf("|")))
		{
		    isSelected = 'selected';
		}
		else if(sportId==0 && menuArrayID[i].substring(menuArrayID[i].indexOf("|")-1,menuArrayID[i].indexOf("|"))==6)
		{
		    //Default to High School Football id SportTypeId is '0' (None)
		    isSelected = 'selected';
		}
		
		aList[aList.length] = "<option value='"+menuArrayID[i]+"' " +isSelected + ">"+menuArrayDesc[i]+"</option>";
	};
	
	// ~~~~~ populate SPORT dropdown; append events ~~~~~
	$jq(selectSport).html(aList.join('')).selectbox();
	$jq('#schedulesport_container ul li').click(function(e){
		e.preventDefault();
		strSportName = $jq(this).text();
		//loadSchedule("/scheduleprocessor.aspx?type=schedule&id="+strDivisionID);
		initParseDivisions(xml,strSportName);
	});
	
	// ~~~~~ init: divisions list ~~~~~
	strSportName = $jq('#schedulesport_container li.selected').text();
	initParseDivisions(xml,strSportName);
};

// /////////////////////////////////////////////////////////////////////////
function initParseDivisions(xml,param){

	$jq.ajax({
		type:"GET",
		url:"/scheduleprocessor.aspx?type=division",
		success:function(msg){
			var divId = parseDivisions(msg,param);
			
	        // ===== FLASH: Schedule Module ===============
            if ($jq('#schedule_flash').length) {
		        var flashvars = {feed:"/scheduleprocessor.aspx?type=schedule|id="+divId};
		        var params = {};
		        params.wmode = "transparent";
		        params.allowscriptaccess = "always";
		        var attributes = {};
		        swfobject.embedSWF("/flash/schedule.swf", "schedule_flash", "720", "82", "9.0.0", false, flashvars, params, attributes);
	        };
		}
	});
	
};

// /////////////////////////////////////////////////////////////////////////
function parseDivisions(xml,param) {
	var sportName = param;	
	//now that they have selected a sport update the full scoreboard link
	//this is an ugly hack
	//parse the value of the dropdown 'schedulesport_input_3|College Basketball'
	//and match the string to setermine where it goes
	///highschoollanding.aspx?id=1719
	//sportname
	$jq(btnFullScoreboard).parent('li').show();
	switch(sportName) {
		case "College Football":
			$jq(btnFullScoreboard).attr('href',"/CollegeScoreboard.aspx?id=2125"); break;
		case "College Baseball":
			$jq(btnFullScoreboard).attr('href',"/CollegeScoreboard.aspx?id=2191"); break;
		case "College Basketball":
			$jq(btnFullScoreboard).attr('href',"/CollegeScoreboard.aspx?id=2192"); break;
		case "National Basketball Association":
		    //$jq(btnFullScoreboard).parent("li").hide();
			$jq(btnFullScoreboard).attr('href',"/CollegeScoreboard.aspx?id=3456"); break;
			break;
		case "Womens College Basketball":
		    //$jq(btnFullScoreboard).parent("li").hide();
			$jq(btnFullScoreboard).attr('href',"/CollegeScoreboard.aspx?id=2385"); break;
			break;
		case "Womens College Softball":
		    //$jq(btnFullScoreboard).parent("li").hide();
			$jq(btnFullScoreboard).attr('href',"/CollegeScoreboard.aspx?id=16645"); break;
			break;
		case "High School Football":
			$jq(btnFullScoreboard).attr('href',"/scoreboard.aspx?id=1719"); break;	
		case "High School Basketball":
			$jq(btnFullScoreboard).attr('href',"/scoreboard.aspx?id=2123"); break;
			
		case "Womens High School Basketball":
		    //$jq(btnFullScoreboard).parent("li").hide();
			$jq(btnFullScoreboard).attr('href',"/scoreboard.aspx?id=2124"); break;
			break;
		default:
			$jq(btnFullScoreboard).attr('href',"/scoreboard.aspx?id=1719"); break;
	};

	// ~~~~~ reset elements ~~~~~
	$jq('#scheduledivision_container').remove();
	$jq('#scheduledivision_input').remove();
	
	var aList = [];
	var menuArrayID = [];
	var menuArrayDesc = [];
	
	// ~~~~~ parse xml to array ~~~~~
	$jq(xml).find("DivisionType").each(function(e){
		if ($jq(this).attr('SportType').toLowerCase() == sportName.toLowerCase()) {	
			menuArrayID.push($jq(this).attr('DivisionTypeId'));
			menuArrayDesc.push($jq(this).attr('Description'));
		}
	});
	
	// ~~~~~ parse array to <options> list ~~~~~
	for(var i = 0, il = menuArrayID.length; i < il; i++){
		aList[aList.length] = "<option value='"+menuArrayID[i]+"' "+((i==0)?'selected':'')+">"+menuArrayDesc[i]+"</option>";
	};
	strDivisionID = menuArrayID[0];
	
	// ~~~~~ populate SPORT dropdown; append events ~~~~~
	$jq(selectDivision).html(aList.join('')).selectbox();
	$jq('#scheduledivision_container ul li').click(function(e){
		e.preventDefault();
		strDivisionID = $jq(this).attr('id').split("_")[2];
		loadSchedule("/scheduleprocessor.aspx?type=schedule&id="+strDivisionID);
	});
	return strDivisionID;
}
