function getShortTournamentLocations(c,tid){
	var zipcode = document.getElementById('ts_zipcode').value;
	var distance = document.getElementById('ts_distance').value;
	
	if(validateZipCode(c,zipcode)){
		sendPostRequestText('/ajax/process-locations.php','c='+c+'&tid='+tid+'&ts_zipcode='+zipcode+'&ts_distance='+distance,getTournamentSummaryLocations,'summary_tlocations');
	}
}

function showSite(start, site){
	var i;
	var end = 5 + parseInt(start);
	for(i=start; i<end; i++){
		if(i != site){
			document.getElementById('site_'+i).style.display = 'none';
		} else {
			document.getElementById('site_'+i).style.display = '';	
		}
	}
}

var directions;
var locationAddress;
var latitude;
var longitude;
var oldaddress = "";
var oldcity;
var oldstate;
var address;
var city;
var state;
function getDirections(){
	
	//Get variables
	locationAddress = document.getElementById('locationAddress').value;
	latitude = document.getElementById('latitude').value;
	longitude = document.getElementById('longitude').value;
	address = document.getElementById('address').value;
	city = document.getElementById('city').value;
	state = document.getElementById('state').value;
	//var zipcode = document.getElementById('zipcode').value;

	if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();
	} else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a state.");
		document.getElementById('state').focus();
	} else {

		//First, hide location summary
		document.getElementById('location_summary').style.display = "none";
		hideAddressForm();
	
		var from = address + ", " + city + ", " + state;
		var to = locationAddress;
		
		var map;
		var directionsPanel;
		//var directions;
	
		if (GBrowserIsCompatible()) {
			document.getElementById('processplaceholder').innerHTML = '<div style="margin-bottom:5px;"><img src="/graphics/ajax-loader.gif" /></div>Loading, please wait...';
			document.getElementById('processplaceholder').style.display = '';
			map = new GMap2(document.getElementById("google_map"));
			
			//Clear out old directions
		document.getElementById('directions').style.display = '';
			document.getElementById('directions').innerHTML = '';
			
			directionsPanel = document.getElementById("directions");
			map.setCenter(new GLatLng(49.496675,-102.65625), 3);
			map.addControl(new GLargeMapControl());
			map.enableScrollWheelZoom(); 
			
			directions = new GDirections(map, directionsPanel);
			directions.load("from: " + from + " to: " + to);
			GEvent.addListener(directions, "load", handleSuccess); 
			GEvent.addListener(directions, "error", handleErrors); 
			
			//Display options
			document.getElementById('location_directions_entry2').appendChild(document.getElementById('location_directions_entry'));
			document.getElementById('location_options').style.display = '';
		}
	
	}
	
}

function getDirections2(from, to){
	if (GBrowserIsCompatible()) {
		map = new GMap2(document.getElementById("google_map"));
		
		directionsPanel = document.getElementById("directions");
		map.setCenter(new GLatLng(49.496675,-102.65625), 3);
		map.addControl(new GLargeMapControl());
		map.enableScrollWheelZoom(); 
		
		directions = new GDirections(map, directionsPanel);
		directions.load("from: " + from + " to: " + to);
	}
}

function showAddressForm(){
	document.getElementById('enter_another').innerHTML = '<a onclick="javascript:hideAddressForm();">[&minus;] Enter a Different Address</a>';
	document.getElementById('location_directions_entry2').style.display = "";
}
function hideAddressForm(){
	document.getElementById('enter_another').innerHTML = '<a onclick="javascript:showAddressForm();">[+] Enter a Different Address</a>';
	document.getElementById('location_directions_entry2').style.display = "none";
}
function showLocationSummary(locationAddress){
	document.getElementById('directions').style.display = 'none';
	document.getElementById('location_summary').style.display = '';
	document.getElementById('location_options').style.display = 'none';
	document.getElementById('location_directions').appendChild(document.getElementById('location_directions_entry'));
	loadMap(latitude,longitude);
}

function handleErrors(){
	if (directions.getStatus().code == G_GEO_UNKNOWN_ADDRESS) 
 		alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + directions.getStatus().code); 
	else if (directions.getStatus().code == G_GEO_SERVER_ERROR) 
		alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + directions.getStatus().code);

	else if (directions.getStatus().code == G_GEO_MISSING_QUERY) 
		alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + directions.getStatus().code);

	else if (directions.getStatus().code == G_GEO_BAD_KEY) 
		alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + directions.getStatus().code);

	else if (directions.getStatus().code == G_GEO_BAD_REQUEST) 
		alert("A directions request could not be successfully parsed.\n Error code: " + directions.getStatus().code);

	else 
		alert("An unknown error occurred."); 

	if(oldaddress != ""){
		document.getElementById('locationAddress').value = locationAddress;
		document.getElementById('address').value = oldaddress;
		document.getElementById('city').value = oldcity;
		document.getElementById('state').value = oldstate;
		getDirections();
	} else {
		document.getElementById('processplaceholder').style.display = 'none';
		showLocationSummary(locationAddress);
	}
}

