 //paginazione x video worldstage, push e live@mtv
(function($) {
	//definisco le variabili e funzioni locali  
    $.myPager = {
		elements: new Array(),
        currentPage: 0,
		goNext: function(m) {
			prevPage = $.myPager.currentPage;
			$.myPager.currentPage++;
			$("#pag"+ ($.myPager.currentPage-1) ).hide();
			$("#pag"+ $.myPager.currentPage ).fadeIn("normal");				
			$.myPager.hidePage("#pag"+ ($.myPager.currentPage-1));
			$.myPager.showPage("#pag"+ $.myPager.currentPage);
			$("#prev").show();
			if($.myPager.currentPage == (m-1)){
				$("#next").hide();
			}
			$.myPager.updateCurrent(m);
		},
		goPrev: function(m) {
			prevPage = $.myPager.currentPage;
			$.myPager.currentPage--;
			$.myPager.hidePage("#pag"+ ($.myPager.currentPage+1));
			$.myPager.showPage("#pag"+ $.myPager.currentPage);
			$("#next").show();
			if($.myPager.currentPage == 0){
				$("#prev").hide();
			}
			$.myPager.updateCurrent(m);
		},
		goPag: function(p,m) {
			prevPage = $.myPager.currentPage;
			$.myPager.currentPage = p;
			$.myPager.hidePage("#pag"+ prevPage);
			$.myPager.showPage("#pag"+ $.myPager.currentPage);
			if($.myPager.currentPage == 0)
				$("#prev").hide();
			else
				$("#prev").show();
			if($.myPager.currentPage == (m-1))
				$("#next").hide();
			else
				$("#next").show();
			$.myPager.updateCurrent(m);	
		},
		hidePage: function(elem){
			$(elem).hide();
			$(elem).css({ position:'absolute', top:'0', left:'0'});
			$(elem + " > *").hide();
		},
		showPage: function(elem){
			$(elem).fadeIn("normal");
			$(elem).css({ position:'static'});
			$(elem + " > *").fadeIn("normal");
		},
		updateCurrent: function(m){
			$("#nav"+ prevPage).replaceWith("<a id=\"nav" + prevPage + "\" href=\"javascript:$.myPager.goPag("+prevPage+","+m+")\">" + (prevPage+1) + "</a>");
			$("#nav"+ $.myPager.currentPage).replaceWith("<span id=\"nav" + $.myPager.currentPage + "\">" + ($.myPager.currentPage+1) + "</span>");	
		}
    };
	
	//definisco il plugin
    $.fn.myPager = function(opzioni) {
    	var settings = {
			maxElements: 6,
			currentClass: "onPlay",
			currentElement: "span",
			altezza: 200
        };
		// verifico che siano state passate delle opzioni ed estendo la variabile settings, con le opzioni passate
        if(opzioni) $.extend(settings, opzioni);
		
		return this.each( function () {
			$(this).find("ul").addClass("tmp");	
			$(this).find("li").each( function(i){
				//array con tutti gli elementi
				$.myPager.elements.push($(this).html());
				if($(this).find(settings.currentElement).hasClass(settings.currentClass)) 
					$.myPager.currentPage = Math.floor(i / settings.maxElements);
			})
			//se c'è bisogno della paginazione la metto..
			if($.myPager.elements.length >= settings.maxElements){
				prevPage = $.myPager.currentPage;
				
				//pagine totali
				var pages = Math.ceil($.myPager.elements.length / settings.maxElements); 
				
				//creo tutte le pagine/lista
				for(var i = 0; i < pages; i++){
					$(this).append("<ul class=\"myPager\" id=\"pag" + i + "\">");
					for(var k = i*settings.maxElements; k < settings.maxElements*(i+1) ; k++){
						if($.myPager.elements[k] != null) 
							$(".myPager:last-child").append("<li>" + $.myPager.elements[k] + "</li>");
					}
					$(this).append("</ul>");
					$(this).append("<div class=\"close\"></div>")
					if(i != $.myPager.currentPage){
						$("#pag"+i).hide();
						$("#pag"+i).css({ position:'absolute', top:'0', left:'0'});
						$("#pag"+i+" > *").hide();
					} 
					$(".myPager").height(settings.altezza);
					$("#videoList").height(settings.altezza+10);
					
				}	
				$(this).find(".tmp").remove();
				
				//creo la paginazione
				$(this).append("<div id=\"pagination\"></div>");
				$("#pagination").append("<a id=\"prev\" href=\"javascript:$.myPager.goPrev(" + pages + ");\">◄</a>")
				if($.myPager.currentPage == 0)
					$("#prev").hide();
				for(var i = 0; i < pages; i++){
					if(i == $.myPager.currentPage)
						$("#pagination").append("<span id=\"nav"+ i +"\">"+ (i+1) +"</span>");
					else
						$("#pagination").append("<a id=\"nav"+ i +"\" href=\"javascript:$.myPager.goPag("+i+","+pages+")\">"+ (i+1) +"</a>");
				}
				$("#pagination").append("<a id=\"next\" href=\"javascript:$.myPager.goNext(" + pages + ");\">►</a>");
				if($.myPager.currentPage == (pages-1))
					$("#next").hide();	
				
				$("#pagination").css({top:(settings.altezza)+"px", right:"0px"});
			}
		});	
    };
})(jQuery);