/*
 *
 * Copyright (c) 2010 NetForce (http://www.netforce.inf.br)
 *
 * Version 1.0
 */
(function($) {
		
	//Main Method
	$.fn.bookImgs = function(width, height, numpages, marginTop, marginBottom) {	
		
		return this.each(function(){		
			var ul    = $(this);
      ul.atual  = 0;
      ul.efeito = 500;

      width    = ((width == undefined) ? ul.width() : width);
      height   = ((height == undefined) ? ul.height() : height);
      numpages = ((numpages == undefined) ? 1 : numpages);

      // Preparar
      function prepare()
      {
        ul.css('position', 'relative');
        ul.css('width',     width + 'px');
        ul.css('height',    height + 'px');
        ul.css('overflow',  'hidden');
        ul.css('margin',    '0px');
        ul.css('padding',   '0px');

        // LI
        var lis = ul.find('li');
        lis.css('list-style-image',    'none');
        lis.css('list-style-position', 'outside');
        lis.css('list-style-type',     'none');
        lis.css('position',            'absolute');
        lis.css('width',               width + 'px');
        lis.css('height',              height + 'px');
        lis.css('z-index',             '1000');
        lis.css('left',                (width * -1) + 'px');
        lis.eq(0).css('left',          '0px');
        lis.eq(0).css('z-index',       '1005');

        // Anterior Cima
        ul.append('<div class="book-nav-prev">&nbsp;</div>');
        var n_prev = ul.find('.book-nav-prev');
        n_prev.css('position', 'absolute');
        n_prev.css('left',     '0px');
        n_prev.css('top',      marginTop + 'px');
        n_prev.css('width',    '63px');
        n_prev.css('height',   '32px');
        n_prev.css('z-index',  '1010');
        n_prev.css('cursor',   'pointer');
        n_prev.css('background-image',      'url(./theme/book-btn-prev.gif)');
        n_prev.animate({opacity: 0.50}, 1);
        n_prev.mouseover(function(){ $(this).animate({opacity: 1}, 200);});
        n_prev.mouseout(function(){ $(this).animate({opacity: 0.50}, 200);});
        n_prev.click(function() { anterior(); });

        // Anterior Baixo
        ul.append('<div class="book-nav-prev book-nav-prev-baixo">&nbsp;</div>');
        var n_prev = ul.find('.book-nav-prev-baixo');
        n_prev.css('position', 'absolute');
        n_prev.css('left',     '0px');
        n_prev.css('top',      (height - 32 - marginBottom) + 'px');
        n_prev.css('width',    '63px');
        n_prev.css('height',   '32px');
        n_prev.css('z-index',  '1010');
        n_prev.css('cursor',   'pointer');
        n_prev.css('background-image',      'url(./theme/book-btn-prev.gif)');
        n_prev.animate({opacity: 0.50}, 1);
        n_prev.mouseover(function(){ $(this).animate({opacity: 1}, 200);});
        n_prev.mouseout(function(){ $(this).animate({opacity: 0.50}, 200);});
        n_prev.click(function() { anterior(); });

        // Próximo Cima
        ul.append('<div class="book-nav-next">&nbsp;</div>');
        var n_next = ul.find('.book-nav-next');
        n_next.css('position', 'absolute');
        n_next.css('left',     (width - 63) + 'px');
        n_next.css('top',      marginTop + 'px');
        n_next.css('width',    '63px');
        n_next.css('height',   '32px');
        n_next.css('z-index',  '1010');
        n_next.css('cursor',   'pointer');
        n_next.css('background-image',      'url(./theme/book-btn-next.gif)');
        n_next.animate({opacity: 0.50}, 10);
        n_next.mouseover(function(){ $(this).animate({opacity: 1}, 200);});
        n_next.mouseout(function(){ $(this).animate({opacity: 0.50}, 200);});
        n_next.click(function() { proximo(); });

        // Próximo Baixo
        ul.append('<div class="book-nav-next book-nav-next-baixo">&nbsp;</div>');
        var n_next = ul.find('.book-nav-next-baixo');
        n_next.css('position', 'absolute');
        n_next.css('left',     (width - 63) + 'px');
        n_next.css('top',      (height - 32 - marginBottom) + 'px');
        n_next.css('width',    '63px');
        n_next.css('height',   '32px');
        n_next.css('z-index',  '1010');
        n_next.css('cursor',   'pointer');
        n_next.css('background-image',      'url(./theme/book-btn-next.gif)');
        n_next.animate({opacity: 0.50}, 10);
        n_next.mouseover(function(){ $(this).animate({opacity: 1}, 200);});
        n_next.mouseout(function(){ $(this).animate({opacity: 0.50}, 200);});
        n_next.click(function() { proximo(); });

        // Page Info
        ul.append('<div class="book-page-info">&nbsp;</div>');
        var p_info = ul.find('.book-page-info');
        p_info.css('position', 'absolute');
        p_info.css('left',     (width - 37) + 'px');
        p_info.css('top',      '2px');
        p_info.css('z-index',  '1010');
        p_info.animate({opacity: 0.50}, 10);
        p_info.mouseover(function(){ $(this).animate({opacity: 1}, 200);});
        p_info.mouseout(function(){ $(this).animate({opacity: 0.50}, 200);});
        p_info.html('1 / ' + lis.size());
      }
      prepare();

      function anterior()
      {
        var lis   = ul.find('li');
        var atual = lis.eq(ul.atual);

        // Descobrir próximo
        ul.atual -= 1;
        if (ul.atual < 0)
          ul.atual = (numpages-1);

        // Atual
        atual.css('z-index', '1000');

        // Proximo
        var next = lis.eq(ul.atual);
        next.css('left',    (width * -1));
        next.css('z-index', '1005');
        next.animate({left: 0}, ul.efeito, function() {
          atual.css('left', (width * -1));

          var p_info = ul.find('.book-page-info');
          p_info.html((ul.atual + 1) + ' / ' + lis.size());
        });
      }

      function proximo()
      {
        var lis   = ul.find('li');
        var atual = lis.eq(ul.atual);

        // Descobrir próximo
        ul.atual += 1;
        if (ul.atual >= numpages)
          ul.atual = 0;

        // Atual
        atual.css('z-index', '1000');

        // Proximo
        var next = lis.eq(ul.atual);
        next.css('left',    (width * 2));
        next.css('z-index', '1005');
        next.animate({left: 0}, ul.efeito, function() {
          atual.css('left', (width * -1));

          var p_info = ul.find('.book-page-info');
          p_info.html((ul.atual + 1) + ' / ' + lis.size());
        });
      }
		});
		
		
	};
})(jQuery);
