﻿var ImageRotator = (function() { 
 
  var _loadedImages = [];
  var _imagesAreLoaded = false;
  var _imageCounter = 0;
  
  var _imgHtmlElement;
  var _imageFilePath;
  var _frameCount;
  var _framePauseMs;
  var _rotateContinuous;
  
  var _timerRotator;
  
  return { 
    PreloadImages: function () { 
        
        var imageName;
        
        for(i = 0; i < _frameCount; i++)
        {
            if (i > 0)
            {
                imageName = _imageFilePath.replace(".jpg","-" + (i + 1) + ".jpg");
            }
            else
            {
                imageName = _imageFilePath;
            }
            _loadedImages[i] = new Image();
            _loadedImages[i].src = imageName + "?" + Math.round(Math.random() * 10000000);
            
        }
        
        _imagesAreLoaded = true;
        
       }, 
    RotateImages: function () { 
         
        if(_imageCounter >= _frameCount)
        {
            _imageCounter = 0;
            if (!_rotateContinuous)
            {
                return;
            }
        }
        
        var img = document.getElementById(_imgHtmlElement);
        
        img.src = _loadedImages[_imageCounter].src;
        
        _imageCounter++;
        
        _timerRotator = setTimeout(ImageRotator.RotateImages, _framePauseMs);
       }, 
    StopRotateImages: function() { 
          clearTimeout(_timerRotator); 
       },
    Construct: function(imageFilePath, frameCount, framePauseMs, imgHtmlElement, rotateContinuous) {
          _imageFilePath = imageFilePath;
          _frameCount = frameCount;
          _framePauseMs = framePauseMs;
          _imgHtmlElement = imgHtmlElement;
          _rotateContinuous = rotateContinuous;
          
       } 
   };  
})(); 



