function validateForm()
{
	if(!validateName())
		return false;
		
	if(!validateEmailAddress())
		return false;
		
	if(!validateSubjectFields())
		return false;
	
	if(!validateContentFields())
		return false;
		
	document.forms[0].recipient.value = "enquiry@themeanders.com";
	//document.forms[0].redirect.value = document.location;
		
	document.forms[0].submit();
	alert("Thanks for the enquiry. Your message has been sent successfully!");
}


function validateMailingListForm()
{
	if(!validateEmailAddress())
		return false;
		
	document.forms[0].recipient.value = "news-subscribe@themeanders.com";
	//document.forms[0].redirect.value = document.location;
		
	document.forms[0].submit();
	alert("Thank you for joining our mailing list!");
}

function validatePreDownloadForm(target)
{
	if ( !isEmpty(document.forms[0].realname.value) 
	     && !validateName() )
		return false;
	if ( !isEmpty(document.forms[0].email.value) 
	     && !validateEmailAddress() )
		return false;
		
	document.forms[0].recipient.value = "download@themeanders.com";
	document.forms[0].redirect.value = "http://www.themeanders.com/ftp/" + target;
	document.forms[0].origin.value = document.location;
	
	if ( !isEmpty(document.forms[0].email.value) 
			&& document.forms[0].subscribe.checked)
	{
		document.forms[0].subject.value = "Subscription Required";
	}
	else
	{
		document.forms[0].subscribe.value = "";
		document.forms[0].subject.value = "";
	}		
			
	document.forms[0].submit();
}

function validatePurchaseForm(id)
{
	//http://www.swreg.org/cgi-bin/s.cgi?s=<store number>
	//&p=<product code>&v=<variation 0-8>&d=<shipping option 0-8>&q=<quantity>
	//&t=<any text you wish to pass up to 60 characters without any speech marks>
	
	//var store_number = document.forms[0].s.value;
	//var product_code = document.forms[0].p.value;
	//var variation = document.forms[0].v.value;
	//var delivery_option = document.forms[0].d.value;
	//var quantity = document.forms[0].q.value;
	//var text_extra = document.forms[0].t.value;
	//var currency = document.forms[0].c.value;

	//var swreg = "http://usd.swreg.org/cgi-bin/s.cgi?"
	//				+ "s=" + store_number +
	//				+ "&p=" + product_code +
	//				+ "&v=" & variation +
	//				+ "&d=" & delivery_option +
	//				+ "&q=" & quantity +
	//				+ "&t=" & text_extra +
	//				+ "&c=" & currency +
	//				+ "&x=1";
	
	if (isEmpty(document.forms[id].t.value))
	{
		alert("Please kindly select where you found us.");
		return false;
	}
	
	document.forms[id].submit();		
}

function isEmpty(strTextField)
{
	if (strTextField == "" || strTextField==null)
		return true;
	
	var re = /\s/g; //Match any white space including space, tab, form-feed, etc.
	RegExp.multiline = true; // IE support 
	var str = strTextField.replace(re, "");
	
	if (str.length == 0) 
		return true;
	else
		return false;
}

function validateName() 
{ 
	var tempName=document.forms[0].realname.value;

	if(isEmpty(tempName))
	{
		alert("Please enter your Name.");
		document.forms[0].realname.focus();
		document.forms[0].realname.select();
		return false;
	}
	else
	{
		var re = /^([a-zA-Z]+ *)+$/;
		if (!re.test(tempName))
		{		
			alert("Please enter only alphabets and spaces for your Name.");
			document.forms[0].realname.focus();
			document.forms[0].realname.select();
			return false;
		}
		else
		{
			return true;
		}
	}
}

function validateEmailAddress()
{
	var tempEmailAddress=document.forms[0].email.value;

	if(isEmpty(tempEmailAddress))
	{
		alert("Please enter your Email Address.");
		document.forms[0].email.focus();
		document.forms[0].email.select();
		return false;
	}
	else 
	{
		re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
		if (re.test(tempEmailAddress))
		{
			return true;
		}
		else
		{
			alert("Please input a valid Email address.");
			document.forms[0].email.focus();
			document.forms[0].email.select();
			return false;
		}	 
	}
}

function validateSubjectFields() 
{
	var tempSubject=document.forms[0].subject.value;
	
	// The first one is excluded.
	for (var i = 1; i <  myOptions.length; i++)
	{
		if (tempSubject == myOptions[i])
			return true;
	}
	
	alert("Please select one Subject before proceeding.");
	document.forms[0].subject.focus();
	return false;
}

function validateContentFields()
{
	var tempContent=document.forms[0].content.value;
	
	if(isEmpty(tempContent))
	{
		alert("Please enter your Enquiry.");
		document.forms[0].content.focus();
		document.forms[0].content.select();
		return false;
	}
	else
		return true;
}

function makeArray() 
{
   for (var i=0; i < arguments.length; i++)
       this[i] = arguments[i];
   this.length = arguments.length;
}

var myOptions = new makeArray("Please select one topic",
									 "Seek Technical Support", //1
									 "Make Sales Enquiry", //2
                            "Make General Enquiry", //3
                            "Make Feature Wish",//4
                            "Request Previous Version",//5
                            "Request SDK"//6
                            );

var selectedIndex = 0;

function setSelectedOption(iIndex)
{
	if (iIndex < 0)
		iIndex = 0;
	else if (iIndex >= myOptions.length)
		iIndex = myOptions.length - 1;
	
	selectedIndex = iIndex;
	document.forms[0].subject.options[selectedIndex].selected = true;
}

function loadOptions()
{
  clearOptions();
  for (var i = 0; i <  myOptions.length; i++)
  {
    document.forms[0].subject.options[i]
    	= new Option(myOptions[i], myOptions[i]); // (Text, Value)
  }
}

function clearOptions()
{
  for (var i = document.forms[0].subject.options.length-1; i >= 0; --i) 
    document.forms[0].subject.options[i] = null;
  document.forms[0].subject.options.length = 0;
}

function extractIndex(strSearch)
// Format: '?Number'
{
	var strIndex = strSearch.substring(1);
	
	if (isEmpty(strIndex))
		return 0;
	else
		return parseInt(strIndex);
}
