<!--

//////////////////////////////////////////////////////
// Functions to handle homepage news panel animation
//////////////////////////////////////////////////////

var panelList;
var newsItems = new Array;
var newsItemWidths = new Array;
var currRevealX = 0;
var currRevealWidth = 0;
var oldItemHTML = "";

// Function to store all the news items in the page
function buildNewsItems() {
	if (document.getElementById("newsPanelItems")) {
		panelList = document.getElementById("newsPanelItems").getElementsByTagName("DD");
		panelFader = document.getElementById("newsPanelFader");
		for (var i=0; i<panelList.length; i++) {
			newsItems.push(panelList[i].getElementsByTagName("SPAN")[1]);
			newsItemWidths.push(panelList[i].getElementsByTagName("SPAN")[1].offsetWidth);
		}
		// Show the first title
		setTimeout("showItem(0);", 1000);
	}
}

// Function to fade in the specified title
function showItem(itemNo) {
	// Hide the news item text, ready for reveal
	oldItemHTML = newsItems[itemNo].innerHTML;
	newsItems[itemNo].innerHTML += "<span id=\"reveal" + itemNo + "\" class=\"newsPanelReveal\"></span>";
	document.getElementById("reveal" + itemNo).style.top = "0px";
	document.getElementById("reveal" + itemNo).style.left = "0px";
	document.getElementById("reveal" + itemNo).style.width = newsItemWidths[itemNo] + "px";
	currRevealWidth = newsItemWidths[itemNo];
	currRevealX = 0;
	// Show the news item
	panelList[itemNo].style.display = "block";
	// Start title fade in
	setTimeout("fadeText(" + itemNo + ",true);", 1000);
}

// Function to fade a news title in
function fadeText(itemNo,fadeIn) {
	if (fadeIn) {
		if (Spry) {
			Spry.Effect.DoFade(panelFader, { duration: 500, from: 100, to: 0, toggle: false, finish: function() { panelFader.style.display = "none"; setTimeout("revealText(" + itemNo + ");", 500); } });
		} else {
			panelFader.style.display = "none";
			setTimeout("revealText(" + itemNo + ");", 500);
		}
	} else {
		if (Spry) {
			Spry.Effect.DoFade(panelFader, { duration: 500, from: 0, to: 100, toggle: false, finish: function() { panelFader.style.display = "block"; nextItem(itemNo); } });
		} else {
			panelFader.style.display = "block";
			nextItem(itemNo);
		}
	}
}

// Function to reveal the item text
function revealText(itemNo) {
	currRevealX += 5;
	currRevealWidth -= 5;
	if (currRevealX >= newsItemWidths[itemNo] || currRevealWidth <= 0) {
		currRevealX = newsItemWidths[itemNo];
		currRevealWidth = 0;
		document.getElementById("reveal" + itemNo).style.left = currRevealX + "px";
		document.getElementById("reveal" + itemNo).style.width = currRevealWidth + "px";
		newsItems[itemNo].innerHTML = oldItemHTML; // Remove 'reveal' SPAN
		setTimeout("fadeText(" + itemNo + ",false);", 4000);
	} else {
		document.getElementById("reveal" + itemNo).style.left = currRevealX + "px";
		document.getElementById("reveal" + itemNo).style.width = currRevealWidth + "px";
		setTimeout("revealText(" + itemNo + ");", 30);
	}
}

// Function to move to the next news item
function nextItem(itemNo) {
	if (panelList.length > 1) {
		// Hide the news item (to show the next one)
		panelList[itemNo].style.display = "none";
		// Move to next item
		itemNo += 1;
		if (itemNo >= panelList.length) itemNo = 0;
		showItem(itemNo);
	}
}


// Email address validation
function isValidEmail(src) {
	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp(emailReg);
	return regex.test(src);
}

// register panel functions
var initRegisterText = "Enter your email address...";

function checkRegisterField(fieldMode) {
	searchField = document.getElementById("registerEmail");
	if(fieldMode) {
		// enters field
		searchField.className = "active";
		if(searchField.value == initRegisterText) searchField.value = "";
	} else {
		// exits field
		searchField.className = "";
		if(isEmptyField(searchField)) searchField.value = initRegisterText;
	}
}

function submitRegisterForm() {
	if(validateRegisterForm()) document.getElementById("registerForm").submit();
}

