﻿TellusClient = {};

(function($) {
    TellusClient.Commerce = function() {

        return {

            __registered: {

        },

        RegisterWebServiceCompletedListener: function(eventBaseName, callback) {
            $('body').bind(eventBaseName + 'completed', callback);
        },

        RegisterWebServiceErrorListener: function(eventBaseName, callback) {
            $('body').bind(eventBaseName + 'error', callback);
        },

        InvokeWebService: function(eventBaseName, webServiceOperation, request) {
            webServiceOperation(request,
                        function(response) {
                            $('body').trigger(
                                {
                                    type: eventBaseName + 'completed',
                                    response: response
                                }
                            )
                        },
                        function(response) {
                            $(webServiceOperation).trigger(
                                {
                                    type: eventBaseName + 'error'
                                }
                            )
                        })
        }
    }
};
TellusClient.Validation = function() {

    return {

        __registered: {

    },

    ValidateForm: function(eventBaseName, callback) {
        var val = Page_ClientValidate();
        if (!val) {
            var i = 0;
            for (; i < Page_Validators.length; i++) {
                $("#" + Page_Validators[i].controltovalidate).removeClass("notValid");
            }
            var i = 0;
            for (; i < Page_Validators.length; i++) {
                if (!Page_Validators[i].isvalid) {
                    $("#" + Page_Validators[i].controltovalidate).addClass("notValid");
                }
            }
        }
        return val;
    }
}

};

})(jQuery);

//define alias for use throughout application
TellusClientCommerce = new TellusClient.Commerce();
TellusClientValidation = new TellusClient.Validation();
