﻿function InsertMember()
{
    var _username = $('registerUsername');
    var _password = $('registerPassword');
    var _email = $('registerEmail');
    var _emptyField = false;
    if(_username.value == '')
    {
        $('register_member_message').set('html','Please enter a valid username.');
        _emptyField = true;
    }
    if(_password.value == '')
    {
        $('register_member_message').set('html','Please enter a valid password.');
        _emptyField = true;
    }
    if(_email.value == '')
    {
        $('register_member_message').set('html','Please enter a valid email address.');
        _emptyField = true;
    } 
    //alert(_emptyField);
    if(!_emptyField)
    {
        KupOfJoe.MemberService.InsertMember(_username.value, _password.value, _email.value, completeHandlerInsertMember);
        
        $('register_member_message').set('html','');
        $('register_details').setStyle('display','none');
        SetLoggedInProps(_username.value, _email.value);
        
        _username.set('value',''); 
        _password.set('value','');
        _email.set('value','');
        pageTracker._trackPageview('/MemberRegistered');
    }
}
function Register()
{
    var homePage = $('home_page');
    var coffeeShops = $('coffee_details');
    var registerDetails = $('register_details');
    var googleAds = $('google_ads');
    //alert(googleAds);
    
    googleAds.set('style','margin-top:200px;');
    homePage.setStyle('display','none');
    coffeeShops.setStyle('display','none');
    registerDetails.setStyle('display','block');
    
    //pageTracker._trackPageview('/Register');
}
function MemberLogin()
{
    var _username = $('loginUsername');
    var _password = $('loginPassword');
    
    if(_username.value == '')
    {
        _username.setStyle('color','red');
        _username.set('value','Enter Username');
        return;
    }
    if(_password.value == '')
    {
        _password.setStyle('color','red');
        _password.set('value','Enter Password');
        return;
    }
    KupOfJoe.MemberService.LoginMember(_username.value, _password.value, MemberLoggedIn);
    
    _username.set('value','');
    _password.set('value','');
    pageTracker._trackPageview('/MemberLogin');
}

function MemberLoggedIn(text)
{
    this.response.json = JSON.decode(text, this.options.secure); 
    var obj = eval(text);
    if(obj.Result != null)
    {
     obj.Result.each(function(member)
     {
         SetLoggedInProps(member.UName, member.Email, member.Admin, member.ID);
     });
    }
    pageTracker._trackPageview('/MemberLoggedIn');
}

