﻿//Adding Contains Method to Array
$.fn.center = function () {
    this.css("position", "fixed");
    this.css("top", ($(window).height() - this.height()) / 2 + $(window).scrollTop() + "px");
    this.css("left", ($(window).width() - this.width()) / 2 + $(window).scrollLeft() + "px");
    return this;
}

Array.prototype.IndexOf = function (searchStr) {
    for (i = 0; i < this.length; i++) {
        if (this[i] === searchStr) {
            return i;
        }
    }
    return -1;
}

Array.prototype.Contains = function (searchStr) {
    for (i = 0; i < this.length; i++) {
        if (this[i] == searchStr) {
            return true;
        }
    }
    return false;
}

Array.prototype.Clear = function () {
    if (typeof this == Array) {
        while (this.length > 0) {
            this.pop();
        }
    }
}

//String Format Prototypes
//String.prototype.format = function() { var pattern = /\{\d+\}/g; var args = arguments; return this.replace(pattern, function(capture) { return args[capture.match(/\d+/)]; }); }


//Widgets Drag Drop Functions
var WidgetUI = {
    WidgetUIServicePath: '',
    Actions: {
        minimizeWidget: function (divId) {
            var div = $get(divId);
            div.style.display = "none";
        },

        onDrop: function (sender, e) {
            var container = e.get_container();
            var item = e.get_droppedItem();
            var position = e.get_position();
            var instanceId = item.getAttribute("InstanceId");
            var columnNo = parseInt(container.getAttribute("columnNo"));
            var row = position;

            $.ajax({
                type: "GET",
                contentType: "application/json",
                url: WidgetUI.WidgetUIServicePath + "/moveWidgetInstance/" + instanceId + "/" + columnNo + "/" + row,
                data: null,
                cache: false,
                processData: false,
                success: function (result) {
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                }
            });
        },

        hide: function (id) {
            document.getElementById(id).style.display = "none";
        },

        addWidget: function (pageId, widgetName, parameters, OnSucess) {
            $.ajax({
                type: "GET",
                contentType: "application/json",
                url: WidgetUI.WidgetUIServicePath + "/addWidget/" + pageId + "/" + widgetName,
                data: null,
                cache: false,
                processData: false,
                success: function (result) {
                }
            });
        }
    }
};

var WidgetContainer =
{
    Actions:
     {
         ContainsKey: function (key) {
             for (var x in this) {
                 if (typeof this[x] != 'undefined' && typeof this[x] != 'function' && x == key)
                     return true
             }
             return false;
         },

         AddListener: function (eventName, observer) {
             if (this.ContainsKey(eventName) == false) {
                 this[eventName] = new Array();
             }
             var list = this[eventName];
             if (list.IndexOf(observer) < 0) {
                 list.push(observer);
             }
         },

         RemoveListener: function (eventName, observer) {
             if (this.ContainsKey(eventName) == true) {
                 var list = this[eventName];
                 var index = list.IndexOf(observer);
                 if (index >= 0) {
                     var temp = new Array();
                     for (var i in list) {
                         if (i != index) {
                             temp.push(list[i]);
                         }
                     }
                     list = temp;
                 }
             }
         },
         RaiseEvent: function (e, source, args) {
             if (this.ContainsKey(e) == true) {
                 var event = jQuery.Event(e);
                 event.source = source;
                 event.args = args;

                 var list = this[e];

                 $.each(list, function (i) {
                     $('#' + this).trigger(event);
                 });

             }
         }
     }
}


function ShowFileUploadDialog(uploadControl, uploadUrl) {
    var extender = $find(uploadControl);
    extender.dialog.setUrl(uploadUrl);
    extender.showDialog();
    return false;
}

function ShowFileManager(title, url, paramaters) {
    if (url == null || url == '')
        return false;

    var path;
    if (paramaters == null || paramaters == '')
        path = String.format("{0}?TB_iframe=true&width=721&height=375&modal=true", url);
    else
        path = String.format("{0}?{1}&TB_iframe=true&width=721&height=375&modal=true", url, paramaters);

    tb_show(title, path, null);
    return false;
}

