﻿//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() {
    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();
        }
    }
};