function SetLoggedInProps(username, email, admin, userid)
{
    //alert(Cookie.read('kojloggedin'));
    if(Cookie.read('kojloggedin') == 'false' || Cookie.read('kojloggedin') == 'undefined'  || Cookie.read('kojloggedin') == null)
    {
        Cookie.write('kojloggedin','true');
        Cookie.write('kojusername',username);
        Cookie.write('kojemail',email);
        Cookie.write('kojadmin',admin);
        Cookie.write('kojuserid', userid);
    }
    var logInControls = $('header_login_controls');
    var fxLogInControls = new Fx.Morph(logInControls,{duration: 1000, transition : Fx.Transitions.Sine.easeOut});
    fxLogInControls.start({'opacity': 0,'display':'none'});
    var loggedInPanel = $('header_logged_in_panel');
    loggedInPanel.empty();
    loggedInPanel.setStyle('display','block');
    //var _loginControls = $('detail_login_controls');
    //_loginControls.setStyle('display','none');
    var _userDetailFieldset = new Element('fieldset');
    _userDetailFieldset.setStyle('display','none');
    
    var _userDetailLegend = new Element('legend',{'html': username + ' Details'});
    _userDetailLegend.inject(_userDetailFieldset);
    
    var _accountDetails = $('account_details');
    if(_accountDetails != null)
    {
        _accountDetails.empty();
    }
    
    var _ul = new Element('ul');
    
    var _usernameLi = new Element('li');
    var _emailLi = new Element('li');
    var _usernameLbl = new Element('label',{'html':'<b>Username:</b>'});
    var _username = new Element('label',{'html':username});
    
    _usernameLbl.inject(_usernameLi);
    _username.inject(_usernameLi);
    _username.setStyle('width','300px');
    
    var _emailLbl = new Element('label',{'html':'<b>Email:</b>'});
    var _email = new Element('label',{'html':email});
    
    _emailLbl.inject(_emailLi);
    _email.inject(_emailLi);
    _email.setStyle('width','300px');
    
    _usernameLi.inject(_ul);
    _emailLi.inject(_ul);
    _ul.inject(_userDetailFieldset);
    
    if(_accountDetails != null)
    {
        _userDetailFieldset.inject(_accountDetails);
    }
    
    var welcomeLabel = new Element('label',{'html':'Welcome, ' + username});
    welcomeLabel.inject(loggedInPanel);
    var separator = new Element('label',{'html': '&nbsp;|&nbsp;'});
    separator.inject(loggedInPanel);
    var _accountDetailsLabel = new Element('a',{'html':'Account Details'});
    _accountDetailsLabel.setStyle('cursor','pointer');
    _accountDetailsLabel.addEvent('click',function()
    {
        var homePage = $('home_page');
        var coffeeDetails = $('coffee_details');
        var accountDetails = $('account_details');
        
        homePage.setStyle('display','none');
        coffeeDetails.setStyle('display','none');
        _userDetailFieldset.setStyle('display','block');
    });
    _accountDetailsLabel.inject(loggedInPanel);
    
    var separatorTwo = new Element('label',{'html': '&nbsp;|&nbsp;'});
    separatorTwo.inject(loggedInPanel);
    
    if(admin == 'True')
    {
        var _admin = new Element('a',{'html':'Admin','href':'./admin/default.aspx'});
        _admin.setStyle('color','#ffffff');
        _admin.setStyle('text-decoration','none');
        _admin.inject(loggedInPanel);
        var _separatorThree = new Element('label',{'html': '&nbsp;|&nbsp;'});
        _separatorThree.inject(loggedInPanel);
    }
    var _logOut = new Element('a',{'html':'Log Out'});
    _logOut.setStyle('cursor','pointer');
    _logOut.addEvent('click',function()
    {
        Cookie.write('kojloggedin','false');
        Cookie.write('kojusername','');
        Cookie.write('kojemail','');
        Cookie.write('admin','');
        var _accountDetails = $('account_details');
        if(_accountDetails != null)
        {
            _accountDetails.setStyle('display','none');
        }
        loggedInPanel.setStyle('display','none');
        fxLogInControls.start({'opacity': 1,'display':'block'});
        _logOut.set('html','');
        window.location.href = 'default.aspx';
    });
    _logOut.inject(loggedInPanel);
}
function CreateLoginControls(_elm, _position)
{
    var _loggedInMessage = $('loggedInMessage');
    var _loggedinDisplay = $('loggedin_display');
    var _loginControls = $('login_controls_container');
    if(_loginControls != null)
    {
        _loginControls.destroy();
    }
    var _messageLabel = new Element('label',{'html':'You must be a member to add content to this website.  <br />Please click <u>HERE</u> to register.','id':'register_message'});
    _messageLabel.setStyle('cursor','pointer');
    _messageLabel.setStyle('text-align','center');
    _elm.setStyle('text-align','center');
    _messageLabel.addEvent('click',function()
    {
        window.location.href = 'default.aspx?action=register';
    });
    var _usernameLabel = new Element('label',{'html':'Username:'});
    var _usernameInput = new Element('input',{'id':'loginDynamicUsername','type':'text'});
    _usernameInput.addEvent('focus',function()
    {
        _usernameInput.set('value','');
        _usernameInput.setStyle('color','#000000');
    });
    var _passwordLabel = new Element('label',{'html':'Password:'});
    var _passwordInput = new Element('input',{'id':'loginDynamicPassword','type':'password'});
    _passwordInput.addEvent('focus',function()
    {
        _passwordInput.set('value','');
        _passwordInput.setStyle('color','#000000');
        _passwordInput.set('type','password');
    });
    var _submitLogin = new Element('input',{'type':'button','value':'Log In'});
    
    var _container = new Element('div',{'id':'login_controls_container'});
    var _instructionFieldset = new Element('fieldset');
    var _fieldset = new Element('fieldset');
    var _legend = new Element('legend',{'html':'Log In'});
    var _ul = new Element('ul',{'class':'ul_login'});
    _ul.addEvent('keydown',function()
    {
        if(window.event)
        {
        if(window.event.keyCode == 13)
        {
            _submitLogin.fireEvent('click');
        }
        }
    });
    var _messageLi = new Element('li');
    var _spacerLi = new Element('li');
    var _usernameLi = new Element('li');
    var _passwordLi = new Element('li');
    var _submitLi = new Element('li');
    
    _messageLabel.inject(_elm);
    
    _usernameLabel.inject(_usernameLi);
    _usernameInput.inject(_usernameLi);
    
    _passwordLabel.inject(_passwordLi);
    _passwordInput.inject(_passwordLi);
    
    _submitLogin.addEvent('click',function()
    {
    //alert('hi');
        var _loginUsername = $('loginDynamicUsername');
        var _loginPassword = $('loginDynamicPassword');
        //alert(_loginUsername.value);
        //alert(_loginPassword.value);
        if(ValidateLoginControls(_loginUsername, _loginPassword))
        {
            //alert('valid');
            KupOfJoe.MemberService.LoginMember(_loginUsername.value, _loginPassword.value, function(members)
            {
                this.response.json = JSON.decode(members, this.options.secure); 
                var obj = eval(members);
                //alert(obj);
                obj.Result.each(function (member)
                {
                    //alert(member);
                    //alert(_elm);
                    _elm.setStyle('display','block');
                    var _oldLoginControls = $('login_controls_container');
                    if(_oldLoginControls != null)
                    {
                        _oldLoginControls.destroy();
                        _messageLabel.destroy();
                    }
                    //alert('hi');
                    //alert(member.ID);
                    SetLoggedInProps(member.UName, member.Email, member.Admin, member.ID);
                    _messageLabel.destroy();
                    var _childElms = _elm.getElements('div');
                    _childElms.each(function(child)
                    {
                        child.setStyle('display','block');
                    });
                    if(_elm.get('id') == 'chat_board')
                    {
                        window.location.reload();
                    }
                });
            });
        }
    });
    _submitLogin.inject(_submitLi);
    
    //_messageLi.inject(_ul);
    //_spacerLi.inject(_ul);
    _usernameLi.inject(_ul);
    _passwordLi.inject(_ul);
    _submitLi.inject(_ul);
    
    _ul.inject(_fieldset);
    _legend.inject(_fieldset,'top');
    
    //_messageLabel.inject(_instructionFieldset);
    //_instructionFieldset.inject(_container);
    _ul.inject(_container);
    
    
    if(_position != null)
    {
        _container.inject(_elm,_position);
    }
    else
    {
        _container.inject(_elm);
    }
}

