function updateForm( inForm )
{
	inForm.submit();
}
function updateQuestion( inForm )
{
	inForm.submit();
}
function updateResponse( inForm )
{
	inForm.submit();
}
function createForm( inForm )
{
	inForm.submit();
}
function createQuestion( inForm )
{
	if (inForm.question_type != 6 && inForm.question_type != 7 ) {
		if ( !validate( ( inForm.question_description ), "isNotEmpty" ) )
		{
			requiredField( "Question" );
			return false;
		}
	}
	
	// Has a Question Type been selected?
	if ( !validate( inForm.question_type, "isSelected" ) )
	{
		requiredField( "Question Type" );
		return false;
	}
	inForm.submit();
}
function createResponse( inForm )
{
	if ( !validate( ( inForm.response_description ), "isNotEmpty" ) )
	{
		requiredField( "Response" );
		return false;
	}
	inForm.submit();
}
function doCancelForm()
{
	var url = "forms_list.asp"
	window.location=url;
}
function doCancelQuestion(inForm)
{
	var url = "questions_list.asp?fid=" + inForm.form_id.value
	window.location=url;
}
function doCancelQuestionSequence(inForm)
{
	var url = "questions_list.asp?fid=" + inForm.form_id.value
	window.location=url;
}
function doCancelResponse( inForm )
{
	var url = "answers_list.asp?fid=" + inForm.form_id.value + "&qid=" + inForm.question_id.value
	window.location=url;
}
function doCancelResponseSequence( inForm )
{
	var url = "answers_list.asp?fid=" + inForm.form_id.value + "&qid=" + inForm.question_id.value
	window.location=url;
}
function doCancelResponseList( inForm )
{
	var url = "questions_list.asp?fid=" + inForm.form_id.value + "&qid=" + inForm.question_id.value
	window.location=url;
}
function textAreaLimit( field, maxlimit ) 
{
	if ( field.value.length > maxlimit)
	{
		field.value = field.value.substring( 0, maxlimit );
		var msg = "You have reached the " + maxlimit + " character limit";
		alert(msg);
	}
}
function isEmail (s)
{
    var i,ii;
    var j;
    var k,kk;
    var jj;
    var len;

    /* Check valid email
       Must have a "@" and a "." to be valid.
       Must have at least 1 character before "@"
       Must have at least 1 character after "@" and before "."
       Must have at least 2 characters after "."
    */

    /* if we have a valid address return true
       else return false
    */
    if (s.value.length >0)
    {
        i=s.value.indexOf("@");
        ii=s.value.indexOf("@",i+1);
        j=s.value.indexOf(".",i);
        k=s.value.indexOf(",");
        kk=s.value.indexOf(" ");
        jj=s.value.lastIndexOf(".")+1;
        len=s.value.length;
        if ((i>0) && (j>(1+1)) && (k==-1) && (ii==-1) && (kk==-1) &&
            (len-jj >=2) && (len-jj<=3))
        {
            return true;
        }
        else
        {
            return false;
        }
    }
}


function validateForm(inForm) {
	var objTemp;
	var strName 	= '';
	var strValue	= '';
	var boolIsValid = true;
	if ( !validate( ( inForm.firstname ), "isNotEmpty" ) )
    {
        requiredField( "First Name" );
        return false;
    }

    if ( !validate( ( inForm.lastname ), "isNotEmpty" ) )
    {
        requiredField( "Last Name" );
        return false;
    }
    if ( !validate( ( inForm.title ), "isNotEmpty" ) )
    {
        requiredField( "Title" );
        return false;
    }
    if ( !validate( ( inForm.company ), "isNotEmpty" ) )
    {
         requiredField( "Company" );
         return false;
    }
    if ( !validate( ( inForm.address1 ), "isNotEmpty" ) )
    {
         requiredField( "Address 1" );
         return false;
    }
    if ( !validate( ( inForm.city ), "isNotEmpty" ) )
    {
         requiredField( "City" );
         return false;
    }
	// Has a State been selected?
	if (inForm.country.value == '0' || inForm.country.value == '11' ) {
		if ( !validate( inForm.state, "isSelected" ) )
		{
			requiredField( "State/Province" );
			return false;
		}


    		if ( !validate( ( inForm.postal_code ), "isNotEmpty" ) )
    		{
    		     requiredField( "Postal/Zip code" );
    		     return false;
    		}
		// Has a Country been selected?
	}
		if ( !validate( inForm.country, "isSelected" ) )
		{
			requiredField( "Country" );
			return false;
		}

    if ( !validate( ( inForm.phone ), "isNotEmpty" ) )
    {
         requiredField( "Phone" );
         return false;
    }
    if ( !validate( ( inForm.email ), "isNotEmpty" ) )
    {
         requiredField( "Email" );
         return false;
    }
	else
	{
    	var email = isEmail(inForm.email);
    	if (!email)
       {

			 alert("You must enter a valid email address");
			 inForm.email.focus();
			 return false;
		 }

	}
	for ( var i = 0; i < inForm.elements.length; i++ ) {
		objTemp = inForm.elements[i];
		strName = objTemp.name;
		strValue = objTemp.value;
		var field_name_array=strName.split("_");
		var question_required;
		var question_special_validation;
		var question_type;
		var question_id;
		var question_label_id;
		var isCheck=false;
		if ( objTemp.type != 'button' && objTemp.type != 'reset' && objTemp.type != 'submit' ) {
			question_required = field_name_array[0];
			question_special_validation = field_name_array[1];
			question_type = field_name_array[2];
			question_id = field_name_array[3];
			question_label_id = 'label_' + strName;
			
			if ( question_required == 1 ) {
				if ( question_type == 1 || question_type == 2 ) {
					if ( !validate( ( objTemp ), "isNotEmpty" ) )
					{
						requiredField( document.getElementById(question_label_id).innerHTML );
						return false;
					}
				}
				if ( question_type == 3 ) {
					if ( !validate( ( objTemp ), "isSelected" ) )
					{
						requiredField( document.getElementById(question_label_id).innerHTML );
						return false;
					}
				}
				if ( question_type == 4 ) {
					
					if ( !validate( ( objTemp ), "isChecked" ) )
					{
						requiredField( document.getElementById(question_label_id).innerHTML );
						return false;
					}
				}				
				if ( question_type == 5 ) {
					var tName = inForm.elements[i].name;
					var tElement = inForm.elements[i];

					while ( ( tName == objTemp.name ) == true )
					{
						if ( tElement.checked ) {
							isCheck=true;
						}
						i++;
						tName = inForm.elements[i].name;
						tElement = inForm.elements[i];
					}

					if (!isCheck) {
						requiredField( document.getElementById(question_label_id).innerHTML );
						return false;
					}
				}							
			}
		}
	}
	// Has Email been selected?
	if ( !inForm.can_email[0].checked && !inForm.can_email[1].checked)
	{
		requiredField( "Contact via Email" );
		return false;
	}
	
	// Has Permission? been selected?
	if ( !validate( inForm.permission, "isChecked" ) )
	{
		requiredField( "Privacy Policy" );
		return false;
	}
	else
	{
		if (inForm.permission[1].checked )
		{
			alert("You must agree to the privacy policy to submit the form");
			return false;
		}
	}	
	inForm.submit();
}