﻿var Global = (function() {
    var queue = [];

    var pub = {
        load: function(funct) {
            var argLength = arguments.length;
            var queueLength = queue.length;
            var i;

            for (i = 0; i < argLength; i++) {
                if (typeof arguments[i] == "function") {
                    queue[i + queueLength] = arguments[i];
                }
            }
        },
        onDocumentLoad: function() {
            var queueLength = queue.length;
            var i;
            for (i = 0; i < queueLength; i++) {
                queue[i]();
            }
        },
        copyOptions: function (options, optionsToCopy) {
            if (optionsToCopy != null
                && optionsToCopy != undefined
                && optionsToCopy != 'undefined') {
                for (var opt in options) {
                    if (optionsToCopy[opt] != null
                && optionsToCopy[opt] != undefined
                && optionsToCopy[opt] != 'undefined') {
                        options[opt] = optionsToCopy[opt];
                    }
                }
            }
        }
    };

    return pub;
})();

$(document).ready(Global.onDocumentLoad);

//SignIn Event Object

var SignIn = (function () {
    var queue = [];
    var customer;

    var pub = {
        attachCallback: function () {
            var argLength = arguments.length;
            var queueLength = queue.length;
            var i;

            for (i = 0; i < argLength; i++) {
                if (typeof arguments[i] == "function") {
                    queue[i + queueLength] = arguments[i];
                }
            }
        },
        onSignIn: function (response) {
            pub.customer = response.Customer;
            var queueLength = queue.length;
            var i;
            for (i = 0; i < queueLength; i++) {
                queue[i](response);
            }
        },
        customer: {}
    };

    return pub;
})();
