// JavaScript Document
// Javascripts - Scripts on the productArea - create account page
// Sleeping Giant Studios, LLC
// Created by David Ellenwood - 11/10/2006
// Modified, GF, 12/14/07 - logowear and bow catalogs turned off and request 2008 catalog preference added. will continue to use cboProductSectionCatalog.

function initCreateAccount() {
	if(document.getElementById) {
		//var bowCat		= document.getElementById('cboBowCatalog');
		var rewards		= document.getElementById('cboRewards');
		var address		= document.getElementById('mailingAddress');
		var formSubmit	= document.getElementById('regSubmitBtn');
		
		if(document.getElementById('cboProductSectionCatalog')) {
			var productSectionCat	= document.getElementById('cboProductSectionCatalog');
			if(!productSectionCat.checked && !rewards.checked) //!bowCat.checked &&
				{
					address.style.display = 'none';
				}
		} else {
			address.style.display = 'none';
		}
		
		// Displays the mailing address fields as necessary
		function showHideAddress() {
			if(productSectionCat.checked || rewards.checked)  //bowCat.checked || 
			{
				address.style.display = 'block';				
			} 
			else 
			{
				address.style.display = 'none';
			}
		}
		
		
		function resetError() {
			document.getElementById("FirstNameError").style.display = 'none';
			document.getElementById("LastNameError").style.display = 'none';
			document.getElementById("EmailError").style.display = 'none';
			document.getElementById("Email2Error").style.display = 'none';
			document.getElementById("PasswordError").style.display = 'none';
			document.getElementById("Password2Error").style.display = 'none';
			document.getElementById("Address1Error").style.display = 'none';
			document.getElementById("Address2Error").style.display = 'none';
			document.getElementById("CityError").style.display = 'none';
			document.getElementById("StateError").style.display = 'none';
			document.getElementById("ZipCodeError").style.display = 'none';
			document.getElementById("CountryError").style.display = 'none';

			document.getElementById("lblFirstName").style.color = 'black';
			document.getElementById("lblLastName").style.color = 'black';
			document.getElementById("lblEmail").style.color = 'black';
			document.getElementById("lblEmail2").style.color = 'black';
			document.getElementById("lblPassword").style.color = 'black';
			document.getElementById("lblPassword2").style.color = 'black';
			document.getElementById("lblAddress1").style.color = 'black';
			document.getElementById("lblAddress2").style.color = 'black';
			document.getElementById("lblCity").style.color = 'black';
			document.getElementById("lblState").style.color = 'black';
			document.getElementById("lblZipCode").style.color = 'black';
			document.getElementById("lblCountry").style.color = 'black';

		}
		
		//Function to validate registration input - Moved from old AMC javascript.asp file
		function RegisterFormCheck(){
		
			resetError();
			var passwordMinLength	= document.getElementById('passMinLength').value
			var passwordMaxLength	= document.getElementById('passMaxLength').value
			var varFrmRegister		= document.getElementById('frmRegister');
			
			// First Name
			if(varFrmRegister.txtFirstName.value ==''){
				varFrmRegister.txtFirstName.focus();
				
				var messageBody = document.createTextNode("Please provide your first name.");
			     if (document.getElementById("FirstNameError").childNodes[0]) {
			         document.getElementById("FirstNameError").replaceChild(messageBody,  document.getElementById("FirstNameError").childNodes[0]);
			     } else {
			         document.getElementById("FirstNameError").appendChild(messageBody);
    			 }	

				document.getElementById("FirstNameError").style.display = '';
				document.getElementById("lblFirstName").style.color = '#f00';
			
				return false;
			}
			else {
			document.getElementById("FirstNameError").style.display = 'none';
			}
			
			// Last Name
			if(varFrmRegister.txtLastName.value ==''){
				//window.alert("Please provide your last name.")
				varFrmRegister.txtLastName.focus();
				var messageBody = document.createTextNode("Please provide your last name.");
			     if (document.getElementById("LastNameError").childNodes[0]) {
			         document.getElementById("LastNameError").replaceChild(messageBody,  document.getElementById("LastNameError").childNodes[0]);
			     } else {
			         document.getElementById("LastNameError").appendChild(messageBody);
    			 }
				document.getElementById("LastNameError").style.display = '';
				document.getElementById("lblLastName").style.color = '#f00';
				
				return false;
			}
			else {
			document.getElementById("LastNameError").style.display = 'none'
			}
			
			// Email
			var intValidEmail = varFrmRegister.txtEmail.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.us)|(\.biz)|(\.coop)|(\..{2,2}))$)\b/gi);
			if(!intValidEmail){
				//window.alert("Please enter a valid email address.")
				varFrmRegister.txtEmail.focus();
				var messageBody = document.createTextNode("Please enter a valid email address.");
			     if (document.getElementById("EmailError").childNodes[0]) {
			         document.getElementById("EmailError").replaceChild(messageBody,  document.getElementById("EmailError").childNodes[0]);
			     } else {
			         document.getElementById("EmailError").appendChild(messageBody);
    			 }

				document.getElementById("EmailError").style.display = '';
				document.getElementById("lblEmail").style.color = '#f00';
				

				return false;
			}
			else{
			document.getElementById("EmailError").style.display = 'none';
			}
			
			if(varFrmRegister.txtEmail.value != varFrmRegister.txtEmail2.value){
				//window.alert("Please confirm that the two entered email addresses match.")
				var messageBody = document.createTextNode("Please confirm that the two entered email addresses match.");
			     if (document.getElementById("EmailError").childNodes[0]) {
			         document.getElementById("EmailError").replaceChild(messageBody,  document.getElementById("EmailError").childNodes[0]);
			     } else {
			         document.getElementById("EmailError").appendChild(messageBody);
    			 }

				document.getElementById("EmailError").style.display = '';
				document.getElementById("Email2Error").style.display = '';
				document.getElementById("lblEmail").style.color = '#f00';
				document.getElementById("lblEmail2").style.color = '#f00';

				varFrmRegister.txtEmail.focus();
				return false;
			}
			else{
			document.getElementById("EmailError").style.display = 'none';
			document.getElementById("Email2Error").style.display = 'none';
			}
			
			// Password
			if(varFrmRegister.txtPassword.value.length < passwordMinLength || varFrmRegister.txtPassword.value.length > passwordMaxLength ){
				//window.alert('Please confirm that your password is between '+passwordMinLength+' and '+passwordMaxLength +' characters.');
				var messageBody = document.createTextNode('Please confirm that your password is between '+passwordMinLength+' and '+passwordMaxLength +' characters.');
			     if (document.getElementById("PasswordError").childNodes[0]) {
			         document.getElementById("PasswordError").replaceChild(messageBody,  document.getElementById("PasswordError").childNodes[0]);
			     } else {
			         document.getElementById("PasswordError").appendChild(messageBody);
    			 }

				document.getElementById("PasswordError").style.display = '';
				document.getElementById("lblPassword").style.color = '#f00';
				
				varFrmRegister.txtPassword.focus();
				return false;
			}
			else{
			document.getElementById("PasswordError").style.display = 'none';
			}
			if(varFrmRegister.txtPassword.value != varFrmRegister.txtPassword2.value){
				//window.alert("Please confirm that the two entered passwords match.")
				varFrmRegister.txtPassword.focus();
				var messageBody = document.createTextNode("Please confirm that the two entered passwords match.");
			     if (document.getElementById("PasswordError").childNodes[0]) {
			         document.getElementById("PasswordError").replaceChild(messageBody,  document.getElementById("PasswordError").childNodes[0]);
			     } else {
			         document.getElementById("PasswordError").appendChild(messageBody);
    			 }

				document.getElementById("PasswordError").style.display = '';
				document.getElementById("Password2Error").style.display = '';
				document.getElementById("lblPassword").style.color = '#f00';
				document.getElementById("lblPassword2").style.color = '#f00';

				return false;
			}
			else {
			document.getElementById("PasswordError").style.display = 'none';
			document.getElementById("Password2Error").style.display = 'none';
			}
			
			if(1==2){
			// Validate the mailing address fields as necessary
			if(productSectionCat.checked || rewards.checked) //bowCat.checked || 
			{
				
				// Address line 1
				if(varFrmRegister.txtAddress1.value ==''){
					varFrmRegister.txtAddress1.focus();
					
					var messageBody = document.createTextNode("Please enter a valid 1st address line.");
				     if (document.getElementById("Address1Error").childNodes[0]) {
				         document.getElementById("Address1Error").replaceChild(messageBody,  document.getElementById("Address1Error").childNodes[0]);
				     } else {
				         document.getElementById("Address1Error").appendChild(messageBody);
	    			 }	
	
					document.getElementById("Address1Error").style.display = '';
					document.getElementById("lblAddress1").style.color = '#f00';
				
					return false;
				}
				else {
				document.getElementById("Address1Error").style.display = 'none';
				}

				/*if(varFrmRegister.txtAddress1.value ==''){
					window.alert("Please provide your street address.")
					return false;
				}*/

				// City 1
				if(varFrmRegister.txtCity.value ==''){
					varFrmRegister.txtCity.focus();
					
					var messageBody = document.createTextNode("Please ensure that the City entered is correct for the State and Zip Code provided.");
				     if (document.getElementById("CityError").childNodes[0]) {
				         document.getElementById("CityError").replaceChild(messageBody,  document.getElementById("CityError").childNodes[0]);
				     } else {
				         document.getElementById("CityError").appendChild(messageBody);
	    			 }	
	
					document.getElementById("CityError").style.display = '';
					document.getElementById("lblCity").style.color = '#f00';
				
					return false;
				}
				else {
				document.getElementById("CityError").style.display = 'none';
				}
				
				/*if(varFrmRegister.txtCity.value ==''){
					window.alert("Please provide your city of residence.")
					return false;
				}*/

				// State 
				if((varFrmRegister.cboState.value =='')||(varFrmRegister.cboState.value =='-1') ){
					varFrmRegister.cboState.focus();
					
					var messageBody = document.createTextNode("Please ensure that the State selected is correct for the City and Zip Code provided.");
				     if (document.getElementById("StateError").childNodes[0]) {
				         document.getElementById("StateError").replaceChild(messageBody,  document.getElementById("StateError").childNodes[0]);
				     } else {
				         document.getElementById("StateError").appendChild(messageBody);
	    			 }	
	
					document.getElementById("StateError").style.display = '';
					document.getElementById("lblState").style.color = '#f00';
				
					return false;
				}
				else {
				document.getElementById("StateError").style.display = 'none';
				}

				/*
				for(var p=0; p<varFrmRegister.cboState.length; p++){
					if(varFrmRegister.cboState[p].value==-1 && varFrmRegister.cboState[p].selected) {
						window.alert("Please provide your state or province of residence.")
						return false;
					};
				}*/

				// Zipcode
				if(varFrmRegister.txtZipCode.value ==''){
					varFrmRegister.txtZipCode.focus();
					
					var messageBody = document.createTextNode("Please ensure that the Zip Code entered is correct for the City and State provided.");
				     if (document.getElementById("ZipCodeError").childNodes[0]) {
				         document.getElementById("ZipCodeError").replaceChild(messageBody,  document.getElementById("ZipCodeError").childNodes[0]);
				     } else {
				         document.getElementById("ZipCodeError").appendChild(messageBody);
	    			 }	
	
					document.getElementById("ZipCodeError").style.display = '';
					document.getElementById("lblZipCode").style.color = '#f00';
				
					return false;
				}
				else {
				document.getElementById("ZipCodeError").style.display = 'none';
				}

				/*
				if(varFrmRegister.txtZipCode.value ==''){
					window.alert("Please provide your zip or postal code.")
					return false;
				}
				*/

				// Country 
				if((varFrmRegister.cboCountry.value =='')||(varFrmRegister.cboCountry.value =='-1') ){
					varFrmRegister.cboCountry.focus();
					
					var messageBody = document.createTextNode("Please ensure that the Country selected is valid for the State provided.");
				     if (document.getElementById("CountryError").childNodes[0]) {
				         document.getElementById("CountryError").replaceChild(messageBody,  document.getElementById("CountryError").childNodes[0]);
				     } else {
				         document.getElementById("CountryError").appendChild(messageBody);
	    			 }	
	
					document.getElementById("CountryError").style.display = '';
					document.getElementById("lblCountry").style.color = '#f00';
				
					return false;
				}
				else {
				document.getElementById("CountryError").style.display = 'none';
				}

				
				/*
				for(var p=0; p<varFrmRegister.cboCountry.length; p++){
					if(varFrmRegister.cboCountry[p].value==-1 && varFrmRegister.cboCountry[p].selected) {
						window.alert("Please provide your country of residence.")
						return false;
					};
				}*/
	
			}
			}
			
			varFrmRegister.submit();
		}
		
		//bowCat.onclick		= showHideAddress;
		if(document.getElementById('cboProductSectionCatalog')) {
			productSectionCat.onclick	= showHideAddress;
		}
		if(document.getElementById('cboProductSectionCatalog')) {
			rewards.onclick		= showHideAddress;
		}
		formSubmit.onclick	= RegisterFormCheck;
	}
}


