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;
		       	}
	         }
        }
      }
    }
  );
}
