/*********************************************************
 *
 * Copyright (c) 1997-2002, Liberty Information Technology
 *
 * All Rights Reserved
 *
 ********************************************************/

function mOvr(src,clrOver){
	if (!src.contains(event.fromElement))
	{
		src.children.tags('A')[0].style.color = "#FFFFFF";
		src.style.cursor = 'hand';
		src.bgColor = clrOver;
	}
}
function mOut(src,clrIn){
	if (!src.contains(event.toElement)){
		src.children.tags('A')[0].style.color = "#000063";
		src.style.cursor = 'default';
		src.bgColor = clrIn;
	}
}
function mClk(src){
	if(event.srcElement.tagName=='TD')
		src.children.tags('A')[0].click();
}

function setColWidths(aTable)
{
	alert ('>> setColWidths');
	alert (aTable.children.tags('TR')[0]);
	var tabRow = aTable.children.tags('TR')[0];
	var totalLen = 0;
	
	for (var a=1; a < tabRow.children.tags('TD').length; a++)
	{
		totalLen += tabRow.children.tags('TD')[a].width;
	}
	alert ('out of for');
	tabRow.children.tags('TD')[0].width = (aTable.width - totalLen);
}

function validEmail(email) {
	invalidChars = " /:,;"

	if (email == "") {						// allow an empty email address
		return true
	}
	for (i=0; i<invalidChars.length; i++) {	// does it contain any invalid characters?
		badChar = invalidChars.charAt(i)
		if (email.indexOf(badChar,0) > -1) {
			return false
		}
	}
	atPos = email.indexOf("@",1)			// there must be one "@" symbol
	if (atPos == -1) {
		return false
	}
	if (email.indexOf("@",atPos+1) != -1) {	// and only one "@" symbol
		return false
	}
	periodPos = email.indexOf(".",atPos)
	if (periodPos == -1) {					// and at least one "." after the "@"
		return false
	}
	if (periodPos+3 > email.length)	{		// must be at least 2 characters after the "."
		return false
	}
	return true
}