// Sign In Validation
// GF brought from productArea_signin.js
//
//

// JavaScript Document
//  Javascripts - Scripts on the productArea - sign in page
// GF 

// Check the Email and password when the user is signing in
function initSignIn() {

	if(document.getElementById) {
		
		//Function to validate registration input - Moved from old AMC javascript.asp file
		function SignInFormCheck(){
			var varFrmSignIn		= document.getElementById('signinForm');
			
			var intValidEmail = varFrmSignIn.txtContactUser.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.us)|(\.biz)|(\.coop)||(\..{2,2}))$)\b/gi);
			if(!intValidEmail){
				window.alert("Please enter a valid email address.");
				varFrmSignIn.txtContactUser.focus();
				return false;
			}
			
			// not sure if this was enforced so I am not going to enforce it
			//if(varFrmSignIn.txtPassword.value.length < passwordMinLength || varFrmSignIn.txtPassword.value.length > passwordMaxLength ){
			//	window.alert('Please confirm that your password is between '+passwordMinLength+' and '+passwordMaxLength +' characters.');
			//	return false;
			//}
			
			if(varFrmSignIn.txtContactPassword.value.length < 1 || varFrmSignIn.txtContactPassword.value.length > 20 ){
				window.alert('Please confirm that your password is valid.');
				varFrmSignIn.txtContactPassword.focus();						
				return false;
			}						
			varFrmSignIn.submit();
		}
		
		document.getElementById('signinSubmitBtn').onclick	= SignInFormCheck;	
					
	}

}

