VS.RegisterHome = { 
	PromoCode:'',
	PromoCodeValue:'',
	PromoCodeForProduct:'',
	PromoCodeBenefit:'',
	EmailDuplicate:false,
	init:function(){ 
		E.addListener($('RegisterFirstName'),'focus',function(){ if(this.value=='(first)'){this.value='';} }); 
		E.addListener($('RegisterFirstName'),'blur',function(){ if(this.value==''){this.value='(first)';} }); 
		E.addListener($('RegisterLastName'),'focus',function(){ if(this.value=='(last)'){this.value='';} }); 
		E.addListener($('RegisterLastName'),'blur',function(){ if(this.value==''){this.value='(last)';} }); 
		E.addListener($('RegisterCCFirstName'),'focus',function(){ if(this.value=='(first)'){this.value='';} }); 
		E.addListener($('RegisterCCFirstName'),'blur',function(){ if(this.value==''){this.value='(first)';} }); 
		E.addListener($('RegisterCCLastName'),'focus',function(){ if(this.value=='(last)'){this.value='';} }); 
		E.addListener($('RegisterCCLastName'),'blur',function(){ if(this.value==''){this.value='(last)';} }); 
		E.addListener('RegisterEmail','blur',this.Listeners.checkEmailAddress); 
	//	E.addListener('RegisterPromoCode','blur',this.Listeners.checkPromoCode); 
	//	E.addListener('RegisterPasswordConfirm','blur',this.Listeners.checkPassword); 
		
		E.addListener('RegisterWordListHelpLink','click',this.Listeners.showAlternateWordList); 
		E.addListener('RegisterWordListStdLink','click',this.Listeners.showStandardWordList); 
		
		// E.addListener('Membership_trial','mouseover',function(){ Dom.addClass(this,'hover'); });
		// 	E.addListener('Membership_trial','mouseout',function(){ Dom.removeClass(this,'hover'); });
		// 	E.addListener('Membership_1month','mouseover',function(){ Dom.addClass(this,'hover'); });
		// 	E.addListener('Membership_1month','mouseout',function(){ Dom.removeClass(this,'hover'); });
		// 	E.addListener('Membership_3month','mouseover',function(){ Dom.addClass(this,'hover'); });
		// 	E.addListener('Membership_3month','mouseout',function(){ Dom.removeClass(this,'hover'); });
		// 	E.addListener('Membership_1year','mouseover',function(){ Dom.addClass(this,'hover'); });
		// 	E.addListener('Membership_1year','mouseout',function(){ Dom.removeClass(this,'hover'); });
	
		// if($('ie6Membership_trial')){ 
		// 		E.addListener('ie6Membership_trial','click',this.Listeners.ChooseMembershipOption);
		// 		E.addListener('ie6Membership_1month','click',this.Listeners.ChooseMembershipOption);
		// 		E.addListener('ie6Membership_3month','click',this.Listeners.ChooseMembershipOption);
		// 		E.addListener('ie6Membership_1year','click',this.Listeners.ChooseMembershipOption);	
		// 	} else { 
		// 		E.addListener('Membership_trial','click',this.Listeners.ChooseMembershipOption);
		// 		E.addListener('Membership_1month','click',this.Listeners.ChooseMembershipOption);
		// 		E.addListener('Membership_3month','click',this.Listeners.ChooseMembershipOption);
		// 		E.addListener('Membership_1year','click',this.Listeners.ChooseMembershipOption);
		// 	}
	
	//	E.addListener('EnterPromoCode','click',function(){ Dom.setStyle(this,'display','none'); Dom.setStyle('PromoCodeBar','display','');   });
		
	//	if($('RegisterPromoCode').value!='') this.Listeners.checkPromoCode(); 
		
		E.addListener('RegisterGo','click',this.Listeners.Validate); 
	},
	DescribePromoCode:function(){ 
		E.removeListener($('ClearPromoCode'),'click',VS.RegisterHome.Listeners.ClearPromoCode); 
		while ($('RegisterPromoCodeFeedback').childNodes[0]){
	 		$('RegisterPromoCodeFeedback').removeChild($('RegisterPromoCodeFeedback').childNodes[0]);
 		}
		var selectedproduct = $('MembershipChoice').value; 
				
		if(this.PromoCodeForProduct=='none'){ 
			if(this.PromoCodeValue!='free'){ 
				$('RegisterPromoCodeFeedback').innerHTML = 'Your promo code will give you <b>a '+this.PromoCodeValue
																									+' discount</b> on any of our membership products. '; 
			} else { 
				if(Dom.hasClass($('Membership_1month'),'selected')){ 
					Dom.replaceClass($('Membership_1month'),'selected','free'); 
				} 
				if(Dom.hasClass($('Membership_3month'),'selected')){ 
					Dom.replaceClass($('Membership_3month'),'selected','free'); 
				} 
				if(Dom.hasClass($('Membership_1year'),'selected')){ 
					Dom.replaceClass($('Membership_1year'),'selected','free'); 
				} 
				$('RegisterPromoCodeFeedback').innerHTML = 'Your promo code will give you <b>any of our products for free!</b> '; 
			} 
		} else { 
			$('MembershipChoice').value = this.PromoCodeForProduct; 
			
			Dom.removeClass($('Membership_trial'),'selected'); 
			Dom.removeClass($('Membership_1month'),'selected'); 
			Dom.removeClass($('Membership_3month'),'selected'); 
			Dom.removeClass($('Membership_1year'),'selected'); 
			Dom.removeClass($('Membership_1month'),'free'); 
			Dom.removeClass($('Membership_3month'),'free'); 
			Dom.removeClass($('Membership_1year'),'free'); 
			var productname = ''; 
			
			switch(this.PromoCodeForProduct){ 
				case 'trial':
					productname = 'Free Trial'; 
					break; 
				case '1month':
					productname = '1 Month'; 
					break; 
				case '3month':
					productname = '3 Month'; 
					break; 
				case '1year':
					productname = '1 Year'; 
					break; 
			} 
			if(this.PromoCodeForProduct == 'trial'){ 
				Dom.addClass($('Membership_trial'),'selected'); 
				if(this.PromoCodeBenefit == 'ValidUntil'){ 
					$('RegisterPromoCodeFeedback').innerHTML = 'Your promo code will give you a free unlimited trial to VocabSushi <b>until '+this.PromoCodeValue+'</b>. If you choose a different membership, your promo code will not apply. ';
				} else { 
					$('RegisterPromoCodeFeedback').innerHTML = 'Your promo code will extend your free trial by an <b>additional '+this.PromoCodeValue+'</b>. ';
				}
			} else if(this.PromoCodeValue!='free'){ 
				Dom.addClass($('Membership_'+this.PromoCodeForProduct),'selected'); 
					$('RegisterPromoCodeFeedback').innerHTML = 'Your promo code will give you a <b>'+this.PromoCodeValue
																										+' discount</b> but is <b>only valid for the '+productname+' membership</b>. '
																										+' If you choose a different membership, your promo code will not apply. '; 
			} else { 
				Dom.addClass($('Membership_'+this.PromoCodeForProduct),'free'); 
				$('RegisterPromoCodeFeedback').innerHTML = 'Your promo code will give you <b>a '+productname
																									+' membership for free!</b> If you choose a different membership, your discount will not apply. '; 
			} 
		} 
		var clearlink = document.createElement('a'); 
		clearlink.href='javascript:void(0)'; 
		clearlink.id="ClearPromoCode"; 
		clearlink.innerHTML = 'remove/change code'; 
		E.addListener(clearlink,'click',VS.RegisterHome.Listeners.ClearPromoCode); 
		$('RegisterPromoCodeFeedback').appendChild(document.createElement('br')); 
		$('RegisterPromoCodeFeedback').appendChild(clearlink); 
	
		Dom.setStyle($('RegisterPromoCodeEntry'),'display','none'); 
		Dom.setStyle($('RegisterPromoCodeFeedback'),'display',''); 
	},
	Listeners:{
		checkEmailAddress:function(){ 
			if($('RegisterEmail').value=='') return false; 
			var callback = { 
				success:function(o){ 
					try{ 
						var R = YAHOO.lang.JSON.parse(o.responseText);
						if(R.ok){
							if(R.response.result){ 
								VS.RegisterHome.EmailDuplicate = true; 
								Dom.setStyle($('RegisterEmailAlert'),'display',''); 
								var anim1 = new YAHOO.util.ColorAnim($('RegisterEmailAlert'), {backgroundColor: { from: '#FFFFCC', to: '#F00' },color:{ from: '#FFFFCC', to: '#F00' } },0.2);
								anim1.onComplete.subscribe(function(){  var anim2 = new YAHOO.util.ColorAnim($('RegisterEmailAlert'), {backgroundColor: { to: '#FFFFCC' },color:{to:'#900'}},0.2); anim2.animate();   });
								anim1.animate(); 
							} else { 
								VS.RegisterHome.EmailDuplicate = false; 
								Dom.setStyle($('RegisterEmailAlert'),'display','none'); 
							} 
						} 
					} catch(err){ 
						
					}
				},
				failure:function(){ } 
			};
			var Txn = YAHOO.util.Connect.asyncRequest('POST', '/user/checkEmailForUser', callback, 'email='+$('RegisterEmail').value); 
		},
		checkPromoCode:function(){ 
			if($('RegisterPromoCode').value==''){ 
				Dom.setStyle($('RegisterPromoCodeAlert'),'display','none'); 
				return false;
			} 
			var callback = { 
				success:VS.RegisterHome.Listeners.PromoCodeResults,
				failure:VS.RegisterHome.Listeners.FailedPromoCodeCheck 
			};
			var Txn = YAHOO.util.Connect.asyncRequest('POST', '/user/checkPromoCodeExists', callback, 'code='+$('RegisterPromoCode').value); 
		},
		PromoCodeResults:function(o){ 
			try{
				var R = YAHOO.lang.JSON.parse(o.responseText);
				if(R.ok){
					if(!R.response.result){ 
						Dom.setStyle($('RegisterPromoCodeAlert'),'display',''); 
						$('RegisterPromoCodeAlert').innerHTML = R.msg; 
						var anim1 = new YAHOO.util.ColorAnim($('RegisterPromoCodeAlert'), {backgroundColor: { from: '#FFFFCC', to: '#F00' },color:{ from: '#FFFFCC', to: '#F00' } },0.2);
						anim1.onComplete.subscribe(function(){  var anim2 = new YAHOO.util.ColorAnim($('RegisterPromoCodeAlert'), {backgroundColor: { to: '#FFFFCC' },color:{to:'#900'}},0.2); anim2.animate();   });
						anim1.animate(); 
					} else { 
						Dom.setStyle($('RegisterPromoCodeAlert'),'display','none'); 
						VS.RegisterHome.PromoCode = R.response.code; 
						VS.RegisterHome.PromoCodeValue = R.response.DiscountAmount; 
						VS.RegisterHome.PromoCodeForProduct = R.response.RequiredProduct; 
						VS.RegisterHome.PromoCodeBenefit = R.response.benefit; 
					
					
					
						VS.RegisterHome.DescribePromoCode();
					
					
					
					} 
				}
			} catch(err){ 
					VS.Alert('warn','System Problem','Sorry, but we can\'t validate your promo code at this time. You may want to try again later to ensure the promo code is correct.'); 
			} 
 
		},
		FailedPromoCodeCheck:function(o){ 
			VS.Alert('warn','System Problem','Sorry, but we can\'t validate your promo code at this time. You may want to try again later to ensure the promo code is correct.'); 
		},
		showAlternateWordList:function(){ 
			Dom.setStyle($('RegisterWordListHelp'),'display',''); 
			Dom.setStyle($('RegisterWordListHelpField'),'display',''); 
			Dom.setStyle($('RegisterTestSelect'),'display','none'); 
			Dom.setStyle($('RegisterTestSelectField'),'display','none'); 
			$('RegisterTestWordList').selectedIndex=0;
		},
		showStandardWordList:function(){ 
			Dom.setStyle($('RegisterWordListHelp'),'display','none'); 
			Dom.setStyle($('RegisterWordListHelpField'),'display','none'); 
			Dom.setStyle($('RegisterTestSelect'),'display',''); 
			Dom.setStyle($('RegisterTestSelectField'),'display',''); 
			$('RegisterGenericWordList').selectedIndex=0;
		},
		checkPassword:function(){ 
			if($('RegisterPasswordConfirm').value != $('RegisterPassword').value){ 
				$('RegisterPasswordConfirm').value = ''; 
				Dom.setStyle($('RegisterPasswordConfirm'),'border','1px solid red'); 
				Dom.setStyle($('RegisterPasswordAlert'),'display',''); 
				var anim1 = new YAHOO.util.ColorAnim($('RegisterPasswordAlert'), {backgroundColor: { from: '#FFFFCC', to: '#F00' },color:{ from: '#FFFFCC', to: '#F00' } },0.2);
				anim1.onComplete.subscribe(function(){  var anim2 = new YAHOO.util.ColorAnim($('RegisterPasswordAlert'), {backgroundColor: { to: '#FFFFCC' },color:{to:'#900'}},0.2); anim2.animate();   });
				anim1.animate(); 
			} else { 
				Dom.setStyle($('RegisterPasswordAlert'),'display','none'); 
			} 
		},
		ChooseMembershipOption:function(){ 
			if(VS.isIE6){ 
				Dom.removeClass($('ie6Membership_trial'),'selected'); 
				Dom.removeClass($('ie6Membership_1month'),'selected'); 
				Dom.removeClass($('ie6Membership_3month'),'selected'); 
				Dom.removeClass($('ie6Membership_1year'),'selected'); 
				Dom.removeClass($('ie6Membership_trial'),'free'); 
				Dom.removeClass($('ie6Membership_1month'),'free'); 
				Dom.removeClass($('ie6Membership_3month'),'free'); 
				Dom.removeClass($('ie6Membership_1year'),'free'); 
			} else { 
				Dom.removeClass($('Membership_trial'),'selected'); 
				Dom.removeClass($('Membership_1month'),'selected'); 
				Dom.removeClass($('Membership_3month'),'selected'); 
				Dom.removeClass($('Membership_1year'),'selected'); 
				Dom.removeClass($('Membership_trial'),'free'); 
				Dom.removeClass($('Membership_1month'),'free'); 
				Dom.removeClass($('Membership_3month'),'free'); 
				Dom.removeClass($('Membership_1year'),'free'); 
			}
			var selection = this.id.split('_')[1]; 
			
			if(selection=='trial'){ 
				Dom.setStyle('NextStepInfo','display','none'); 
			} else { 
				Dom.setStyle('NextStepInfo','display',''); 
			} 

			if(VS.RegisterHome.PromoCodeValue=='free' && (VS.RegisterHome.PromoCodeForProduct == selection || VS.RegisterHome.PromoCodeForProduct == 'none')){ 
				Dom.addClass(this,'free'); 
			} else { 
				Dom.addClass(this,'selected'); 
			}
						
			$('MembershipChoice').value = selection; 
		},
		ClearPromoCode:function(){ 
			if(Dom.hasClass($('Membership_1month'),'free')){ 
				Dom.replaceClass($('Membership_1month'),'free','selected'); 
			} 
			if(Dom.hasClass($('Membership_3month'),'free')){ 
				Dom.replaceClass($('Membership_3month'),'free','selected'); 
			} 
			if(Dom.hasClass($('Membership_1year'),'free')){ 
				Dom.replaceClass($('Membership_1year'),'free','selected'); 
			} 
			
			E.removeListener($('ClearPromoCode'),'click',VS.RegisterHome.Listeners.ClearPromoCode); 
			while ($('RegisterPromoCodeFeedback').childNodes[0]){
		 		$('RegisterPromoCodeFeedback').removeChild($('RegisterPromoCodeFeedback').childNodes[0]);
	 		}
			Dom.setStyle($('RegisterPromoCodeEntry'),'display',''); 
			Dom.setStyle($('RegisterPromoCodeFeedback'),'display','none'); 
			$('RegisterPromoCode').value=''; 	
			VS.RegisterHome.PromoCode='';
			VS.RegisterHome.PromoCodeValue='';
			VS.RegisterHome.PromoCodeForProduct='';
		}, 
		Validate:function(){ 
			var emailregex = new RegExp("^[\\w-_\.+]*[\\w-_\.]\@([\\w-]+\\.)+[\\w-]+[\\w]$");

			if($('RegisterFirstName').value=='' || $('RegisterFirstName').value=='(first)' || $('RegisterLastName').value=='(last)' || $('RegisterLastName').value==''){ 
				VS.Alert('warn','Missing Fields','Oops! We need both your first and last name.'); 
				return false; 
			}
			if(VS.RegisterHome.EmailDuplicate){ 
				VS.Alert('warn','Email Troubles','Oops! The email address you entered is already a VocabSushi member.',[{text:'Go To Sign In',handler:function(){ window.location.href='/user/login'; }},{text:'Use Different Email',handler:function(){ $('RegisterEmail').value=''; this.hide();}}]); 
				return false; 
			} 
			if($('RegisterEmail').value=='' || !emailregex.test($('RegisterEmail').value)){ 
				VS.Alert('warn','Email Troubles','Oops! You will need a valid and working email address in order to log into VocabSushi.'); 
				return false; 
			} 
			if($('RegisterPassword').value==''){ 
				VS.Alert('warn','Password','Oops! Please enter the password you\'ll use for VocabSushi.'); 
				return false; 
			}
			// if($('RegisterPassword').value=='' || $('RegisterPasswordConfirm').value==''){ 
			// 				VS.Alert('warn','Password','Oops! Please enter your password in both password fields so you can log into VocabSushi later.'); 
			// 				return false; 
			// 			} 
			if($('RegisterTestWordList').value=='' && $('RegisterGenericWordList').value==''){
				var msg = ($('RegisterWordListHelp').style.display=='')?'We need you to either choose a test you\'re studying for or a general difficulty level.':'We need you to choose a test that you\'re studying for.';
				VS.Alert('warn','Choose A Difficulty Level',msg); 
				return false; 
			}
			if($('RegisterTestWordList').value!='' && $('RegisterGenericWordList').value!=''){
				VS.Alert('warn','Choose Only One Difficulty Level','Oops, Please choose either a test you\'re studying for, or a difficulty level, but not both.'); 
				return false; 
			}
			
			// if($('RegisterBirthDay').value=='' || $('RegisterBirthMonth').value=='' || $('RegisterBirthYear').value==''){ 
			// 				VS.Alert('warn','Please Enter Your Birthday','Please use the drop-down fields to enter your full birthday.'); 
			// 				return false; 
			// 			}
			// 			if($('RegisterCountry').value=='USA' && ($('RegisterZipCode').value=='' || $('RegisterCity').value=='' || $('RegisterState').value=='')){ 
			// 				VS.Alert('warn','Where Are You From?','If you are from the United States, please enter your city, state and zip code (otherwise choose your country).'); 
			// 				return false; 
			// 			}
			
			
			// if(!$('RegisterTOC').checked){ 
			// 				VS.Alert('warn','Please Agree to our Terms and Conditions','We need you to accept our terms and conditions in order to sign up for VocabSushi.'); 
			// 				return false; 
			// 			} 
			$('RegisterForm').submit(); 
		} 
	}
}
VS.Init.initThese[VS.Init.initThese.length] = 'RegisterHome';
VS.Init.initFields[VS.Init.initFields.length] = 'RegisterFirstName';
VS.Init.initFields[VS.Init.initFields.length] = 'RegisterLastName';