function validateRegisterForm() {
	getEmail = document.getElementById("registerEmail").value.toString();
	if(isValidEmail(getEmail)) {
		return true;
	} else {
		alert("Your email address doesn't seem to be valid. Please try again.");
		return false;
	}
}





// Events Animation Code

var eventArea = null;
var eventList = null;
var eventCurrent = 0;
var eventWidth = 285;
var eventSpeed = 30;
var eventCurrSpeed = eventSpeed;
var eventEasing = 1.5;
var isMoving = false;
var timerID = 0;

function setupEvents() {
	if (document.getElementById("eventsPanelListing")) {
		// Build list of banners
		eventArea = document.getElementById("eventsPanelListing");
		eventList = eventArea.getElementsByTagName("DIV");
		if (eventList.length > 0) {
			eventList[0].style.display = "block";
			for (var i=1; i<eventList.length; i++) {
				// Move all event off the side and set them to visible
				setEventPos(i,eventWidth + 20);
				eventList[i].style.display = "block";
			}
			// Slide in the first event
			timerID = setTimeout("startSlideEvent(0,0)", 2000);
			eventCurrent = 0;
		}
	}
}
function startSlideEvent(eventID,direction) {
	
	//position events based on direction of slide before calling slideEvent
	var nextEventID;
	if (direction == 0) {
		nextEventID = ((eventID + 1) > (eventList.length - 1)) ? 0 : (eventID + 1);
		setEventPos(eventID,10);
		setEventPos(nextEventID,10 + (eventWidth + 20));
	} else if (direction == 1) {
		nextEventID = ((eventID - 1) < 0) ? (eventList.length - 1) : (eventID - 1);
		setEventPos(eventID,10);
		setEventPos(nextEventID,10 - (eventWidth + 20));
	}
	
	// Slide in the first event
	timerID = setTimeout("slideEvent(" + eventID + "," + direction + ")", 30);
}
function slideEvent(eventID,direction) {
	var nextEventID;
	var currX;
	
	if (direction == 0) {
		nextEventID = ((eventID + 1) > (eventList.length - 1)) ? 0 : (eventID + 1);
		currX = getEventPos(eventID);
		currX -= eventCurrSpeed;
		if ((eventCurrSpeed - eventEasing) > 1) eventCurrSpeed -= eventEasing; else eventCurrSpeed = 1;
		if (currX > (10 - (eventWidth + 20))) {
			setEventPos(eventID,currX);
			setEventPos(nextEventID,currX + (eventWidth + 20));
			timerID = setTimeout("slideEvent(" + eventID + "," + direction + ")", 30);
			isMoving = true;
		} else {
			setEventPos(eventID,(0 - (eventWidth + 20)));
			setEventPos(nextEventID,10);
			timerID = setTimeout("nextEvent(" + nextEventID + "," + direction + ")", 6000);
			eventCurrSpeed = 30;
			isMoving = false;
			eventCurrent = nextEventID;
		}
	} else if (direction == 1) {
		nextEventID = ((eventID - 1) < 0) ? (eventList.length - 1) : (eventID - 1);
		currX = getEventPos(eventID);
		currX += eventCurrSpeed;
		if ((eventCurrSpeed - eventEasing) > 1) eventCurrSpeed -= eventEasing; else eventCurrSpeed = 1;
		if (currX < (eventWidth + 30)) {
			setEventPos(eventID,currX);
			setEventPos(nextEventID,currX - (eventWidth + 20));
			timerID = setTimeout("slideEvent(" + eventID + "," + direction + ")", 30);
			isMoving = true;
		} else {
			setEventPos(eventID,(eventWidth + 20));
			setEventPos(nextEventID,10);
			timerID = setTimeout("nextEvent(" + nextEventID + "," + direction + ")", 6000);
			eventCurrSpeed = 30;
			isMoving = false;
			eventCurrent = nextEventID;
		}
	}
}

function nextEvent(eventID,direction) {
	if (eventList.length > 1) startSlideEvent(eventID,direction);
}

function setEventPos(eventID,eventX) {
	if (eventList[eventID].style.posLeft) eventList[eventID].style.posLeft = eventX;
	else eventList[eventID].style.left = eventX + "px";
}

function getEventPos(eventID) {
	return eventList[eventID].offsetLeft;
}

function arrowClick(direction) {
	if(!isMoving) {
		clearTimeout(timerID);
		nextEvent(eventCurrent,direction);
	}
}


// -->