function ShowGlobalizationContentManager(title, url, paramaters) {
    if (url == null || url == '')
        return false;

    var path;
    if (paramaters == null || paramaters == '')
        path = String.format("{0}?TB_iframe=true&width=721&height=76&modal=true", url);
    else
        path = String.format("{0}?{1}&TB_iframe=true&width=721&height=76&modal=true", url, paramaters);

    tb_show(title, path, null);
    return false;
}


function ShowModalPopupWindow(title, url, paramaters, width, height) {
    if (url == null || url == '')
        return false;
    if (paramaters != null && paramaters == '') {
        url = String.format("{0}?{1}", url, paramaters);
    }

    if (window.showModalDialog) {
        var dialogArguments = new Object();
        window.showModalDialog(url, dialogArguments, 'dialogHeight=' + height + 'px,dialogTop=10,dialogWidth=' + width + 'px,center=1,resizable=1,scroll=1');
    }
    else {
        alert("Can't show pop up window");
    }
    return false;
}




function SessionService(servicePath, siteId) {
    var sessionItems = new Array();
    this.addItem = addItem;
    this.getItem = getItem;
    this.deleteItem = deleteItem;
    this.addObject = addObject;

    function addItem(key, value) {
        var newItem = new Object();
        newItem.key = key;
        newItem.value = value;
        $.ajax({
            type: "POST",
            contentType: "application/json",
            url: servicePath + "/addItem/" + "Session" + "/" + key + "/" + value + "/0/" + siteId,
            data: null,
            cache: false,
            processData: false,
            success:
               function (result) {
                   //Check if item already exists. If so, update its value
                   var isPresent = false;
                   for (var i = 0; i < sessionItems.length; i++) {
                       if (sessionItems[i] != "" && sessionItems[i] != null && sessionItems[i].key.toString().toLowerCase() == key.toString().toLowerCase()) {
                           sessionItems[i].value = value;
                           isPresent = true;
                           break;
                       }
                   }
                   if (!isPresent)
                       sessionItems.push(newItem);

               },
            error:
                   function (XMLHttpRequest, textStatus, errorThrown) {
                       //alert("Error");
                   }
        });
    }

    function addObject(key, value) {
        var newItem = new Object();
        newItem.key = key;
        newItem.value = value;
        $.ajax({
            type: "POST",
            contentType: "application/json",
            url: servicePath + "/addItem/" + "Session" + "/" + key + "/0/" + siteId,
            data: value,
            cache: false,
            processData: false,
            success:
               function (result) {
                   //Check if item already exists. If so, update its value
                   var isPresent = false;
                   for (var i = 0; i < sessionItems.length; i++) {
                       if (sessionItems[i] != "" && sessionItems[i] != null && sessionItems[i].key.toString().toLowerCase() == key.toString().toLowerCase()) {
                           sessionItems[i].value = value;
                           isPresent = true;
                           break;
                       }
                   }
                   if (!isPresent)
                       sessionItems.push(newItem);

               },
            error:
                   function (XMLHttpRequest, textStatus, errorThrown) {
                       //alert("Error");
                   }
        });
    }

    function getItem(key) {
        if (sessionItems != null && sessionItems != "") {
            for (var i = 0; i < sessionItems.length; i++) {
                if (sessionItems[i] != "" && sessionItems[i] != null && sessionItems[i].key.toString().toLowerCase() == key.toString().toLowerCase()) {
                    return sessionItems[i].value;
                }
            }
        }
    }
    function deleteItem(key) {

        for (var i = 0; i < sessionItems.length; i++) {
            if (sessionItems[i] != "" && sessionItems[i] != null && sessionItems[i].key.toString().toLowerCase() == key.toString().toLowerCase() && sessionItems[i].SessionId == sessionId) {

                $.ajax({
                    type: "POST",
                    contentType: "application/json",
                    url: servicePath + "/deleteItem/" + "Session" + "/" + key + "/0/" + siteId,
                    data: null,
                    cache: false,
                    processData: false,
                    success:
                        function (result) {
                            sessionItems[i].key = 0;
                            sessionItems[i].value = 0;
                        },
                    error:
                        function (XMLHttpRequest, textStatus, errorThrown) {
                            //alert("Error");
                        }
                });
            }
        }
    }

    function init() {

        $.ajax({
            type: "GET",
            contentType: "application/json",
            url: servicePath + "/getItems/" + "Session" + "/0/" + siteId,
            data: null,
            cache: false,
            processData: false,
            success:
                        function (result) {

                            //                            if (result == null || result == "")
                            //                                sessionItems = "";
                            //                            else
                            sessionItems = result;
                        },
            error:
                        function (XMLHttpRequest, textStatus, errorThrown) {

                            //alert("Error");
                        }
        });
    }

    init();
}

