/*
** JavaScript to drive form validation in contact-us.html and subscribe-newsletter.html
** By: Robert Davis
** Created: 07/04/08
**
** Modified: 21/04/08
*/

var mandatoryStyle = "mandatory";

function validateNewsForms(frm)
{

	var selector = frm.elements[0];
	
	var errMsg = "";
	
	for(var i = 1; i < 11; i++)
	{
		if((frm.elements[i].value == "" || frm.elements[i].value == null) && frm.elements[i].className == mandatoryStyle)
		{
			errMsg += lookUpName(frm.elements[i]);	
		}
	}
	
	if(errMsg == "")
	{
		frm.submit();
	}else
	{
		alert("The following fields are not correctly filled in:\n\n" + errMsg);	
	}
}


function updateFields()
{
	var frm = document.getElementsByName("newsform")[0];
	var selector = frm.elements[0];
	switch(selector.selectedIndex)
	{
		case 0:
			frm.elements[1].className = mandatoryStyle;
			frm.elements[2].className = mandatoryStyle;
			frm.elements[3].className = mandatoryStyle;
			frm.elements[4].className = mandatoryStyle;
			frm.elements[5].className = mandatoryStyle;
			frm.elements[6].className = "";
			frm.elements[7].className = mandatoryStyle;
			frm.elements[8].className = mandatoryStyle;
			frm.elements[9].className = mandatoryStyle;
			frm.elements[10].className = mandatoryStyle;
		break;
		
		case 1:
			frm.elements[1].className = mandatoryStyle;
			frm.elements[2].className = mandatoryStyle;
			frm.elements[3].className = mandatoryStyle;
			frm.elements[4].className = mandatoryStyle;
			frm.elements[5].className = mandatoryStyle;
			frm.elements[6].className = "";
			frm.elements[7].className = mandatoryStyle;
			frm.elements[8].className = mandatoryStyle;
			frm.elements[9].className = mandatoryStyle;
			frm.elements[10].className = mandatoryStyle;
		break;
		
		case 2:
			frm.elements[1].className = mandatoryStyle;
			frm.elements[2].className = mandatoryStyle;
			frm.elements[3].className = mandatoryStyle;
			frm.elements[4].className = mandatoryStyle;
			frm.elements[5].className = mandatoryStyle;
			frm.elements[6].className = "";
			frm.elements[7].className = mandatoryStyle;
			frm.elements[8].className = mandatoryStyle;
			frm.elements[9].className = mandatoryStyle;
			frm.elements[10].className = mandatoryStyle;
		break;
	}
}


function validateForm()
{
	var errFields = "";
	var mainForm = document.getElementsByName("contactform")[0];
	var allElements = mainForm.elements;
	for(var i = 0; i < 5; i++)
	{
		if(check(allElements[i]))
		{
			errFields += lookUpName(allElements[i]);
			allElements[i].className = "notfilledin";
		}else
		{
			if(allElements[i].name == "daytimephonenumber" && !checkPhone(allElements[i]))
			{
				allElements[i].className = "notfilledin";
				errFields += lookUpName(allElements[i]);
			}else
			{
				allElements[i].className = "";	
			}
			
		}
	}
	
	if(errFields == "")
	{
		mainForm.submit();

	}else
	{
		alert("The following fields are not correctly filled in:\n" + errFields);
		
	}
}

function check(obj)
{
	return (obj.value == "" || obj.value == null);	
}

function checkPhone(obj)
{
	var cleanStr = removeSpaces(obj.value);
	var regExpr = /^\+?\d+$/;
	if(cleanStr.search(regExpr) == 0)
	{
		return true;
	}else
	{
		return false;	
	}
}


function lookUpName(obj)
{
	switch(obj.name)
	{
		case "givenname":
		return "\tGiven Name\n";
		break;
		
		case "surname":
		return "\tSurname\n";
		break;
		
		case "postaladdress":
		return "\tPostal Address\n";
		break;
		
		case "daytimephonenumber":
		return "\tDay Time Phone Number (only permitted numbers and '+')\n";
		break;
		
		case "email":
		return "\tEmail\n";
		break;
		
		case "Address_1":
		return "\tAddress\n";
		break;
		
		case "city_suburb":
		return "\tCity/Suburb\n";
		break;
		
		case "state":
		return "\tState\n";
		break;
		
		case "postcode":
		return "\tPostcode\n";
		break;
		
		case "country":
		return "\tCountry\n";
		break;

	}
}

function removeSpaces(str)
{
	var newStr = "";
	for(i = 0; i < str.length; i++)
	{
		if(str.charAt(i) != " ")
		{
			newStr += str.charAt(i);	
		}
	}
	return newStr;
}