function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumeric=true;
   var Char;

 
   for (i = 0; i < sText.length && IsNumeric == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumeric = false;
         }
      }
   return IsNumeric;
   
}
   
// Enter Contest
function request_enter_contest() {
	// The form is complete by default.
	form_complete = true;
	
	// Valid the required fields
	if(document.mlist_enter_contest.email_address.value == '' || document.mlist_enter_contest.email_address.value == 'e-mail address'){
		message = 'Your email address is a required field.';
		document.mlist_enter_contest.email_address.focus();
		form_complete = false;
	}
	
	// store_location
	var dropdownIndex = document.getElementById('store_location').selectedIndex;
	if(document.getElementById('store_location')[dropdownIndex].value == ''){
		message = 'Your local Off the Wall store is a required field.';
		document.mlist_enter_contest.store_location.focus();
		form_complete = false;
	}
	
	/*
	else if(document.mlist_enter_contest.transaction_code.value == ''){
		message = 'The transaction code is a required field.';
		document.mlist_enter_contest.transaction_code.focus();
		form_complete = false;
	}
	*/
	
	// Rules and Regulations
	if(form_complete == true){
		if(document.mlist_enter_contest.rules_regulations.checked == false){
			message = 'Accepting the rules and regulations is required.';
			form_complete = false;
		}
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Contest Sign Up
function request_contest_signup() {
	// The form is complete by default.
	form_complete = true;
	
	// Valid the required fields
	if(document.contest_signup.name_first.value == ''){
		message = 'Your first name is a required field.';
		document.contest_signup.name_first.focus();
		form_complete = false;
	}else if(document.contest_signup.name_last.value == ''){
		message = 'Your last name is a required field.';
		document.contest_signup.name_last.focus();
		form_complete = false;
	}else if(document.contest_signup.phone_number.value == ''){
		message = 'Your phone number is a required field.';
		document.contest_signup.phone_number.focus();
		form_complete = false;
	}else if(document.contest_signup.email_address.value == '' || document.contest_signup.email_address.value == 'e-mail address'){
		message = 'Your email address is a required field.';
		document.contest_signup.email_address.focus();
		form_complete = false;
	}else if(document.contest_signup.password.value == ''){
		message = 'A password is a required field.';
		document.contest_signup.password.focus();
		form_complete = false;
	}else if(document.contest_signup.address_1.value == ''){
		message = 'Your address is a required field.';
		document.contest_signup.address_1.focus();
		form_complete = false;
	}else if(document.contest_signup.city.value == ''){
		message = 'Your city is a required field.';
		document.contest_signup.city.focus();
		form_complete = false;
	}else if(document.contest_signup.postal_code.value == ''){
		message = 'Your postal code is a required field.';
		document.contest_signup.postal_code.focus();
		form_complete = false;
	}
	/*
	else if(document.contest_signup.transaction_code.value == ''){
		message = 'The transaction code is a required field.';
		document.contest_signup.transaction_code.focus();
		form_complete = false;
	}
	*/
	
	// Process the dropdowns.
	if(form_complete == true){
		
		// province
		var dropdownIndex = document.getElementById('province').selectedIndex;
		if(document.getElementById('province')[dropdownIndex].value == ''){
			message = 'Your province is a required field.';
			document.contest_signup.province.focus();
			form_complete = false;
		}		
		
		// store_location
		var dropdownIndex = document.getElementById('store_location').selectedIndex;
		if(document.getElementById('store_location')[dropdownIndex].value == ''){
			message = 'Your local Off the Wall store is a required field.';
			document.contest_signup.store_location.focus();
			form_complete = false;
		}		
		
		// month
		var dropdownIndex = document.getElementById('birth_date_month').selectedIndex;
		if(document.getElementById('birth_date_month')[dropdownIndex].value == ''){
			message = 'Your birthdate is a required field.';
			document.contest_signup.birth_date_month.focus();
			form_complete = false;
		}
		
		// day
		var dropdownIndex = document.getElementById('birth_date_day').selectedIndex;
		if(document.getElementById('birth_date_day')[dropdownIndex].value == ''){
			message = 'Your birthdate is a required field.';
			document.contest_signup.birth_date_day.focus();
			form_complete = false;
		}

		// year
		if(document.contest_signup.birth_date_year.value == ''
			|| IsNumeric(document.contest_signup.birth_date_year.value) == false
			|| document.contest_signup.birth_date_year.value < 1910
			){
			
			message = 'Your year of birth is a required field.';
			document.contest_signup.birth_date_year.focus();
			form_complete = false;
		}
	}
	
	// Privacy policy
	if(form_complete == true){
		if(document.contest_signup.privacy_policy.checked == false){
			message = 'Reading the privacy policy and terms of use is required.';
			form_complete = false;
		}
	}
	
	// Rules and Regulations
	if(form_complete == true){
		if(document.contest_signup.rules_regulations_full.checked == false){
			message = 'Accepting the rules and regulations is required.';
			form_complete = false;
		}
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Sign up a subscriber.
function request_signup() {
	// The form is complete by default.
	form_complete = true;
	
	// Valid the required fields
	if(document.mlist_signup.name_first.value == ''){
		message = 'Your first name is a required field.';
		document.mlist_signup.name_first.focus();
		form_complete = false;
	}else if(document.mlist_signup.name_last.value == ''){
		message = 'Your last name is a required field.';
		document.mlist_signup.name_last.focus();
		form_complete = false;
	}else if(document.mlist_signup.phone_number.value == ''){
		message = 'Your phone number is a required field.';
		document.mlist_signup.phone_number.focus();
		form_complete = false;
	}else if(document.mlist_signup.email_address.value == '' || document.mlist_signup.email_address.value == 'e-mail address'){
		message = 'Your email address is a required field.';
		document.mlist_signup.email_address.focus();
		form_complete = false;
	}else if(document.mlist_signup.password.value == ''){
		message = 'A password is a required field.';
		document.mlist_signup.password.focus();
		form_complete = false;
	}else if(document.mlist_signup.address_1.value == ''){
		message = 'Your address is a required field.';
		document.mlist_signup.address_1.focus();
		form_complete = false;
	}else if(document.mlist_signup.city.value == ''){
		message = 'Your city is a required field.';
		document.mlist_signup.city.focus();
		form_complete = false;
	}else if(document.mlist_signup.postal_code.value == ''){
		message = 'Your postal code is a required field.';
		document.mlist_signup.postal_code.focus();
		form_complete = false;
	}
	
	// Process the birthdate.
	if(form_complete == true){
		// province
		var dropdownIndex = document.getElementById('province').selectedIndex;
		if(document.getElementById('province')[dropdownIndex].value == ''){
			message = 'Your province is a required field.';
			document.mlist_signup.province.focus();
			form_complete = false;
		}
		
		// store_location
		var dropdownIndex = document.getElementById('store_location').selectedIndex;
		if(document.getElementById('store_location')[dropdownIndex].value == ''){
			message = 'Your local Off the Wall store is a required field.';
			document.mlist_signup.store_location.focus();
			form_complete = false;
		}	
		
		// month
		var dropdownIndex = document.getElementById('birth_date_month').selectedIndex;
		if(document.getElementById('birth_date_month')[dropdownIndex].value == ''){
			message = 'Your birthdate is a required field.';
			document.mlist_signup.birth_date_month.focus();
			form_complete = false;
		}
		
		// day
		var dropdownIndex = document.getElementById('birth_date_day').selectedIndex;
		if(document.getElementById('birth_date_day')[dropdownIndex].value == ''){
			message = 'Your birthdate is a required field.';
			document.mlist_signup.birth_date_day.focus();
			form_complete = false;
		}
		
		// year
		if(document.mlist_signup.birth_date_year.value == ''
			|| IsNumeric(document.mlist_signup.birth_date_year.value) == false
			|| document.mlist_signup.birth_date_year.value < 1910
			){
			
			message = 'Your year of birth is a required field.';
			document.mlist_signup.birth_date_year.focus();
			form_complete = false;
		}
	}
	
	// Privacy policy
	if(form_complete == true){
		if(document.mlist_signup.privacy_policy.checked == false){
			message = 'Reading the privacy policy and terms of use is required.';
			form_complete = false;
		}
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Update a subscriber.
function request_update() {
	// The form is complete by default.
	form_complete = true;
	
	// Validate the required fields
	if(document.mlist_update.name_first.value == ''){
		message = 'Your first name is a required field.';
		document.mlist_update.name_first.focus();
		form_complete = false;
	}else if(document.mlist_update.name_last.value == ''){
		message = 'Your last name is a required field.';
		document.mlist_update.name_last.focus();
		form_complete = false;
	}else if(document.mlist_update.phone_number.value == ''){
		message = 'Your phone number is a required field.';
		document.mlist_update.phone_number.focus();
		form_complete = false;
	}else if(document.mlist_update.email_address.value == '' || document.mlist_update.email_address.value == 'e-mail address'){
		message = 'Your email address is a required field.';
		document.mlist_update.email_address.focus();
		form_complete = false;
	}else if(document.mlist_update.address_1.value == ''){
		message = 'Your address is a required field.';
		document.mlist_update.address_1.focus();
		form_complete = false;
	}else if(document.mlist_update.city.value == ''){
		message = 'Your city is a required field.';
		document.mlist_update.city.focus();
		form_complete = false;
	}else if(document.mlist_update.postal_code.value == ''){
		message = 'Your postal code is a required field.';
		document.mlist_update.postal_code.focus();
		form_complete = false;
	}
	
	// Process the dropdowns.
	if(form_complete == true){
		// province
		var dropdownIndex = document.getElementById('province').selectedIndex;
		if(document.getElementById('province')[dropdownIndex].value == ''){
			message = 'Your province is a required field.';
			document.mlist_update.province.focus();
			form_complete = false;
		}
		
		// store_location
		var dropdownIndex = document.getElementById('store_location').selectedIndex;
		if(document.getElementById('store_location')[dropdownIndex].value == ''){
			message = 'Your local Off the Wall store is a required field.';
			document.mlist_update.store_location.focus();
			form_complete = false;
		}		
		
		// month
		var dropdownIndex = document.getElementById('birth_date_month').selectedIndex;
		if(document.getElementById('birth_date_month')[dropdownIndex].value == ''){
			message = 'Your birthdate is a required field.';
			document.mlist_update.birth_date_month.focus();
			form_complete = false;
		}
		
		// day
		var dropdownIndex = document.getElementById('birth_date_day').selectedIndex;
		if(document.getElementById('birth_date_day')[dropdownIndex].value == ''){
			message = 'Your birthdate is a required field.';
			document.mlist_update.birth_date_day.focus();
			form_complete = false;
		}
		
		// year
		if(document.mlist_update.birth_date_year.value == ''){
			message = 'Your year of birth is a required field.';
			document.mlist_update.birth_date_year.focus();
			form_complete = false;
		}
	}
	
	// Privacy policy
	if(form_complete == true){
		if(document.mlist_update.privacy_policy.checked == false){
			message = 'Reading the privacy policy and terms of use is required.';
			form_complete = false;
		}
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		// Indicate that it's saving.
		$("#save-profile-info").hide();
		$("#response-message").addClass("response-message");
		$("#response-message").html("Your changes are being saved...");
		$("#response-message").show();
	
		// Load the API file.
		$.post(
			"/wp-content/plugins/mediaglide/api-update.php"
			,$("#member-edit-form").serialize()
			,function(data){
				if(data == "email-exists"){
					$("#response-message").html("Sorry that email address already exists.  If it's your email address you can logout and request to have the password sent to you.");
				}else if(data == "success"){
					$("#response-message").html("Your Off The Wall Clothing membership has been successfully updated.");
				}
				
				// Update the button again.
				$("#response-message").delay(5000).hide("slow"
					,function(){
						$("#save-profile-info").show();
					}
				);
			}
		);
		
		return(false);
	}else{
		alert(message);
		return(false);
	}
}

// clear_referred_by
function clear_referred_by(){
	if(document.getElementById('referred_by').value == "email address"){
		document.getElementById('referred_by').value = "";
	}
}

// ----------------------------------------- Start Unsubscribe Request
// Validate the form.
function request_unsubscribe() {
	// The form is complete by default.
	form_complete = true;

	// email_address
	email_address = document.mlist_signup.email_address.value;
	if(email_address == ''){
		message = 'Please enter the email address you wish to unsubscribe.';
		document.mlist_signup.email_address.focus();
		form_complete = false;
	}
	
	// Proceed if the form is complete.
	if(form_complete == true){
		document.getElementById('api_message').innerHTML = "Your unsubscription request is processing...";
		return(true);
	}else{
		alert(message);
		return(false);
	}
}

// Indicate success or failure.
function request_unsubscribe_response(response){
	// Reset the form.
	document.mlist_signup.reset();
		
	// Return a message to the user.
	document.getElementById('api_message').innerHTML = response;
}
// ----------------------------------------- End Unsubscribe Request

// xmlhttpPost: Post an AJAX request.
function xmlhttpPost(strURL,target){
	var xmlHttpReq = false;
	var self = this;
	
	// Mozilla/Safari
	if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	}
	// IE
	else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('POST', strURL, true);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 4) {
			updatepage(self.xmlHttpReq.responseText,target);
		}
	}
	self.xmlHttpReq.send(getquerystring());
}

function getquerystring(){
	qstr = 'w=' + escape('test');  // NOTE: no '?' before querystring
	return qstr;
}

function updatepage(str,target){
	//str = trim(str);
	if(str != ''){
		document.getElementById(target).innerHTML = str;
	}
	
	// call a callback function if it exists
	if(window.ajax_callback){
		ajax_callback();
	}
}

// perform the request
function ajax_request(url,target,message){
	// reveal a message if one exists
	if(message != ''){
		document.getElementById(target).innerHTML = message;		
	}
	
	// post the request
	xmlhttpPost(url,target);
}
