// rotating_ad

rotateDelay = 3500;
imageWidth = 120;
imageHeight = 240;

thisAd = new Array();

function RotatingAd(images) {

PrintDebug('New Rotating Ad ' + thisAd.length)

var adIdx = thisAd.length;
thisAd[adIdx] = this;
this.adIdx = adIdx;
this.arrImageNm = images.split(',');
this.arrImage = new Array();
this.imageTimeout = 250;
this.imageTimeoutId = 0;
this.imageTimeoutCnt = 0;
this.imageTimeoutCntMax = 20;
this.imageIdx = 0;
this.imageIdLoad = 0;
this.timeoutId = 0;

for (var i = 0; i < this.arrImageNm.length; i++) {
	this.arrImageNm[i] = this.Trim(this.arrImageNm[i]);
}

this.alt = this.arrImageNm.pop();
this.href = this.arrImageNm.pop();

document.write('<div name="rotAd' + this.adIdx + '" id="rotAd' + this.adIdx + '" style="display: none"></div>');

this.rotAd = this.FindElement('rotAd' + this.adIdx);

this.rotAd.style.margin = '0 auto';
this.rotAd.style.padding = '0';
this.rotAd.style.width = imageWidth + 'px';
this.rotAd.style.height = imageHeight + 'px';

this.PreloadImage(this.adIdx, 0);
SetAd(this.adIdx, true);
this.rotAd.style.display = 'block';

CheckImages(this.adIdx);

AddLoadEvent(SetAdTimeout, this.adIdx);

}

function CheckImages(adIdx) {

for (var i = 0; i < thisAd[adIdx].arrImageNm.length; i++) {
	if (!thisAd[adIdx].arrImage[i]) {
		thisAd[adIdx].PreloadImage(adIdx, i);
	}
	if (i > thisAd[adIdx].imageIdLoad) {
		thisAd[adIdx].imageTimeoutCnt = 0;
		thisAd[adIdx].imageIdLoad = i;
	}
	while (!thisAd[adIdx].arrImage[i].getAttribute('loaded')
		&& thisAd[adIdx].imageTimeoutCnt <  thisAd[adIdx].imageTimeoutCntMax) {
		
		clearTimeout(thisAd[adIdx].imageTimeoutId);
		thisAd[adIdx].imageTimeoutId = setTimeout(function() {
				CheckImages(adIdx);
			}, thisAd[adIdx].imageTimeout);
		thisAd[adIdx].imageTimeoutCnt++;
		return;
	}
}

clearTimeout(thisAd[adIdx].imageTimeoutId);
thisAd[adIdx].imageTimeoutId = 0;
thisAd[adIdx].imageTimeoutCnt = 0;

}

SetAdTimeout = function(adIdx) {

clearTimeout(thisAd[adIdx].timeoutId);
thisAd[adIdx].timeoutId = setTimeout(function() {
		SetAd(adIdx);
	}, rotateDelay);

}

SetAd = function(adIdx, first) {

thisAd[adIdx].rotAd.innerHTML = '<a href="' + thisAd[adIdx].href + '" target="_blank">'
	+ '<img src="' + thisAd[adIdx].arrImageNm[thisAd[adIdx].imageIdx] + '"'
	+ ' alt="' + thisAd[adIdx].alt + '"'
	+ ' style="margin: 0; padding: 0; border: 0" /></a>';

(thisAd[adIdx].imageIdx + 1 < thisAd[adIdx].arrImageNm.length ? thisAd[adIdx].imageIdx++ : thisAd[adIdx].imageIdx = 0);

if (!first) SetAdTimeout(adIdx);

}

RotatingAd.prototype.PreloadImage = function(adIdx, imageIdx) {
	this.arrImage[imageIdx] = new Image();
	
	this.arrImage[imageIdx].onload = function() {
			thisAd[adIdx].arrImage[imageIdx].setAttribute('loaded', true);
		}
	this.arrImage[imageIdx].src = this.arrImageNm[imageIdx];
}

RotatingAd.prototype.Trim = function(s) {
  while (s.substring(0, 1) == ' ') {
    s = s.substring(1, s.length);
  }
  while (s.substring(s.length - 1, s.length) == ' ') {
    s = s.substring(0, s.length - 1);
  }
  return s;
}

RotatingAd.prototype.FindElement = function(elem, doc) {
  var p, i, elemFound;
  
  if (!doc) doc = document;
  if ((p = elem.indexOf('?')) > 0 && parent.frames.length) {
    doc = parent.frames[elem.substring(p + 1)].document;
    elem = elem.substring(0, p);
  }
  if (!(elemFound = doc[elem]) && doc.all) elemFound = doc.all[elem];
  for (i = 0; !elemFound && i < doc.forms.length; i++) 
    elemFound = doc.forms[i][elem];
  for (i = 0; !elemFound && doc.layers && i < doc.layers.length; i++) 
    elemFound = FindElement(elem, doc.layers[i].document);
  if (!elemFound && doc.getElementById) elemFound = doc.getElementById(elem);
  
  return elemFound;
}

AddLoadEvent = function(func, idx) {
  var oldonload = window.onload;
  window.onload = function() {
    if (oldonload) {
      oldonload();
    }
    func(idx);
  }
}

function PrintDebug(msg) {
	var divDebug = parent.document.getElementById('divDebug');
	if (divDebug) {
		if (!divDebug.innerHTML)
			divDebug.innerHTML = 'Debug Info:';
		divDebug.innerHTML += '<br>' + msg;
	}
}
