RGH = window.RGH || {};

RGH.Forms = {};

RGH.Forms.verifySubscribe = function()
{
	if (document.rghform.firstname.value === '') 
	{
		alert('Please provide your first name.');
		return false;
	}
	if (document.rghform.lastname.value === '') 
	{
		alert('Please provide your last name.');
		return false;
	}
	if (document.rghform.email.value === '') 
	{
		alert('Please provide your email address.');
		return false;
	}
	if (document.rghform.confirmemail.value === '') 
	{
		alert('Please provide your email address again.');
		return false;
	}
	if (document.rghform.email.value !== document.rghform.confirmemail.value) 
	{
		alert('Your email addresses do not match. Please check you have entered them correctly.');
		return false;
	}
	if (document.rghform.email.value.indexOf('@') == -1 || document.rghform.email.value.indexOf('.') == -1) 
	{
		alert('Your email addresses are not valid. Please check you have entered them correctly.');
		return false;
	}
	if (document.rghform.country.selectedIndex == 3 || document.rghform.country.selectedIndex === 0) 
	{
		alert('Please provide your country of residence.');
		return false;
	}
	return true;
};

RGH.Forms.verifyContact = function()
{
	if (document.rghform.firstname.value === '') 
	{
		alert('You must enter a first name.');
		return false;
	}
	if (document.rghform.lastname.value === '') 
	{
		alert('You must enter a last name.');
		return false;
	}
	if (document.rghform.email.value === '') 
	{
		alert('You must enter an email address.');
		return false;
	}
	if (document.rghform.confirmemail.value === '') 
	{
		alert('You must enter your email address in both fields.');
		return false;
	}
	if (document.rghform.email.value !== document.rghform.confirmemail.value) 
	{
		alert('Your email addresses do not match. Please check you have entered them correctly.');
		return false;
	}
	if (document.rghform.email.value.indexOf('@') == -1 || document.rghform.email.value.indexOf('.') == -1) 
	{
		alert('Your email addresses are not valid. Please check you have entered them correctly.');
		return false;
	}
	if (document.rghform.subscribeme.checked === true &&
			(document.rghform.User1.checked === false &&
			document.rghform.User2.checked === false &&
			document.rghform.User3.checked === false &&
			document.rghform.User4.checked === false)
			)
	{
		alert('You must select what you would like to receive information regarding.');
		return false;
	}
	if (document.rghform.country.selectedIndex == 2) 
	{
		alert('You must choose a Country.');
		return false;
	}
	if (document.rghform.country.selectedIndex === 0 && document.rghform.state.selectedIndex === 0) 
	{
		alert('You must choose a County.');
		return false;
	}
	if (document.rghform.country.selectedIndex === 0 && document.rghform.state.selectedIndex == 4) 
	{
		alert('You must choose a County.');
		return false;
	}
	
	return true;
};

RGH.Forms.verifyCompEntry = function()
{
	/*
	If the elements exist by id, then use them, otherwise drop back to the old
	document.rghform.fieldname method.
	Either way gives a consistent object to access the values from.
	*/
	
	var success = true;
	var focusField;

	var fields = {
		firstname : document.getElementById('firstname') || document.rghform.firstname,
		lastname : document.getElementById('lastname') || document.rghform.lastname,
		email : document.getElementById('email') || document.rghform.email,
		confirmemail : document.getElementById('confirmemail') || document.rghform.confirmemail,
		subscribeme : document.getElementById('subscribeme') || document.rghform.subscribeme,
		User1 : document.getElementById('User1') || document.rghform.User1,
		User2 : document.getElementById('User2') || document.rghform.User2,
		User3 : document.getElementById('User3') || document.rghform.User3,
		User4 : document.getElementById('User4') || document.rghform.User4,
		country : document.getElementById('country') || document.rghform.country,
		state : document.getElementById('state') || document.rghform.county
	};

	if (fields['firstname'].value === '') 
	{
		alert('You must enter a first name.');
		focusField = fields['firstname'];
		success = false;
	}
	if (fields['lastname'].value === '') 
	{
		alert('You must enter a last name.');
		focusField = fields['lastname'];
		success = false;
	}
	if (fields['email'].value === '') 
	{
		alert('You must enter an email address.');
		focusField = fields['email'];
		success = false;
	}
	if (fields['confirmemail'].value === '') 
	{
		alert('You must enter your email address in both fields.');
		focusField = fields['confirmemail'];
		success = false;
	}
	if (fields['email'].value !== fields['confirmemail'].value) 
	{
		alert('Your email addresses do not match. Please check you have entered them correctly.');
		focusField = fields['email'];
		success = false;
	}
	if (fields['email'].value.indexOf('@') == -1 || fields['email'].value.indexOf('.') == -1) 
	{
		alert('Your email addresses are not valid. Please check you have entered them correctly.');
		focusField = fields['email'];
		success = false;
	}
	if (fields['subscribeme'].checked === true &&
			(fields['User1'].checked === false &&
			fields['User2'].checked === false &&
			fields['User3'].checked === false &&
			fields['User4'].checked === false)
			)
	{
		alert('You must select what you would like to receive information regarding.');
		focusField = fields['User1'];
		success = false;
	}
	if (fields['country'].selectedIndex == 2) 
	{
		alert('You must choose a Country.');
		focusField = fields['country'];
		success = false;
	}
	if (fields['country'].selectedIndex === 0) 
	{
		switch (fields['state'].selectedIndex)
		{
			case 0:
			case 4:
				alert('You must choose a County.');
				focusField = fields['state'];
				success = false;
			default:
				// do nothing
		}
	}
	
	focusField.focus();
	return success;
};

RGH.Forms.verifyProposalRequest = function()
{
	if (document.getElementById('firstname').value === '') 
	{
		alert('Please enter your first name.');
		return false;
	}
	if (document.getElementById('lastname').value === '') 
	{
		alert('Please enter your last name.');
		return false;
	}
	
	var emailVal = document.getElementById('email').value;
	var confirmVal = document.getElementById('confirmemail').value;
	if (emailVal === '') 
	{
		alert('Please enter your email address.');
		return false;
	}
	if (emailVal != confirmVal) 
	{
		alert('Please ensure you have entered the same\nemail address in both fields.');
		return false;
	}
	return true;
};

RGH.Forms.checkCountry = function() {
    var fields = {
        country: document.getElementById('country') || document.rghform.country,
        state: document.getElementById('state') || document.rghform.county
    };

    //if country selected in "United Kingdom"
    
    if (fields['country'].selectedIndex > 0) {
        if (fields['country'].selectedIndex == 1) {
            fields['state'].selectedIndex = 0;
            fields['state'].disabled = false;
            return false;
        }
        else {
            fields['state'].selectedIndex = 4;
            fields['state'].disabled = true;
        }
    }
    else {
        fields['state'].selectedIndex = 0;
        fields['state'].disabled = true;
        return true;
    }
};

RGH.Forms.showRest = function()
{
	var checked = document.getElementById('subscribeme').checked;
	if (checked)
	{ document.getElementById('contextra').style.display = 'block'; }
	else
	{ document.getElementById('contextra').style.display = 'none'; }

	setHeight();
};

function VerifySubscribe()
{ return RGH.Forms.verifySubscribe(); }

function VerifyContact()
{ return RGH.Forms.verifyContact(); }
		
function checkCountry()
{ return RGH.Forms.checkCountry(); }

function showRest()
{ return RGH.Forms.showRest(); }

