﻿function CreateLoginControls(_elm)
{
    var _loggedInMessage = $('loggedInMessage');
    var _loggedinDisplay = $('loggedin_display');
    var _loginControls = $('login_controls_container');
    if(_loginControls != null)
    {
        _loginControls.destroy();
    }
    var _messageLabel = new Element('p',{'html':'In order to insert an item on this site you must log in.  If you are not registered please register by clicking the button REGISTER at the top of the page.  Thank you for your participation.  GO CATS!!'});
    var _usernameLabel = new Element('label',{'html':'Username:'});
    var _usernameInput = new Element('input',{'id':'loginUsername','type':'text'});
    var _passwordLabel = new Element('label',{'html':'Password:'});
    var _passwordInput = new Element('input',{'id':'loginPassword','type':'password'});
    var _submitLogin = new Element('input',{'type':'button','value':'Log In'});
    _submitLogin.addEvent('click',function()
    {
        LogIn(_usernameInput, _passwordInput, _elm);
        
    });
    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');
    _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.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);
    _fieldset.inject(_container);
    
    
    _container.inject(_elm);
}

function CreateRegisterControls(_elm)
{
    _elm.empty();
    
    var _messageLabel = new Element('label',{'id':'errorMessage','class':'error_message'});
    var _usernameLabel = new Element('label',{'html':'Username:','for':'registerUsername','class':'content'});
    var _usernameInput = new Element('input',{'id':'registerUsername','type':'text'});
    _usernameInput.addEvent('blur',function()
    {
        CheckUsernameDup();
    });
    var _passwordLabel = new Element('label',{'html':'Password:','class':'content'});
    var _passwordInput = new Element('input',{'id':'registerPassword','type':'password'});
    var _emailLabel = new Element('label',{'html':'Email:','class':'content'});
    var _emailInput = new Element('input',{'id':'registerEmail','type':'text'});
    _emailInput.addEvent('blur',function()
    {
        CheckEmailDup();
    });
    var _submitRegister = new Element('input',{'type':'button','value':'Register'});
    _messageLabel.setStyle('float','');
    _messageLabel.setStyle('width','100%');
    _submitRegister.addEvent('click',function()
    {
        var emptyFields = false;
        if(_usernameInput.value == '')
        {
            _messageLabel.set('html','Please enter a username.');
            emptyFields = true;
        }
        else if(_passwordInput.value == '')
        {
            _messageLabel.set('html','Please enter a password.');
            emptyFields = true;
        }
        else if(_emailInput.value == '')
        {
            _messageLabel.set('html','Please enter a valid email address.');
            emptyFields = true;
        }
        if(!emptyFields)
        {
            Register();
        }
    });
    var _fieldset = new Element('fieldset');
    var _legend = new Element('legend',{'html':'Account Creation'});
    var _ul = new Element('ul');
    _ul.addEvent('keydown',function()
    {
        if(window.event)
        {
        if(window.event.keyCode == 13)
        {
            _submitRegister.fireEvent('click');
        }
        }
    });
    var _messageLi = new Element('li');
    var _spacerLi = new Element('li');
    var _usernameLi = new Element('li');
    var _passwordLi = new Element('li');
    var _emailLi = new Element('li');
    var _submitLi = new Element('li');
    
    _messageLabel.inject(_messageLi);
    
    _usernameLabel.inject(_usernameLi);
    _usernameInput.inject(_usernameLi);
    
    _passwordLabel.inject(_passwordLi);
    _passwordInput.inject(_passwordLi);
    
    _emailLabel.inject(_emailLi);
    _emailInput.inject(_emailLi);
    
    _submitRegister.inject(_submitLi);
    
    _messageLi.inject(_ul);
    //_spacerLi.inject(_ul);
    _usernameLi.inject(_ul);
    _passwordLi.inject(_ul);
    _emailLi.inject(_ul);
    _submitLi.inject(_ul);
    
    _ul.inject(_fieldset);
    _legend.inject(_fieldset,'top');
    _fieldset.inject(_elm);
}