// Function to show and hide the forgot password form
function showPasswordForm() {

	var forgotPassDiv = document.getElementById('forgotPasswordDiv');
	
	if (forgotPassDiv.style.display == 'none') {
		forgotPassDiv.style.display = 'block';
	} else {
		forgotPassDiv.style.display = 'none';
	}
	
}

//Function to validate the email address when requesting password help
function ForgotPasswordCheck(){
	
	var varFrmForgotPassword = document.getElementById('forgotPasswordForm');
	
	var intValidEmail = varFrmForgotPassword.txtContactUser_ForgotPassword.value.match(/\b(^(\S+@).+((\.com)|(\.net)|(\.edu)|(\.mil)|(\.gov)|(\.org)|(\.us)|(\.biz)|(\.coop)||(\..{2,2}))$)\b/gi);
	if(!intValidEmail){
		window.alert("Please enter a valid email address.");
		varFrmForgotPassword.txtContactUser_ForgotPassword.focus();
		return false;
	}									
	varFrmForgotPassword.submit();
}


// Initialize the forgot password events
function initForgotPassword() {

	if(document.getElementById) {
		
		document.getElementById('closePassDiv').onclick				= showPasswordForm;
		document.getElementById('forgotPassLink').onclick			= showPasswordForm;
		document.getElementById('forgotPasswordSubmitBtn').onclick	= ForgotPasswordCheck;	
		
	}
}

// Load the functions that require initialization
function initializePage() {
	initSignIn();
	initForgotPassword();
}

// Initialize the right forms on this page
function initializeEntirePage()
{
	if (document.getElementById("signinForm"))
	{
		initializePage();
		initCreateAccount();
	}
	else
	{
		initCreateAccount();
	}
	
}

// Initialize the events on the page
window.onload = initializeEntirePage;

