// HIGHLIGHT NAVIGATION ---------------------	
function extractPageName(hrefString)
{
	var arr = hrefString.split('/');
	return  (arr.length<2) ? hrefString : arr[arr.length-2].toLowerCase() + arr[arr.length-1].toLowerCase();
}
	
function setActiveMenu(arr, crtPage)
{
	
	for (var i=0; i<arr.length; i++)
	{
		if(crtPage == extractPageName(arr[i].href))
		{
			if (arr[i].parentNode.tagName != "DIV")
			{
				arr[i].className = "active";
				arr[i].parentNode.className = "active";
			}
		}
	}
}
	
function setPage()
{
	hrefString = document.location.href ? document.location.href : document.location;
	
	if (document.getElementById("tourPageNav")!=null)
		setActiveMenu(document.getElementById("tourPageNav").getElementsByTagName("a"), extractPageName(hrefString));
}

function holeNavigator(_holenum) {
	var url = '/kodakchallenge/2009/tourofholes/' + _holenum + '/content.html';
	interimActiveHole = _holenum;
	
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			var notice = $('notice');
			if (transport.responseText.match(/tourHolesT1/)) {
				notice.update(transport.responseText);
				activeHole = interimActiveHole;
				SpriteClassControl();
				moveCarousel();
			}
		}
	});

	return false;
}

var MAXIMUM_HOLES = 30;
var activeHole = 0;
var interimActiveHole;
var MAX_HOLES_ONSCREEN = 19;

PGATOUR.addEvent(window, 'load', function() {
	if (!location.href.toString().match(/tourofholes/)) {
		return;
	}

	var holeIndex = 0;
	var matchquery = location.search.toString().match(/h=(\d+)/);

	if (matchquery && matchquery.length > 1) { holeIndex = matchquery[1]; }
	// else { holeIndex = 3; }
	else { // Added by John for Ticket PGATOUR-6068
		var url = '/.element/ssi/sect/3.0/kodakchallenge/schedule.xml';
		new Ajax.Request(url, {
			method: 'get',
			onSuccess: function(transport) {
				var refNodeId;
				var tournamentCount = 0;
				var dateXML;
				var tournaments = {};
				tournaments.meta = [];

				if (transport.responseText.match(/schedule/)) {
					dateXML = transport.responseXML.getElementsByTagName('date');
					for (var i = 0; i < dateXML.length; i++) {
						dateAssessCode = assessDate(dateXML[i]);
						//PGATOUR.log.write(dateAssessCode);
						if (dateAssessCode >= 0 && tournamentCount == 0) {
							refNodeId = dateXML[i].parentNode.getAttribute('id');
							holeNavigator(refNodeId);
							break;
						}
					}
				}

			}
		});
	}
	if (holeIndex > 0 && holeIndex <= MAXIMUM_HOLES) {
		holeNavigator(holeIndex);
	}

	SpriteClassControl();
});

var baselineDate;
function assessDate(_oDateXML) {
	
	var start = new Date(_oDateXML.getElementsByTagName('start')[0].childNodes[0].nodeValue);
	var end = new Date(_oDateXML.getElementsByTagName('end')[0].childNodes[0].nodeValue);
	baselineDate = new Date(webserverDate);
	
	if (start > baselineDate) {
		return 0;
	}
	else if (start <= baselineDate && end >= baselineDate) {
		return 1;
	}
	else if (start < baselineDate && end < baselineDate) {
		return -1;
	}
	else {
		return -1;
	}
}

function grabNodes(_xml, _refId) {
	
}

