﻿var imageTypes = ['.png', '.jpg', '.jpeg', '.gif'];

jQuery.fn.initImageRoller = function() {

   return this.each(function() {
      var src = process($(this).attr('src'));
      var delay = $(this).attr('delay');
      if (delay < 1500) {
         delay = 1500;
         $(this).attr('delay', delay);
      }
      else if (delay == undefined) {
         delay = 4000;
         $(this).attr('delay', delay);
      }
      var obj =
      {
         'owner': this,
         'start': src[1],
         'end': parseInt(src[1]) + parseInt($(this).attr('alt')),
         'delay': delay,
         'path': src[2],
         'index': src[1],
         'ext': src[0]
      };
      swap(obj);
   });

   function process(str) {
      var tmp;
      for (var i = 0; i < imageTypes.length; i++) {
         if (str.indexOf(imageTypes[i]) > -1) {
            tmp = imageTypes[i];
            break;
         }
      }
      if (tmp.length > 0) {
         var array = new Array();
         array.push(tmp);
         str = str.substr(0, str.length - array[0].length);
         array.push(str.substr(str.length - 1, 1));
         array.push(str.substr(0, str.length - 1));
         return array;
      }
   };

   function swap(obj) {
      if (obj.index > obj.end)
         obj.index = obj.start;

      $(obj.owner).attr('src', obj.path + obj.index + obj.ext);
      obj.index++;
      window.setTimeout(function() { swap(obj); }, obj.delay);
   };
};

$(document).ready(function() {
   $('img.imageroller').initImageRoller();
});
