﻿
Type.registerNamespace("PlainJoeStudios.Web.Controls");PlainJoeStudios.Web.Controls.Pagination=function(params){this.Ctor(params);};PlainJoeStudios.Web.Controls.Pagination.prototype={ImageUrl_First:"/Images/arrow_beginning.gif",ImageUrl_First_Disabled:"/Images/arrow_beginning_unselectable.gif",ImageUrl_Previous:"/Images/arrow_back.gif",ImageUrl_Previous_Disabled:"/Images/arrow_back_unselectable.gif",ImageUrl_Next:"/Images/arrow_next.gif",ImageUrl_Next_Disabled:"/Images/arrow_next_unselectable.gif",ImageUrl_Last:"/Images/arrow_end.gif",ImageUrl_Last_Disabled:"/Images/arrow_end_unselectable.gif",_jqRoot:null,_jqFirst:null,_jqPrevious:null,_jqNext:null,_jqLast:null,_jqTextBoxPage:null,_jqSpanPageMax:null,_PageChangeListeners:null,_PageNumber:1,_PageNumberMax:1,_UrlTemplate:null,Ctor:function(params)
{var This=this;this._jqRoot=$("#"+params.RootId);this._jqFirst=this._jqRoot.find(".jqImgFirst");this._jqPrevious=this._jqRoot.find(".jqImgPrevious");this._jqNext=this._jqRoot.find(".jqImgNext");this._jqLast=this._jqRoot.find(".jqImgLast");this._jqTextBoxPage=this._jqRoot.find(".jqTextBoxPage");this._jqSpanPageMax=this._jqRoot.find(".jqSpanPageMax");this._UrlTemplate=params.UrlTemplate;this._jqFirst.click(function(){This.First_Click();});this._jqPrevious.click(function(){This.Previous_Click();});this._jqNext.click(function(){This.Next_Click();});this._jqLast.click(function(){This.Last_Click();});this._jqTextBoxPage.keypress(function(e){return This.TextBoxPage_KeyPress(e);});this._PageChangeListeners=new Array();this.SetState(params.PageNumber,params.PageNumberMax);this.UpdateUI();},SetState:function(pageNumber,pageNumberMax)
{if(typeof(pageNumber)!=="number"||typeof(pageNumberMax)!=="number"||pageNumber<1||pageNumber>pageNumberMax||pageNumber<1)
{throw new Error("invalid page number values.");}
this._PageNumber=pageNumber;this._PageNumberMax=pageNumberMax;this.UpdateUI();},RegisterPageChangeListener:function(handler)
{this._PageChangeListeners.push(handler);},CallPageChangeListeners:function(oldNum,newNum)
{for(var i=0;i<this._PageChangeListeners.length;++i)
{this._PageChangeListeners[i](oldNum,newNum);}
if(this._UrlTemplate!=null&&this._UrlTemplate.length!=0)
{var url=this._UrlTemplate.replace("{{PageNumber}}",newNum);g_PlainJoePage.Redirect(url);}},UpdateUI:function()
{this._jqTextBoxPage.val(this._PageNumber.toString());this._jqSpanPageMax.text(this._PageNumberMax.toString());var page=this._PageNumber;var pageMax=this._PageNumberMax;if(page===1)
{this._jqFirst.attr("src",this.ImageUrl_First_Disabled);this._jqPrevious.attr("src",this.ImageUrl_Previous_Disabled);this._jqFirst.css("cursor","default");this._jqPrevious.css("cursor","default");}
else
{this._jqFirst.attr("src",this.ImageUrl_First);this._jqPrevious.attr("src",this.ImageUrl_Previous);this._jqFirst.css("cursor","pointer");this._jqPrevious.css("cursor","pointer");}
if(page===pageMax)
{this._jqNext.attr("src",this.ImageUrl_Next_Disabled);this._jqLast.attr("src",this.ImageUrl_Last_Disabled);this._jqNext.css("cursor","default");this._jqLast.css("cursor","default");}
else
{this._jqNext.attr("src",this.ImageUrl_Next);this._jqLast.attr("src",this.ImageUrl_Last);this._jqNext.css("cursor","pointer");this._jqLast.css("cursor","pointer");}},TextBoxPage_KeyPress:function(e)
{var This=this;if(typeof(e)==="undefined"||e==null)e=window.event;var mykey;mykey=e.charCode;if(mykey==null||mykey==0)
{if(typeof(e.which)!=="undefined")
{mykey=e.which;}
else if(typeof(e.keyCode)!=="undefined")
{mykey=e.keyCode;}
else if(typeof(e.keycode)!=="undefined")
{mykey=e.keycode;}}
if(mykey>=0x30&&mykey<=0x39)
{}
else if(mykey==13||mykey==10)
{try{e.preventDefault();}catch(exc){}
try{e.stopPropagation();}catch(exc){}
var oldNum=this._PageNumber;var newNum=parseInt(this._jqTextBoxPage.val());if(isNaN(newNum))
{newNum=1;}
if(newNum>this._PageNumberMax)
{newNum=this._PageNumberMax;}
else if(newNum<1)
{newNum=1;}
this._PageNumber=newNum;if(newNum!==oldNum)
{this.CallPageChangeListeners(oldNum,newNum);}
this.UpdateUI();return false;}
else
{try{e.preventDefault();}catch(exc){}
try{e.stopPropagation();}catch(exc){}
return false;}},First_Click:function()
{var oldNum=this._PageNumber;var newNum=oldNum;newNum=1;this._PageNumber=newNum;if(newNum!==oldNum)
{this.CallPageChangeListeners(oldNum,newNum);}
this.UpdateUI();},Previous_Click:function()
{var oldNum=this._PageNumber;var newNum=oldNum;if(oldNum===1)
{return;}
newNum=oldNum-1;this._PageNumber=newNum;if(newNum!==oldNum)
{this.CallPageChangeListeners(oldNum,newNum);}
this.UpdateUI();},Next_Click:function()
{var oldNum=this._PageNumber;var newNum=oldNum;if(oldNum===this._PageNumberMax)
{return;}
newNum=oldNum+1;this._PageNumber=newNum;if(newNum!==oldNum)
{this.CallPageChangeListeners(oldNum,newNum);}
this.UpdateUI();},Last_Click:function()
{var oldNum=this._PageNumber;var newNum=oldNum;newNum=this._PageNumberMax;this._PageNumber=newNum;if(newNum!==oldNum)
{this.CallPageChangeListeners(oldNum,newNum);}
this.UpdateUI();}};