﻿var MediaCart = {

    AddItemToCart: function (itemId, languageId, callback, errorCallback) {
        var userId = this.GetUserId();

        $.ajax({
            url: '/API/Json/MediaCartService.svc/AddItemToCart',
            data: '{ "userId": "' + userId.replace(/['"]/g, '') + '", "itemId": "' + itemId + '", "languageId": "' + languageId + '" }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    AddFileToCart: function (itemId, languageId, fileId, callback, errorCallback) {
        var userId = this.GetUserId();

        $.ajax({
            url: '/API/Json/MediaCartService.svc/AddFileToCart',
            data: '{ "userId": "' + userId.replace(/['"]/g, '') + '", "fileId": "' + fileId.replace(/['"]/g, '') + '", "itemId": "' + itemId + '", "languageId": "' + languageId + '"  }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    SortCart: function (itemIds, callback, errorCallback) {
        var userId = this.GetUserId();

        $.ajax({
            url: '/API/Json/MediaCartService.svc/SortCartItems',
            data: '{ "userId": "' + userId.replace(/['"]/g, '') + '", "itemIds": "' + itemIds + '" }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    RemoveFileInCart: function (fileId, languageId, callback, errorCallback) {
        var userId = this.GetUserId();
        $.ajax({
            url: '/API/Json/MediaCartService.svc/RemoveFileInCart',
            data: '{ "userId": "' + userId.replace(/['"]/g, '') + '", "fileId": "' + fileId + '", "languageId": "' + languageId + '" }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    CopyCartFromUser: function (fromUserId, callback, errorCallback) {
        var userId = this.GetUserId();
        $.ajax({
            url: '/API/Json/MediaCartService.svc/CopyCartFromUser',
            data: '{ "toUserId": "' + userId.replace(/['"]/g, '') + '", "fromUserId": "' + fromUserId.replace(/['"]/g, '') + '" }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    RemoveItemInCart: function (itemId, languageId, callback, errorCallback) {
        var userId = this.GetUserId();
        $.ajax({
            url: '/API/Json/MediaCartService.svc/RemoveItemInCart',
            data: '{ "userId": "' + userId.replace(/['"]/g, '') + '", "itemId": "' + itemId + '", "languageId": "' + languageId + '" }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    GetCartItems: function (siteId, callback, errorCallback) {
        var userId = this.GetUserId();

        $.ajax({
            url: '/API/Json/MediaCartService.svc/GetCartItems',
            data: '{ "userId": "' + userId.replace(/['"]/g, '') + '", "siteId":"' + siteId + '" }',
            type: 'post',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            success: function (data) {
                if (callback != null)
                    callback(data.d);
            },
            error: function (result, status, error) {
                if (errorCallback != null)
                    errorCallback(result, status, error)
            }
        });
    },

    MediaCartCookieName: 'MediaCartUser',

    GetUserId: function () {
        return this.ReadCookieValue(this.MediaCartCookieName);
    },

    ReadCookieValue: function (cookieName) {
        var theCookie = "" + document.cookie;
        var ind = theCookie.indexOf(cookieName);
        if (ind == -1 || cookieName == "") return "";
        var ind1 = theCookie.indexOf(';', ind);
        if (ind1 == -1) ind1 = theCookie.length;
        return unescape(theCookie.substring(ind + cookieName.length + 1, ind1));
    }
}
