(function($){
    $.fn.extend({
        //plugin name - animatemenu
        pagination: function(options) {
 			
			
			
            var defaults = {
                align: 'vertical',
                pages: true,
				keydown: false
            };
             
            var options = $.extend(defaults, options);
         	
			
			
			/*if( $(".navigationHorizontal").length == 0)
			{
				$(document).keydown(function (e) {
					if( $(".navigationHorizontal").length > 0 )
					{
						$(".navigationHorizontal").each(function(){
							
							if( e.keyCode == 37 || e.keyCode== 39 )
							{
								if( e.keyCode == 37 )
								{
									$(this).find(".prev").click();
								}
								else
								{
									if( e.keyCode== 39)
									{
										$(this).find(".next").click();
									}
								}
								e.returnValue = false;
								e.preventDefault();							
								return false;
							}
								
						})
					}
				})
				
			}*/
			if( $(".navigationVertical").length == 0)
			{
				
				$(document).keydown(function (e) {
					if( $(".navigationVertical").length > 0 )
					{
						$(".navigationVertical").each(function(){						
							
							if( e.keyCode == 38 || e.keyCode== 40 )
							{
								if( e.keyCode == 38 )
								{
									$(this).find(".prev").click();
								}
								else
								{
									if( e.keyCode== 40)
									{
										$(this).find(".next").click();
									}
								}
								e.returnValue = false;
								e.preventDefault();							
								return false;
							}
								
						})
					}
				})
				
			}
			
			
			
            return this.each(function() {
				obj = $(this);
				if( options.align == "horizontal" )
				{
					$(obj).addClass("navigationHorizontal");
				}
				else
				{
					$(obj).addClass("navigationVertical");
				}
				
				var navigation = "<div class='scrollBarText' style='width:100%;float:left;position:absolute;'>"+ $(obj).html() +"</div><div class='navigation'><div class='prev prevOff'/>";
				if( options.pages )
				{					
					navigation += "<div class='pag'  style='display:none'/>";
				}
				navigation += "<div class='next'/>";
                $(obj).empty().append(navigation).css("overflow",'hidden')
				
				var numPages = 1
				
				
				if( options.align == "horizontal" )
				{
					numPages = parseInt(parseFloat( $(obj).find(".scrollBarText").width() )/ parseFloat($(obj).innerWidth()));
				}
				else
				{
					numPages = parseInt(parseFloat( $(obj).find(".scrollBarText").height() )/ parseFloat($(obj).innerHeight()));	
				}
				if( numPages > 1 )
				{
					if( options.pages)
					{
						$(obj).find(".pag").text("1/" + numPages).css("display","block");
					}
				}
				else
				{
					$(obj).find(".navigation").css("display","none");
				}
				
				var numPagesMove = 1;
				
				$(obj).find(".next").click(function(){
					
					if( options.keydown && $(this).attr("class").indexOf("nextOff") < 0)
					{
						if( options.align == "horizontal" )
						{
							
							leftMove = (numPagesMove * $(this).parent().parent().width()) * (-1);
							
							numPagesMove += 1;
							
							objNext = $(this);
							$(this).parent().parent().find(".scrollBarText").animate({
								left: leftMove
							},500,function(){
								
								
								
								if( options.pages )
								{
									$(objNext).parent().find(".pag").text( numPagesMove + "/" + numPages);
								}
							})	
							if( parseInt(numPagesMove) == numPages )
							{
								$(objNext).addClass("nextOff");
							}
							$(objNext).parent().find(".prev").removeClass("prevOff");
						}
						else
						{
							
							topMove = (numPagesMove * $(this).parent().parent().height()) * (-1);
							
							numPagesMove += 1;
							
							objNext = $(this);
							$(this).parent().parent().find(".scrollBarText").animate({
								top: topMove
							},500,function(){
								
								if( options.pages )
								{
									$(objNext).parent().find(".pag").text( numPagesMove + "/" + numPages);
								}
							})
							if( parseInt(numPagesMove) == numPages )
							{
								$(objNext).addClass("nextOff");
							}
							$(objNext).parent().find(".prev").removeClass("prevOff");
						}
					}
				})
				$(obj).find(".prev").click(function(){
					if( options.keydown && $(this).attr("class").indexOf("prevOff") < 0)
					{
						
						
						if( options.align == "horizontal" )
						{
							
							numPagesMove -= 1;
							leftMove = ((numPagesMove-1) * $(this).parent().parent().height()) * (-1);
							
							objNext = $(this);
							$(this).parent().parent().find(".scrollBarText").animate({
								left: leftMove
							},500,function(){
								if( options.pages )
								{
									$(objNext).parent().find(".pag").text( numPagesMove + "/" + numPages);
								}
							})	
							if( parseInt(numPagesMove) == 1 )
							{
								$(objNext).addClass("prevOff");
							}
							$(objNext).parent().find(".next").removeClass("nextOff");
						}
						else
						{
							numPagesMove -= 1;
							
							topMove = ((numPagesMove-1) * $(this).parent().parent().height()) * (-1);
							
							objNext = $(this);
							$(this).parent().parent().find(".scrollBarText").animate({
								top: topMove
							},500,function(){
								if( options.pages )
								{
									$(objNext).parent().find(".pag").text( (parseInt(numPagesMove)) + "/" + numPages);
								}
							})
							
							if( (parseInt(numPagesMove)) == 1 )
							{
								$(objNext).addClass("prevOff");
							}
							$(objNext).parent().find(".next").removeClass("nextOff");
							
						}		
					}
				})
							
				
				$(obj).hover(function(){				
					options.keydown = true;					
				},function(){
					options.keydown = false;					
				})
				
            });
			
			/*var navigationKeydown = function(){
				var options = $.extend(defaults, options);
				if( $(obj).find(".next").is(":visible") )
				{
					return options.keydown;	
				}
				else
				{
					return false;	
				}
				
				return true
				
			}*/
			
			
			
        }
    });
})(jQuery);
