﻿
/**
 * Vartotojų modulis
 *
 * @copyright Copyright (c) 2011, ecto.lt
 * @author    Benas Valančius <benas@ecto.lt>
 * @package   Framework
 *
 * $Id: users.js 2965 2011-09-15 19:30:48Z noen $
 */

var pObj;

var users = {
    /**
     * Start registration
     */
    activateRegistration: function()
    {
        $(document).ready(function()
        {
            pObj = new iPopup(1, 'pObj');

            //helpActivate('help1', 'nick',   _('help_new_user_nick'));
            //helpActivate('help2', 'gender', _('help_new_user_gender'));
            helpActivate('help3', 'email',  _('help_new_user_email'));
        });
    },

    /**
     * Login
     */
    formLogin: function()
    {
        var login    = $("input[name='login']").val();
        var password = $("input[name='password']").val();
        var remember = $("input[name='remember']").val();

        if(login == '' || password == '')
        {
            $('#loginMessage').html(_('fill_all'));
        }
        else
        {
            new Ajax.Post(
            {
                url     : '/users/login',
                data    : {login:login,password:password,remember:remember},
                json    : true,
                success : function(data)
                {
                    if(data || data === '')
                    {
                        window.location.reload();
                    }
                    else
                    {
                        $('#loginMessage').html(_('error_username_or_password'));
                        $("input[name='password']").val('');
                    }
                }
            });
        }
    },

    /**
     * Rules
     */
    registerTerms: function()
    {
        var html = '<div class="aForm">'+ _('info_registration_rules') +'<'+'/div>';

        pObj.addTitle( _('rules') );
        pObj.addContent( html );
        pObj.addPopup(550, 100);
    }
};


users.signUpForm = function(errorOutput)
{
    var fields = [
        {
            selector     : '#signUpForm input[name="email"]',
            message      : _('Please enter a valid e-mail address.'),
            messageExtra : _('Your e-mail already taken, please try another.'),
            rule         : 'email',
            extra        : 'users.checkEmail'
        }
    ];

    $('#signUpForm .spiner').show();

    var status = formHandler.checkForm(fields, errorOutput);

    $('#signUpForm .spiner').hide();

    return status;
};

users.checkEmail = function(selector)
{
    var email  = $(selector).val();
    var status = false;

    new Ajax.Post(
    {
        url     : '/users/checkEmail/',
        data    : {email:email},
        json    : true,
        async   : false,
        success : function(data)
        {
            if(!data)
                status = true;
        }
    });
    return status;
};

users.checkLostPassword = function(errorOutput)
{
    var fields = [
        {
            selector     : '#lostPasswordForm input[name="email"]',
            message      : _('Please enter your email.'),
            messageExtra : _('Your user could not be found.'),
            rule         : 'email',
            extra        : 'users.checkUsername'
        }
    ];

    $('#lostPasswordForm .spiner').show();

    var status = formHandler.checkForm(fields, errorOutput);

    $('#lostPasswordForm .spiner').hide();

    return status;
};

users.checkUsername = function(selector)
{
    var email = $(selector).val();
    var status   = false;

    new Ajax.Post(
    {
        url     : '/users/checkEmail/',
        data    : {email:email},
        json    : true,
        async   : false,
        success : function(data)
        {
            status = data;
        }
    });
    return status;
};

users.checkLostPasswordCode = function(errorOutput)
{
    var fields = [
        {
            selector     : '#lostPasswordForm input[name="code"]',
            message      : _('Please enter code from your email.'),
            extra        : 'users.checkLostCode'
        },
        {
            selector     : '#lostPasswordForm input[name="password1"]',
            message      : _('Please enter your new password.'),
            messageExtra : _('New passwords do not match.'),
            extra        : 'users.checkPasswords'
        },
        {
            selector     : '#lostPasswordForm input[name="password2"]',
            message      : _('Please confirm your new password.'),
            messageExtra : false,
            extra        : 'users.checkPasswords'
        }
    ];

    $('#lostPasswordForm .spiner').show();

    var status = formHandler.checkForm(fields, errorOutput);

    $('#lostPasswordForm .spiner').hide();

    return status;
};

users.checkPasswords = function(selector)
{
    var pass1 = $('#lostPasswordForm input[name="password1"]').val();
    var pass2 = $('#lostPasswordForm input[name="password2"]').val();

    if(pass1 === pass2)
        return true;

    return false;
};

users.checkLostCode = function(selector)
{
    var code  = $(selector).val();
    var email = $('#lostPasswordForm input[name="email"]').val();
    var status   = true;

    new Ajax.Post(
    {
        url     : '/users/checkLostCode/',
        data    : {code:code,email:email},
        json    : true,
        async   : false,
        success : function(data)
        {
            status = data;
        }
    });
    return status;
};
