//Event.observe(window, 'load', registerWireup);

var dayChoiceActive = false;
var workoutCount = 0;
var personalTrainingCount = 0;

var memberNotFound = false;

function registerWireup() {
    //alert('registerWireup');
    
	toggleActivated();
	if ($('myeq_reg_rightside')) WireUpRegStep1();
}


function toggleActivated(){
	if ($$('ul.toggleList li a')=='') return;
	
	var chooseEnd = $('chooseEnd');
	    Event.observe(chooseEnd, 'click', function(event)
        {	
            $('wk4' ).className='exclusiveOr';
            $('wk8' ).className='exclusiveOr';
            $('wk12').className='exclusiveOr';
        });
        
        var chooseEnd1 = $('chooseEnd1');
	    Event.observe(chooseEnd1, 'click', function(event)
        {	
            $('wk4' ).className='exclusiveOr';
            $('wk8' ).className='exclusiveOr';
            $('wk12').className='exclusiveOr';
        });  
        
	toggleLinks = $$('ul.toggleList li a');
	for(i=0; i<toggleLinks.length; i++){
		Event.observe(toggleLinks[i], 'click', function(event){
		    		
	    				
				var a = Event.element(event);
				var ul = Event.element(event).parentNode.parentNode;
				if (Element.hasClassName(a, 'exclusiveOr')) {
				    for (var i=0;i<toggleLinks.length;i++) {
				        if (toggleLinks[i].parentNode.parentNode.id == 'weekChoice') {
				            toggleLinks[i].className='exclusiveOr';
				        }
				    }
				    var radios = $('chooseEnd').select("input");
		            for (i=0;i<radios.length;i++) {
		                radios[i].checked = false;
		            }
		            
		            var radios = $('chooseEnd1').select("input");
		            for (i=0;i<radios.length;i++) {
		                radios[i].checked = false;
		            }
				    //ToggleOrListClick(ul, a);
				}
				else {
				    Element.toggleClassName(Event.element(event), 'activated');
				    //ToggleAndListClick(ul);
				}
			}
		);
	}	
}

function WireUpRegStep1()
{
    $('myeq_reg_rightside').select('a').invoke('observe', 'click', function(event){Event.stop(event);ToggleRegDrawer(this);}); 
}

function ToggleRegDrawer(el)
{
    $($$('.RegScreenActive')[0].id + "_img").hide();
    $$('.RegScreenActive')[0].removeClassName('RegScreenActive');
    
    el.addClassName('RegScreenActive');
    $(el.id + "_img").show();
}

/* Registration form IDs */
var txtLname;
var txtMemID;
var txtUsername;
var txtPwd1;
var txtPwd2;
var txtEmail;
var hidServerError;
var lnkSubmit = '';


function ValidateRegistrationForm()
{
    $(lnkSubmit).hide();
    $('dummySubmit').show();
    //reset
    var valid = true;
    $(hidServerError).value = '';
    $$('.errormsgShow').invoke('removeClassName','errormsgShow');
    $$('.errorHilight').invoke('removeClassName','errorHilight');
    $('errorRegister').hide();
    
    $('errorLname').removeClassName('errormsgShow');
    $('errorMemberID').removeClassName('errormsgShow');
    $('errorEmailBlank').removeClassName('errormsgShow');
    $('errorEmailInvalid').removeClassName('errormsgShow');
    $('errorPasswordBlank').removeClassName('errormsgShow');
    $('errorPasswordLength').removeClassName('errormsgShow');
    $('errorPasswordMatch').removeClassName('errormsgShow');
    $('errorServer').removeClassName('errormsgShow');
    
    

    if ($F(txtLname) == '') { valid = false; $('errorLname').addClassName('errormsgShow'); $('lblLname').addClassName('errorHilight');}
    if ($F(txtMemID) == '') { valid = false; $('errorMemberID').addClassName('errormsgShow'); $('lblMemberID').addClassName('errorHilight');}

    if ($F(txtUsername) == '') { valid = false; $('errorEmailBlank').addClassName('errormsgShow'); $('lblUsername').addClassName('errorHilight');}

    if ($F(txtPwd1) == '') { valid = false; $(txtPwd2).value = ''; $('errorPasswordBlank').addClassName('errormsgShow'); $('lblPass1').addClassName('errorHilight');}
    if ($F(txtPwd1) != '' && $F(txtPwd1).length < 6) { valid = false; $(txtPwd2).value = ''; $('errorPasswordLength').addClassName('errormsgShow'); $('lblPass1').addClassName('errorHilight');}
    else if ($F(txtPwd1) != $F(txtPwd2)) { valid = false; $('errorPasswordMatch').addClassName('errormsgShow'); $('lblPass1').addClassName('errorHilight'); $('lblPass2').addClassName('errorHilight');}


    // regex
    if ($F(txtUsername) == '') { valid = false; $('errorEmailInvalid').addClassName('errormsgShow'); $('lblUsername').addClassName('errorHilight');}
    var regex = /^.+@.+\..{2,3}$/
    if (!regex.test($F(txtUsername))) { valid = false; $('errorEmailInvalid').addClassName('errormsgShow'); $('lblUsername').addClassName('errorHilight');}

    
    if (!valid) {
        $('errorServer').removeClassName('errormsgShow');
        $('errorRegister').addClassName('errormsgShow');
        $('hr').style.visibility='hidden';
        $('errorRegister').show();
        $(lnkSubmit).show();
        $('dummySubmit').hide();
        return false;
    }
    else
    {
        //$('registrationButtonContainer').hide();
        $('imgSpinner').show();
        return true;
    }
}