function LogIn(_loginUsername, _loginPassword, _elm)
{
//    var usernameNull = false;
//    var passwordNull = false;
//    if(_loginUsername == null)
//    {
//        usernameNull = true;
//    }
//    if(_loginPassword == null)
//    {
//        passwordNull = true;
//    }
    if(_loginUsername == null)
    {
        _loginUsername = $('loginUsername');
    }
    if(_loginPassword == null)
    {
     _loginPassword = $('loginPassword');
    }
    //alert(_loginPassword.value);
    PowercatVision.MemberService.LogIn(_loginUsername.value,_loginPassword.value, function(members)
    {
        this.response.json = JSON.decode(members, this.options.secure); 
        var obj = eval(members);
        obj.Result.each(function (member)
        {
            if(_elm != null)
            {
                _elm.setStyle('display','block');
                if(_elm.get('id') == 'add_details')
                {
                    //alert(_elm.get('id'));
                    var _controls = _elm.getElement('fieldset');
                    _controls.setStyle('display','block');
                    ExpandBodyForListings();
                }
            }
            var _oldLoginControls = $('login_controls_container');
            if(_oldLoginControls != null)
            {
                _oldLoginControls.destroy();
            }
            
            Cookie.write('loggedIn','true',{duration: 1});
            //alert('logged in');
            
            var _headerControls = $('header_login_controls');
            var _loggedInMessage = new Element('label');
            var _loggedInMessageSep = new Element('label',{'html':' | '});
            var _accountDetails = new Element('label',{'html':'Account Details','style':'cursor:pointer;'});
            var _accountDetailsSep = new Element('label',{'html':' | '});
             var _logOutLabel = new Element('label',{'html':'Log Out','style':'cursor:pointer;'});
           _logOutLabel.addEvent('click',function()
           {
                LogOut();
                _memberLoggedInPanel.setStyle('display','none');
                _headerControls.setStyle('display','block');
           });
            _accountDetails.addEvent('click',function()
            {
                NavigateTo('accountdetails');

            });
            //_loggedInMessage.set('class','login_label');
            var _memberLoggedInPanel = $('header_logged_in_panel');
            _memberLoggedInPanel.empty();     
            _loggedInMessage.set('html','Welcome ' + member.UName);
            
            _memberLoggedInPanel.setStyle('display','block');
            _loggedInMessage.inject(_memberLoggedInPanel);
            _loggedInMessageSep.inject(_memberLoggedInPanel);
            _accountDetails.inject(_memberLoggedInPanel);
            _accountDetailsSep.inject(_memberLoggedInPanel);
            _logOutLabel.inject(_memberLoggedInPanel);
            _headerControls.setStyle('display','none');
            SetupLoggedInProps(member);
            //alert(_elm.get('id'));
//            if(_elm.get('id') == 'chat_board')
//            {
//                window.location.reload();
//            }
        });
    });
}
function ShowUserLoggedInPanel()
{
    
}
function SetupLoggedInProps(member)
{
    if(member != null)
    {
        Cookie.write('pcvuname',member.UName,{duration:1});
        Cookie.write('pcvemail',member.Email,{duration:1});
        Cookie.write('pcvuid',member.ID,{duration:1});
    }
    else
    {
           
    }
}

function LogOut()
{
    Cookie.write('loggedIn','false');
    Cookie.write('pcvuname','');
    Cookie.write('pcvuid','');
    Cookie.write('pcvemail','');
    var _loggedinDisplay = $('loggedin_display');
    if(_loggedinDisplay!= null)
    {
    _loggedinDisplay.setStyle('display','none');
    }
    //$('review_details_controls').setStyle('display','none');
    //$('add_details_controls').setStyle('display','none');
}

