﻿
function ShowWhyRequireBirthday()
{
    if (document.getElementById('ReasonWhyWeRequireBirthday').style.display == 'none')
	    {
		    new Effect.Appear('ReasonWhyWeRequireBirthday');
	    }
	    else
	    {
		    document.getElementById('ReasonWhyWeRequireBirthday').style.display = 'none';
	    }
}



function RegisterThisMemberFromTheDefaultPageStepOne()
{
	var FirstName = document.getElementById('BecomeMemberFirstName');
	var FirstNameCheck = MakeSureUserHasProvidedRegistrationDetails(FirstName.value,'Provide a first name with no special characters', lwr+upr+numb+special,document.getElementById('BecomeMemberFirstName'));
	if (FirstNameCheck)
	{
	    var LastName = document.getElementById('BecomeMemberLastName');	
	    var LastNameCheck = MakeSureUserHasProvidedRegistrationDetails(LastName.value,'Provide a last name with no special characters', lwr+upr+numb+special,document.getElementById('BecomeMemberLastName'));
	}
	if (LastNameCheck)
	{
	    var UserName = document.getElementById('BecomeMemberUserName');	
	    var UserNameCheck = RegisterCheckTheUserName(UserName.value);
	}
	if (UserNameCheck)
	{
	    var EmailAddress = document.getElementById('BecomeMemberEmail');
	    var EmailCheck = MakeSureUserHasProvidedProperEmailDetails(EmailAddress.value, 'Provide a valid email address',document.getElementById('BecomeMemberEmail'));
	}
	if (EmailCheck)
	{
	    var Password = document.getElementById('BecomeMemberPassword');
	    var PasswordCheck = RegisterCheckThePassWord(Password.value);
	}
	if (PasswordCheck)
	{
	    var BirthDateCheck = MakeSureUserHasProvidedAValidBirthdate();
	}
	if (BirthDateCheck)
	{
	    HasThisMemberProvidedANewUserNameAndANewPassword(UserName.value,EmailAddress.value)
	}
}

function HasThisMemberProvidedANewUserNameAndANewPassword(UserName,EmailAddress)
{
    BecomeAMemberServices.IsThisANewUserNameAndPassword(UserName, EmailAddress,OnCompleteIsThisANewUserNameAndPassword, OnTimeout, OnError);
}

function OnCompleteIsThisANewUserNameAndPassword(value)
{
    if (value.IsANewUserName)
    {
        if (value.IsANewEmailAddress)
        {
            RegisterThisMemberFromTheDefaultPageShowStepTwo();
        }
        else
        {
	        var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');	
            document.getElementById('BecomeMemberUserName').focus(); 
            RegisterErrorMessage.innerHTML = 'There is an account already associated with that email address';
	        new Effect.Appear('RegisterErrorMessage');
        }
    }
    else
    {
	    var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');	
        document.getElementById('BecomeMemberEmail').focus(); 
        RegisterErrorMessage.innerHTML = 'That user name is not available.<br />Please select another';
	    new Effect.Appear('RegisterErrorMessage');
    }
}

function RegisterThisMemberFromTheDefaultPageShowStepTwo()
{
    document.getElementById('RegisterStepOne').style.display = 'none';
    document.getElementById('RegisterStep2').style.display = 'block';
}

