// tournaments shared js
// John Jimenez

// Pulled from /.element/ssi/js/3.0/sect/tournaments.js
	// For Videos
	var video_context = 'tournaments';
// /Pulled from /.element/ssi/js/3.0/sect/tournaments.js


document.observe("dom:loaded", function() {
	$$("a.tourVideoAnchor").each(function(item) {
		item.observe('click', function(event) {
			playVideo(this.pathname);
			Event.stop(event);
		});
	});
});

function getTournamentTimes(tID) {

	var rawTimesObj = false;
	var theURL = '/.element/ssi/auto/3.0/sdms/data/broadcast/tournaments/'+tID+'/broadcast_times.json';

	// Set up globalTourDebugMSG if it doesn't already exist
	if (!window.globalTourDebugMSG) { globalTourDebugMSG = ''; }

	new Ajax.Request(theURL, {
		method: 'get',
		asynchronous: false,
		onSuccess: function(t) { rawTimesObj = t.responseText.evalJSON(true).tour; alert(rawTimeObj); },
		onFailure: function(t) { globalTourDebugMSG += '---\ngetTournamentTimes('+tID+') failed.\n\tError: "'+t.status+' '+t.statusText+'"\n\tURL:'+theURL+'\n'; alert(globalTourDebugMSG); }
	});

	if (rawTimesObj) { rawTimesObj = CleanTimeObj(rawTimesObj); }

	return rawTimesObj;
	
}

function CleanTimeObj(timeObj) {

	if (timeObj.times){

		// Create easy access to the tournament id.
		timeObj.tID = timeObj.code+timeObj.id+'';

		timeObj.tv_times = []; // Holder for TV Times
		timeObj.xm_times = []; // Holder for XM Times
		timeObj.nextTV = false; // Holder for the *Next* TV Air Time.

		// Loop through the times to clean them up.
		for (var i=0, tLen=timeObj.times.length; i<tLen; i++) {

			var tvDay = timeObj.times[i].date.split('\/');
			if (tvDay[0]<10){ tvDay[0]= '0'+tvDay[0]; }
			if (tvDay[1]<10){ tvDay[1]= '0'+tvDay[1]; }
			var sTime = timeObj.times[i].stime.split(':');
			if (sTime[0]>12){
				sTime[0] -= 12;
				timeObj.times[i].standardSTime = sTime[0]+':'+sTime[1];
				timeObj.times[i].standardSTimeAPM = 'p'
			} 
			else if(sTime[0] == 12){
				sTime[0] = 12;
				timeObj.times[i].standardSTime = sTime[0]+':'+sTime[1];
				timeObj.times[i].standardSTimeAPM = 'p'
			}
			else {
				if (sTime[0] == '00' || sTime[0] == '0'){sTime[0] = 12;}
				timeObj.times[i].standardSTime = sTime[0]+':'+sTime[1];
				timeObj.times[i].standardSTimeAPM = 'a'
			}
			var eTime = timeObj.times[i].etime.split(':');
			if (eTime[0]>12){
				eTime[0] -= 12;
				timeObj.times[i].standardETime = eTime[0]+':'+eTime[1];
				timeObj.times[i].standardETimeAPM = 'p'
			} 
			else if(sTime[0] == 12){
				sTime[0] = 12;
				timeObj.times[i].standardSTime = sTime[0]+':'+sTime[1];
				timeObj.times[i].standardSTimeAPM = 'p'
			}
			else {
				if (eTime[0] == '00' || eTime[0] == '0'){eTime[0] = 12;}
				timeObj.times[i].standardETime = eTime[0]+':'+eTime[1];
				timeObj.times[i].standardETimeAPM = 'a'
			}
			timeObj.times[i].month = tvDay[0];
			timeObj.times[i].month_day = tvDay[1];

			// YYYYMMDD

			var tvDateCode = timeObj.times[i].year+tvDay[0]+''+tvDay[1];

			if ( (todaysCode<=tvDateCode && timeObj.nextTV == false) ) {
				timeObj.nextTV = tvDateCode;
				timeObj.month = tvDay[0];
				timeObj.month_day = tvDay[1];
				timeObj.day = timeObj.times[i].day;
				timeObj.year = timeObj.times[i].year;
			}

			if (!timeObj.tv_times[tvDateCode]){ timeObj.tv_times[tvDateCode] = []; }
			switch (timeObj.times[i].network.toLowerCase()) {
				case 'sirius-xm': useObj = 'xm'; break;
				default: useObj = 'tv'; break;
			}
			if (!timeObj.tv_times[tvDateCode][useObj]){ timeObj.tv_times[tvDateCode][useObj] = []; }
			timeObj.tv_times[tvDateCode][useObj].push(timeObj.times[i]);

			// if it is an XM Time, Push it to the XM Variable
			if (useObj == 'xm'){ timeObj.xm_times.push(timeObj.times[i]) };
		}
	}

	return timeObj;
}