function checkNewsForm(newsForm) {
	var errMsg = "The following required fields are missing:"
	var errorState = false

	// make sure they enter a headline
	if (newsForm.headline.value == "") {
		errorState = true
		errMsg += "\n\nHeadline:"
	}

	// make sure they enter a story
	if (newsForm.story.value == "") {
		errorState = true
		errMsg += "\n\nStory:"
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}

function checkEventForm(frmEvent) {
	var errMsg = "The following required fields are missing or invalid:"
	var errorState = false

	// make sure they enter a event
	if (frmEvent.eventTitle.value == "") {
		errorState = true
		errMsg += "\n\nEvent:"
	}

	// make sure they enter an eventDate
	if (frmEvent.eventDate.value == "") {
		errorState = true
		errMsg += "\n\nEvent Date:"
	}
	else {
		var dateLength = frmEvent.eventDate.value.length;
		
		if (dateLength < 10)
		{
			errorState = true
			errMsg += "\n\nEvent Date: Not a valid date format.\n(Please re-enter in the format dd/mm/yyyy.)"
		}
		else
		{
			if (isProperDate(frmEvent.eventDate.value, 'Event Date') == false) {
				errorState = true
				errMsg += "\n\nEvent Date: Not a valid date format.\n(Please re-enter in the format dd/mm/yyyy.)"
			}
		}
	}

	// make sure they enter a description
	if (frmEvent.eventDetail.value == "") {
		errorState = true
		errMsg += "\n\nDescription:"
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}

function checkContactForm(contactForm) {
	var errMsg = "The following required fields are missing or invalid:"
	var errorState = false

	// make sure they enter a Name
	if (contactForm.contactname.value == "") {
		errorState = true
		errMsg += "\n\nName:"
	}

	// make sure they enter a Job Title
	if (contactForm.jobtitle.value == "") {
		errorState = true
		errMsg += "\n\nJob Title:"
	}

	// make sure they enter a valid emailAddress
	if (contactForm.email.value != "") {
		if (!validEmail(contactForm.email.value))
		{
			errorState = true
			errMsg += "\n\nEmail: Not a valid email address.\n(Please re-enter in the format username@nimba.org.uk)"
		}
	}

	// make sure they enter a Job Description
	if (contactForm.jobdescription.value == "") {
		errorState = true
		errMsg += "\n\nJob Description:"
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}

function checkPasswordForm(passwordForm) {
	var errMsg = "The following required fields are missing:"
	var errorState = false

	// make sure they enter an Old Password
	if (passwordForm.oldPassword.value == "") {
		errorState = true
		errMsg += "\n\nOld Password:"
	}

	// make sure they enter a New Password
	if (passwordForm.newPassword.value == "") {
		errorState = true
		errMsg += "\n\nNew Password:"
	}

	// make sure they enter a Re-enter New Password
	if (passwordForm.verifyNewPassword.value == "") {
		errorState = true
		errMsg += "\n\nRe-enter New Password:"
	}

	// make sure the old and new passwords are different
	if (passwordForm.oldPassword.value == passwordForm.newPassword.value) {
		errorState = true
		errMsg += "\n\nYour new password must be different\nfrom your current password."
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}
function validateReOrdering (aForm, aFormType)
{
	var numOfElems = aForm.elements.length;
	var arrOrder = new Array;
	var arrCount = 0;

	for (var i=0; i < numOfElems; i ++)
	{
		var currElem = aForm.elements[i];

		if (currElem.type == "text")
		{
			arrOrder[arrCount] = currElem.value;
			arrCount++;
		}

	}

	arrOrder.sort();

	for (var j=0; j < arrOrder.length; j ++)
	{

		if (arrOrder[j] == arrOrder[j+1])
		{
			if (aFormType == "Contact")
			{
				alert ('You have entered the same number for\nsome of your contacts.\n\nContact order numbers must be unique.\n\nThe contacts should have the order of 1 to ' + arrOrder.length + '.');
			}
			else if (aFormType == "Adoption")
			{
				alert ('You have entered the same number for\nsome of your companies.\n\nCompany order numbers must be unique.\n\nThe companies should have the order of 1 to ' + arrOrder.length + '.');
			}

			return false;
		}

		if (arrOrder[j] > arrOrder.length)
		{
			if (aFormType == "Contact")
			{
				alert ('You have entered an order number of greater than ' + arrOrder.length + ' for\none of the contacts.\n\nThe contacts should have the order of 1 to ' + arrOrder.length + '.');
			}
			else if (aFormType == "Adoption")
			{
				alert ('You have entered an order number of greater than ' + arrOrder.length + ' for\none of the companies.\n\nThe companies should have the order of 1 to ' + arrOrder.length + '.');
			}

			return false;
		}

		if (arrOrder[j] < 1)
		{
			if (aFormType == "Contact")
			{
				alert ('You have entered an order number of 0 for\none of the contacts.\n\nThe contacts should have the order of 1 to ' + arrOrder.length + '.');
			}
			else if (aFormType == "Adoption")
			{
				alert ('You have entered an order number of 0 for\none of the companies.\n\nThe companies should have the order of 1 to ' + arrOrder.length + '.');
			}

			return false;
		}
	}
	return true;
}

function checkAdoptionForm(adoptionForm) {
	var errMsg = "The following required fields are missing:"
	var errorState = false

	// make sure they enter a Company Name
	if (adoptionForm.companyname.value == "") {
		errorState = true
		errMsg += "\n\nCompany:"
	}

	// make sure they enter a Description
	if (adoptionForm.description.value == "") {
		errorState = true
		errMsg += "\n\nDescription:"
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}

function checkAddUserForm(userForm) {
	var errMsg = "The following required fields are missing:"
	var errorState = false

	// make sure they enter a User Name
	if (userForm.userName.value == "") {
		errorState = true
		errMsg += "\n\nUser Name:"
	}

	// make sure they enter a Name
	if (userForm.name.value == "") {
		errorState = true
		errMsg += "\n\nName:"
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}

function checkEditUserForm(userForm) {
	var errMsg = "The following required fields are missing:"
	var errorState = false

	// make sure they enter a Name
	if (userForm.name.value == "") {
		errorState = true
		errMsg += "\n\nName:"
	}

	if (errorState == true) {
		alert(errMsg)
		return false
	}

	// If we made it to here, everything's valid, so return true
	return true
}

function replaceNewLine(myString)
{
	var pattern = /\n/ig;
	return myString.replace(pattern,"<BR>");
}

function replaceEqualsSign(myString)
{
	var pattern = /=/ig;
	return myString.replace(pattern,"%3D");
}

function setfocus(item)
{
	item.focus();
}
