var emailField;
var field1;
var field2;
var field3;
var field4;
var field5;
var field6;
var field7;
var field8;
var field9;
var field10;
var emailInitValue;
var fieldInitValue = new Array(10);

function showErrors()
{     
	if (emailField != null){      
		if (!isValidEmail(emailField.value) || emailField.value == '' || emailField.value == 'Email Address') {
			$(emailField).addClassName('errorFields');
		} else {
			$(emailField).removeClassName('errorFields');
		}	
	}
	
	for (i=1;i<=10;i++)
	{
		setErrorField(document.getElementById('field' + i),fieldInitValue[i]);
	}
	
	if (isValid(field1) || isValid(field2) || isValid(field3) || isValid(field4) || isValid(field5) || isValid(field6) || isValid(field7) || isValid(field8) || isValid(field9) || isValid(field10))
	{
		document.getElementById('errorMessages').style.display = 'block';
		document.getElementById('errorMessage').style.display = 'block';
		document.getElementById('successmessage').style.display = 'none';
	}
	if (isValid(emailField) && emailField.value != emailInitValue)
	{
		document.getElementById('errorMessages').style.display = 'block';
		document.getElementById('errorMessageEmail').style.display = 'block';
		document.getElementById('successmessage').style.display = 'none';
	}
	else
	{
		document.getElementById('errorMessageEmail').style.display = 'none';
	}
	
}

function setErrorField(field,initValue)
{
	if (field != null){ 
		if (field.tagName == 'SELECT')
		{
			if (field.value == '' || field.value == initValue) {
				field.style.color = "red";
			}
			else {
				field.style.color = "";
			}
		}
		else
		{
			if (field.value == '' || field.value == initValue) {
				$(field).addClassName('errorFields');
			} else {
				$(field).removeClassName('errorFields');
			}
		}
	}
}

function isValidForm() 
{                
	emailField = document.getElementById('emailAddress');      
	field1 = document.getElementById('field1');
	field2 = document.getElementById('field2'); 
	field3 = document.getElementById('field3'); 
	field4 = document.getElementById('field4'); 
	field5 = document.getElementById('field5'); 
	field6 = document.getElementById('field6');
	field7 = document.getElementById('field7');   
	field8 = document.getElementById('field8');   
	field9 = document.getElementById('field9');   
	field10 = document.getElementById('field10');      
	if (isValidEmail(emailField.value) 
		&& (field1 == null || (field1.value != '' && field1.value != fieldInitValue[1])) 
		&& (field2 == null || (field2.value != '' && field2.value != fieldInitValue[2])) 
		&& (field3 == null || (field3.value != '' && field3.value != fieldInitValue[3]))
		&& (field4 == null || (field4.value != '' && field4.value != fieldInitValue[4]))
		&& (field5 == null || (field5.value != '' && field5.value != fieldInitValue[5]))
		&& (field6 == null || (field6.value != '' && field6.value != fieldInitValue[6]))
		&& (field7 == null || (field7.value != '' && field7.value != fieldInitValue[7]))
		&& (field8 == null || (field8.value != '' && field8.value != fieldInitValue[8]))
		&& (field9 == null || (field9.value != '' && field9.value != fieldInitValue[9]))
		&& (field10 == null || (field10.value != '' && field10.value != fieldInitValue[10]))) 
	{                  
		return true;
	} 
	else 
	{                          
		showErrors();
		return false;
	}
}

function isValidEmail(msg)  
{
  var reEmail 	= new RegExp(/^[\w-\.]{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,3}$/);
  var reResult  = reEmail.exec(msg);

 return reResult != null ? true : false;
}

function isValid (obj) 
{
	if (typeof obj == 'undefined' || obj==null || !RegExp) { return false; }
	var re = new RegExp("(^|\\s)" + "errorFields" + "(\\s|$)");
	if (typeof(obj)=="string") {
		return re.test(obj);
	}
	else if (typeof(obj)=="object" && obj.className) {
		return re.test(obj.className);
	}
	return false;
}

document.observe('dom:loaded', function() {
    var form = document.questionForm;
    if (form != null)
    {
	    if (document.getElementById('emailAddress')!=null) {emailInitValue = document.getElementById('emailAddress').value;}
	    for (i=1;i<=10;i++)
	    {
	    	if (document.getElementById('field'+i)!=null) {fieldInitValue[i] = document.getElementById('field'+i).value;}
	    	else { fieldInitValue[i] = '';}
	    }
	    
	    if (form != null) {
	        var successField = form.questionSubmitSuccess;
	        if (successField != null && successField.value == 'true') {
	            var message = $('successmessage');
	            if (message != null) {
	                message.show();
	            }
	        }
	    }
	 }
});