PGATOUR.addEvent(window, 'load', function() {
	if (location.href.toString().match(/tourofholes/)) {
		return;
	}

	var url = '/.element/ssi/sect/3.0/kodakchallenge/schedule.xml';
	new Ajax.Request(url, {
		method: 'get',
		onSuccess: function(transport) {
			var numOfTableDataRows = 5;
			var outputElementRef = $('tourKodakCSchedule');
			var oHTML_ = '<table border="0" cellpadding="0" cellspacing="0">' +
						 '<tr class="tourSchedHeader">' +
						 '<td class="c1">Dates</td>' +
						 '<td class="c2">Hole</td>' +
						 '<td class="c3">Tournament</td>' +
						 '</tr>';
			
			var tableTemplate = new Template(
				'<tr class="#{className}">' +
				'<td class="c1">#{date}</td>' +
				'<td class="c2">#{hole}</td>' +
				'<td class="c3"><a href="#{url}">#{title}</a></td>' +
				'</tr>'
			);

			var refNodeId;
			var tournamentCount = 0;
			var dateXML;
			var tournaments = {};
			tournaments.meta = [];

			if (transport.responseText.match(/schedule/)) {
				dateXML = transport.responseXML.getElementsByTagName('date');
				for (var i = 0; i < dateXML.length; i++) {
					dateAssessCode = assessDate(dateXML[i]);
					//PGATOUR.log.write(dateAssessCode);
					if (dateAssessCode >= 0 && tournamentCount == 0) {
						refNodeId = dateXML[i].parentNode.getAttribute('id');
						//PGATOUR.log.write("refNodeId: " + refNodeId);
						grabNextFiveNodes(refNodeId);
						break;
					}
				}

				if (tournaments.meta.length == 5) {
					for (var m = 0; m < tournaments.meta.length; m++) {
						oHTML_ += tableTemplate.evaluate(tournaments.meta[m]);
					}
				}
			}

			oHTML_ += '</table>'
			outputElementRef.update(oHTML_);
			
			function grabNextFiveNodes(_refId) {
				var challengeXML = transport.responseXML.getElementsByTagName('challenge');
				var j;
				
				for (var i = 0; i < challengeXML.length; i++) {
					if (challengeXML[i].getAttribute('id') == _refId) {
						if ((i + 5) >= challengeXML.length) {
							j = challengeXML.length - 5;
						}
						else { j = i; }
						
						while (tournamentCount++ < 5) {
							addToArray(challengeXML[j++], tournamentCount%2);
						}
						
						break;
					}
				}
			}
			
			function addToArray(_nodeRef,_classId) {
				var className = (_classId == 1)? 'odd' : 'even';
				tournaments.meta.push({date:_nodeRef.getElementsByTagName('range')[0].childNodes[0].nodeValue, 
							hole:_nodeRef.getElementsByTagName('hole')[0].getAttribute('id'), 
							url:_nodeRef.getElementsByTagName('url')[0].childNodes[0].nodeValue,
							title:_nodeRef.getElementsByTagName('tournament')[0].childNodes[0].nodeValue,
							className:className});
			}
		}
	});
});

window.onload = function(){
	$A(document.getElementsByTagName("table")).each(function(table){
		$A(table.getElementsByTagName("tr")).each(function(row,i){
			if ( i % 2 == 1 )
				Element.addClassName( row, "odd" );
		});
	});
	
	try {
	var oElem = $('tourStoryHeadline');
	var oH1Ref;

	if (oElem) {
		oH1Ref = (oElem.getElementsByTagName('h1').length > 0)? oElem.getElementsByTagName('h1')[0] : null;
		if (oH1Ref && oH1Ref.childNodes[0].nodeValue.match(/standings/i)) {
			var classElem = getElementByClass('tourStoryInfo', 'div', $('tourStoryBlob'));
			classElem.innerHTML = '&#160;&#160;&#160;';
		}

	}
	}
	catch(e) {
		// alert(e.message);
	}
};


function SpriteClassControl() {

	var refElement = document.getElementById('tourHolesNavHoles');
	var test = '';
	var aElements = refElement.getElementsByTagName('a');
	var elementIdBase = 'tourHolesNavHole'
	for (var i = 0; i < aElements.length; i++) {
		elementId = elementIdBase + i;
		if (i == (activeHole-1)) {
			aElements[i].className = 'active';
		}
		else {
			aElements[i].className = 'inactive';
		}
	}
}

function onNextButtonClick() {
	var holeindex = activeHole + 1;
	if (holeindex <= MAXIMUM_HOLES) {
		holeNavigator(holeindex);
	}
}

function onBackButtonClick() {
	var holeindex = activeHole - 1;
	if (holeindex >= 1) {
		holeNavigator(holeindex);
	}
}

function moveCarousel() {
	if (activeHole>=MAX_HOLES_ONSCREEN) {
		hCarousel.scrollTo(activeHole-1);
	} else {
		lowestVisable = hCarousel.currentIndex();
		nextLowestVisable = (lowestVisable)-MAX_HOLES_ONSCREEN;
		if ((activeHole-1) <= lowestVisable){
			if (nextLowestVisable>0) {
				hCarousel.scrollTo(nextLowestVisable);
			} else {
				hCarousel.scrollTo(0);
			}
		}
	}
}