/* ------------------------------------------------------------------------
	Class: XparoPager
	Use: Pager for jQuery
	Author: Jutta Henninger (http://www.xparo.com)
	Version: 0.1
------------------------------------------------------------------------- */
(function($) {
  $.XparoPager = {
  defaults: {
		itemsPerPage : 4,
		actualPage : 1,
		TotalItemsCount : 4, 
		images: true,/*True/False - Use images for paging */
		imgfirst:"portaldata/1/resources/_intern/icons/pFirst.png",
		imgprev:"portaldata/1/resources/_intern/icons/pPrev.png",
		imgnext:"portaldata/1/resources/_intern/icons/pNext.png",
		imglast:"portaldata/1/resources/_intern/icons/pLast.png",
		PageritemHeader : '<li>',
		PageritemFooter : '</li>',
		pagesCount:1,
		id : "pager", /* Where the Pager should be written */
		markup : '<ul>{imgfirst}{imgprev}{pages}{imgnext}{imglast}</ul>',
		container : "#twitterbox_"
  } 
};
$.fn.extend({
  XparoPager:function(settings) {
  
    var settings = $.extend({}, $.XparoPager.defaults, settings);
	settings.pagerid=settings.container+this.attr("id");
	
init(settings);
    //(config.navi == false) ? withoutNavi(config) : withNavi(config) ;
    return this;
  }
});

function init(settings) {
        if(settings.images==true){
            settings.markup=settings.markup.replace(/{imgfirst}/g,settings.PageritemHeader+"<img src=\""+settings.imgfirst+"\" class=\""+settings.id+" FirstPage\" alt=\"\">"+settings.PageritemFooter);
            settings.markup=settings.markup.replace(/{imgprev}/g,settings.PageritemHeader+"<img src=\""+settings.imgprev+"\" class=\""+settings.id+" PrevPage\" alt=\"\">"+settings.PageritemFooter);
            settings.markup=settings.markup.replace(/{imgnext}/g,settings.PageritemHeader+"<img src=\""+settings.imgnext+"\" class=\""+settings.id+" NextPage\" alt=\"\">"+settings.PageritemFooter);
            settings.markup=settings.markup.replace(/{imglast}/g,settings.PageritemHeader+"<img src=\""+settings.imglast+"\" class=\""+settings.id+" LastPage\" alt=\"\">"+settings.PageritemFooter);
        }else{
            settings.markup=settings.markup.replace(/{imgfirst}/g,"");
            settings.markup=settings.markup.replace(/{imgprev}/g,"");
            settings.markup=settings.markup.replace(/{imgnext}/g,"");
            settings.markup=settings.markup.replace(/{imglast}/g,"");
        }
        /* Seitenzahlen einfügen */
        settings.pagesCount = settings.TotalItemsCount/settings.itemsPerPage;
        var pages="";
        for (var i=1; i<=settings.pagesCount;i++)
        {
			if(i==1){
				pages+=settings.PageritemHeader+"<a class=\""+settings.id+" page page"+i+" active\" name=\""+i+"\" title=\""+i+"\">"+i+"</a>"+settings.PageritemFooter;
			}else{
				pages+=settings.PageritemHeader+"<a class=\""+settings.id+" page page"+i+"\" name=\""+i+"\" title=\""+i+"\">"+i+"</a>"+settings.PageritemFooter;
			}
        }
        // Id dazu schreiben und dann ueber die klasse die id auslesen um dann zu der seite zu springen
        settings.markup=settings.markup.replace(/{pages}/g,pages);
        showfirstpage(settings);
        /* FIXME */
       // alert(jQuery("#"+settings.id+" ul li:first-child").html());
       // jQuery("#"+settings.id+" ul li").addClass("active");
        jQuery("#"+settings.id).html(settings.markup);
        jQuery(settings.pagerid+" .FirstPage").bind('click',function(){ firstpage($(this),settings); return false; });
        jQuery(settings.pagerid+" .PrevPage").bind('click',function(){ previouspage($(this),settings); return false; });
        jQuery(settings.pagerid+" a.page").bind('click',function(){ page($(this), settings); return false; });
        jQuery(settings.pagerid+" .NextPage").bind('click',function(){


         nextpage($(this),settings); return false; 
        
        });        
        jQuery(settings.pagerid+" .LastPage").bind('click',function(){ lastpage($(this),settings); return false; });
};

/* jQuery Pager */

    function showfirstpage(settings){
		//console.log(settings.pagerid+" -- "+settings.pagerid);
        jQuery(settings.pagerid+" .itemlist div").slice(0, settings.itemsPerPage).show();
        jQuery(settings.pagerid+" .itemlist div").slice(0, settings.itemsPerPage).addClass('show');
		
    }
    
	function page(obj, settings){
//		var id=obj.attr("class").split(/\s+/);
		var start = parseInt(obj.attr("name"));       
	//	console.log(settings.actualPage+" -- "+start);    
		jQuery(settings.pagerid+" .itemlist .show").hide();
		jQuery(settings.pagerid+" .itemlist .show").removeClass('show');
		jQuery(settings.pagerid+" .itemlist div").slice(((start*settings.itemsPerPage)-settings.itemsPerPage),(start*settings.itemsPerPage)).show();
		jQuery(settings.pagerid+" .itemlist div").slice(((start*settings.itemsPerPage)-settings.itemsPerPage),(start*settings.itemsPerPage)).addClass('show');
		
		jQuery(settings.pagerid+" .itemlist div").slice(((start*settings.itemsPerPage)-settings.itemsPerPage),((start*settings.itemsPerPage)-settings.itemsPerPage)+1).addClass('first');
		setActivePage(settings,obj,parseInt(obj.attr("name")));
	 }
        
	 function firstpage(obj, settings){
	//	var id=obj.attr("class").split(/\s+/);
		jQuery(settings.pagerid+" .itemlist .show").hide();
		jQuery(settings.pagerid+" .itemlist .show").removeClass('show');
		jQuery(settings.pagerid+" .itemlist div").slice(0, settings.itemsPerPage).show();
		jQuery(settings.pagerid+" .itemlist div").slice(0, settings.itemsPerPage).addClass('show');
		jQuery(settings.pagerid+" .itemlist div").slice(0,1).addClass('first');
		setActivePage(settings,obj,1);
		
	 }
	 
	 function previouspage(obj, settings){
	 //console.log(settings.actualPage);
		if(settings.actualPage!=1){
		//	var id=obj.attr("class").split(/\s+/);
			var start = settings.actualPage*settings.itemsPerPage;
			jQuery(settings.pagerid+" .itemlist .show").hide();
			jQuery(settings.pagerid+" .itemlist .show").removeClass('show');
			jQuery(settings.pagerid+" .itemlist div").slice((start-(2*settings.itemsPerPage)),(start-settings.itemsPerPage)).show();
			jQuery(settings.pagerid+" .itemlist div").slice((start-(2*settings.itemsPerPage)),(start-settings.itemsPerPage)).addClass('show');
			jQuery(settings.pagerid+" .itemlist div").slice((start-(2*settings.itemsPerPage)),(start-(2*settings.itemsPerPage))+1).addClass('first');
			setActivePage(settings,obj,settings.actualPage-1);
		}
		
	 }
        
	 function nextpage(obj, settings){
		if(settings.actualPage!=settings.pagesCount){
		//var id=obj.attr("class").split(/\s+/);
		
			var start = settings.actualPage*settings.itemsPerPage;
			jQuery(settings.pagerid+" .itemlist .show").hide();
			jQuery(settings.pagerid+" .itemlist .show").removeClass('show');
			jQuery(settings.pagerid+" .itemlist div").slice(start,(start+settings.itemsPerPage)).show();
			jQuery(settings.pagerid+" .itemlist div").slice(start,(start+settings.itemsPerPage)).addClass('show');
			
			jQuery(settings.pagerid+" .itemlist div").slice(start,start+1).addClass('first');
			setActivePage(settings,obj,settings.actualPage+1);
		}
	 }

	function lastpage(obj, settings){
	//var id=obj.attr("class").split(/\s+/);
	//alert(((settings.pagesCount*settings.itemsPerPage)-settings.itemsPerPage),(settings.pagesCount*settings.itemsPerPage));
	var start = settings.actualPage*settings.itemsPerPage;
	jQuery(settings.pagerid+" .itemlist .show").hide();
	jQuery(settings.pagerid+" .itemlist .show").removeClass('show');
	jQuery(settings.pagerid+" .itemlist div").slice(((settings.pagesCount*settings.itemsPerPage)-settings.itemsPerPage),(settings.pagesCount*settings.itemsPerPage)).show();
	jQuery(settings.pagerid+" .itemlist div").slice(((settings.pagesCount*settings.itemsPerPage)-settings.itemsPerPage),(settings.pagesCount*settings.itemsPerPage)).addClass('show');
	
			jQuery(settings.pagerid+" .itemlist div").slice(((settings.pagesCount*settings.itemsPerPage)-settings.itemsPerPage),((settings.pagesCount*settings.itemsPerPage)-settings.itemsPerPage)+1).addClass('first');

	setActivePage(settings,obj,settings.pagesCount);
	}
	
	function setActivePage(settings,obj,pageNumber){
	//var id=obj.attr("class").split(/\s+/);
	/* FIXME - MARKUP PARSEN */
	jQuery(settings.pagerid+" .ul").children().removeClass("active");
	jQuery(settings.pagerid+" .ul:nth-child("+pageNumber+")").addClass("active");
	jQuery(settings.pagerid+" .page"+settings.actualPage).removeClass("active");
	//console.log(settings.pagerid+": alt:"+settings.actualPage+" - Neu: "+pageNumber);
	settings.actualPage=pageNumber;
	jQuery(settings.pagerid+" .page"+pageNumber).addClass("active");
	// Hier den Pager noch die Klasse Active verpassen
	}
	 
	 
})(jQuery);
