// JavaScript Document

//  START OF:  HOME PAGE ROTATER //
var founders = new Array();
founders['id'] = new Array();
founders['name'] = new Array();
founders['img'] = new Array();
founders['intro'] = new Array();
founders['delay'] = new Array();

var currentFounder = -1;
var founderTickerID = -1;
var founderTimeoutID = -1;
var holdFounderTicker = false;
var founderTickerRunning = false;
var founderWaitingForDelay = false;

function rotateFounderImages()
{
/*	for (x = 0; x < founders['id'].length; x++)
	{
		alert(founders['name'][x]);
		alert(founders['img'][x]);
		alert(founders['intro'][x]);
		alert(founders['delay'][x]);
	}
*/
	clearTimeout(founderTimeoutID);
	currentFounder++;

	if (currentFounder >= founders['id'].length)
		currentFounder = 0;

	//Set variables to use as shortcuts to various elements on page
	var fName = document.getElementById('founderName');
	var fImg = document.getElementById('founderImg');
	var fImgLink = document.getElementById('founderImgLink');
	var fIntro = document.getElementById('founderIntro');
	var fLink = document.getElementById('founderLink');

	//Update content on page
	fName.innerHTML = founders['name'][currentFounder];
	fIntro.innerHTML = founders['intro'][currentFounder];
	fImg.src = 'images/' + founders['img'][currentFounder];
	fImg.alt = founders['name'][currentFounder];
	fImg.title = founders['name'][currentFounder];
	fImgLink.href = 'founders.asp#person' + founders['id'][currentFounder];
	fLink.href = fImgLink.href;

	founderTickerID = setTimeout("rotateFounderImages()", 1000 * founders['delay'][currentFounder]);
}

function changeFounderImage()
{

	if (currentFounder >= founders['id'].length)
		currentFounder = 0;

	clearTimeout(founderTickerID);
	founderTickerID = -1;

	founderTickerRunning = false;
	founderWaitingForDelay = true;

	founderTimeoutID = setTimeout("rotateFounderImages()", 1000 * founders['delay'][currentFounder]);
}

function pauseFounderTicker()
{
	return false;

	holdFounderTicker = true;
}

function releaseFounderTicker()
{
	return false;

	holdFounderTicker = false;

	if (!founderTickerRunning && !founderWaitingForDelay)
	{
		clearTimeout(founderTickerID);
		founderTickerID = setTimeout("changeFounderImage()", 1000 * founders['delay'][currentFounder]);
	}
}
//  END OF:    HOME PAGE ROTATER //

//  START OF:  NEWS TICKER CODE  //
var charsPerSec = 15;
var secsToDelayAtEnd = 3;
var currItem = 0;
var maxChars = 65;
var mainTickerID = 0;
var mainTimeoutID = 0;
var thisChar = 0;
var str = '';
var tickerStr = '';
var runTicker = true;
var tickerRunning = false;
var waitingForDelay = false;
var items;
var links;
items = new Array();
links = new Array();

function runNewsTicker(headlines, newsLinks)
{
	if (window.location.toString().indexOf('index.asp') != -1)
	{
		if (headlines == null && newsLinks == null)
			return false;

		if (newsLinks.length < headlines.length)
			for (x = newsLinks.length; x < headlines.length; x++)
				newsLinks[x] = '';

		for (x = 0; x < headlines.length; x++)
			if (headlines[x] != '')
			{
				items[x] = headlines[x];
				links[x] = newsLinks[x];
			}

//		*****   USE THIS TO TRIM THE LENGTH OF A STRING TO FIT ONE LINE   ******
		for (x = 0; x < items.length; x++)
			if (items[x].length >= maxChars)
			{
				items[x] = items[x].substr(0, maxChars);
				items[x] = items[x].substr(0, items[x].lastIndexOf(' ')) + '...';
			}

		startTicker();
	}

	return true;
}

function startTicker()
{
	clearTimeout(mainTimeoutID);
	waitingForDelay = false;

	if (currItem >= items.length)
		currItem = 0;

	tickerStr = items[currItem];

	if (runTicker && !tickerRunning)
	{
		mainTickerID = setInterval("newsTicker()", 1000 / charsPerSec);
		tickerRunning = true;
	}
}