function Register()
{
    var _registerUsername = $('registerUsername');
    var _registerPassword = $('registerPassword');
    var _registerEmail = $('registerEmail');
    var _email = _registerEmail.value;
    var _errorMessage = $('errorMessage');
    var registerThem = false;
    CheckUsernameDup();
    //alert(_errorMessage.get('html'));
    if(_errorMessage.get('html') == '')
    {
        CheckEmailDup();
    }
    //alert(_errorMessage.get('html'));
    if(_errorMessage.get('html') == '')
    {
    _errorMessage.set('html','Creating account. Please wait and do not browse off this page.');
    PowercatVision.MemberService.InsertMember(_registerUsername.value, _registerPassword.value, _email,function(text)
        {
            var _uacct = "UA-6427972-1";
            var pageTracker = _gat._getTracker(_uacct);
            
            var _errorMessage = $('errorMessage');
            var _registerUsername = $('registerUsername');
            var _registerPassword = $('registerPassword');
            var _registerEmail = $('registerEmail');
            this.response.json = JSON.decode(text, this.options.secure); 
            var obj = eval(text);
            var _success = obj.Result;
             if(_success)
            {
                _errorMessage.set('html','Account successfully created.  Thank you for your participation.');
                _registerEmail.set('value','');
                _registerPassword.set('value','');
                _registerUsername.set('value','');
                pageTracker._trackPageview('Registration/Success');
                return;
            }
            else
            {
                pageTracker._trackPageview('Registration/Failure');
            }
        });
     }   
    
}
function CheckEmailDup()
{
    var _registerEmail = $('registerEmail');
    var _email = _registerEmail.value;
    var goodToGo = false;
    PowercatVision.MemberService.DuplicateEmail(_email,function(text)
    {
        
        var _errorMessage = $('errorMessage');
        this.response.json = JSON.decode(text, this.options.secure); 
        var obj = eval(text);
        var _dupEmail = obj.Result;
        if(_dupEmail)
        {
            _errorMessage.set('html','Duplicate email address.  Please enter a different email address.');
        }
        else
        {
             _errorMessage.set('html','');
             goodToGo = true;
        }
    });
    return goodToGo;
}
function CheckUsernameDup()
{
    var _registerUsername = $('registerUsername');
    var _errorMessage = $('errorMessage');
    PowercatVision.MemberService.DuplicateUsername(_registerUsername.value,function(text)
    {
        this.response.json = JSON.decode(text, this.options.secure); 
        var obj = eval(text);
        var _dupUsername = obj.Result;
         if(_dupUsername)
        {
            _errorMessage.set('html','Duplicate username.  Please enter a different username.');
            return false;
        }
        else
        {
            _errorMessage.set('html','');
            return true;
        }
    });
}
function LoadPhotos(text)
{
    this.response.json = JSON.decode(text, this.options.secure);
    var obj = eval(text);
    var photoListContainer = $('photo_list_container');
    photoListContainer.empty();
    
    var instructions = new Element('p');
    instructions.set('html','Select a photo to be your active photo for KSU fans to see your PowercatVision by checking the box next to the photo.');
    instructions.inject(photoListContainer);
    
    obj.Result.each(function(photo)
    {
        var photoContainer = new Element('div',{'style':'display:inline;'});
        var src = "";
        var sPath = window.location.pathname;
        var sPage = sPath.substring(sPath.lastIndexOf('/') + 1);
        //alert(sPage);
        if(sPath.indexOf('admin') < 0)
        {
            src = photo.Src;
        }
        else
        {
            src = '../' + photo.Src;
        }
        var photoImg = new Element('img',{'src':src,'style':'height:100px;width:100px;padding:5px;border:solid 2px #ffffff;'});
        var photoActive = new Element('input',{'type':'checkbox','style':'display:inline;float:none;','id':photo.ID});
        if(photo.Active == 'True')
        {
            photoActive.setProperty('checked','checked');
            photoImg.setStyle('border','solid 2px #37A510');
        }
        photoActive.addEvent('click',function()
        {
            $('photo_list_container').getElements('img').each(function(resetImg)
            {
               resetImg.setStyle('border','solid 2px #ffffff');
            });
            $('photo_list_container').getElements('input[type=checkbox]').each(function(activeCheckBox)
            {
                activeCheckBox.removeProperty('checked');
            });
            this.setProperty('checked','checked');
            photoImg.setStyle('border','solid 2px #37A510');
            PowercatVision.MemberService.UpdateActiveMemberPhoto(Cookie.read('pcvuid'), this.getProperty('id'));
        });
        photoImg.inject(photoContainer);
        photoActive.inject(photoContainer);
        photoContainer.inject(photoListContainer);
    });
}
function MemberLoggedIn(members)
{
    
    
}