﻿function ControlPageSize(name, headline)
{
    this.name = name;
    this.outerDivId = "PageSize_"+name;  
    this.headlineDivId = "PageSize_"+name+"Headline"; 
    this.selectDivId = "PageSize_"+name+"SelectDiv"; 
    this.headline = headline;
    var self= this;


    this.Render = function()
    {
        var temp = "";

        // Outer div    
        temp += "<div id='" + this.outerDivId + "' style='border-width:0px; border-style:none; float: right; padding-right: 10px;'>";

        //            temp += "<div id='"+this.headlineDivId+"' class='PageSizeHeadline'>"+this.headline+"</div>";
        temp += this.headline;

        //            temp += "<div id='"+this.selectDivId+"' class='PageSizeSelectDiv'>";

        temp += "<select id='ControlPageSize_" + self.name + "_Select'>";
        temp += "<option value='15' selected>15</option>";
        temp += "<option value='30'>30</option>";
        temp += "<option value='60'>60</option>";
        temp += "</select>";

        //            temp += "</div>"; 

        // End outer div.
        temp += "</div>";

        // Write HTML to page. 
        document.write(temp);

        $jq(document).ready(function() 
        {
            $("#ControlPageSize_" + self.name + "_Select").bind("change", self.OnChangePageSize);
        });


    }
    this.Render();
    
    
    // ------------------------------------------------------------------------------
    //  Subscribe to specific event from searchcontroller.
    // ------------------------------------------------------------------------------ 
    this.SubscribeEvent = function(searchController, eventName, callback)
    {
        fc.SubscribeEvent(this, searchController, eventName, callback);
    }
    
    // ------------------------------------------------------------------------------
    //  Subscribe to all relevant events from searchcontroller.
    // ------------------------------------------------------------------------------ 
    this.SubscribeEvents = function(searchController)
    {
        self.SubscribeEvent(searchController, "SearchResult", self.OnSearchResult);
    }    
    
    // ------------------------------------------------------------------------------
    //  Search controller will receive all relevant events from this 
    //  control.
    // ------------------------------------------------------------------------------     
    this.RegisterAsTrigger = function(searchController)
    {
        fc.RegisterTrigger(this.name, searchController);
    }
    
    this.OnChangePageSize = function()
    {
        var pagesize = $jq("#ControlPageSize_"+self.name+"_Select").val();
        pagesize = parseInt(pagesize);
        fc.CriteriaChange_Pagesize(self.name, pagesize);
    }
    
    this.OnSearchResult = function(data, _this, persistedSearch)
    {    
        $jq("#ControlPageSize_"+self.name+"_Select").val((data.responseHeader.params.rows+""));                       
    }
}