function handleSuccess(){
	document.getElementById('processplaceholder').style.display = 'none';
	
	//First, set session variables to successful location
	sendGetRequestText('/ajax/process-address.php?address='+address+'&city='+city+'&state='+state,doNothing,'processplaceholder');
	
	//Then, set old address and stuff to new ones
	oldaddress = address;
	oldcity = city;
	oldstate = state;
}

function printDirections(){
	window.open('../../locations/print/');	
}

//-------------
//Validations
function validateForm_us(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;
	
	var zipcode = document.getElementById('zipcode').value;
	var city = document.getElementById('city').value;
	var state = document.getElementById('state').value;
	
	//Regular Expressions
	zipReg = /^\d{5}([\-]\d{4})?$/;
	zipCheck = zipReg.test(zipcode);	
	
	if(!zipCheck && zipcode != "" && (city == "" || state == 0)){
		alert("That is not a valid zip code.");	
		document.getElementById('zipcode').select();
	} else if(zipcode == "" && (city == "" || state == 0)){
		alert("You must enter a Zip Code or a City and State.");
		document.getElementById('zipcode').focus();
	} else if(!zipCheck && (city != "" && state != 0)){
		document.getElementById('zipcode').value = "";
		objForm.submit();
	} else {
		objForm.submit();
	}
}

function validateForm_au(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;
	
	var zipcode = document.getElementById('zipcode').value;
	var city = document.getElementById('city').value;
	var state = document.getElementById('state').value;
	
	//Regular Expressions
	zipReg = /^\d{3,4}$/;
	zipCheck = zipReg.test(zipcode);	
	
	if(!zipCheck && zipcode != "" && (city == "" || state == 0)){
		alert("That is not a valid postcode.");	
		document.getElementById('zipcode').select();
	} else if(zipcode == "" && (city == "" || state == 0)){
		alert("You must enter a Postcode or a City and State/Territory.");
		document.getElementById('zipcode').focus();
	} else if(!zipCheck && (city != "" && state != 0)){
		document.getElementById('zipcode').value = "";
		objForm.submit();
	} else {
		objForm.submit();
	}
}

function validateForm_ca(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;
	
	var zipcode = document.getElementById('zipcode').value;
	var city = document.getElementById('city').value;
	var state = document.getElementById('state').value;
	
	//Regular Expressions
	zipReg = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
	zipCheck = zipReg.test(zipcode);	
	
	if(!zipCheck && zipcode != "" && (city == "" || state == 0)){
		alert("That is not a valid postal code.");	
		document.getElementById('zipcode').select();
	} else if(zipcode == "" && (city == "" || state == 0)){
		alert("You must enter a Postal Code or a City and Province/Territory.");
		document.getElementById('zipcode').focus();
	} else if(!zipCheck && (city != "" && state != 0)){
		document.getElementById('zipcode').value = "";
		objForm.submit();
	} else {
		objForm.submit();
	}
}


function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
function trimPhone(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function checkInternationalPhone(strPhone){
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()-. ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;
var bracket=3;
strPhone=trimPhone(strPhone);
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket) return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+4)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function validatePhoneNumber(phone){
	/**
	 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
	 */
	if (trim(phone) == ""){
		return true;
	} else if (checkInternationalPhone(phone) == false){
		return false;
	}
	return true;
 }