function ShowServerError()
{
    //Reset
    $$('.errormsgShow').invoke('removeClassName','errormsgShow');
    $$('.errorHilight').invoke('removeClassName','errorHilight');
    $('errorServer').removeClassName('errormsgShow');
    
    $('errorRegister').addClassName('errormsgShow');
    $('errorServer').addClassName('errormsgShow');
    $('errorServer').innerHTML = $(hidServerError).value;
    $('hr').style.visibility='hidden';
    $('errorRegister').show();
    
    $(hidServerError).value = '';
    
    $(txtPwd1).value = '';
    $(txtPwd2).value = '';
}

function UpdateClubDD(div, ddl)
{
    //alert(div + ":" + ddl);
    //new Ajax.Updater(div, "/myeq/Registration/SetFavorites.aspx?a=loadclubs&regionID=" + $(ddl).value, { onComplete: function(){ ScrollToTop(); }});
    new Ajax.Updater(div, location.href,
        {asynchronous:true,method:'post',onComplete: function(){ ScrollToTop(); },
        postBody:'ajax=true&method=UpdateClubList&params=' + $(ddl).value + '^' + region});
}

var currentInfo = '';
function ShowInfo(infodiv)
{
    if (currentInfo != '' && currentInfo != infodiv)
        ToggleElement(currentInfo,'off');
        
    ToggleElement(infodiv);
    currentInfo = infodiv;
}

function RegSaveGoals()
{
    //reset
    $$('.errormsgShow').invoke('removeClassName','errormsgShow');
    $$('.errorHilight').invoke('removeClassName','errorHilight');

    var valid = true;
    var timesperweek = 0;
    var daysofweek = '';
    var endDate;
    var mantra = '';
    
    // times per week, flash slider
    if (workoutCount == 0)
    {
        $('lblTimesWeek').addClassName('errorHilight');
        $('errorArea1').addClassName('errormsgShow');
        valid = false;
    }
    

    // days of week (opt)
    // verify workout slider >= days selected   
    if ($('dayChoice').select('a.activated').length == 0 && workoutCount > 0)
    {
        $('lblChooseDays').addClassName('errorHilight');
        $('errorDays').addClassName('errormsgShow');
        valid = false;
    }
    else
    {
        $('dayChoice').select('a.activated').each(function(n){ daysofweek +=',' + n.id.replace('Day','') });
        daysofweek = daysofweek.substring(1);
    }
    // pt slider
    
    
    // how many weeks, endDate
    var numofweeks = $('WeeksChoice').select('.activated');
    if (numofweeks.length > 0)
    {
        if (numofweeks[0].type != 'radio')
        {
            now = new Date();
            endDate =  new Date(now.getTime() + (numofweeks[0].id.replace('wk','') * 7 * 24 * 60 * 60 * 1000));
        }
        
        else if (numofweeks[0].id == 'indefiniteEndDate')
            endDate = new Date(2099,0,1);
            
        else if (numofweeks[0].id == 'specificEndDate')
        {
            // validate date
            datecheck = new Date($F('endYear'), $F('endMonth') - 1, $F('endDay'));
            if (($F('endDay')==datecheck.getDate()) && ($F('endMonth') - 1 == datecheck.getMonth()) && ($F('endYear') == datecheck.getFullYear()) && datecheck > new Date())
                endDate = datecheck;
            else
            {
                $('errorEndDate').addClassName('errormsgShow');
                $('lblHowManyWeeks').addClassName('errorHilight');
                valid = false;
            }
        }
    }
    else
    {
        $('errorArea2').addClassName('errormsgShow');
        $('lblHowManyWeeks').addClassName('errorHilight');
        valid = false;
    }
    
    if ($F('whatMotivatesYou') != 'What motivates you?' && $F('whatMotivatesYou').length > 0)
        mantra = $F('whatMotivatesYou');
    
    if (valid)
    {
        if ($('overlayPanelDiv') == null)
        {
            // page submit
            new Ajax.Updater('main','/myeq/Registration/register.aspx', 
            {
                parameters: { a:'savegoals', timesperweek:workoutCount, daysofweek:daysofweek, PTsessions:personalTrainingCount, endDate:endDate.toLocaleDateString(), mantra:mantra},
                onComplete: function()
                {
                    ScrollToTop(); 
                    registerWireup();
                }
            });
        }
        else
        {
            // overlay panel submit
            new Ajax.Request('/myeq/Registration/register.aspx',
            {
                method: 'post',
                parameters: { a:'savegoals', timesperweek:workoutCount, daysofweek:daysofweek, PTsessions:personalTrainingCount, endDate:endDate.toLocaleDateString(), mantra:mantra},
                onSuccess: function(transport) { closeOverlay('ReloadPage()');}
            });
        }
            
    }
    else
    {
        $('errorSetGoals').addClassName('errormsgShow');
        return false;
    }
}


