It is used to rotate banners.

I have 2 banners. Both made with Adobe Imageready 2.0

Each banner is constructed by several frames.

Each banner has a duration of 14.5 seconds

Here is how the script works :

I have uploaded a ready made script called : bannerad3.js
this is its code :

Code:
/****
* Banner Ad Rotater v3.02
* Anarchos > anarchos3@hotmail.com
* http://anarchos.xs.mw/bannerad.phtml
**/
function Banner(refreshTime, width, height, altText, start, random){
 this.objName = "bannerAd" + (Banner.count++);
 eval(this.objName + "=this");
 if (!refreshTime) this.refreshTime = 5000; else this.refreshTime = refreshTime*1000;
 if (!width) this.width = 460; else this.width = width;
 if (!height) this.height = 68; else this.height = height;
 if (random == null) this.random = 1; else this.random = random;
 this.altText = altText;
 this.ads = [];
 if (start) this.currentAd = start-1; else start = null;
 this.mySize = 0;
 this.Ad = function(src, href, target, mouseover) {
  var tempImage = new Image();
  tempImage.src = src;
  this.ads[this.mySize] = new Object();
  var ad = this.ads[this.mySize];
  ad.src = src;
  if (typeof(target) == "undefined" || target == null) ad.target = "_self"; else ad.target = target;
  ad.href = href;
  ad.mouseover = mouseover;
  this.mySize++;
 }
 this.link = function(){
  var ad = this.ads[this.currentAd];
  if (ad.target == "_self"){
   location.href = ad.href;
  }
  else if (ad.target == "_blank" || ad.target == "_new"){
   open(ad.href,this.objName + "Win");
  }
  else top.frames[ad.target].location.href = ad.href;
 }
 this.showStatus = function(){
  var ad = this.ads[this.currentAd];
  if (ad.mouseover) status = ad.mouseover;
  else status = ad.href;
 }
 this.randomAd = function(){
  var n;
  do { n = Math.floor(Math.random() * (this.mySize)); } 
  while(n == this.currentAd);
  this.currentAd = n;
 }
 this.output = function(){
  var tempCode = "";
  if (this.mySize > 1){
   if (this.currentAd == null) this.randomAd();
   if (this.currentAd >= this.mySize) this.currentAd = this.mySize - 1;
   tempCode = '<a href="javascript:'+this.objName+'.link();"';
   tempCode += ' onMouseOver="' + this.objName + '.showStatus(); return true"';
   tempCode += ' onMouseOut="status=\'\';return true">';
   tempCode += '<img src="' + this.ads[this.currentAd].src + '" width="' + this.width;
   tempCode += '" name="' + this.objName + 'Img" height="' + this.height + '" ';
   if (this.altText) tempCode += 'alt="'+this.altText + '" ';
   tempCode += 'border="0" /></a>';
   document.write(tempCode);
   this.nextAd();
  } else document.write("Error: two banners must be defined for the script to work.");
 }
 this.newAd = function(){
  if (!this.random){ 
   this.currentAd++;
   if (this.currentAd >= this.mySize)
	  this.currentAd = 0;
  }
  else {
   this.randomAd();
  }
  this.nextAd();
 }
 this.nextAd = function(){
  document.images[this.objName+ 'Img'].src = this.ads[this.currentAd].src;
  setTimeout(this.objName+'.newAd()',this.refreshTime)
 }
}
Banner.count = 0;
At the head of my page I have put this (as instructed):

Code:
<script src="<A href="http://www.mysite.com/scripts/bannerad3.js">http://www.mysite.com/scripts/bannerad3.js" type="text/javascript"></script>
and then I have put the following code where I want my banners to show up :


Code:
<!--
myAd = new Banner( 14.5, 468, 60, "click here", 1, 0 );
myAd.Ad( "http://www.synthpopavenue.gr/forum/i...chameleons.gif", "http://www.synthpopavenue.gr/forum/s...?threadid=2907", null, "Chameleons in Athens" );
myAd.Ad( "http://www.synthpopavenue.gr/forum/i...le/devlive.gif", "http://www.synthpopavenue.gr/forum/showthread.php?threadid=2480",null, "De/Vision Live in Athens" );
myAd.output();
// -->
As you see I have put the time as 14.5 sec for each banner, which is exactly the duration for each banner.

The script works fine in IE. But in Opera and Netscape the frames are kinda messed up.

To see what I mean, check the banner in IE :

http://www.synthpopavenue.gr/forum/index.php?styleid=5

and then If you have Netscape or Opera try to see that page there, and you will understand what I mean about the problem I have.

Should I assume that Opera and Nerscape have problems with Javascript?
Or is it the script that has mistakes and IE just overpasses them while Opera and NS cannot?

Any ideas? Any corrections at the script?

Thanx in advance

stark