// JavaScript Document



randImgObj.set1 = new Array("rot1.jpg","rot2.jpg","rot3.jpg","rot4.jpg","rot5.jpg","rot6.jpg","rot7.jpg","rot8.jpg","rot9.jpg","rot10.jpg","rot41.jpg","rot46.jpg","rot47.jpg","rot48.jpg","rot57.jpg","rot58.jpg");
randImgObj.set2 = new Array("rot11.jpg","rot12.jpg","rot13.jpg","rot14.jpg","rot15.jpg","rot16.jpg","rot17.jpg","rot18.jpg","rot19.jpg","rot20.jpg","rot42.jpg","rot49.jpg","rot50.jpg","rot59.jpg","rot60.jpg","rot61.jpg");
randImgObj.set3 = new Array("rot21.jpg","rot22.jpg","rot23.jpg","rot24.jpg","rot25.jpg","rot26.jpg","rot27.jpg","rot28.jpg","rot29.jpg","rot30.jpg","rot43.jpg","rot52.jpg","rot53.jpg","rot54.jpg","rot62.jpg","rot63.jpg");
randImgObj.set4 = new Array("rot31.jpg","rot32.jpg","rot33.jpg","rot34.jpg","rot35.jpg","rot36.jpg","rot37.jpg","rot38.jpg","rot39.jpg","rot40.jpg","rot44.jpg","rot45.jpg","rot55.jpg","rot56.jpg","rot64.jpg","rot65.jpg","rot51.jpg");




// If all the images you wish to display are in the same location, you can specify the path here 
randImgObj.imagesPath = "http://www.greek.tulane.edu/rotate/";

// No need to edit code below this line 
/////////////////////////////////////////////////////////////////////
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);
  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();  
}