/*************************************************
Organization	: WhooshPro Pte Ltd
Website			: www.whooshpro.com
Author			: Nicholas Chua
Created			: 14 Feb 2007
Modified		: -

Remarks			:
Just include this js into your web form and use the wp_webrequest function to start posting.
Create a server side page to receive the posted variables and do something you want about them.
*************************************************/

//test
function ValidateNPost(form) 
{
	var validateVal = Validate(form);
	
	//only post when the form is valid
	if (validateVal == true) 
	{
		 //wp_webrequest(form, url);
		 wp_formSubmit(form);
	}
	return false;
} 
// end test

function wp_formSubmit(form)
{
	form.submit();
}
	
function wp_webrequest(form, url)
{
	var message = 'Sorry, we are currently unable to process your submission. Please try again later.';
	
	var request = null;
	//if Mozilla, Safari etc
	if(window.XMLHttpRequest)
		request = new XMLHttpRequest();
	//if IE
	else if(window.ActiveXObject)
	{	
		try
		{	
			request = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{	
			try
			{	
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{	
				message = 'Your browser is unable to send information to our server. Please update your browser version or change to another browser.';
			}
		}
	}
			
	//netscape.security.PrivilegeManager.enablePrivilege( "UniversalBrowserRead");
	try{
	//post page synchronously 
		request.open('POST', url, false);
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
		request.send(wp_webrequest_buildquerystring(form));
	}
	catch(e)
		{alert('Cannot Call XmlHttp');}
	
	alert('Msg sent, now requesting');
		
	//final messages
	if (request.status==200)
	{
		//alert("request status is 200")
		//alert('Thank you for subscribing to our newsletter');
				
		if(request.responseText.indexOf('Status: 1') > -1)
		{	
			//alert(request.responseText);
			alert('Thank you for subscribing to our newsletter');
			form.emailaddr.value = "";
			
			//roger: newly added in to clear fields
			//if submission is success
			form.reset();
			//document.getDocumentByID("emailaddr").value = ''			
		}
		else if(request.responseText.indexOf('Status: 2') > -1)
		{
			//roger: Error
			alert('Oh! Fail Submitting!');
			form.emailaddr.value = "";
		}
		else if(request.responseText.indexOf('Status: 3') > -1)
		{ 
			//roger: if isExists check fails. For the Subscriber and SmsUpdatesRegistration classes
			alert('You are already registered in our subscription list!');
		}
		else if(request.responseText.indexOf('Status: 4') > -1)
		{
			//roger: healthcare request
			alert('Thank you for submitting your request. \n\rWe will get back to you shortly');
			
			//roger:reset the form to its default state				
			form.reset();
		}
		else if(request.responseText.indexOf('Status: 5') > -1)		
		{
			//roger: sms request
			alert('Thank you for your registration');
			form.reset();		
		}
		else if(request.responseText.indexOf('Status: 6') > -1)
		{
			//roger: if referrer is not ww.oceanhealth.com
			alert('Access denied');
		}
		else if(request.responseText.indexOf('Status: 7') > -1)
		{
			//roger: if referrer is not ww.oceanhealth.com
			alert('Date of Birth is invalid');
		}
		else
		{
			//roger: some unhandled exception
			alert('An unknown error has occured.');
		}			
	}
	else
	{
		//alert('status: ' + request.status);
		alert(message);		
	}

	//return false to stop html form from posting
	return false;
}

function wp_webrequest_buildquerystring(form)
{	
	//alert("entering buildquerystring");
	
	var querystring = '';
	var name, value;
	var i=0;
	
	for(i=0; i<=form.elements.length-1; i++)
	{	//name = form.elements[i].name;
	
		//
		//alert(form.elements[i].type);
		//if(form.elements[i].type == 'select-one')
		//	value = form.elements[i].options[form.elements[i].selectedIndex].value;
		//else
		//	value = form.elements[i].value;
		
		//add by zeya
		if (form.elements[i].type =='checkbox' || form.elements[i].type =='radio')
		{
			if (form.elements[i].checked == true) 
			{
				name = form.elements[i].name;
				value =form.elements[i].value;
			}
			else
			{
				name = '';
				continue;
			}			
		}
		else
		{
			name = form.elements[i].name;
		
			//
			//alert(form.elements[i].type);
			if(form.elements[i].type == 'select-one')
				value = form.elements[i].options[form.elements[i].selectedIndex].value;
			else
				value = form.elements[i].value;		
		}
		
		//zeya
		if (name != '')
		{
			querystring = querystring + name + '=' + value + '&';
		}
		
		//build querystring for posting
		//querystring = querystring + name + '=' + value + '&';
	}
	//alert(querystring);
	return querystring;
}
