
function QueryString(key)
{
	var value = null;
	for (var i=0;i<QueryString.keys.length;i++)
	{
		if (QueryString.keys[i]==key)
		{
			value = QueryString.values[i];
			break;
		}
	}
	return value;
}

QueryString.keys = new Array();
QueryString.values = new Array();

function QueryString_Parse()
{
	var query = window.location.search.substring(1);
	var pairs = query.split("&");
	for (var i=0;i<pairs.length;i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos >= 0)
		{
			var argname = pairs[i].substring(0,pos);
			var value = pairs[i].substring(pos+1);
			QueryString.keys[QueryString.keys.length] = argname;
			QueryString.values[QueryString.values.length] = value;		
		}
	}
}

QueryString_Parse();
var getKey = QueryString('key');
var getValue = QueryString('value');
var getStatus = QueryString('status');

function writeVars()
{
	document.write("<input type=hidden name=key value=");
	document.write(getKey);
	document.write(">");
	document.write("<input type=hidden name=value value=");
	document.write(getValue);
	document.write(">");
	document.write("<input type=hidden name=status value=");
	document.write(getStatus);
	document.write(">");
}


function checkFields()
{
	if (document.sendData.name.value.indexOf("'") != -1)
	{
		window.alert("The ' sign is not allowed in the name field");
		return false;
	}
	
	if (document.sendData.name.value == "")
	{
		window.alert("Please enter your name!");
		document.sendData.name.focus();
		return false;
	}
	
	if (document.sendData.email.value == "")
	{
		window.alert("Please enter your email address!");
		document.sendData.email.focus();
		return false;
	}
	
	var email = document.sendData.email.value;
	
	if ((emailCheck(email)) == false)
	{
		document.sendData.email.focus();
		return false;
	}
	
	return true;
}

function checkFields3()
{
	if (document.sendData.address.value == ""){
	window.alert("You must put in your email address");
	return false;
		}
		
	//function isEmail(str) {
	//var regexp = /^.+\@.+\..+$/;
	//return regexp.test(str);
	//}
	
	var email = document.sendData.address.value;
	//if (!isEmail (email)) { 
	if ((emailCheck(email)) == false) { 
	alert("" + email);
	//window.alert("Invalid Email format: " + email);
	return false;
	}
}

function checkFields2()
{
	if ($('key').value == '')
	{
		alert('Please enter your name!');
		$('key').focus();
		return false;
	}
	
	if ($('value').value == '')
	{
		alert('Please enter your email address!');
		$('value').focus();
		return false;
	}
	else
	{
		var str = $('value').value;
		var supported = 0;
		
		if (window.RegExp)
		{
			var tempStr = "a";
			var tempReg = new RegExp(tempStr);
			
			if (tempReg.test(tempStr))
			{
				supported = 1;
			}
		}
		
 		if (!supported)
		{
 			return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
		}
		
		var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
		var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
		
		if ((!r1.test(str) == true) && (r2.test(str) == false))
		{
			alert('Please provide a correct e-mail address!');
			$('value').select();
			return false;
		}
	}
	
	var day = $('day').value;
	var month = $('month').value;
	var year = $('year').value;
	
	if ((day == '') || (month == '') || (year  == ''))
	{
		alert('Please enter your date of birth!');
		return false;
	}
	
	year = (1987 - year);
	
	// CHECK 30 days....
	if (
		 	((month == 4) || (month == 6) || (month == 9) || (month == 11))
			&&
			(day == 31)
		)
	{
		alert('Too many days for this month!');
		$('month').focus();
		return false;
	}
	
	if (month == 2)
	{
		if (day >= 30)
		{
			alert('Too many days for February!');
			$('month').focus();
			return false;
		}
		
		if (
			 	(day == 29)
				&&
				((year / 4) != Math.floor(year / 4))
				&&
				((year / 100) != Math.floor(year / 100)) 
				&&
				((year / 400) != Math.floor(year / 400))
			)
		{
			alert (year + ' is not a leap year!');
			$('month').focus();
			return false;
		}
	}
	
	if ($('termsandconds').checked == false )
	{
		window.alert('Please confirm you have read the terms and conditions!');
		return false;
	}
	
	return true;
}

function resetPaper() 
{
	document.sendData.never.checked = true;
	document.sendData.once.checked = false;
	document.sendData.mon.checked = false;
	document.sendData.tue.checked = false;
	document.sendData.wed.checked = false;
	document.sendData.thu.checked = false;
	document.sendData.fri.checked = false;
	document.sendData.sat.checked = false;	
}

function resetNever()
{
	document.sendData.never.checked = false;
}

function resetOnce()
{
	document.sendData.once.checked = false;
}

function resetWeek()
{
	document.sendData.mon.checked = false;
	document.sendData.tue.checked = false;
	document.sendData.wed.checked = false;
	document.sendData.thu.checked = false;
	document.sendData.fri.checked = false;
	document.sendData.sat.checked = false;	
}

//Email validation
function emailCheck (emailStr)
{ 
  var checkTLD=0; 
  var knownDomsPat=/ ^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/; 
  var emailPat=/^(.+)@(.+)$/; 
  var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]*"; 
  var validChars="\[^\\s" + specialChars + "\]"; 
  var quotedUser="(\"[^\"]*\")"; 
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/; 
  var atom=validChars + '+'; 
  var word="(" + atom + "|" + quotedUser + ")"; 
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$"); 
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$"); 
  var matchArray=emailStr.match(emailPat); 
  if (matchArray==null) { 
    alert("The Email Address Is Invalid"); 
    return false; 
  } 
  var user=matchArray[1]; 
  var domain=matchArray[2]; 
  for (i=0; i<user.length; i++) { 
    if (user.charCodeAt(i)>127 || user.charCodeAt(i)==39) { 
      alert("The Username Contains Invalid Characters."); 
      return false; 
    } 
  } 
  for (i=0; i<domain.length; i++) { 
    if (domain.charCodeAt(i)>127 || domain.charCodeAt(i)==39) { 
      alert("Ths Domain Name Contains Invalid Characters."); 
      return false; 
    } 
  } 
  if (user.match(userPat)==null) { 
    alert("The Username Is Invalid."); 
    return false; 
  } 
  var IPArray=domain.match(ipDomainPat); 
  if (IPArray!=null) { 
    for (var i=1;i<=4;i++) { 
      if (IPArray>255) { 
        alert("The Destination IP Address Is Invalid."); 
        return false; 
      } 
    } 
    return true; 
  } 
  var atomPat=new RegExp("^" + atom + "$"); 
  var domArr=domain.split("."); 
  var len=domArr.length; 
  for (i=0;i<len;i++) { 
    if (domArr[i].search(atomPat)==-1) { 
      alert("The Domain Name Is Invalid."); 
      return false; 
    } 
  } 
  if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { 
    alert("The Domain Name Extension Is Invalid"); 
    return false; 
  } 
  if (len<2) { 
    alert("The Address Is Missing A Hostname."); 
    return false; 
  }
  //test version - code to disable lodge subscription.
  //var test = 0;
  //if (test == 0) {
  //  window.alert("Subscription for the lodge has been temporally halted\ndue to maintenance work.\n\nPlease try again at a later date, Thank You.");
  //  return false;
  //} else {
  //  window.alert("Subscription for the lodge has been temporally halted\ndue to maintenance work.\n\nPlease try again at a later date, Thank You.");
  //  return false;
  //}
  //end test code.
  return true;
} 