function RegSaveFavorites()
{
    var preferredClubIDs = '';
    
    if ($('selPrefClubClub') != null) {
        preferredClubIDs = $F('selPrefClubClub') +"," + $F('selFavClubClub1') + "," + $F('selFavClubClub2');
    }
        
    var classIDs = '';
    $$('.favClassBox').each(function(element) { if (element.checked == true) classIDs+=',' + element.value; })
    classIDs = classIDs.substring(1);
    
    var favInstructorIDs = '';
    $$('.FavInstructorX').each(function(n){favInstructorIDs+=',' + n.getAttribute('val');});
    favInstructorIDs = favInstructorIDs.substring(1);
    
    //Log completion in Omniture
    WriteTrackingJSRegistration('/MYEQ/Registration/RegistrationComplete', 'event5,event7', 'MYEQ Registration - Complete');
    
    //alert(preferredClubIDs + '|' + classIDs + '|' + favInstructorIDs);
    document.location.href = '/MyEQ/Registration/SetFavorites.aspx?p=saveFavorites&parms=' + preferredClubIDs + '|' + classIDs + '|' + favInstructorIDs;
    
    //Don't do this as AJAX
    /*
    new Ajax.Request('/MyEQ/Registration/SetFavorites.aspx',
    {
        method: 'post',
	    parameters: { a:'saveFavs', parms: preferredClubIDs + '|' + classIDs + '|' + favInstructorIDs},
        onSuccess: function(transport)
        { 
            if ($('overlayPanelDiv') != null)
                closeOverlay('ReloadPage()');
            else
                location.href= "/default.aspx";
        }
    });
    */
}

function RegSkipStep2()
{
    //alert('RegSkipStep2');
    if ($('overlayBox')) { closeOverlay();}
    else
        new Ajax.Updater('main', '/MyEQ/Registration/Register.aspx?a=skip2', { onComplete: function(){ ScrollToTop(); registerWireup(); }});
}

// registration set goals sliders        
// set default value here


function setWorkoutCount(n) {
    workoutCount = n;
    swfobject.getObjectById("ptSlider1").updateWorkoutCount(n);
    
    if (typeof(SaveWorkoutCount) != 'undefined') {
        SaveWorkoutCount(n);
    }
}

function setPersonalTrainingCount(n) {
    if(workoutCount >= personalTrainingCount){
        personalTrainingCount = n;
        swfobject.getObjectById("Stepper2").updateMaxWorkoutCount(n);
        
        if (typeof(SavePTCount) != 'undefined') {
            SavePTCount(n);
        }
    }
}

function setWeeksCount(n) {
     
    if (typeof(SaveProgramWeeks) != 'undefined') {
        SaveProgramWeeks(n);
    }

}


function getMovie(movieName) {
   return document.getElementById(movieName);
}



function checkCR(evt) 
{
    var evt  = (evt) ? evt : ((event) ? event : null);
    var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
    if ((evt.keyCode == 13) && (node.type=="input")) {alert('foo');}
    //else
    return false;
}

function handleEnterKey(e)
{
    var key=e.keyCode || e.which;
    if (key==13)
        ValidateRegister(); 
}
