/////////////////////////////////////////////functions////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
//test if single digit
function isDigit(value)
{
    //one occurance of a digit
    var regex = /^\d{1}$/;
    return regex.test(value);
}

//test if number
function isNumber(value)
{
    //One or more occurances of a digit
    var regex = /^[0-9]+$/;
    return regex.test(value);
}

//test if null or empty
function isNullOrEmpty(value)
{
    return (value == null || value == '')
}

function trim (str)
{
    return str.replace(/^\s+/, '').replace(/\s+$/, '');
}


function validate_regform()
{
//////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////Validate/////////////////////////////

		// validate firstname
		if (isNullOrEmpty(document.regform.first_name.value))
        {
			alert('Please enter your First Name.');
			document.regform.first_name.focus();
			return false;
		}
        else if(!isNaN(document.regform.first_name.value))
        {
		    alert("Please enter a valid First Name.");
            document.regform.first_name.focus();
			return false;
		}

		// validate lastname
		if (isNullOrEmpty(document.regform.last_name.value)) {
			alert('Please enter your Last Name.') ;
			document.regform.last_name.focus();
            return false;
		}
        else if(!isNaN(document.regform.last_name.value))
        {
		    alert("Please enter a valid Last Name.");
            document.regform.last_name.focus();
			return false;
		}

        if (isNullOrEmpty(document.regform.title.value))
        {
		    alert("Please enter your title.");
            document.regform.title.focus();
			return false;
		}

        if (isNullOrEmpty(document.regform.company.value))
        {
		    alert("Please enter the company you work for.");
            document.regform.company.focus();
			return false;
        }
        
        
		
		// validate email
		if (isNullOrEmpty(document.regform.email.value))
        {
			alert('Please enter your email address.');
			document.regform.email.focus();
			return false;
		}
		else if (!/^([A-Z0-9]+[._]?){1,}[A-Z0-9-]+\@(([A-Z0-9]+[-]?){1,}[A-Z0-9]+\.){1,}([A-Z]{2,4}|museum)$/i.test(document.regform.email.value))
        {
            alert('Please enter a valid email address.')
            document.regform.email.focus();
			return false;
        }
        
        //validate phone number
		
		if (isNullOrEmpty(document.regform.phone.value))
        {
		    alert("Please enter your phone number.");
            document.regform.phone.focus();
			return false;
        }
        
        else if (!isNullOrEmpty(document.regform.phone.value))
        {
        	if(!/^(\(\d{3}\)\s\d{3}-\d{4})$/i.test(document.regform.phone.value))
		    {
				alert("Please enter a valid phone number.\r\nPhone number must be in the following format:\r\n(XXX) XXX-XXXX");
				document.regform.phone.focus();
				return false;
			}
        }
		
		// validate country is picked
		if (isNullOrEmpty(document.regform.country.value))
        {
			alert('Please select your country.');
			document.regform.country.focus();
			return false;
		}
		if(((document.regform.country.value) == "US") && (isNullOrEmpty(document.regform.state.value)))
        {
				alert('Please select your state.');
				return false;
		}
		
		if(((document.regform.country.value) == "CA") && (isNullOrEmpty(document.regform.province.value)))
        {
				alert('Please select your province.');
				return false;
		}

		if (isNullOrEmpty(document.regform.description.value))
        {
			alert('Please enter a description.');
			document.regform.description.focus();
			return false;
		}




    return true;
}


////////////////////////////////////////////////////////////////////////////////
//-------Length Validation---------------------------------------------------//
function isValidLength(element, fieldLength)
{
    var trimElement = element.value.replace(/ \s /, '');
    if (trimElement.length < fieldLength)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function returnObjById( id )
{
    if (document.getElementById)
        var returnVar = document.getElementById(id);
    else if (document.all)
        var returnVar = document.all[id];
    else if (document.layers)
        var returnVar = document.layers[id];
    return returnVar;
}


function checkCountry(COUNTRY)
{
	if ((document.regform.country.value)=="US"){
	document.getElementById('stateSelection').style.display="block";
	document.getElementById('provinceSelection').style.display="none";
	}
	
	else if ((document.regform.country.value)=="CA"){
	document.getElementById('stateSelection').style.display="none";
	document.getElementById('provinceSelection').style.display="block";
	}

	else if ((document.regform.country.value)!="US" && (document.regform.country.value)!="CA"){
	document.getElementById('stateSelection').style.display="none";
	document.getElementById('provinceSelection').style.display="none";
	}
}