function ValidateLoginControls(_username, _password)
{
    if(_username.value == '')
    {
        _username.setStyle('color','red');
        _username.set('value','Enter Username');
        return false;
    }
    if(_password.value == '')
    {
        _password.setStyle('color','red');
        _password.set('type','text');
        _password.set('value','Enter Password');
        return false;
    }
    return true;
}

function ListAllMembers()
{
    KupOfJoe.MemberService.GetMembers(RenderAllMembers);
}

function GetRecentMembersAdmin()
{
    KupOfJoe.MemberService.GetRecentMembers(RenderRecentMembers);
}
function RenderRecentMembers(text)
{
    this.response.json = JSON.decode(text, this.options.secure); 
    var obj = eval(text);
    if(obj.Result != null)
    {
        var _recentMembers = $('recent_members');
        _recentMembers.empty();
        _recentMembers.set('html','<br />');
        var _membersList = new Element('ul',{'id':'admin_recentmembers_list'});
        _membersList.set('class','admin_recentmembers_list');
        
        obj.Result.each(function(member)
        {
            var _memberDetailsItem = new Element('li');
            _memberDetailsItem.set('class','admin_recentmembers_listitem');
            
            var _username = new Element('label',{'id':'admin_recentmember_username'});
            var _joined = new Element('label',{'id':'admin_recentmember_joined'});
            var _lastLogIn = new Element('label',{'id':'admin_recentmember_lastlogin'});
            
            _username.set('html',ConvertSymbols(member.UName));
            _joined.set('html',ConvertSymbols(member.CreateDate));
            if(member.LastLogin == null || member.LastLogin == '')
            {
                _lastLogIn.set('html','N/A');
            }
            else
            {
                _lastLogIn.set('html',ConvertSymbols(member.LastLogin));
            }
            
            
            _username.inject(_memberDetailsItem);
            _joined.inject(_memberDetailsItem);
            _lastLogIn.inject(_memberDetailsItem);
            
            _memberDetailsItem.inject(_membersList);
        });
        var _header = new Element('label',{'html':'<b>RECENT MEMBERS</b><hr />'});
        _header.inject(_recentMembers);
        _membersList.inject(_recentMembers);
    }
}
function RenderAllMembers(text)
{
    //alert('Inside RenderAllMembers');
    this.response.json = JSON.decode(text, this.options.secure); 
    var obj = eval(text);
    //alert(obj.Result);
    if(obj.Result != null)
    {
         var _membersListContainer = $('members_list_container',{'style':'width:100%;'});
         _membersListContainer.empty();
         var _membersList = new Element('ul');
         _membersList.set('class','admin_members_list',{'id':'admin_members_list'});
         
         //Headers
         var _memberDetailsHdr = new Element('li');
         _memberDetailsHdr.set('class','admin_members_listitem');
            
         var _usernameHdr = new Element('label',{'id':'admin_member_usernamehdr'});
         var _passwordHdr = new Element('label',{'id':'admin_member_passwordhdr'});
         var _emailHdr = new Element('label',{'id':'admin_member_emailhdr'});
         var _joinedHdr = new Element('label',{'id':'admin_member_emailhdr'});
         var _lastLogInHdr = new Element('label',{'id':'admin_member_emailhdr'});
        
         _usernameHdr.set('html','Username');
         _passwordHdr.set('html','Password');
         _emailHdr.set('html','Email');
         _joinedHdr.set('html','Joined');
         _lastLogInHdr.set('html','Last LogIn');
        
         _usernameHdr.inject(_memberDetailsHdr);
         _passwordHdr.inject(_memberDetailsHdr);
         _emailHdr.inject(_memberDetailsHdr);
         _joinedHdr.inject(_memberDetailsHdr);
         _lastLogInHdr.inject(_memberDetailsHdr);
        
         _usernameHdr.set('class','admin_members_list_hdr');
         _passwordHdr.set('class','admin_members_list_hdr');
         _emailHdr.set('class','admin_members_list_hdr');
         _joinedHdr.set('class','admin_members_list_hdr');
         _lastLogInHdr.set('class','admin_members_list_hdr');
        
         _memberDetailsHdr.inject(_membersList);
         
         obj.Result.each(function(member)
         {
            var _memberDetailsItem = new Element('li');
            _memberDetailsItem.set('class','admin_members_listitem');
            
            var _username = new Element('label',{'id':'admin_member_username'});
            var _password = new Element('label',{'id':'admin_member_password'});
            var _email = new Element('label',{'id':'admin_member_email'});
            var _joined = new Element('label',{'id':'admin_member_joined'});
            var _lastLogIn = new Element('label',{'id':'admin_member_lastlogin'});
            
            _username.set('html',ConvertSymbols(member.UName));
            _password.set('html',ConvertSymbols(member.Password));
            _email.set('html',ConvertSymbols(member.Email));
            _joined.set('html',ConvertSymbols(member.CreateDate));
            if(member.LastLogin == null || member.LastLogin == '')
            {
                _lastLogIn.set('html','N/A');
            }
            else
            {
                _lastLogIn.set('html',ConvertSymbols(member.LastLogin));
            }
            
            
            _username.inject(_memberDetailsItem);
            _password.inject(_memberDetailsItem);
            _email.inject(_memberDetailsItem);
            _joined.inject(_memberDetailsItem);
            _lastLogIn.inject(_memberDetailsItem);
            
            _memberDetailsItem.inject(_membersList);
         });
     _membersList.inject(_membersListContainer);
    }
}