function RegisterThisMemberFromTheDefaultPageStepTwo()
{	
	var ScriptCheck = document.getElementById('ScriptCheck');	
	var SecurityImageKey = document.getElementById('SecurityImageKey');
	var ScriptCheckCheck = HasThisMemberProvidedAnAnswerToTheScriptCheckToRegister(ScriptCheck.value);
	if (ScriptCheckCheck)
	{
	    var RegisterButton = document.getElementById('Register');
		RegisterButton.disabled = true;
        document.getElementById('backToStepOne').style.display = 'none';	
		//BecomeAMemberServices.RequestToJoinStudyBarn(document.getElementById('BecomeMemberFirstName').value, document.getElementById('BecomeMemberLastName').value, document.getElementById('BecomeMemberUserName').value, document.getElementById('BecomeMemberPassword').value, document.getElementById('BecomeMemberEmail').value,document.getElementById('birthday_year').value,document.getElementById('birthday_month').value,document.getElementById('birthday_day').value, ScriptCheck.value, SecurityImageKey.value, OnCompleteRegisterThisMemberFromTheDefaultPage, OnTimeout, OnError);
		BecomeAMemberServices.RequestToJoinStudyBarnWithoutSendingEmailAndAutoLogin(document.getElementById('BecomeMemberFirstName').value, document.getElementById('BecomeMemberLastName').value, document.getElementById('BecomeMemberUserName').value, document.getElementById('BecomeMemberPassword').value, document.getElementById('BecomeMemberEmail').value,document.getElementById('birthday_year').value,document.getElementById('birthday_month').value,document.getElementById('birthday_day').value, ScriptCheck.value, SecurityImageKey.value, OnCompleteRequestToJoinStudyBarnWithoutSendingEmailAndAutoLogin, OnTimeout, OnError);
	}
}

function RegisterThisMemberFromTheDefaultPageGoBackToStepOne()
{
    document.getElementById('RegisterStepOne').style.display = 'block';
    document.getElementById('RegisterStep2').style.display = 'none';
}


function OnCompleteRequestToJoinStudyBarnWithoutSendingEmailAndAutoLogin(value)
{
	if (value.IsAGoodNewMembership)
	{
	window.location = 'http://www.studybarn.com/CompleteRegistration/' + value.EmailAddress + '/' + value.ReturnedIdentifierID + '/';    
	}
	else
	{
	    var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');	
        document.getElementById('backToStepOne').style.display = 'block';
	    var RegisterButton = document.getElementById('Register');
	    RegisterButton.disabled = false;
	    document.getElementById('ScriptCheck').focus(); 
	    RegisterErrorMessage.innerHTML = 'You have entered the wrong text.<br />Please make sure you use capital letters when they are required.<br />Enter the text you see in the image above';
		new Effect.Appear('RegisterErrorMessage');	
	}	
}

function OnCompleteRegisterThisMemberFromTheDefaultPage(value)
{
	if (value)
	{
		document.getElementById('RegisterStep2').style.display = 'none';
        document.getElementById('RegistrationComplete').style.display = 'block';    
	}
	else
	{
	    var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');	
        document.getElementById('backToStepOne').style.display = 'block';
	    var RegisterButton = document.getElementById('Register');
	    RegisterButton.disabled = false;
	    document.getElementById('ScriptCheck').focus(); 
	    RegisterErrorMessage.innerHTML = 'You have entered the wrong text.<br />Please make sure you use capital letters when they are required.<br />Enter the text you see in the image above';
		new Effect.Appear('RegisterErrorMessage');	
	}	
}



    
function MakeSureUserHasProvidedRegistrationDetails(ValueCheck, ErrorMessageToShow, CharacterCheck, Focus)
{	
	var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');		
	if (ValueCheck!='')
	{	
		if (isValidTextWithNoSpecialCharacters(ValueCheck,CharacterCheck) == false)
		{				
	        Focus.focus(); 
	        RegisterErrorMessage.innerHTML = ErrorMessageToShow;
		    new Effect.Appear('RegisterErrorMessage');
		    return false;
		}
		else
		{
			return true;
		}
	}
	else
	{	
	    Focus.focus(); 
	    RegisterErrorMessage.innerHTML = ErrorMessageToShow;
		new Effect.Appear('RegisterErrorMessage');
		return false;
	}	
}

