﻿(function(masrawy) {
    masrawy.ajax = {
        doCallbackHtml: function(id, param, callback) {
            $.ajaxSetup({
                contentType: "application/x-www-form-urlencoded"
            });
            var postData = "__CALLBACKID=" + escape(id) +
			"&__CALLBACKPARAM=" + escape(param) + "&__VIEWSTATE=&";
            $.post(document.URL, postData, function(data, status) {
                if (data.charAt(0) == "s") {
                    status = "success";
                    data = data.substring(1);
                } else if (data.charAt(0) == "e") {
                    status = "error";
                    data = data.substring(1);
                } else {
                    var separatorIndex = data.indexOf("|");
                    if (separatorIndex != -1) {
                        var valLength = parseInt(data.substring(0, separatorIndex));
                        if (!isNaN(valLength)) {
                            data = data.substring(separatorIndex + valLength + 1);
                        }
                    }
                }
                if (callback != null)
                    callback(data, status);
            }, "html");
        },
        doCallbackJson: function(url, method, params, callback) {
            $.ajaxSetup({
                contentType: "application/json"
            });
            $.post(url + method, $.toJSON(params), function(data, status) {
                var res = eval(data);
                callback(res[method + "Result"], status);
            }, "json");
        }
		,
        doCallback: function(url, method, params) {
            $.ajaxSetup({
                contentType: "application/json"
            });
            $.post(url + method, $.toJSON(params), null, "json");
        }
    }
    masrawy.services = {
        hostUrl: "/sms/Services/",
        UserContacts: {
            url: "GetUserData.svc/",
            GetUserContact: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "GetUserContact", params, callback);
            },
            GetUserGroups: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "GetUserGroups", params, callback);
            },
            GetUserGroupsAndContactNumbers: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "GetGroupsAndContactNumbersForAutoCompleteByUserID", params, callback);
            },
            AddNumber: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "AddNumber", params, callback);
            },
            SendInvetation: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "SendInvetation", params, callback);
            },
            ResendMessages: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "Resend", params, callback);
            },
            SubmitSchedule: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "SubmitSchedule", params, callback);
            },
            ScheduleDayGetAll: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "ScheduleDayGetAllByUserID", params, callback);
            },
            ScheduleGetByID: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "ScheduleGetByID", params, callback);
            },
            GetUserSearchCount: function(params, callback) {
                masrawy.ajax.doCallbackJson(masrawy.services.hostUrl + this.url, "GetUserSearchCount", params, callback);
            }
        }
    }
})(masrawy);