var allWidgets = [];
var allWidgetNames = [];

function SearchWidget(text) {
    if (allWidgets.length == 0) {
        $('.searchResultsList td').each(function () {
            if ($(this).children().length > 0) {
                allWidgets.push($(this).html().trim());
                allWidgetNames.push($($(this).children().children()[1]).attr('title').toLowerCase());
            }
        });
    }
    text = text.toLowerCase();
    var i = 0, widgetCount = 0;
    var markUp = "<tr>";
    for (i = 0; i < allWidgetNames.length; i++) {
        if (allWidgetNames[i].indexOf(text) >= 0) {
            if (widgetCount == 8) {
                markUp = markUp + '</tr><tr>';
                widgetCount = 0;
            }
            markUp = markUp + '<td>' + allWidgets[i] + '</td>';
            widgetCount++;
        }
    }
    markUp = markUp + '</tr>';
    $('.searchResultsList tbody').html(markUp);
};


var TemplarContext =
{
    SiteId: null,
    CultureInfo:
    {
        Culture: null,
        ResourceManager: {
            GetResourceString: function (keys) {
                var objResult = null;
                var callbackFn = null;
                if (arguments.length > 1)
                    callbackFn = arguments[1];
                try {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json",
                        url: WidgetUI.WidgetUIServicePath + "/GetResourceString/" + TemplarContext.SiteId + "/" + TemplarContext.CultureInfo.Culture,
                        data: Sys.Serialization.JavaScriptSerializer.serialize(keys),
                        cache: false,
                        processData: false,
                        async: (callbackFn == null ? false : true),
                        success: function (result) {
                            objResult = new Object();
                            for (i = 0; i < keys.length; i = i + 1) {
                                objResult[keys[i]] = result[i] || '';
                            }
                            if (typeof (callbackFn) == 'function')
                                callbackFn(objResult);
                        },
                        error: function (XMLHttpRequest, textStatus, errorThrown) {
                            if (typeof (callbackFn) == 'function')
                                callbackFn(objResult);
                        }
                    });
                    if (typeof (callbackFn) != 'function')
                        return objResult;
                }
                catch (e) {
                    return objResult;
                }
            }
        }
    },
    Init: function (s, c) {
        this.SiteId = s;
        this.CultureInfo.Culture = c;
    }
};