function RegisterCheckTheUserName(UserName)
{
	if (MakeSureUserHasProvidedRegistrationDetails(UserName, 'Provide a user name with no special characters', lwr+upr+numb,document.getElementById('BecomeMemberUserName')))
	{
		if (MakeSureTheFieldHasEnoughCharacters(UserName,4,'A user name must have at least four characters',document.getElementById('BecomeMemberUserName')))
		{
			return true;
		}
		else
		{
			return false;
		}
	}
	else
	{
		return false;
	}
}

function RegisterCheckThePassWord(Password)
{
	if (MakeSureUserHasProvidedRegistrationDetails(Password,'Provide a password with no special characters', lwr+upr+numb,document.getElementById('BecomeMemberPassword')))
	{	    
	    if (MakeSureTheFieldHasEnoughCharacters(Password,6,'A password must have at least six characters',document.getElementById('BecomeMemberPassword')))
	    {
		    return true;
	    }
	    else
	    {
		    return false;
	    }
    }
    else
    {
        return false;
    }
}




function MakeSureUserHasProvidedProperEmailDetails(EmailAddress,ErrorMessageToShow,Focus) 
{   
	var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');			
	if (EmailAddress!='')
	{	
		var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		if(reg.test(EmailAddress) == false) 
		{			
			Focus.focus(); 
	        RegisterErrorMessage.innerHTML = ErrorMessageToShow;
		    new Effect.Appear('RegisterErrorMessage');
		    return false;
		}
		else
		{			
			return true;
		}
	}
	else
	{	
		Focus.focus(); 
	    RegisterErrorMessage.innerHTML = ErrorMessageToShow;
		new Effect.Appear('RegisterErrorMessage');
		return false;
	}	
}


function MakeSureTheFieldHasEnoughCharacters(TheValueToCheck,TheNumberOfCharactersItMustAtLeastHave,ErrorMessageToShow, Focus)
{
	var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');	
	if (TheValueToCheck.length >= TheNumberOfCharactersItMustAtLeastHave)
	{		
		return true;
	}
	else
	{
		Focus.focus(); 
        RegisterErrorMessage.innerHTML = ErrorMessageToShow;
	    new Effect.Appear('RegisterErrorMessage');
	    return false;
	}
}


function HasThisMemberProvidedAnAnswerToTheScriptCheckToRegister(ScriptCheck)
{
	var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');		
	if (ScriptCheck!='')
	{
			RegisterErrorMessage.style.display = 'none';
			return true;
	}
	else
	{	
	    document.getElementById('ScriptCheck').focus(); 
	    RegisterErrorMessage.innerHTML = 'Enter the text you see in the image above';
		new Effect.Appear('RegisterErrorMessage');
		return false;
	}	
}
function IsTheTextInTheScriptCheckIncorrectlyAnswered()
{
	var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');		
	if (document.getElementById('ScriptCheck').value!='')
	{
			RegisterErrorMessage.style.display = 'none';
			return true;
	}
	else
	{	
	    document.getElementById('ScriptCheck').focus(); 
	    RegisterErrorMessage.innerHTML = 'Enter the text you see in the image above';
		new Effect.Appear('RegisterErrorMessage');
		return false;
	}	
}

function MakeSureUserHasProvidedAValidBirthdate()
{
	var RegisterErrorMessage = document.getElementById('RegisterErrorMessage');	
    if (document.getElementById('birthday_month').value =='-1')
    {
        RegisterErrorMessage.innerHTML = 'Please provide your birth month';
	    new Effect.Appear('RegisterErrorMessage');
	    return false;
    }
    else
    {
        if (document.getElementById('birthday_day').value =='-1')
        {
            RegisterErrorMessage.innerHTML = 'Please provide your day of birth';
	        new Effect.Appear('RegisterErrorMessage');
	        return false;
        }
        else
        {
            if (document.getElementById('birthday_year').value =='-1')
            {
                RegisterErrorMessage.innerHTML = 'Please provide your birth year';
	            new Effect.Appear('RegisterErrorMessage');
	            return false;
            }
            else
            {
                RegisterErrorMessage.style.display = 'none';
		        return true;
            }
        }
    }
}