function doRRLiveEssentials(timeObj, inOpts) {

	var months = ["", "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep", "Oct","Nov","Dec"];
	var days = {"MON":"Mon","TUE":"Tue","WED":"Wed","THU":"Thu","FRI":"Fri","SAT":"Sat","SUN":"Sun"};
	var networkIcons = {"golf":"golf_channel.gif","cbs":"cbs.gif","nbc":"nbc.gif","tnt":"tnt.gif"};


	var options = $H({
		"parentID"     : "tourRRLiveEssentialsContainer",
		"tournName"    : "tourRRLE_TournName",
		"tvtContainer" : "tourRRLE_TVTimesContainer", // tvt = "TV Times"
		"tvtDate"      : "tourRRLE_TVTDate",
		"tvtChannels"  : "tourRRLE_TVTChannels",
		"xmtContainer" : "tourRRLE_XMTimesContainer", // xmt = "XM Times"
		"xmtDates"     : "tourRRLE_XMTTime"
	});

	if (inOpts) { options = options.merge(inOpts); }

	// Set up globalTourDebugMSG if it doesn't already exist
	if (!window.globalTourDebugMSG) { globalTourDebugMSG = ''; }

	if (timeObj) {
		//$(options.get("tournName")).innerHTML = timeObj.name;

		// Handle TV
		if (timeObj.tv_times[timeObj.nextTV].tv){
			$(options.get("tvtDate")).innerHTML = days[timeObj.day]+', '+months[parseInt((timeObj.month)*1)]+' '+timeObj.month_day;
			var tempOut = '';
			for (var k=0, tvLen=timeObj.tv_times[timeObj.nextTV].tv.length; k<tvLen ; k++) {
				var thisTVTime = timeObj.tv_times[timeObj.nextTV].tv[k];
				var ico = networkIcons[thisTVTime.network.toLowerCase()];
				var sTime = thisTVTime.standardSTime;
				var eTime = thisTVTime.standardETime;
				
				// If time is o'clock, drop the zeros
				//if (sTime.split(':')[1]=='00'){sTime = sTime.split(':')[0]}
				//if (eTime.split(':')[1]=='00'){eTime = eTime.split(':')[0]}

				// If A/P.M is the same, only add it to the eTime.
				if (thisTVTime.standardETimeAPM == thisTVTime.standardSTimeAPM){
					eTime += thisTVTime.standardETimeAPM;
				} else {
					sTime += thisTVTime.standardSTimeAPM;
					eTime += thisTVTime.standardETimeAPM;
				}

				//var optClass = (tvLen==2)? ' class="tourTVTimesSingleRowItem"' : '';
				optClass = '';
				tempOut += '<li' + optClass + '><img src="/.element/img/5.0/global/channels/'+ico+'"> '+sTime+'-'+eTime+'</li>';
			} // k for loop
			$(options.get("tvtChannels")).innerHTML = "<ul>"+tempOut+"</ul>";
		}
		else { $(options.get("tvtContainer")).addClassName('hide'); }

		// XM 
		if (timeObj.xm_times && timeObj.xm_times.length>1) {
			var tempOut = '';
			for (var k=0, xmLen=timeObj.xm_times.length; k<xmLen ; k++) {
				var thisXMTime = timeObj.xm_times[k];
				var thisDay = days[thisXMTime.day];
				var sTime = thisXMTime.standardSTime;
				var eTime = thisXMTime.standardETime;
				// If time is o'clock, drop the zeros
				if (sTime.split(':')[1]=='00'){sTime = sTime.split(':')[0]}
				if (eTime.split(':')[1]=='00'){eTime = eTime.split(':')[0]}

				// If A/P.M is the same, only add it to the eTime.
				if (thisXMTime.standardETimeAPM == thisXMTime.standardSTimeAPM){
					eTime += thisXMTime.standardETimeAPM;
				} else {
					sTime += thisXMTime.standardSTimeAPM;
					eTime += thisXMTime.standardETimeAPM;
				}

				tempOut += '<li>'+thisDay+': '+sTime+'-'+eTime+'</li>';
			} // k for loop
			$(options.get("xmtDates")).innerHTML = '<ul>'+tempOut+'</ul>';
		} else { $(options.get("xmtContainer")).addClassName('hide'); }
	} else { 
		// Hide the Right Rail Container
		if ($(options.get("parentID"))) { $(options.get("parentID")).addClassName('hide'); }
		globalTourDebugMSG += '---\ndoRRLiveEssentials() Error. No Time Object Passed.\n';
	}

}

