
if(typeof SmartList=="undefined"||typeof TechDivision.Autocompleter=="undefined")
{
	throw ("td.library.smartlist.js requires including prototypes' smartlists.js library");
}

TechDivision.SmartList=Class.create(SmartList,
	{
		loadPage:function(f)
		{
			var k=this.options;
			var d=this.currentPage;
			
			if(f==d)
			{	return;
			}
			
			if(f=="next")
			{
				f=d+1;
			}
			else
			{
				if(f=="previous")
				{	f=d-1;
				}
			}
			
			var j=this._getItemsByFlag();
			this._updatePaginationGroup("pagination",j,f);
			
			if(this.hasSecondPagination)
			{
				this._updatePaginationGroup("pagination2",j,f);
			}
			
			if(this.hasNumResults)
			{
				$(k.baseName+"-num-results").innerHTML=j.length;
			}
			
			var a=(d-1)*k.numItemsPerPage;
			var g=a+k.numItemsPerPage;
			var c=(g>j.length)?j.length:g;
			var e=(f-1)*k.numItemsPerPage;
			var g=e+k.numItemsPerPage;
			var h=(g>j.length)?j.length:g;
			
			for(var b=0;b<j.length;b++)
			{
				if(b>=a&&b<c)
				{
					switch(k.pageChangeEffect)
					{
						case"Blind":
							Effect.BlindUp(j[b],{duration:k.pageChangeDuration});
							break;
						case"FadeAppear":
							Effect.Fade(j[b],{duration:k.pageChangeDuration});
							break;
						case"ShrinkGrow":
							Effect.Shrink(j[b],{duration:k.pageChangeDuration});
							break;
						default:
							$(j[b]).hide();
							break;
					}
				}
					
				if(b>=e&&b<h)
				{
					switch(k.pageChangeEffect)
					{
						case"Blind":
							Effect.BlindDown(j[b],{delay:k.pageChangeDuration,duration:k.pageChangeDuration});
							break;
						case"FadeAppear":
							Effect.Appear(j[b],{delay:k.pageChangeDuration,duration:k.pageChangeDuration});
							break;
						case"ShrinkGrow":
							Effect.Grow(j[b],{delay:k.pageChangeDuration,duration:k.pageChangeDuration});
							break;
						default:$(j[b]).show();
							break;
					}
				}
			}
			
			this.currentPage=f;
		}
	}
);