function stopTicker()
{
	thisChar = 0;
	currItem++;

	clearInterval(mainTickerID);
	tickerRunning = false;
	mainTickerID = 0;
	waitingForDelay = true;
	mainTimeoutID = setTimeout("startTicker()", secsToDelayAtEnd * 1000);
}

function pauseTicker()
{
	runTicker = false;
}

function restartTicker()
{
	runTicker = true;

	if (!tickerRunning && !waitingForDelay)
	{
		tickerRunning = true;
		clearInterval(mainTickerID);
		mainTickerID = setInterval("newsTicker()", 1000 / charsPerSec);
	}
}

function newsTicker()
{
	//	*****   USE THIS TO STOP THE TICKER MID-SENTENCE ON ROLLOVER   *****
//	if (runTicker)
//	{
		var newsFeed = document.getElementById('newsFeed');

		if (thisChar >= tickerStr.length)
		{
			stopTicker();
			return false;
		}

		if (thisChar == 0)
		{
			newsFeed.innerHTML = '';
			newsFeed.href = 'events.asp';

			if (links[currItem] != '')
				newsFeed.href += '?' + links[currItem];
		}

		currText = newsFeed.innerHTML;
		trailingChar = '_';

		if (currText.substr(currText.length - trailingChar.length, trailingChar.length) == trailingChar)
		{
			currText = currText.substr(0, currText.length - trailingChar.length);
		}

		currText += tickerStr.substr(thisChar, 1);

		if (thisChar + 1 < tickerStr.length)
			currText += trailingChar;

		newsFeed.innerHTML = currText;
		thisChar++;
//	}
}
//  END OF:    NEWS TICKER CODE  //

//  START OF:  DATE CHECKING CODE  //
function checkDate(day, month, year)
{
//	alert(day + ',' + month + ',' + year);
	//Date Checker!
	if (isNaN(day) || isNaN(year))
		return false;

	if (isNaN(month))
		month = monthNum(month);

	if (month == false)
		return false;

	var days = new Array();
	days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];

	if (year % 4 == 0)
		days[1] = 29;

	if (month > 12 || month < 1)
		return false;

	if (day > days[month - 1] || day < 1)
		return false;

	return true;
}

function monthName(val)
{
	return monthName(val, 'short');
}

function monthName(val, len)
{
	if (isNaN(val) || val < 1 || val > 12)
		return val;

	switch (val) {
		case '1':
			retVal = (len == 'short') ? 'Jan' : 'January';
			break;
		case '2':
			retVal = (len == 'short') ? 'Feb' : 'February';
			break;
		case '3':
			retVal = (len == 'short') ? 'Mar' : 'March';
			break;
		case '4':
			retVal = (len == 'short') ? 'Apr' : 'April';
			break;
		case '5':
			retVal = 'May';
			break;
		case '6':
			retVal = (len == 'short') ? 'Jun' : 'June';
			break;
		case '7':
			retVal = (len == 'short') ? 'Jul' : 'July';
			break;
		case '8':
			retVal = (len == 'short') ? 'Aug' : 'August';
			break;
		case '9':
			retVal = (len == 'short') ? 'Sep' : 'September';
			break;
		case '10':
			retVal = (len == 'short') ? 'Oct' : 'October';
			break;
		case '11':
			retVal = (len == 'short') ? 'Nov' : 'November';
			break;
		case '12':
			retVal = (len == 'short') ? 'Dec' : 'December';
			break;
	}

	return retVal;
}

function monthNum(val)
{
	retVal = false;

	if (!isNaN(val))
		return val;

	switch (val.toLowerCase()) {
		case 'jan':
		case 'january':
			retVal = 1;
			break;
		case 'feb':
		case 'february':
			retVal = 2;
			break;
		case 'mar':
		case 'march':
			retVal = 3;
			break;
		case 'apr':
		case 'april':
			retVal = 4;
			break;
		case 'may':
			retVal = 5;
			break;
		case 'jun':
		case 'june':
			retVal = 6;
			break;
		case 'jul':
		case 'july':
			retVal = 7;
			break;
		case 'aug':
		case 'august':
			retVal = 8;
			break;
		case 'sep':
		case 'sept':
		case 'september':
			retVal = 9;
			break;
		case 'oct':
		case 'october':
			retVal = 10;
			break;
		case 'nov':
		case 'november':
			retVal = 11;
			break;
		case 'dec':
		case 'december':
			retVal = 12;
			break;
	}

	return retVal;
}
//  END OF:    DATE CHECKING CODE  //

