// ----------------------------------------------------------------------
// IsThisYourName scripts.
// ----------------------------------------------------------------------

// Generic functions
//------------------------------------------

// Create a Trim function
String.prototype.trim = function() 
{
return this.replace(/(?:(?:^|\n)\s+|\s+(?:$|\n))/g,"");
}

// Is the element empty?
function notEmpty(elem){
	if(elem.value.length == 0){
		elem.focus(); // set the focus to this input
		return false;
	}
	return true;
}

// If the element's string matches the regular expression it is all letters
function isAlphabet(elem){
	//var alphaExp = /^[-[:space:]a-zA-Z\']+$/;
	var alphaExp = /^[a-zA-Z\' -]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		elem.focus();
		return false;
	}
}

// Restrict length of input
function lengthRestriction(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		elem.focus();
		return false;
	}
}

// If the element's string matches the regular expression it is numbers and letters
function isAlphanumeric(elem)
{
	var alphaExp = /^[0-9a-zA-Z.\' ,-]+$/;
	if(elem.value.match(alphaExp))
	{
		return true;
	}else{
		elem.focus();
		return false;
	}
}

// Validate an email address
function emailValidator(elem)
{
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if(elem.value.match(emailExp))
	{
		return true;
	}else{
		elem.focus();
		return false;
	}
}

// Radio Button Validation
// copyright Stephen Chapman, 15th Nov 2004,14th Sep 2005
// you may copy this function but please keep the copyright notice with it
function selectedRadio(btngrp) 
{
	var cnt = -1;
    for (var i=btngrp.length-1; i > -1; i--) 
	{
        if (btngrp[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1) return true;
    else return false;
}
                  


// Do search form validation on front page
//------------------------------------------
	function NameFormValidator(form){
		// Make quick references to our fields
		var firstname = document.getElementById('forename');
		var lastname = document.getElementById('surname');
		var formhelp = document.getElementById("formhelp");
		formhelp.innerHTML="";
		
		// Check each input in the order that it appears in the form!
		if(notEmpty(firstname) && notEmpty(lastname))
		{
			if(isAlphabet(firstname) && isAlphabet(lastname))
			{
				if(lengthRestriction(firstname, 1, 45) && lengthRestriction(lastname, 1, 45))
				{
					// Do replacement stuff
					firstname.value=firstname.value.trim();
					firstname.value=firstname.value.replace(/'/g,"-");
					firstname.value=firstname.value.replace(/ /g,"-");
					firstname.value=firstname.value.toLowerCase();
					
					lastname.value=lastname.value.trim();
					lastname.value=lastname.value.replace(/'/g,"-");
					lastname.value=lastname.value.replace(/ /g,"-");
					lastname.value=lastname.value.toLowerCase();
					
					document.forms["NameForm"].method="post";
					document.forms["NameForm"].action='http://www.isthisyour.name/'+ firstname.value +'_'+ lastname.value +'.htm';
					// Then submit (return true)
					return true;
				} else
				{
					formhelp.innerHTML += "Each name cannot be longer than 45 characters.<br/>";
					return false;
				}
			} else
			{
				formhelp.innerHTML += "Sorry, names can only contain letters, spaces, dashes, and apostrophes.<br/>";
				return false;
			}
		} else 
		{
			formhelp.innerHTML += "Please enter values for both first name and last name.<br/>";
			return false;
		}
		return false;
	
	}

// Do contact form validation
//------------------------------------------

	function ContactFormValidator(){
		// Make quick references to our fields
		var name = document.getElementById('contactName');
		var email = document.getElementById('contactEmail');
		var message = document.getElementById('contactMessage');
		var formhelp = document.getElementById("formhelp");
		formhelp.innerHTML="";
		
		// Check each input in the order that it appears in the form!
		if(notEmpty(name) && notEmpty(email) && notEmpty(message))
		{
			if(isAlphanumeric(name))
			{
				if(lengthRestriction(name, 1, 60) && lengthRestriction(email, 1, 60) && lengthRestriction(message, 1, 1000))
				{
					if(emailValidator(email))
					{
						// Do replacement stuff
						name.value=name.value.trim();
						email.value=email.value.trim();
						message.value=message.value.trim();
						
						// Then submit (return true)
						return true;
					} else
					{
						formhelp.innerHTML += "Please enter a valid email address.<br/>";
						return false;
					}
				} else
				{
					formhelp.innerHTML += "Name and email cannot be longer than 45 characters, and message cannot exceed 1000 characters.<br/>";
					return false;
				}
			} else
			{
				formhelp.innerHTML += "Sorry, name can only contain letters, spaces, dashes, commas and apostrophes.<br/>";
				return false;
			}
		} else 
		{
			formhelp.innerHTML += "Please fill out all of the fields.<br/>";
			return false;
		}
		return false;
	
	}

// Do form validation on poll page
//------------------------------------------
	function PollFormValidator(form){
		// Make quick references to our fields
		formhelppoll.innerHTML="";
		
		// Check each input in the order that it appears in the form!
		if(selectedRadio(form.muf))
		{
			// Then submit (return true)
			return true;
		} else
		{
			formhelppoll.innerHTML += "Please select one of the names to vote.";
			return false;
		}
	
	}


// Toggle visibility of badge Divs - badges for people to copy
//------------------------------------------

function toggleBadge(id)
{
	var div=document.getElementById(id);
	if(div.className=='undisplayed')
	{
		div.className="displayed";
	} else
	{
		div.className='undisplayed';
	}
	return(false);
}

// Populate Google Search
//------------------------------------------
	function GoogleSearchFill(id, term){
		var box=document.getElementById(id);
		box.value=term;
		return(false);
	}


