function msgmeSignupSubmit()
{
	var postData = gatherFields();
	var url = document.getElementById('msgmesignup_form').action;
	if (url.indexOf('_optin') == -1)
		writeIframeMsgme(postData, false, false);
	else
		writeIframeMsgme(postData, false, true);
	
	return false;
}

function validateEmail(email)
{
	if(email == '' || !validateEmailFormat(email))
	{
		document.getElementById('msgmesignup_invalid_email').style.display = 'block';
		return false;
	}
	else
	{
		document.getElementById('msgmesignup_invalid_email').style.display = 'none';
		return true;
	}
}

function validateEmailFormat(elementValue){  
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;  
   return emailPattern.test(elementValue);  
 }

function validateSweepsForm()
{			
	var postData = gatherFields();
	if (postData != '')
	{
		var url = document.getElementById('msgmesignup_form').action;
		if (url.indexOf('_optin') == -1)
			writeIframeMsgme(postData, true, false);
		else
			writeIframeMsgme(postData, true, true);
	}
	
	return false;
}

function gatherFields()
{
	var signup = document.getElementById('msgmesignup_form');
	
	var postDataStr = '';
	
	for(var i = 0, len = signup.elements.length; i < len; i++)
	{		
		if(signup.elements[i].type == 'hidden' || 
				signup.elements[i].type == 'text' || 
				signup.elements[i].type == 'textarea' ||
				signup.elements[i].type == 'select' || 
				signup.elements[i].type  == 'select-one')
		{
			if(signup.elements[i].id == 'msgmesweeps_email' && signup.elements[i].value != '' )
			{
				if (!validateEmail(signup.elements[i].value))
				{
					postDataStr = '';
					break;
				}
			}
			if (signup.elements[i].type == 'select-one' && signup.elements[i].value == -1)
			{
				continue;
			}
			postDataStr += signup.elements[i].name+'='+signup.elements[i].value+'&';
		}
		else if(signup.elements[i].type == 'checkbox' && signup.elements[i].checked)
		{
			postDataStr += signup.elements[i].name+'='+signup.elements[i].value+'&';
		}
		else if(signup.elements[i].type == 'radio' && signup.elements[i].checked)
		{
			postDataStr += signup.elements[i].name+'='+signup.elements[i].value+'&';
		}
	}

	return postDataStr;
}

function handleResponse(responseText)
{
	document.getElementById('msgmesignup_invalid_number').style.display = 'none';
	document.getElementById('msgmesignup_already_signed_up').innerHTML = 'Mobile number is already signed up.';
	document.getElementById('msgmesignup_already_signed_up').style.display = 'none';
	document.getElementById('msgmesignup_signed_up').style.display = 'none';
	if (document.getElementById("msgmesignup_updated") != null)
	{
		document.getElementById('msgmesignup_updated').style.display = 'none';
	}
	if (document.getElementById('msgmesignup_failed') != null)
	{
		document.getElementById('msgmesignup_failed').style.display = 'none';
	}
	if (document.getElementById('msgmesignup_invalid_email') != null)
	{
		document.getElementById('msgmesignup_invalid_email').style.display = 'none';
	}
	
	if (document.getElementById('msgmesignup_sweepsmessage') != null)
	{
		document.getElementById('msgmesignup_sweepsmessage').style.display = 'none';
	}
	if(responseText == 'invalid_msisdn')
	{
		document.getElementById('msgmesignup_invalid_number').style.display = 'block';
	}
	else if(responseText == 'already_subscribed')
	{
		document.getElementById('msgmesignup_already_signed_up').style.display = 'block';
	}
	else if(responseText == 'updated')
	{
		if (document.getElementById('msgmesignup_updated') != null)
		{
			document.getElementById('msgmesignup_updated').style.display = 'block';
		}
		else
		{
			document.getElementById("msgmesignup_already_signed_up").setAttribute("class", "msgmesignup_feedback msgmesignup_feedback_success");
			document.getElementById('msgmesignup_already_signed_up').innerHTML = "Subscriber information was updated.";
			document.getElementById('msgmesignup_already_signed_up').style.display = 'block';
		}
	}
	else if(responseText == 'failed')
	{
		if (document.getElementById('msgmesignup_failed') != null)
		{
			document.getElementById('msgmesignup_failed').style.display = 'block';
		}
		else
		{
			document.getElementById("msgmesignup_already_signed_up").setAttribute("class", "msgmesignup_feedback msgmesignup_feedback_error");
			document.getElementById('msgmesignup_already_signed_up').innerHTML = "Fields are invalid or do not exist";
			document.getElementById('msgmesignup_already_signed_up').style.display = 'block';
		}
	}
	else if(responseText == 'success')
	{
		document.getElementById('msgmesignup_signed_up').style.display = 'block';
	}
	else if (responseText == 'msgmesignup_invalid_email')
	{
		document.getElementById('msgmesignup_invalid_email').style.display = 'block';
	}
	else if (responseText == 'msgme_invalid_age')
	{
		document.getElementById('msgmesignup_already_signed_up').innerHTML = "You are not qualified!"
		document.getElementById('msgmesignup_already_signed_up').style.display = 'block';	
	}
	else if (responseText == 'msgme_invalid_date')
	{
		document.getElementById('msgmesignup_already_signed_up').innerHTML = "Please enter a valid date of birth."
		document.getElementById('msgmesignup_already_signed_up').style.display = 'block';

	}
	else if (responseText != '')
	{
		document.getElementById('msgmesignup_sweepsmessage').innerHTML = unescape(responseText);
		document.getElementById('msgmesignup_sweepsmessage').style.display = 'block';
	}
}

function sendRequest(url,callback,postData) {
	var req = createXMLHTTPObject();
	if (!req) return;
	var method = (postData) ? "POST" : "GET";
	req.open(method,url,true);
	// req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	if (postData)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
// alert('HTTP error ' + req.status);
			return;
		}
		callback(req);
	}
	if (req.readyState == 4) return;
	req.send(postData);
}

var XMLHttpFactories = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

function createXMLHTTPObject() {
	var xmlhttp = false;
	for (var i=0;i<XMLHttpFactories.length;i++) {
		try {
			xmlhttp = XMLHttpFactories[i]();
		}
		catch (e) {
			continue;
		}
		break;
	}
	return xmlhttp;
}

function writeIframeMsgme(postData, sweeps, optin)
{
	var iframe = document.createElement("iframe");
	
	if(sweeps)
	{
		url = 'http://msgme.com/msgme_signup_widget_xd.php?sweeps=true&from='+window.location.host;
	}
	else
	{
		url = 'http://msgme.com/msgme_signup_widget_xd.php?from='+window.location.host;
	}
	
	if (optin)
	{
		url += '&optin=true';
	}
	
	url += '&postData='+escape(postData);
    iframe.src = url;
    iframe.style.display = "none";
    document.body.appendChild(iframe);
}

window.onload = function()
{
	// writeIframeMsgme();
}
