var errorFields = new Array();
var errorFieldsClasses = new Array();
function resetFields()
{

  //  First, reset all the fields
   if(errorFields.length > 0)
  {
    for(var i=0; i<errorFields.length; i++)
    {
    	errorFields[i].className = errorFieldsClasses[i];
    }
  }

  //  Second, reinitialize the arrays
  errorFields = new Array();
  errorFieldsClasses = new Array();
}
function clearvalues() {
	document.getElementById('postal2').value='';
	document.getElementById('email2').value='';
	document.getElementById('confirmemail').value='';
	document.getElementById('timelygardeningtips').checked=false;
	document.getElementById('lawncareupdates').checked=false;
	document.getElementById('promotionalemails').checked=false;
	document.getElementById('hotissuealerts').checked=false;
	document.getElementById('errorDivTag').style.display='none';
	revertback();
	}

function revertback() {
	document.getElementById('postalCodeBlock').className="postal required";
	document.getElementById('emailBlock').className="email required";
	document.getElementById('confirmEmailBlock').className="confirmemail required";
	document.getElementById('timelygardeningtipsBlock').className="newsletter timelygardeningtips";
	document.getElementById('lawncareupdatesBlock').className="newsletter lawncareupdates";
	document.getElementById('hotissuealertsBlock').className="newsletter hotissuealerts";
	document.getElementById('promotionalemailsBlock').className="newsletter promotionalemails";
	}

function emailsignup() {
	//  1) reset the fields class to normal
	resetFields();

	//  2)  Clean out the errorList of any errors
  var eb = document.getElementById("errorList");
  eb.innerHTML="";

  //  3)  Get reference to the error div
  var errorDiv = document.getElementById("errorDivTag");
  document.getElementById('errorDivTag').style.display='none';
  //  4) pull the values off of the form

  var zipCode=dwr.util.getValue("postal2");
  var email=dwr.util.getValue("email2");
  var confirmemail=dwr.util.getValue("confirmemail");
  var gardentips=dwr.util.getValue("timelygardeningtips");
  var lawncareupdates=dwr.util.getValue("lawncareupdates");
  var promotionalEmail=dwr.util.getValue("promotionalemails");
  var hotIssuesEmail=dwr.util.getValue("hotissuealerts");
  var campaign = dwr.util.getValue("campaign");
  var referrer = dwr.util.getValue("referrer");

ProfileFormHandler.emailNewsLetter(
	zipCode,
	email,
  	confirmemail,
  	gardentips,
  	lawncareupdates,
  	promotionalEmail,
  	hotIssuesEmail,
  	campaign,
  	referrer,
  	{callback:function(data)
		  {
		    if(data.success == true)
		    {
			  newslettersignupHide();
			  clearvalues();
	        }
		   else
    	    {
        	  if(data.errors.length > 0)
	          {
	            //  There are errors so show the error div
				document.getElementById("errorDivTag").style.display="block";
	            /*
				This is not working
					errorDiv.className="error-message block";
				*/
	            for(var i=0; i<data.errors.length; i++)
	            {
	              //  Get the id of the field from the response
			      var dd = document.getElementById(data.errors[i].htmlElementId);

			      //  Add the field and its origional className value to form level arrays
			      errorFields.push(dd);
			      errorFieldsClasses.push(dd.className);

			      //  Change the className for the field to include the error class
			      dd.className = dd.className + " error";

			      //  Add a list element with the localized error message
			      var oNewNode = document.createElement("LI");
			      var exc = data.errors[i].exception.message;
				  if( i==0 ) {
						eb.appendChild(oNewNode);
				  } else {
				      var excPre = data.errors[i-1].exception.message;

					  if( excPre != exc) {
						  eb.appendChild(oNewNode);
					  }
				  }
				  oNewNode.innerHTML= exc;
		       	}
	         }
        }
      }
    }
  );
}
