var wireMainForms = function () {
	$('#content form').submit(function () {
	  var zipPattern = /(^\d{5}$)/;
		var errorList = '<div class="errors"><p>The following issues prevent us from completing your request:</p><ul>';
		var isValid = true;
		
		// check for mobile phone for Print form
		if ($("input#ctl00_MainContent_mobile_chk").length == 1 && $("input#ctl00_MainContent_mobile_chk:checked").length != 0) {
		  // Checked the mobile phone box, so let's make sure that the mobile phone field is marked as required
		  $("#mobile-phone-field").addClass("required");
		} else if ($("input#ctl00_MainContent_mobile_chk").length == 1) {
		  // Not checked, so it's marked required, we need to remove that
		  if ($("#mobile-phone-field").hasClass("required")) {
		    $("#mobile-phone-field").removeClass("required");
		    $("#mobile-phone-field input").removeClass("error");
		  }
		}
		
		// check for movile phone for Pack form
		if ($("input#ctl00_MainContent_phone_chk").length == 1 && $("input#ctl00_MainContent_phone_chk:checked").length != 0) {
		  // Checked the mobile phone box, so let's make sure that the mobile phone field is marked as required
		  $("#mobile-phone-field").addClass("required");
		} else if ($("input#ctl00_MainContent_phone_chk").length == 1) {
		  // Not checked, so it's marked required, we need to remove that
		  if ($("#mobile-phone-field").hasClass("required")) {
		    $("#mobile-phone-field").removeClass("required");
		    $("#mobile-phone-field input").removeClass("error");
		  }
		}
		
		$('#content form .required input[type=text], #content form .required select').each(function () {
			$(this).removeClass('error');
			if ($(this).val() == '') {
			  if ($(this).attr("name") != "ctl00$MainContent$ph2" && $(this).attr("name") != "ctl00$MainContent$ph3") {
				  errorList += '<li>' + $(this).parents('.field').find('label').html() + ' is required.</li>';
			  }
				$(this).addClass('error');
				isValid = isValid && false;
			} else if ($(this).attr("name") == "zip_code" && !zipPattern.test( $(this).val() )) {
			  errorList += '<li>The ' + $(this).parents('.field').find('label').html() + ' must be in the format: 11111</li>';
			  $(this).addClass('error');
			  isValid = false;
			}
		});
		errorList += '</ul></div>'
		
		if ($('#content form .errors').length > 0) $('#content form .errors').remove();
		if (!isValid) {
  		$('#content form:first').prepend(errorList);
		}
		
		return isValid;
	});
}

var wireStayGreenForm = function () {
	var input = $('#stay-green-email-field input');
	var defaultText = 'Your email address';
	var stayGreenForm = $('#stay-green-email-field').parents('form');
	var emailPattern = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
	input.val(defaultText).addClass('default');
	input.bind('focus', function () {
		if (input.hasClass('default')) {
			input.removeClass('default');
			input.val('');
		}
	});
	input.bind('blur', function () {
		if (input.val() == '') {
			input.addClass('default');
			input.val(defaultText);
		}
	});
	stayGreenForm.submit(function () {
		if (input.val() == '' || input.hasClass('default') || !emailPattern.test(input.val())) {
			if (stayGreenForm.find('.errors').length > 0) stayGreenForm.find('.errors').remove();
			if (input.val() == '' || input.hasClass('default')) {
			  stayGreenForm.prepend('<div class="errors"><p>You must provide an email address to sign up!</p></div>');
			} else {
			  stayGreenForm.prepend('<div class="errors"><p>Please enter a valid email address.</p></div>')
			}
			return false;
		}
		else return true;
	});
}

$(document).ready(function () {
	wireMainForms();
	wireStayGreenForm();
});