var GlobalizationDataDisplay = {
    CurrentMode: 'FULL', //can be FULL or NATIVE
    CurrentPage: 1,
    CurrentCulturePage: 1,
    CurrentWidgetInstanceId: 0,
    CurrentSiteId: 0,
    CurrentCultureId: 0,
    CurrentCultureInstanceId: 0,
    CurrentCultureName: '',
    CurrentCultureCount: 0,
    LastCulturePage: 0,
    LastPage: 0,
    ResourceCount: 0,
    GlobalizationdataServicePath: '',
    PageSize: 10,
    CulturePageSize: 10,
    Actions: {
        SubmitChanges: function () {
            var key = $(this).parent().parent().parent().attr('id');
            var value = $(this).text();
            var comment = $(this).parent().parent().siblings().slice(2, 3).children().children().text();
            var translationSetting = 'Do Nothing';
            var definedAt = $(this).parent().parent().siblings().slice(3, 4).children().children().text();
            var _resource = {};
            _resource.K = key;
            _resource.V = value;
            _resource.C = comment;
            _resource.TS = translationSetting;
            var resource = Sys.Serialization.JavaScriptSerializer.serialize(_resource);
            var targetUrl = '';
            if (GlobalizationDataDisplay.CurrentMode == 'FULL') {
                if (definedAt.toLowerCase() == 'widgetinstance') {
                    targetUrl = GlobalizationDataDisplay.GlobalizationdataServicePath + "/AddResource/widgetInstance/" + GlobalizationDataDisplay.CurrentWidgetInstanceId + "/" + GlobalizationDataDisplay.CurrentCultureId + "/false";
                }
                else {
                    targetUrl = GlobalizationDataDisplay.GlobalizationdataServicePath + "/AddResource/widgetInstance/" + GlobalizationDataDisplay.CurrentWidgetInstanceId + "/" + GlobalizationDataDisplay.CurrentCultureId + "/true";
                }
            }
            else {
                targetUrl = GlobalizationDataDisplay.GlobalizationdataServicePath + "/AddResource/" + GlobalizationDataDisplay.CurrentCultureId + "/false";
            }
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: targetUrl,
                data: resource,
                cache: false,
                dataType: 'json',
                processData: false,
                success:
                                    function (success) {
                                        GlobalizationDataDisplay.Actions.LoadResources();
                                    },
                error:
                                    function (XMLHttpRequest, textStatus, errorThrown) {
                                        alert("ErrorAddSettings");
                                    }
            });
        },
        EnableEditing: function () {
            $('.editableText').editable({ submit: 'Save', cancel: 'Cancel', onSubmit: GlobalizationDataDisplay.Actions.SubmitChanges });
        },
        ShowResourcePage: function (pageNumber) {
            GlobalizationDataDisplay.CurrentPage = pageNumber;
            GlobalizationDataDisplay.Actions.LoadResources();
        },
        ShowLastResourcePage: function () {
            GlobalizationDataDisplay.CurrentPage = GlobalizationDataDisplay.LastPage;
            GlobalizationDataDisplay.Actions.LoadResources();
        },
        ShowNextResourcePage: function () {
            GlobalizationDataDisplay.CurrentPage = GlobalizationDataDisplay.CurrentPage + 1;
            GlobalizationDataDisplay.Actions.LoadResources();
        },
        ShowPrevResourcePage: function () {
            GlobalizationDataDisplay.CurrentPage = GlobalizationDataDisplay.CurrentPage - 1;
            GlobalizationDataDisplay.Actions.LoadResources();
        },
        ShowFirstResourcePage: function () {
            GlobalizationDataDisplay.CurrentPage = 1;
            GlobalizationDataDisplay.Actions.LoadResources();
        },
        ShowCulturePage: function (pageNumber) {
            GlobalizationDataDisplay.CurrentCulturePage = pageNumber;
            GlobalizationDataDisplay.Actions.GetCultures();
        },
        ShowLastCulturePage: function () {
            GlobalizationDataDisplay.CurrentCulturePage = GlobalizationDataDisplay.LastPage;
            GlobalizationDataDisplay.Actions.GetCultures();
        },
        ShowNextCulturePage: function () {
            GlobalizationDataDisplay.CurrentCulturePage = GlobalizationDataDisplay.CurrentPage + 1;
            GlobalizationDataDisplay.Actions.GetCultures();
        },
        ShowPrevCulturePage: function () {
            GlobalizationDataDisplay.CurrentCulturePage = GlobalizationDataDisplay.CurrentPage - 1;
            GlobalizationDataDisplay.Actions.GetCultures();
        },
        ShowFirstCulturePage: function () {
            GlobalizationDataDisplay.CurrentCulturePage = 1;
            GlobalizationDataDisplay.Actions.GetCultures();
        },
        Reload: function (mode) {
            GlobalizationDataDisplay.CurrentPage = 1;
            if (mode == 'NATIVE') {
                GlobalizationDataDisplay.CurrentMode = 'NATIVE';
                $.ajax({
                    type: "GET",
                    contentType: "application/json",
                    url: "/Services/FrameworkServices/GlobalizationDataService.svc/GetCultures/widgetinstance/" + GlobalizationDataDisplay.CurrentWidgetInstanceId + "/0/1",
                    data: null,
                    dataType: 'json',
                    cache: false,
                    processData: false,
                    success:
                        function (data) {
                            var i = 0;
                            GlobalizationDataDisplay.CurrentCultureInstanceId = -1;
                            for (; i < data.C.length; i++) {
                                if (GlobalizationDataDisplay.CurrentCultureName == data.C[i].N) {
                                    GlobalizationDataDisplay.CurrentCultureInstanceId = data.C[i].CId;
                                }
                            }
                            GlobalizationDataDisplay.Actions.LoadNativeResources();
                        },
                    error:
                        function (XMLHttpRequest, textStatus, errorThrown) {
                            alert("ErrorGetCultures");
                        }
                });
            }
            else {
                GlobalizationDataDisplay.CurrentMode = 'FULL';
                GlobalizationDataDisplay.Actions.LoadResources();
            }

        },
        ShowGlobalizationDataContainer: function (widgetTitle, widgetInstanceId, siteId) {
            $('#widgetTitle').text(widgetTitle);
            GlobalizationDataDisplay.CurrentWidgetInstanceId = widgetInstanceId;
            GlobalizationDataDisplay.CurrentSiteId = siteId;
            GlobalizationDataDisplay.Actions.GetCultures();
            $.blockUI({
                message: $('#GlobalizationDataContainer'),
                css: { width: 'auto' },
                centerX: true,
                centerY: true
            });
        },
        GetCultures: function () {
            $.ajax({
                type: "GET",
                contentType: "application/json",
                url: GlobalizationDataDisplay.GlobalizationdataServicePath + "/GetAvailableCultures/" + GlobalizationDataDisplay.CurrentSiteId + "/" + GlobalizationDataDisplay.CulturePageSize + "/" + GlobalizationDataDisplay.CurrentCulturePage,
                data: null,
                dataType: 'json',
                cache: false,
                processData: false,
                success:
                        function (data) {
                            var cultures = {};
                            cultures.C = [];
                            for (var i = 0; i < data.C.length; i++) {
                                data.C[i].Index = GlobalizationDataDisplay.CulturePageSize * (GlobalizationDataDisplay.CurrentCulturePage - 1) + i + 1;
                                cultures.C.push(data.C[i]);
                            }
                            GlobalizationDataDisplay.CurrentCultureCount = data.TCC;
                            GlobalizationDataDisplay.LastCulturePage = parseInt(((GlobalizationDataDisplay.CurrentCultureCount - 1) / GlobalizationDataDisplay.CulturePageSize) + 1);
                            if (GlobalizationDataDisplay.CurrentCulturePage <= 1) {
                                $('#divPrevCulturePage').children().slice(0, 1).css('display', 'none');
                                $('#divPrevCulturePage').children().slice(1, 2).css('display', 'block');
                                $('#divFirstCulturePage').children().slice(0, 1).css('display', 'none');
                                $('#divFirstCulturePage').children().slice(1, 2).css('display', 'block');
                            }
                            else {
                                $('#divPrevCulturePage').children().slice(0, 1).css('display', 'block');
                                $('#divPrevCulturePage').children().slice(1, 2).css('display', 'none');
                                $('#divFirstCulturePage').children().slice(0, 1).css('display', 'block');
                                $('#divFirstCulturePage').children().slice(1, 2).css('display', 'none');
                            }
                            if (GlobalizationDataDisplay.CurrentCulturePage >= GlobalizationDataDisplay.LastCulturePage) {
                                $('#divNextCulturePage').children().slice(0, 1).css('display', 'none');
                                $('#divNextCulturePage').children().slice(1, 2).css('display', 'block');
                                $('#divLastCulturePage').children().slice(0, 1).css('display', 'none');
                                $('#divLastCulturePage').children().slice(1, 2).css('display', 'block');
                            }
                            else {
                                $('#divNextCulturePage').children().slice(0, 1).css('display', 'block');
                                $('#divNextCulturePage').children().slice(1, 2).css('display', 'none');
                                $('#divLastCulturePage').children().slice(0, 1).css('display', 'block');
                                $('#divLastCulturePage').children().slice(1, 2).css('display', 'none');
                            }
                            var pages = {};
                            pages.P = [];
                            var page = Math.max(1, GlobalizationDataDisplay.CurrentCulturePage - 2);
                            for (; page <= Math.min(GlobalizationDataDisplay.LastCulturePage, GlobalizationDataDisplay.CurrentCulturePage + 2); page++) {
                                var curPage = {};
                                curPage.PN = page;
                                curPage.CP = false;
                                if (page == GlobalizationDataDisplay.CurrentCulturePage) {
                                    curPage.CP = true;
                                }
                                pages.P.push(curPage);
                            }
                            $('#divCulturePager').setTemplateElement("templateCulturePager");
                            $("#divCulturePager").processTemplate(pages);
                            $("#divCultureListing").setTemplateElement("templateCultureBox");
                            $("#divCultureListing").processTemplate(cultures);
                            $("#divResources").hide();
                            $("#divModeSelector").hide();
                            $('#divCultures').show();
                        },
                error:
                        function (XMLHttpRequest, textStatus, errorThrown) {
                            alert("ErrorGetCultures");
                        }
            });
        },
        LoadResources: function () {
            var resources = {};
            var _filterText = '';
            var filterText = Sys.Serialization.JavaScriptSerializer.serialize(_filterText);
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: GlobalizationDataDisplay.GlobalizationdataServicePath + "/GetResolvedResources/WidgetInstance/" + GlobalizationDataDisplay.CurrentWidgetInstanceId + "/" + GlobalizationDataDisplay.CurrentCultureId + "/" + GlobalizationDataDisplay.PageSize + "/" + GlobalizationDataDisplay.CurrentPage,
                data: filterText,
                dataType: 'json',
                cache: false,
                processData: false,
                success:
                        function (result) {
                            var resources = {};
                            resources.R = [];
                            for (var i = 0; i < result.R.length; i++) {
                                result.R[i].Index = GlobalizationDataDisplay.PageSize * (GlobalizationDataDisplay.CurrentPage - 1) + i + 1;
                                resources.R.push(result.R[i]);
                            }
                            $("#divCultures").hide();
                            $("#divContents").hide();
                            $("#divCultureHeader").hide();
                            $("#divContentHeader").hide();
                            $("#divResourceListing").setTemplateElement("templateResourceBox");
                            $("#divResourceListing").processTemplate(resources);
                            $("#divResourceHeader").show();
                            $("#divResources").show('slow');
                            GlobalizationDataDisplay.ResourceCount = result.TRC;
                            GlobalizationDataDisplay.LastPage = parseInt(((GlobalizationDataDisplay.ResourceCount - 1) / GlobalizationDataDisplay.PageSize) + 1);
                            if (GlobalizationDataDisplay.CurrentPage <= 1) {
                                $('#divPrevResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divPrevResourcePage').children().slice(1, 2).css('display', 'block');
                                $('#divFirstResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divFirstResourcePage').children().slice(1, 2).css('display', 'block');
                            }
                            else {
                                $('#divPrevResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divPrevResourcePage').children().slice(1, 2).css('display', 'none');
                                $('#divFirstResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divFirstResourcePage').children().slice(1, 2).css('display', 'none');
                            }
                            if (GlobalizationDataDisplay.CurrentPage >= GlobalizationDataDisplay.LastPage) {
                                $('#divNextResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divNextResourcePage').children().slice(1, 2).css('display', 'block');
                                $('#divLastResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divLastResourcePage').children().slice(1, 2).css('display', 'block');
                            }
                            else {
                                $('#divNextResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divNextResourcePage').children().slice(1, 2).css('display', 'none');
                                $('#divLastResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divLastResourcePage').children().slice(1, 2).css('display', 'none');
                            }
                            var pages = {};
                            pages.P = [];
                            var page = Math.max(1, GlobalizationDataDisplay.CurrentPage - 2);
                            for (; page <= Math.min(GlobalizationDataDisplay.LastPage, GlobalizationDataDisplay.CurrentPage + 2); page++) {
                                var curPage = {};
                                curPage.PN = page;
                                curPage.CP = false;
                                if (page == GlobalizationDataDisplay.CurrentPage) {
                                    curPage.CP = true;
                                }
                                pages.P.push(curPage);
                            }
                            $('#divResourcePager').setTemplateElement("templateResourcePager");
                            $("#divResourcePager").processTemplate(pages);
                            $('#GlobalizationDataContainer').center();
                            GlobalizationDataDisplay.Actions.EnableEditing();
                        },
                error:
                        function (XMLHttpRequest, textStatus, errorThrown) {
                            alert("ErrorGetResources");
                        }
            });
            $("#divModeSelector").show();
        },
        LoadNativeResources: function () {
            var resources = {};
            var _filterText = '';
            var filterText = Sys.Serialization.JavaScriptSerializer.serialize(_filterText);
            $.ajax({
                type: "POST",
                contentType: "application/json",
                url: GlobalizationDataDisplay.GlobalizationdataServicePath + "/GetResources/" + GlobalizationDataDisplay.CurrentCultureInstanceId + "/" + GlobalizationDataDisplay.PageSize + "/" + GlobalizationDataDisplay.CurrentPage,
                data: filterText,
                dataType: 'json',
                cache: false,
                processData: false,
                success:
                        function (result) {
                            var resources = {};
                            resources.R = [];
                            for (var i = 0; i < result.R.length; i++) {
                                result.R[i].Index = GlobalizationDataDisplay.PageSize * (GlobalizationDataDisplay.CurrentPage - 1) + i + 1;
                                result.R[i].DA = 'WidgetInstance';
                                resources.R.push(result.R[i]);
                            }
                            $("#divCultures").hide();
                            $("#divContents").hide();
                            $("#divCultureHeader").hide();
                            $("#divContentHeader").hide();
                            $("#divResourceListing").setTemplateElement("templateResourceBox");
                            $("#divResourceListing").processTemplate(resources);
                            $("#divResourceHeader").show();
                            $("#divModeSelector").show();
                            $("#divResources").show('slow');
                            GlobalizationDataDisplay.ResourceCount = result.TRC;
                            GlobalizationDataDisplay.LastPage = parseInt(((GlobalizationDataDisplay.ResourceCount - 1) / GlobalizationDataDisplay.PageSize) + 1);
                            if (GlobalizationDataDisplay.CurrentPage <= 1) {
                                $('#divPrevResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divPrevResourcePage').children().slice(1, 2).css('display', 'block');
                                $('#divFirstResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divFirstResourcePage').children().slice(1, 2).css('display', 'block');
                            }
                            else {
                                $('#divPrevResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divPrevResourcePage').children().slice(1, 2).css('display', 'none');
                                $('#divFirstResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divFirstResourcePage').children().slice(1, 2).css('display', 'none');
                            }
                            if (GlobalizationDataDisplay.CurrentPage >= GlobalizationDataDisplay.LastPage) {
                                $('#divNextResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divNextResourcePage').children().slice(1, 2).css('display', 'block');
                                $('#divLastResourcePage').children().slice(0, 1).css('display', 'none');
                                $('#divLastResourcePage').children().slice(1, 2).css('display', 'block');
                            }
                            else {
                                $('#divNextResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divNextResourcePage').children().slice(1, 2).css('display', 'none');
                                $('#divLastResourcePage').children().slice(0, 1).css('display', 'block');
                                $('#divLastResourcePage').children().slice(1, 2).css('display', 'none');
                            }
                            var pages = {};
                            pages.P = [];
                            var page = Math.max(1, GlobalizationDataDisplay.CurrentPage - 2);
                            for (; page <= Math.min(GlobalizationDataDisplay.LastPage, GlobalizationDataDisplay.CurrentPage + 2); page++) {
                                var curPage = {};
                                curPage.PN = page;
                                curPage.CP = false;
                                if (page == GlobalizationDataDisplay.CurrentPage) {
                                    curPage.CP = true;
                                }
                                pages.P.push(curPage);
                            }
                            $('#divResourcePager').setTemplateElement("templateResourcePager");
                            $("#divResourcePager").processTemplate(pages);
                            $('#GlobalizationDataContainer').center();
                            GlobalizationDataDisplay.Actions.EnableEditing();
                        },
                error:
                        function (XMLHttpRequest, textStatus, errorThrown) {
                            alert("ErrorGetResources");
                        }
            });
            $("#divModeSelector").show();
        },
        GetResources: function (cultureId) {
            GlobalizationDataDisplay.CurrentCultureId = cultureId;
            GlobalizationDataDisplay.CurrentCultureName = $('#' + cultureId).attr('name');
            GlobalizationDataDisplay.CurrentPage = 1;
            GlobalizationDataDisplay.Actions.LoadResources();
            $("#divCultures").hide();
            $("#divResources").show();
        },
        Init: function () {
            GlobalizationDataDisplay.CurrentMode = 'FULL';
            GlobalizationDataDisplay.CurrentPage = 1;
        },
        ChangeMode: function (mode) {
            if (mode.toLowerCase() == 'native') {
                GlobalizationDataDisplay.CurrentMode = 'NATIVE';
                GlobalizationDataDisplay.CurrentPage = 1;
            }
            else if (mode.toLowerCase() == 'full') {
                GlobalizationDataDisplay.CurrentMode = 'FULL';
                GlobalizationDataDisplay.CurrentPage = 1;
            }
            this.GetResources();
        }
    }
};