function showHideProjDocs(projID)
{
	if (document.getElementById('projDocs_' + projID))
	{
		projDocs = document.getElementById('projDocs_' + projID);
		btn = document.getElementById('showHideDocsBtn_' + projID);

		if (projDocs.style.display == 'none')
		{
			projDocs.style.display = '';
			btn.src = 'images/btnHideDocs.gif';
			btn.alt = 'Hide Documents';
			btn.title = 'Hide Documents';
		}
		else
		{
			projDocs.style.display = 'none';
			btn.src = 'images/btnShowDocs.gif';
			btn.alt = 'Show Documents';
			btn.title = 'Show Documents';
		}
	}

	return true;
}

function showDocs(secID)
{
	document.getElementById('docList_' + secID).style.display = '';
	document.getElementById('worksPlus_' + secID).style.display = 'none';
	document.getElementById('worksMinus_' + secID).style.display = '';
}

function hideDocs(secID)
{
	document.getElementById('docList_' + secID).style.display = 'none';
	document.getElementById('worksPlus_' + secID).style.display = '';
	document.getElementById('worksMinus_' + secID).style.display = 'none';
}

function showHideDocs(secID)
{
	if (document.getElementById('docList_' + secID).style.display == 'none')
	{
		document.getElementById('docList_' + secID).style.display = '';
		document.getElementById('worksPlus_' + secID).style.display = 'none';
		document.getElementById('worksMinus_' + secID).style.display = '';
	}
	else
	{
		document.getElementById('docList_' + secID).style.display = 'none';
		document.getElementById('worksPlus_' + secID).style.display = '';
		document.getElementById('worksMinus_' + secID).style.display = 'none';
	}
}

function checkContact(form)
{
	if (form.txtName.value == '')
	{
		alert('Please enter your name.');
		form.txtName.focus();
		return false;
	}

	if (form.txtEmail.value == '')
	{
		alert('Please enter your email address.');
		form.txtEmail.focus();
		return false;
	}

	email = form.txtEmail.value;
	if (email.indexOf('@') < 0 || email.lastIndexOf('.') < email.indexOf('@'))
	{
		alert('Please enter your email address. The email address entered is invalid.');
		form.txtEmail.focus();
		return false;
	}

	if (form.txtSubject.value == '')
	{
		alert('Please enter a subject for your message.');
		form.txtSubject.focus();
		return false;
	}

	if (form.txtMsg.value == '')
	{
		alert('Please enter your message.');
		form.txtMsg.focus();
		return false;
	}

	return true;
}

function checkEbook(form)
{
	if (form.txtFirst.value == '')
	{
		alert('Please enter your first name.');
		form.txtFirst.focus();
		return false;
	}

	if (form.txtLast.value == '')
	{
		alert('Please enter your last name.');
		form.txtLast.focus();
		return false;
	}

	if (form.txtEmail.value == '')
	{
		alert('Please enter your email address.');
		form.txtEmail.focus();
		return false;
	}

	email = form.txtEmail.value;
	if (email.indexOf('@') < 0 || email.lastIndexOf('.') < email.indexOf('@'))
	{
		alert('Please enter your email address. The email address entered is invalid.');
		form.txtEmail.focus();
		return false;
	}

	return true;
}

function checkNews(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (!checkDate(form.selDay.value, form.selMonth.value, form.selYear.value))
		{
			alert('Please enter the news date. The date entered is not a valid date.');
			form.selDay.focus();
			return false;
		}

		if (form.txtHeadline.value == '')
		{
			alert('Please enter the headline.');
			form.txtHeadline.focus();
			return false;
		}

		if (form.txtStory.value == '')
		{
			alert('Please enter the body of the news article.');
			form.txtStory.focus();
			return false;
		}
	}

	return true;
}

