var form_req = false;

function submitForm() {
	var validFields = true;
	var email = document.getElementById("emailAddress").value;
	var locale = document.getElementById("locale").value;
	var requestorId = (document.getElementById("requestorId")) ?
	  document.getElementById("requestorId").value : false;

	var submitUrl;

	if (email.length == 0) {
		document.getElementById("NewsEmailAddress").style.color = "#ff0000";
		validFields = false;
	} else {
		document.getElementById("NewsEmailAddress").style.color = "#ffffff";
	}
	var country = document.getElementById("country").value;
	if (country.length == 0) {
		document.getElementById("NewsCountry").style.color = "#ff0000";
		validFields = false;
	} else {
		document.getElementById("NewsCountry").style.color = "#ffffff";
	}
	var day = Number(document.getElementById("day").value);
	var month = Number(document.getElementById("month").value);
	var year = Number(document.getElementById("year").value);
	if (day == 0 || month == 0 || year == 0) {
		document.getElementById("NewsBirthdate__").style.color = "#ff0000";
		validFields = false;
	} else {
		document.getElementById("NewsBirthdate__").style.color = "#ffffff";
	}
	if (!validFields) {
		return;
	}

	var tp_optin = document.getElementById("tp_optin").checked;

	var age = 13;
	switch (country) {
		case "BE":
		case "DK":
		case "FR":
		case "IE":
		case "IT":
		case "PL":
		case "SE":
		case "NL":
		case "AN":
			age = 16;
			break;
		case "FI":
		case "NO":
			age = 15;
			break;
		case "DE":
		case "KR":
		case "RU":
		case "ES":
			age = 14;
			break;
		case "PT":
			age = 18;
			break;
	}

	var validDate = true;
	var currentDate = new Date();
	var ageDate = new Date();
	ageDate.setFullYear(year, month-1, day);

	if (ageDate < currentDate) {
		var yearDiff = currentDate.getFullYear() - ageDate.getFullYear();
		if (yearDiff == age) {
			var monthDiff = currentDate.getMonth() - ageDate.getMonth();
			if (monthDiff == 0) {
				if (currentDate.getDate() < ageDate.getDate()) {
					validDate = false;
				}
			} else if (monthDiff < 0) {
				validDate = false;
			}
		} else if (yearDiff < age) {
			validDate = false;
		}
	} else {
		validDate = false;
	}

	document.getElementById("ds_news_form_content").innerHTML = "";

	if (validDate) {
		document.getElementById("birthDate").value = year + "-" + month + "-" + day;

		submitUrl = "newsletter_post.php?preferenceName=Spore-franchise&emailAddress=" + email +
      "&country=" + country + "&birthDate=" + year + "-" + month + "-" + day + "&tp_optin=" +
      tp_optin;
		submitUrl += "&locale=" + locale;
		submitUrl += (requestorId) ? ("&requestorId=" + requestorId) : "";
		fnPostForm(submitUrl);

		document.getElementById("NewsletterTitle").innerHTML = document.getElementById("NewsletterSuccess0").innerHTML;
		document.getElementById("NewletterIntro").innerHTML = document.getElementById("NewsletterSuccess1").innerHTML;
		callSpot('2229362', 'darks783', 'ea_fy088');
	}
	else {
		document.getElementById("NewsletterTitle").innerHTML = document.getElementById("NewsletterFailure0").innerHTML;
		document.getElementById("NewletterIntro").innerHTML = document.getElementById("NewsletterFailure1").innerHTML;
	}
}

function fnPostForm(postURL) {
	form_req = false;
	// branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        form_req = new XMLHttpRequest();
        form_req.onreadystatechange = fnProcessFormReqChange;
        form_req.open("POST", postURL);
        form_req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        form_req = new ActiveXObject("Microsoft.XMLHTTP");
        if (form_req) {
            form_req.onreadystatechange = fnProcessFormReqChange;
            form_req.open("POST", postURL);
            form_req.send();
        } else {
			form_req = new ActiveXObject("Msxml2.XMLHTTP");
			if (form_req) {
				form_req.onreadystatechange = fnProcessFormReqChange;
				form_req.open("POST", postURL);
				form_req.send();
			}
		}
	}
}

function fnProcessFormReqChange() {
	// only if req shows "complete"
    if (form_req.readyState == 4) {
        // only if "OK"
        if (form_req.status == 200) {
            // ...processing statements go here...
			var xmlDoc = form_req.responseXML;
			var successResponse = xmlDoc.getElementsByTagName("newsletter");
			var successNode = successResponse[0];
		}
	}
}

