// JavaScript Document
randImgObj.set1 = new Array("vmax1.jpg","vmax2.jpg","vmax3.jpg","vmax4.jpg","vmax5.jpg");
randImgObj.set2 = new Array("vmax6.jpg","vmax7.jpg","vmax8.jpg","vmax9.jpg","vmax10.jpg");
randImgObj.set3 = new Array("vmax11.jpg","vmax12.jpg","vmax13.jpg","vmax14.jpg","vmax15.jpg");
randImgObj.set4 = new Array("vmax16.jpg","vmax17.jpg","vmax18.jpg","vmax19.jpg","vmax20.jpg");
randImgObj.set5 = new Array("vmax21.jpg","vmax22.jpg","vmax23.jpg","vmax24.jpg","vmax25.jpg");
randImgObj.set6 = new Array("vmax26.jpg","vmax27.jpg","vmax28.jpg","vmax29.jpg","vmax30.jpg");
randImgObj.set7 = new Array("vmax31.jpg","vmax32.jpg","vmax33.jpg","vmax34.jpg","vmax35.jpg");
randImgObj.set8 = new Array("vmax36.jpg","vmax37.jpg","vmax38.jpg","vmax39.jpg","vmax40.jpg");
randImgObj.set9 = new Array("vmax41.jpg","vmax42.jpg","vmax43.jpg","vmax44.jpg","vmax45.jpg");
randImgObj.imagesPath = "http://www.vinylmax.com/images/";

Array.prototype.shuffle = function() { 
  var i, temp, i1, i2;
  for (i=0; i<this.length; i++) { 
    i1 = Math.floor( Math.random() * this.length );
    i2 = Math.floor( Math.random() * this.length );
    temp = this[i1];
    this[i1] = this[i2];
    this[i2] = temp;
  }
}

randImgObjs = []; // holds all random rotating image objects defined
// constructor 
function randImgObj(s) {
  this.speed=s; this.ctr=0; this.timer=0;  
  this.index = randImgObjs.length; randImgObjs[this.index] = this;
  this.animString = "randImgObjs[" + this.index + "]";
}

randImgObj.prototype = {
  addImages: function(ar) { // preloads images
    this.imgObj.imgs = [];
    for (var i=0; ar[i]; i++) {
      this.imgObj.imgs[i] = new Image();
      this.imgObj.imgs[i].src = randImgObj.imagesPath + ar[i];
    }
  },

  rotate: function() { // controls rotation
    var ctr = Math.floor( Math.random() * this.imgObj.imgs.length );
    if (ctr == this.ctr) ctr = (ctr > 0)? --ctr: ++ctr;
    this.ctr = ctr;
    if ( typeof this.imgObj.filters != "undefined" ) {
   		this.imgObj.style.filter = 'blendTrans(duration=1)';
      if (this.imgObj.filters.blendTrans) this.imgObj.filters.blendTrans.Apply();
    }
    this.imgObj.src = this.imgObj.imgs[this.ctr].src;
    if ( typeof this.imgObj.filters != "undefined" && this.imgObj.filters.blendTrans )
      this.imgObj.filters.blendTrans.Play();    
  }
}

// sets up rotation for all defined randImgObjs
randImgObj.start = function() {
  for (var i=0; i<randImgObjs.length; i++) 
    randImgObjs[i].timer = setInterval(randImgObjs[i].animString + ".rotate()", randImgObjs[i].speed);                     
}

randImgObj.setUpImg = function(imgAr, sp, w, h) {
  var rotator, img, imgStr = "";
  rotator = new randImgObj((sp*(Math.random() * 2)) + 3000);
  randImgObjs[randImgObjs.length-1].imgAr = imgAr;
  imgAr.shuffle();
  img = imgAr[ Math.floor( Math.random() * imgAr.length ) ]; 
  imgStr += '<img src="' + randImgObj.imagesPath + img + '" alt="" ';
  imgStr += 'name="img' + (randImgObjs.length-1) + '" width="' + w + '" height="' + h + '">';
  document.write(imgStr); 
}

function initRandRotation() {
  for (var i=0; randImgObjs[i]; i++) {
    var rotator = randImgObjs[i];
    rotator.imgObj = document.images["img" + i]; // get reference to the image object
    rotator.addImages(rotator.imgAr);
    rotator.rotate();
  }
  randImgObj.start();  
}

