// Wrapper to get a cross-browser XMLHttp object
function GetXmlHTTPObject()
{
	var xmlhttp = null;

	if (window.XMLHttpRequest) // Firefox/Mozilla
		xmlhttp = new XMLHttpRequest();
	else if (window.ActiveXObject) // IE Version
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	
	return xmlhttp;
}

function ValidateSubscribe(f)
{
	var valid = true;
	var msg = 'Please fill in the following fields:\t\n\n';
	var efields = new Array();

	if(f.Title.value == '') { valid = false; msg += '- Title\t\n'; efields[efields.length] = f.Title; }
	if(f.Forename.value == '') { valid = false; msg += '- Forename\t\n'; efields[efields.length] = f.Forename; }
	if(f.Surname.value == '') { valid = false; msg += '- Surname\t\n'; efields[efields.length] = f.Surname; }
	if(f.CompanyName.value == '') { valid = false; msg += '- Company Name\t\n'; efields[efields.length] = f.CompanyName; }
	if(f.Telephone.value == '') { valid = false; msg += '- Telephone\t\n'; efields[efields.length] = f.Telephone; }
	if(f.Email.value == '' || f.Email.value.indexOf("@") == -1 || f.Email.value.indexOf(".") == -1) { valid = false; msg += '- Email\t\n'; efields[efields.length] = f.Email; }
	if(f.Postcode.value == '') { valid = false; msg += '- Postcode\t\n'; efields[efields.length] = f.Postcode; }

	if(valid)
	{
		return true;
	}
	else
	{
		alert(msg);

		for(var x=0; x<f.elements.length; x++)
			f.elements[x].style.backgroundColor = '';

		for(var x=0; x<efields.length; x++)
			efields[x].style.backgroundColor = '#FFBEBE';

			return false;
	}
}

function AJAXSubscribe(f)
{
	var http = GetXmlHTTPObject();
	
	if(ValidateSubscribe(f)){
	    if(http)
	    {
		    var query = new Array();
    		
		    query[0] = 'title=' + f.Title.value;
		    query[1] = 'forename=' + f.Forename.value;
		    query[2] = 'surname=' + f.Surname.value;
		    query[3] = 'companyname=' + f.CompanyName.value;
		    query[4] = 'telephone=' + f.Telephone.value;
		    query[5] = 'email=' + f.Email.value;
		    query[6] = 'ajax=1';
		    query[7] = 'r=' + new Date().getTime();
		    query[8] = 'postcode=' + f.Postcode.value;

		    var url = '/do_subscribe.asp?' + query.join('&');
    		
		    http.open('GET', url, true); 
    		
		    // Wire up the event handler and send the request
		    http.onreadystatechange = function() { HandleHttpResponse(http); }; 
		    http.send(null);

		    return false;
	    }
	    else
	    {
		    return true;
	    }
	}
	else
	{
	    return false;
	}
}

// Code to handle the RSS XML response
function HandleHttpResponse(http) 
{ 
	// Pick out the container we are trying to fill in the HTML doc
	var container = document.getElementById('subscribe_area');
	
	// If the request is complete
	if(http.readyState == 4)
	{ 
		var	result = http.responseXML.getElementsByTagName('result')[0].attributes.getNamedItem('msg').value;
		container.innerHTML = '<br /><h2>Keep yourself informed</h2><br /><p id="sublink">' + result + '</p>';
	} 
	else
	{
		// Handle other states here
	}
	
	// Kill the XMLHttp object
	http = null;
}

function ShowSubscribeForm(x)
{
	document.getElementById('sublink').style.display = (x == 1) ? 'none' : 'block';
	document.getElementById('subscribeform').style.display = (x == 1) ? 'block' : 'none';
}