//-------------
//Validations
function validateAccountForm_us(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;

	var fname = trim(document.getElementById('fname').value);
	var lname = trim(document.getElementById('lname').value);
	var address = trim(document.getElementById('address').value);
	var zipcode = trim(document.getElementById('zipcode').value);
	var city = trim(document.getElementById('city').value);
	var state = trim(document.getElementById('state').value);
	var phone = document.getElementById('phone').value;
	
	//Regular Expressions
	zipReg = /^\d{5}([\-]\d{4})?$/;
	zipCheck = zipReg.test(zipcode);
	nameReg = /^[A-Za-z0-9 ]{1,20}$/;
	fnameCheck = nameReg.test(fname);
	lnameCheck = nameReg.test(lname);
	
	if(!fnameCheck){
		alert("Your first name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('fname').focus();		
	} else if(!lnameCheck){
		alert("Your last name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('lname').focus();		
	} else if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();		
	} else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a state.");
		document.getElementById('state').focus();
	} else if(!zipCheck){
		alert("That is not a valid zip code.");	
		document.getElementById('zipcode').select();
	} else if(!validatePhoneNumber(phone)){
		alert("That is not a valid phone number.");	
		document.getElementById('phone').select();		
	} else {
		objForm.submit();
	}
}
function validateAccountForm_au(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;

	var fname = trim(document.getElementById('fname').value);
	var lname = trim(document.getElementById('lname').value);
	var address = trim(document.getElementById('address').value);
	var zipcode = trim(document.getElementById('zipcode').value);
	var city = trim(document.getElementById('city').value);
	var state = trim(document.getElementById('state').value);
	var phone = trim(document.getElementById('phone').value);
	
	//Regular Expressions
	zipReg = /^\d{3,4}$/;
	zipCheck = zipReg.test(zipcode);	
	nameReg = /^[A-Za-z0-9 ]{1,20}$/;
	fnameCheck = nameReg.test(fname);
	lnameCheck = nameReg.test(lname);
	
	if(!fnameCheck){
		alert("Your first name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('fname').focus();		
	} else if(!lnameCheck){
		alert("Your last name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('lname').focus();		
	} else if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();		
	} else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a state/territory.");
		document.getElementById('state').focus();
	} else if(!validatePhoneNumber(phone)){
		alert("That is not a valid phone number.");	
		document.getElementById('phone').select();		
	} else if(!zipCheck){
		alert("That is not a valid postcode.");	
		document.getElementById('zipcode').select();
	} else {
		objForm.submit();
	}
}
function validateAccountForm_ca(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;

	var fname = trim(document.getElementById('fname').value);
	var lname = trim(document.getElementById('lname').value);
	var address = trim(document.getElementById('address').value);
	var zipcode = trim(document.getElementById('zipcode').value);
	var city = trim(document.getElementById('city').value);
	var state = trim(document.getElementById('state').value);
	var phone = trim(document.getElementById('phone').value);
	
	//Regular Expressions
	zipReg = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
	zipCheck = zipReg.test(zipcode);	
	nameReg = /^[A-Za-z0-9 ]{1,20}$/;
	fnameCheck = nameReg.test(fname);
	lnameCheck = nameReg.test(lname);
	
	if(!fnameCheck){
		alert("Your first name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('fname').focus();		
	} else if(!lnameCheck){
		alert("Your last name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('lname').focus();		
	} else if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();		
	} else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a province/territory.");
		document.getElementById('state').focus();
	} else if(!validatePhoneNumber(phone)){
		alert("That is not a valid phone number.");	
		document.getElementById('phone').select();		
	} else if(!zipCheck){
		alert("That is not a valid postal code.");	
		document.getElementById('zipcode').select();
	} else {
		objForm.submit();
	}
}
function validateRegistrationForm_us(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;

	var fname = trim(document.getElementById('fname').value);
	var lname = trim(document.getElementById('lname').value);
	var address = trim(document.getElementById('address').value);
	var zipcode = trim(document.getElementById('zipcode').value);
	var city = trim(document.getElementById('city').value);
	var state = trim(document.getElementById('state').value);
	var phone = document.getElementById('phone').value;
	var email = document.getElementById('email').value;
	var email_confirm = document.getElementById('email_confirm').value;
	var pass = document.getElementById('pass').value;
	var pass_confirm = document.getElementById('pass_confirm').value;
	
	//Regular Expressions
	zipReg = /^\d{5}([\-]\d{4})?$/;
	zipCheck = zipReg.test(zipcode);	
	nameReg = /^[A-Za-z0-9 ]{1,20}$/;
	fnameCheck = nameReg.test(fname);
	lnameCheck = nameReg.test(lname);
	
	if(!fnameCheck){
		alert("Your first name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('fname').focus();		
	} else if(!lnameCheck){
		alert("Your last name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('lname').focus();		
	} /*else if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();		
	}*/ else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a state.");
		document.getElementById('state').focus();
	} else if(zipcode != "" && !zipCheck){
		alert("That is not a valid zip code.");	
		document.getElementById('zipcode').select();
	} else if(email != email_confirm){
		alert("The two e-mails do not match.");
		document.getElementById("email").focus();			
	} else if(!validateEmail(email)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validateEmail(email_confirm)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validatePhoneNumber(phone)){
		alert("That is not a valid phone number.");	
		document.getElementById('phone').select();		
	} else if(pass != pass_confirm){
		alert("The two passwords do not match.");	
		document.getElementById('pass').focus();
	} else if(pass.length < 6){
		alert("Your password must be at least 6 characters.");	
		document.getElementById('pass').focus();			
	} else if(pass_confirm < 6){
		alert("Your password must be at least 6 characters.");	
		document.getElementById('pass_confirm').focus();			
	} else {
		objForm.submit();
	}
}
function validateRegistrationForm_au(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;

	var fname = trim(document.getElementById('fname').value);
	var lname = trim(document.getElementById('lname').value);
	var address = trim(document.getElementById('address').value);
	var zipcode = trim(document.getElementById('zipcode').value);
	var city = trim(document.getElementById('city').value);
	var state = trim(document.getElementById('state').value);
	var phone = document.getElementById('phone').value;
	var email = document.getElementById('email').value;
	var email_confirm = document.getElementById('email_confirm').value;
	var pass = document.getElementById('pass').value;
	var pass_confirm = document.getElementById('pass_confirm').value;
	
	//Regular Expressions
	zipReg = /^\d{3,4}$/;
	zipCheck = zipReg.test(zipcode);	
	nameReg = /^[A-Za-z0-9 ]{1,20}$/;
	fnameCheck = nameReg.test(fname);
	lnameCheck = nameReg.test(lname);
	
	if(!fnameCheck){
		alert("Your first name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('fname').focus();		
	} else if(!lnameCheck){
		alert("Your last name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('lname').focus();		
	} /*else if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();		
	}*/ else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a state/territory.");
		document.getElementById('state').focus();
	} else if(zipcode != "" && !zipCheck){
		alert("That is not a valid postcode.");	
		document.getElementById('zipcode').select();
	} else if(email != email_confirm){
		alert("The two e-mails do not match.");
		document.getElementById("email").focus();			
	} else if(!validateEmail(email)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validateEmail(email_confirm)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validatePhoneNumber(phone)){
		alert("That is not a valid phone number.");	
		document.getElementById('phone').select();		
	} else if(pass != pass_confirm){
		alert("The two passwords do not match.");	
		document.getElementById('pass').focus();
	} else if(pass.length < 6){
		alert("Your password must be at least 6 characters.");	
		document.getElementById('pass').focus();			
	} else if(pass_confirm < 6){
		alert("Your password must be at least 6 characters.");	
		document.getElementById('pass_confirm').focus();			
	} else {
		objForm.submit();
	}
}
function validateRegistrationForm_ca(formName){
	var objForm = document.forms[formName];
	
	var zipCheck, cityCheck, stateCheck;
	var zipReg, cityReg, stateReg;

	var fname = trim(document.getElementById('fname').value);
	var lname = trim(document.getElementById('lname').value);
	var address = trim(document.getElementById('address').value);
	var zipcode = trim(document.getElementById('zipcode').value);
	var city = trim(document.getElementById('city').value);
	var state = trim(document.getElementById('state').value);
	var phone = document.getElementById('phone').value;
	var email = document.getElementById('email').value;
	var email_confirm = document.getElementById('email_confirm').value;
	var pass = document.getElementById('pass').value;
	var pass_confirm = document.getElementById('pass_confirm').value;
	
	//Regular Expressions
	zipReg = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
	zipCheck = zipReg.test(zipcode);	
	nameReg = /^[A-Za-z0-9 ]{1,20}$/;
	fnameCheck = nameReg.test(fname);
	lnameCheck = nameReg.test(lname);
	
	if(!fnameCheck){
		alert("Your first name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('fname').focus();		
	} else if(!lnameCheck){
		alert("Your last name must be between 1 and 20 characters and no special characters are allowed.");
		document.getElementById('lname').focus();		
	} /*else if(address == ""){
		alert("You must enter an address.");
		document.getElementById('address').focus();		
	}*/ else if(city == ""){
		alert("You must enter a city.");
		document.getElementById('city').focus();
	} else if(state == 0){
		alert("You must select a province/territory.");
		document.getElementById('state').focus();
	} else if(zipcode != "" && !zipCheck){
		alert("That is not a valid postal code.");	
		document.getElementById('zipcode').select();
	} else if(email != email_confirm){
		alert("The two e-mails do not match.");
		document.getElementById("email").focus();			
	} else if(!validateEmail(email)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validateEmail(email_confirm)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validatePhoneNumber(phone)){
		alert("That is not a valid phone number.");	
		document.getElementById('phone').select();		
	} else if(pass != pass_confirm){
		alert("The two passwords do not match.");	
		document.getElementById('pass').focus();
	} else if(pass.length < 6){
		alert("Your password must be at least 6 characters.");	
		document.getElementById('pass').focus();			
	} else if(pass_confirm < 6){
		alert("Your password must be at least 6 characters.");	
		document.getElementById('pass_confirm').focus();			
	} else {
		objForm.submit();
	}
}

function findLocalTournaments(c){
	var zipcode = document.getElementById('l_zipcode').value;
	
	if(validateZipCode(c,zipcode)){
		document.zip_code.submit();
	}
}
function validateZipCode(c,zipcode){
	//Regular Expressions
	if(c == 'us'){
		var zipReg = /^\d{5}([\-]\d{4})?$/;
		var zipText = "zip code";
	} else if(c == 'au'){
		var zipReg = /^\d{3,4}$/;
		var zipText = "postcode";
	} else if(c == 'ca'){
		var zipReg = /^\d{5}-\d{4}|\d{5}|[A-Z]\d[A-Z] \d[A-Z]\d$/;
		var zipText = "postcode";
	}
	var zipCheck = zipReg.test(zipcode);	
	
	if(!zipCheck && zipcode != ""){
		alert("That is not a valid "+zipText);
		return false;
	} else if(zipcode == ""){
		alert("You must enter a "+zipText);
		return false;
	} else {
		return true;
	}
}

function searchTournaments(){
	document.tournament_search.submit();	
}

function validateContact(){
	var name = document.getElementById("name").value;
	var email = document.getElementById("email").value;
	var message = document.getElementById("message").value;
	
	if(name == ""){
		alert("You must enter your name.");	
		document.getElementById("name").focus();
	} else if(!validateEmail(email)){
		alert("That is not a valid email address.");
		document.getElementById("email").focus();	
	} else if(message == ""){
		alert("You must put something in the message box.");
		document.getElementById("message").focus();
	} else {	
		document.contactus.submit();	
	} 
}
function validateChangeEmail() {
	var email = document.getElementById('email').value;
	var email_confirm = document.getElementById('email_confirm').value;
	
	if(email != email_confirm){
		alert("The two e-mails do not match.");
		document.getElementById("email").focus();			
	} else if(!validateEmail(email)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	} else if(!validateEmail(email_confirm)){
		alert("This is not a valid email address.");
		document.getElementById("email").focus();
	}else {
		document.email_address.submit();		
	}
}
function validatePasswordReset() {
	var pass_new = document.getElementById('pass_new').value;
	var pass_confirm = document.getElementById('pass_new_confirm').value;
	if(pass_new != pass_confirm){
		alert("The two passwords do not match.");
	} else if(pass_new.length < 6){
		alert("Your new password must be at least 6 characters.");	
	} else if(pass_confirm.length < 6){
		alert("Your new password must be at least 6 characters.");	
	} else {
		document.password.submit();	
	}
}
function validateChangePass() {
	if(document.getElementById('password').pass_new.value != document.getElementById('password').pass_new_confirm.value){
		alert("The two passwords do not match.");	
		document.getElementById('password').pass_new.focus();
	} else if(document.getElementById('password').pass_new.value.length < 6){
		alert("Your new password must be at least 6 characters.");	
		document.getElementById('password').pass_new.focus();			
	} else if(document.getElementById('password').pass_new_confirm.value.length < 6){
		alert("Your new password must be at least 6 characters.");	
		document.getElementById('password').pass_new_confirm.focus();			
	} else {
		document.password.submit();
	}
}
function validateEmail(src) {
     var emailReg = "^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(src);
  }

function displaySummaryTab(tabname){
	document.getElementById('summary_locations').style.display = 'none';
	document.getElementById('li_locations').className = 'summary_inactive';	
	document.getElementById('summary_leaderboard').style.display = 'none';
	document.getElementById('li_leaderboard').className = 'summary_inactive';	
	//document.getElementById('summary_treks').style.display = 'none';
	//document.getElementById('li_treks').className = 'summary_inactive';	
	
	document.getElementById('summary_' + tabname).style.display = '';
	document.getElementById('li_' + tabname).className = 'summary_active';
}

function displayTrek(trek, total){
	for(var i = 1; i <= total; i++){
		if(i != trek){
			document.getElementById('trek_' + i).style.display = 'none';	
		} else {
			document.getElementById('trek_' + trek).style.display = '';		
		}
	}
}

function showPersonalBest(id){
	document.getElementById('slider_Accuracy').style.display = 'none';
	document.getElementById('slider_Score').style.display = 'none';
	document.getElementById('slider_Streak').style.display = 'none';
		
	document.getElementById('slider_'+id).style.display = '';
}
var adv_timeout;
function displayAdventure(adv, advCount){

	for(var i = 0; i <= advCount; i++){
		if(i != adv){
			document.getElementById('adventure_' + i).style.display = 'none';	
			document.getElementById('adventure_stat_' + i).style.display = 'none';
			document.getElementById('adventure_thumb_' + i).style.backgroundPosition = '0px';	
		} else {
			document.getElementById('adventure_' + i).style.display = '';	
			document.getElementById('adventure_stat_' + i).style.display = '';
			document.getElementById('adventure_thumb_' + i).style.backgroundPosition = '-40px';		
		}
	}
	if(adv < advCount){
		var next = parseInt(adv) + 1;
	} else {
		var next = 0;	
	}
	clearTimeout(adv_timeout);
	adv_timeout = window.setTimeout('displayAdventure('+next+','+advCount+')',5000);
}

function displayAccountTab(tab){
	for(var i=1; i<5; i++){
		//alert(i + " is equal to " + tab + "?");
		if(i == tab){
			document.getElementById("acct_li_"+i).className = "account_active";	
			document.getElementById("acct_"+i).style.display = "";	
		} else {
			document.getElementById("acct_li_"+i).className = "account_inactive";		
			document.getElementById("acct_"+i).style.display = "none";			
		}
	}
}
function displayLoadingScreen(target){
	document.getElementById(target).innerHTML = '<div style="text-align:center;"><img src="/graphics/ajax-loader.gif" /><br/>Uploading, please wait...<br/><a href="#" onclick="cancelUpload('+"'"+target+"'"+');">Cancel</a></div>';

}
function submitForm(formName, type){
	document.getElementById(formName).submit();
}
function loadFeedback(text, target){
	parent.document.getElementById('upload_success_'+target).innerHTML = text;
}
function previewImage(imageName, type){
	parent.document.getElementById('graphicID').value = imageName;
	if(type == "player"){
		sendPostRequestText('../ajax/upload-preview.php', 'FILE='+imageName+'&TYPE='+type, callTextParent, 'tc_account_image');
	} else if(type == "party"){
		sendPostRequestText('../ajax/upload-preview.php', 'FILE='+imageName+'&TYPE='+type, callTextParent, 'hp_party_image');
		
	}
}
function trim(str) {
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}
function show(div){
	document.getElementById(div).style.display = '';	
}
function hide(div){
	document.getElementById(div).style.display = 'none';	
}
function showHide(div){
	if(document.getElementById(div).style.display == 'none'){
		document.getElementById(div).style.display = '';
	} else {
		document.getElementById(div).style.display = 'none';
	}
}
function showHideHint(div){
	if(document.getElementById('firstlogin').checked){
		document.getElementById(div).style.display = '';
	} else {
		document.getElementById(div).style.display = 'none';
	}
}
function checkDays(){
	var numdays = 30;
	var month = document.getElementById('birthdate_month').value;
	var day = document.getElementById('birthdate_day');
	
	if(month == 1 || month == 3 || month == 5 || month == 7 || 
	   month == 8 || month == 10 || month == 12){
		numdays = 31;
	} else if(month == 2){
		numdays = 29;	
	}
	
	if(numdays < day.options[day.length-1].value){
		for(var i = day.options[day.length-1].value; i > numdays; i--){
			day.remove(i-1);
		}
	} else if(numdays > day.options[day.length-1].value){
		for(var i = day.options[day.length-1].value; i < numdays; i++){
			var newday = document.createElement('option');
			newday.text = parseInt(i)+1;
			newday.value = parseInt(i)+1;
			try {
				day.add(newday, null);
			} catch(e) {
				day.add(newday);	
			}
		}			
	}
}
function validateLoginID(length){
	var loginid = document.getElementById('loginid').value;
	var loginid_confirm = document.getElementById('loginid_confirm').value;
	
	var loginidregex = /^\d{10,11}$/;
	loginidtest = loginidregex.test(loginid);
	
	if(loginid != loginid_confirm){
		alert("Your new Login IDs do not match.");
		document.getElementById('loginid_confirm').focus();
	} else if(loginid.length < length){
		alert("Your Login ID is too short.  It must be " + length + " digits in length.");
		document.getElementById('loginid').focus();
	} else if(loginid_confirm.length < length){
		alert("Your Login ID is too short.  It must be " + length + " digits in length.");
		document.getElementById('loginid_confirm').focus();
	} else if(loginid.length > length){
		alert("Your Login ID is too long.  It must be " + length + " digits in length.");
		document.getElementById('loginid').focus();
	} else if(loginid_confirm.length > length){
		alert("Your Login ID is too long.  It must be " + length + " digits in length.");
		document.getElementById('loginid_confirm').focus();
	} else if(!loginidtest){
		alert("Your Login ID is invalid.");
		document.getElementById('loginid').focus();
	} else {
		document.login_id.submit();
	}
}
function validateRegistration(length){
	var l = false;
	var b = false;
	
	var loginid = document.getElementById('loginid').value;
	var loginid_confirm = document.getElementById('loginid_confirm').value;
	
	var month = document.getElementById('birthdate_month').value;
	var day = document.getElementById('birthdate_day').value;
	b = validateBirthdate(month,day);
	
	var agree = document.getElementById('tos_agree').checked;
	
	var loginidregex = /^\d{10,11}$/;
	loginidtest = loginidregex.test(loginid);
	
	if(loginid != loginid_confirm){
		alert("Your new Login IDs do not match.");
		document.getElementById('loginid_confirm').focus();
	} else if(loginid.length < length){
		alert("Your Login ID is too short.  It must be " + length + " digits in length.");
		document.getElementById('loginid').focus();
	} else if(loginid_confirm.length < length){
		alert("Your Login ID is too short.  It must be " + length + " digits in length.");
		document.getElementById('loginid_confirm').focus();
	} else if(loginid.length > length){
		alert("Your Login ID is too long.  It must be " + length + " digits in length.");
		document.getElementById('loginid').focus();
	} else if(loginid_confirm.length > length){
		alert("Your Login ID is too long.  It must be " + length + " digits in length.");
		document.getElementById('loginid_confirm').focus();
	} else if(!loginidtest){
		alert("Your Login ID is invalid.");
		document.getElementById('loginid').focus();
	} else {
		l = true;
	}
	
	
	if(!b){
		alert("Your birthdate is invalid.");	
	}
	if(!agree){
		alert("You must agree with our terms of service.");	
	}
	if(l && b && agree){
		document.register.submit();	
	}
}
function validateBirthdate(month, day){
	if(month == 4 || month == 6 || 
	   month == 7 || month == 9 || month == 11){
		if(day > 30){
			return false;	
		} else{
			return true;	
		}
	} else if(month == 2){
		if(day > 29){
			return false;	
		} else {
			return true;	
		}
	} else {
		return true;	
	}
}
function noAlpha(obj){
	reg = /[^0-9]/g;
	obj.value =  obj.value.replace(reg,"");
}

function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : event.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;

	return true;
}

function validateMessage(){
	var subject = trim(document.getElementById('subject').value);
	var message = trim(document.getElementById('message').value);
	
	if(subject == ""){
		alert("You must enter a subject.");
		document.getElementById('subject').focus();
	} else if(message == ""){
		alert("You must enter a message.");
		document.getElementById('message').focus();
	} else {
		document.newmessage.submit();	
	}
}	
function validateHuntingParty(){
	var pname = trim(document.getElementById('pname').value);
	var pmotto = trim(document.getElementById('pmotto').value);
	
	if(pname == ""){
		alert("You must enter a party name.");
		document.getElementById('pname').focus();
	} else if(pmotto == ""){
		alert("You must enter a party motto.");
		document.getElementById('pmotto').focus();
	} else {
		document.hp_manage.submit();	
	}	
}
function findNewMembers(url) {
	var nmname = trim(document.getElementById('nmname').value);
	var nmcity = trim(document.getElementById('nmcity').value);
	var nmstate = trim(document.getElementById('nmstate').value);
	
	if(nmname == "" && (nmcity == "" || nmstate == 0)){
		alert("You must enter either a name or a city and state.");
		document.getElementById('nmname').focus();
	} 
	else {
		sendGetRequestText(url + '?name='+nmname+'&city='+nmcity+'&state='+nmstate,customProcessInvite,'hp_invite_results');
		document.getElementById('hp_invite_results').style.display = "";
		document.getElementById('hp_invite_form').style.display = "none";
	}
}
function backToSearch(){
		document.getElementById('hp_invite_results').style.display = "none";
		document.getElementById('hp_invite_form').style.display = "";	
}
function clearBackground(input, value){
	document.getElementById(input).style.background = "#fff";
}
function resetBackground(input, value){
	if(trim(document.getElementById(input).value) == ""){
		document.getElementById(input).style.background = "#fff url(/graphics/trophyclub/" + value + ".JPG)";
	} else {
		document.getElementById(input).style.background = "#fff";	
	}
}
function enableRegister(){
	if(document.getElementById('tos_agree').checked){
		document.getElementById('register_submit').disabled = "";
		document.getElementById('register_submit').className = "button_l";
	} else {
		document.getElementById('register_submit').disabled = "disabled";
		document.getElementById('register_submit').className = "button_d";			
	}
}

/************************
 * NEW SET OF FUNCTIONS *
 ************************/
function displayTab(name, tab, total){
	for(var i=0; i<total; i++){
		tabElement = document.getElementById(name + "tab" + i);
		divElement = document.getElementById(name + "div" + i);
		if(i==tab){
			tabElement.className = "tab_active";
			divElement.style.display = "block";
		} else {
			tabElement.className = "tab_inactive";
			divElement.style.display = "none";			
		}
	}
}
function displayLocationLeaderboard(tid,lid,element){
	displayTab("leaders",0,2);
	sendGetRequestText('/ajax/summary-leaders.php?tid='+tid+'&lid='+lid,callText,element);
}
/***********************************************
* Textarea Maxlength script- © Dynamic Drive (www.dynamicdrive.com)
* This notice must stay intact for legal use.
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
}
// Hunting Party Challenge Functions 
function setHPCAdventure(adventureID,numAdventures,adventureName,adventureNum){
	document.getElementById('adventureBlank').style.display='none';
	for(var i=0; i<numAdventures; i++){
		document.getElementById('adventure_'+i).style.display='none';	
	}
	document.getElementById('adventure_'+adventureNum).style.display='block';
	
	document.getElementById("challenge_details_adventure").value = adventureID;
	document.getElementById("challenge_details_adventure_name").value = adventureName;
	
	sendGetRequestText('/ajax/adventure-treks.php?AdventureID='+adventureID,callText,'trekArea');
	
	document.getElementById('step1continue').disabled = '';
	document.getElementById('step1continue').className = 'button_l';
	document.getElementById('tab1text').style.display = 'none';
	document.getElementById('tab1link').style.display = 'inline';
	
}
function setChallengeGraphic(graphicID){
	document.getElementById('challenge_graphic').value = graphicID;
	
	for(i=1; i<=2; i++){
		document.getElementById('challenge_graphic'+i).className = "";
		if(i == graphicID){
			document.getElementById('challenge_graphic'+i).className = "selected";
		}
		
	}
}
function submitChallenge(html){
	document.getElementById('challenge_submit').className="button_d";
	document.getElementById('challenge_submit').value="Submitting..."; 
	
	var name = escape(trim(document.getElementById('challenge_details_name').value));
	var startDate = document.getElementById('challenge_details_start').value;
	var endDate = document.getElementById('challenge_details_end').value;
	var adventure = document.getElementById('challenge_details_adventure').value;
	var adventureName = document.getElementById('challenge_details_adventure_name').value;
	var trek = document.getElementById('challenge_details_trek').value;
	
	var message = escape(trim(document.getElementById('challenge_details_message').value));
	var graphic = document.getElementById('challenge_graphic').value;
	
	var html = escape(trim(html));
	
	sendPostRequestText('/ajax/challenge-submit.php','name='+name+'&startDate='+startDate+'&endDate='+endDate+'&adventure='+adventure+'&adventureName='+adventureName+'&trek='+trek+'&message='+message+'&graphic='+graphic+'&html='+html,submitChallengeCallback,'challenge_preview');		
}
function previewGraphic(){	
	var name = escape(trim(document.getElementById('challenge_details_name').value));
	var startDate = document.getElementById('challenge_details_start').value;
	var endDate = document.getElementById('challenge_details_end').value;
	var adventure = document.getElementById('challenge_details_adventure').value;
	var adventureName = document.getElementById('challenge_details_adventure_name').value;
	var trek = document.getElementById('challenge_details_trek').value;
	
	var message = escape(trim(document.getElementById('challenge_details_message').value));
	var graphic = document.getElementById('challenge_graphic').value;
	
	if(name == ""){
		displayTab('challenge',0,3);
		alert("You must enter a challenge name!");
		document.getElementById('challenge_details_name').focus();
	} else if(startDate == ""){
		displayTab('challenge',0,3);
		alert("You must enter a start date!");	
	} else if(endDate == ""){
		displayTab('challenge',0,3);
		alert("You must enter an end date!");	
	} else if(adventure == ""){
		displayTab('challenge',0,3);
		alert("You must select an adventure!");			
	} else if(trek == "-1"){
		displayTab('challenge',0,3);
		alert("You must select a trek!");
	} else if(graphic == ""){
		displayTab('challenge',1,3);
		alert("You must select a graphic!");
	} else {
		displayTab('challenge',2,3);
		document.getElementById('tab2text').style.display = "none";
		document.getElementById('tab2link').style.display = "inline";
	}
	sendGetRequestText('/ajax/challenge-preview.php?name='+name+'&startDate='+startDate+'&endDate='+endDate+'&adventure='+adventure+'&adventureName='+adventureName+'&trek='+trek+'&message='+message+'&graphic='+graphic,callText,'challenge_preview');	
}
function displayRegionWCPlayers(region_id){
	for(var i=1; i<=8; i++){
		if(i == region_id){
			document.getElementById('region_players_'+i).style.display = "block";	
		} else {
			document.getElementById('region_players_'+i).style.display = "none";	
		}
	}
}	
function displayWCHomeScreen(){
	for(var i=1; i<=8; i++){
		document.getElementById('region_players_'+i).style.display = "none";	
	}
}	
function displayWCPlayerProfile(player_id){
	document.getElementById("overlay").style.display = "block";
	sendGetRequestText('/ajax/wc_player_profile.php?playerid='+player_id,callText,'overlay-panel');
}
function closeWCPlayerProfile(){
	document.getElementById("overlay").style.display = "none";
}