/**
* Sprite loop for pulsating buttons. 
*
*/
(function($) {
	$.fn.bsprite = function(options) {
		var
			defaults = {
				'loop': 0, // 0 means infinitively
				'positionInit': 5,
				'imageUrl': '',
				'moveBy': 58,
        'parent': false,
        'debug' : false,
        'spriteCount' : 15
			},
			settings = $.extend({}, defaults, options);

      if(settings.debug)
        console.log($(this));

      /*$(this).mouseover(function() {
        scrolled     = 1;
        stop_rotating = false;
        sprite_count = settings.spriteCount;
        tmpButton = $(this);
        moveToNext = $.doTimeout(25, function() {
           if(!stop_rotating) {
             if(scrolled < sprite_count){
                scrolled = scrolled + 1;
                position = settings.positionInit + settings.moveBy * scrolled;
                tmpButton.css('background', 'url('+settings.imageUrl+')');
                tmpButton.css('backgroundPosition', '-'+position+'px');

                if(settings.debug) {
                  console.log(scrolled);
                  console.log(position);
                }
              }else {
                stop_rotating = true;
              }
              return true;
            }
          });
      });

      $(this).mouseout(function() {
        stop_rotating_out = false;
        moveToNext = $.doTimeout(25, function() {
           if(!stop_rotating_out) {
             if(scrolled > 0){
                scrolled = scrolled - 1;
                position = -settings.positionInit - settings.moveBy * scrolled;
                tmpButton.css('background', 'url('+settings.imageUrl+')');
                tmpButton.css('backgroundPosition', position+'px');
                if(settings.debug) {
                  console.log(scrolled);
                  console.log(position);
                }
              }else {
                stop_rotating_out = true;
              }
              return true;
            }
          });
          tmpButton.css('background', 'url('+settings.imageUrl+')');
          tmpButton.css('backgroundPosition', '-'+settings.positionInit+'px');
        
      });*/

      $(this).hover(
        function(e) {

          stop_rotating = false;
          stop_rotating_out = true;
          sprite_count = settings.spriteCount;
          scrolled     = 1;
          tmpButton = $(this);
          moveToNext = $.doTimeout(25, function() {
           if(!stop_rotating) {
             if(scrolled < sprite_count){
                scrolled = scrolled + 1;
                position = settings.positionInit + settings.moveBy * scrolled;
                tmpButton.css('background', 'url('+settings.imageUrl+')');
                tmpButton.css('backgroundPosition', '-'+position+'px');

                if(settings.debug) {
                  console.log(scrolled);
                  console.log(position);
                }
              }else {
                stop_rotating = true;
              }
              return true;
            }
          });
        },
        function(e) {

          stop_rotating = true;
          stop_rotating_out = false;
          tmpButton = $(this);
          moveToNext = $.doTimeout(25, function() {
           if(!stop_rotating_out) {
             if(scrolled > 0){
                scrolled = scrolled - 1;
                position = -settings.positionInit - settings.moveBy * scrolled;
                tmpButton.css('background', 'url('+settings.imageUrl+')');
                tmpButton.css('backgroundPosition', position+'px');
                if(settings.debug) {
                  console.log(scrolled);
                  console.log(position);
                }
              }else {
                stop_rotating_out = true;
              }
              return true;
            }
          });
          
          $(this).css('background', 'url('+settings.imageUrl+')');
          $(this).css('backgroundPosition', '-'+settings.positionInit+'px');

        }
      );
    }

})(jQuery);

