/**
* Special implementation for resultPager
*
* TODO: Abstract implementation (OOP based?)
* TODO: Supporting more than 1 pager per page
*/



var currentResultPage;
var pages;


function afterFinishIntermediateResult(allPages){
	if($$(".resultPager")){
		// init pager
		currentResultPage = 1;
		pages = allPages;
		
		// only needed for the pagerVariant 'pagerClickableRange' in pager.jsp
		if($$(".pager-link").length != 0) {
			$$(".pager-link-"+currentResultPage).each(function(pa) {
				pa.addClassName("pager-link-active");
			});
		}
		
		var pageChecker=1;
		for(var i=1;i<=allPages;i++){
			if($("page"+i))
				pageChecker=i;
		}
	
		if(pageChecker!=allPages){
			pages = pageChecker;
			$$(".resultPager .pageCounter").each(function(el){
				el.innerHTML=pageChecker;
			});
		}
	}
}
function gotoPrevResultPage(){
	if(currentResultPage>1) {
		gotoResultPage(currentResultPage,--currentResultPage);
		if(typeof(afterGotoPrevResultPage) == "function") afterGotoPrevResultPage();
	}
}
function gotoNextResultPage(){
	if(currentResultPage<pages) {
		gotoResultPage(currentResultPage,++currentResultPage);
		if(typeof(afterGotoNextResultPage) == "function") afterGotoNextResultPage();
	}
}
function gotoResultPage(page,newpage){

	//new fx.Width("page"+page,{duration: 300,transition: Fx.Transitions.sineInOut }).toggle();
	//new fx.Width("page"+page).hide();
	//new fx.Width("page"+newpage,{duration: 300,transition: Fx.Transitions.sineInOut }).toggle();
	//new fx.Width("page"+1).toggle();
	
	for(var i=1;i<=pages;i++){
		if(!$("page"+i))
			continue;
			
		if(newpage == i){
			$("page"+i).removeClassName("hidePage");
			$("page"+i).addClassName("showPage");
		}else{
			$("page"+i).addClassName("hidePage");
			$("page"+i).removeClassName("showPage");
		}
	}
	$$(".resultPager .pagerPrev").each(function(el){
		if(newpage==1)
			el.addClassName("pagerPrevUnactive");
		else
			el.removeClassName("pagerPrevUnactive");
	});	
	$$(".resultPager .pagerNext").each(function(el){
		if(newpage==pages)
			el.addClassName("pagerNextUnactive");
		else
			el.removeClassName("pagerNextUnactive");
	});		
		/*
	$("pagerPrev").className="pagerPrev"+((newpage==1) ? "Unactive" : "");
	$("pagerNext").className="pagerNext"+((newpage==pages) ? "Unactive" : "");
*/
	
	$$(".resultPager .pageNumber").each(function(el){
		el.innerHTML = newpage;
		currentResultPage = newpage;
	});	
	
	// only needed for the pagerVariant 'pagerClickableRange' in pager.jsp
	if(currentResultPage == newpage && $$(".pager-link").length != 0) {
		$$(".pager-link-active").each(function(el) {
			el.removeClassName("pager-link-active");
		});
		$$(".pager-link-"+newpage).each(function(pa) {
			pa.addClassName("pager-link-active");
		});
	}
	
	if(window.LU)
		LU.adjustIframe();
		
	document.fire("sis:changePage",newpage);
}

