﻿Ext.ns("OXX");



OXX.UserActions = function() {



    function _init() {


    }

    function _doAction(action, params, callback, scope) {

        Ext.Ajax.purgeListeners();

        Ext.Ajax.on('requestcomplete', callback, scope);
        Ext.Ajax.on('requestexception', callback, scope);

        Ext.Ajax.request({
            url: 'UserAction.aspx?action=' + action,
            method: 'POST',
            form: 'some-form',
            params: params,
            scope: this,

            success: function(response, opts) {
                var obj = Ext.decode(response.responseText);
                //  if (Ext.isGecko) console.dir('pre:' + obj);
            },

            failure: function(response, opts) {
                if (Ext.isGecko) console.log('pre:' + 'server-side failure with status code ' + response.status);
            }
        });


    }


    return Ext.apply(Object, {

        resultObj: {

    },

    init: function() {
        _init();
    },

    register: function(username, values, callback, scope) {
        var params = 'username=' + username + '&vars=';
        for (var key in values) {
            params += key + ':' + (values[key] + ',');
        }
        _doAction('register', params, callback, scope);
    },

    update: function(hashword, values, callback, scope) {
        var params = 'hashword=' + hashword + '&vars=';
        for (var key in values) {
            params += key + ':' + (values[key] + ',');
        }
        _doAction('update', params, callback, scope);
    },

    login: function(username, password, callback, scope) {
        var params = 'username=' + username + '&password=' + password;
        _doAction('login', params, callback, scope);
    },

    buy: function(hashword, paymethod, items, callback, scope) {
        var params = 'paymethod:' + paymethod + ','
        for (var i in items) {
            params += items[i].id + ':' + items[i].count + ',';
        }

        var params = 'hashword=' + hashword + '&vars=' + params;
        _doAction('buy', params, callback, scope);
    },

    validate: function(callback, scope) {
        var params = 'hashword=' + OXX.Application.security.getHashword();
        _doAction('validate', params, callback, scope);
    },

    personalia: function(hashword, callback, scope) {
        var params = 'hashword=' + hashword;  //+'&vars=' + params;
        _doAction('personalia', params, callback, scope);
    },

    sendpassword: function(email, callback, scope) {
        var params = 'email=' + email;
        _doAction('sendpwd', params, callback, scope);
    }

});



} ();