function checkEvent(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (!checkDate(form.selDay.value, form.selMonth.value, form.selYear.value))
		{
			alert('Please enter the news date. The date entered is not a valid date.');
			form.selDay.focus();
			return false;
		}

		if (form.txtTitle.value == '')
		{
			alert('Please enter the event title.');
			form.txtTitle.focus();
			return false;
		}

		if (form.txtDesc.value == '')
		{
			alert('Please enter the event description.');
			form.txtDesc.focus();
			return false;
		}

		if (form.txtLoc.value == '')
		{
			alert('Please enter the event location.');
			form.txtLoc.focus();
			return false;
		}
	}

	return true;
}

function checkLink(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (form.txtLinkText.value == '')
		{
			alert('Please enter the link text. This is the text that will be displayed on the website.');
			form.txtLinkText.focus();
			return false;
		}

		if (form.txtLink.value == '')
		{
			alert('Please enter the link. This should include the "http://" at the beginning.');
			form.txtLink.focus();
			return false;
		}

		if (form.txtLinkDesc.value == '')
		{
			alert('Please enter the link description.');
			form.txtLinkDesc.focus();
			return false;
		}
	}

	return true;
}

function checkNotice(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (form.txtTitle.value == '')
		{
			alert('Please enter the title for this notice.');
			form.txtTitle.focus();
			return false;
		}

		if (form.txtNotice.value == '')
		{
			alert('Please enter the body of this notice.');
			form.txtNotice.focus();
			return false;
		}
	}

	return true;
}

function checkUser(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (form.txtUser.value == '')
		{
			alert('Please enter a username for this user.');
			form.txtUser.focus();
			return false;
		}

		if (form.txtPass.value == '')
		{
			alert('Please enter a password for this user.');
			form.txtPass.focus();
			return false;
		}

		if (form.txtFirst.value == '')
		{
			alert('Please enter the user\'s first name.');
			form.txtFirst.focus();
			return false;
		}

		if (form.txtSurname.value == '')
		{
			alert('Please enter the user\'s surname.');
			form.txtSurname.focus();
			return false;
		}
	}

	return true;
}

function checkProject(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (form.txtTitle.value == '')
		{
			alert('Please enter the project title.');
			form.txtTitle.focus();
			return false;
		}

		if (form.txtDesc.value == '')
		{
			alert('Please enter the project description.');
			form.txtDesc.focus();
			return false;
		}
		
		if (form.form_action.value == 'add')
		{
			if (form.newPic.value == '')
			{
				alert('Please select an image for this project.');
				form.newPic.focus();
				return false;
			}
		}
	}

	return true;
}

function checkAddDoc(form)
{
	if (form.txtTitle.value == '')
	{
		alert('Please enter the file title.\nThis is the text you would like displayed on the website.');
		form.txtTitle.focus();
		return false;
	}

	if (form.newDoc.value == '')
	{
		alert('Please select the file you would like to upload. There is a 5Mb limit on these files.');
		form.newDoc.focus();
		return false;
	}

	return true;
}

function checkDictionary(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (form.txtSubject.value == '')
		{
			alert('Please enter the title for this entry.');
			form.txtSubject.focus();
			return false;
		}
	
		if (form.txtDefinition.value == '')
		{
			alert('Please enter the definition for this entry.');
			form.txtDefinition.focus();
			return false;
		}
	}

	return true;
}

function openPopUp(target, windowName, options)
{
	window.open(target, windowName, options);
}

function checkProduct(form)
{
	if (form.form_action.value == 'update' || form.form_action.value == 'add')
	{
		if (form.txtProdName.value == '')
		{
			alert('Please enter the product name.');
			form.txtProdName.focus();
			return false;
		}

		if (form.txtProdDesc.value == '')
		{
			alert('Please enter the product description.');
			form.txtProdDesc.focus();
			return false;
		}

		if (form.txtProdCode.value == '')
		{
			alert('Please enter the product code.');
			form.txtProdCode.focus();
			return false;
		}

		if (form.txtPrice.value == '' || isNaN(form.txtPrice.value))
		{
			alert('Please enter the product price.');
			form.txtPrice.focus();
			return false;
		}

		if (form.txtPricePer.value == '')
		{
			alert('Please enter the unit to which the price refer\'s, i.e. "each" or "for one year".');
			form.txtPricePer.focus();
			return false;
		}
	}

	return true;
}

function checkProdCat(form)
{
	return true;
}