
/*----------------------------------------------------
||Banner Ad Rotater v3.00                            ||
||Script by:  Anarchos                               ||
||URL: http://anarchos.xs.mw/                        ||
||E-mail: anarchos3@hotmail.com                      ||
||ICQ: 12007422                                      ||
||                                                   ||
||E-mail or ICQ me if you have any questions or need ||
||help setting up your banner ad rotator. Check out  ||
||my webpage every once in a while for updates to    ||
||this script.                                       ||
-----------------------------------------------------*/

function Banner(objName,refreshTime, width, height, altText, start, random){
	//Methods
		this.output = b_output //output the initial banner code
		this.Ad = b_Ad //add an ad to the ads array
		this.newAd = b_newAd //display the next ad
		this.randomAd = b_randomAd //make a random ad
		this.nextAd = b_nextAd //queue the next ad
		this.link = b_link //open the new url
		this.showStatus = b_showStatus //show the statusbar message
	//Properties
		if (!objName) this.objName = "myAd"; else this.objName = objName
		if (!refreshTime) this.refreshTime = 5000; else this.refreshTime = refreshTime*1000 //init refresh time
		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 //cycle randomly
		this.altText = altText;
		this.ads = new Array() //init ads array
		if (start) this.currentAd = start-1; else start = null;
		this.mySize = 0 //init size
}

function b_Ad(src, href, target, mouseover) {
	var tempImage = new Image()
	tempImage.src = src
	this.ads[this.mySize] = new Object()
	this.ads[this.mySize].src = src
	if (!target) this.ads[this.mySize].target = "_self"; else this.ads[this.mySize].target = target;
	this.ads[this.mySize].href = href
	this.ads[this.mySize].mouseover = mouseover
	this.mySize++;
}

function b_link(){
	var ad = this.ads[this.currentAd];
	if (ad.target == "_self"){
		window.location.href = ad.href;
		}
	else if (ad.target == "_blank" || ad.target == "_new"){
		window.open(ad.href,this.objName + "Win","location,status,scrollbars,resizable,toolbar,location,directories,menubar");
	}
	else top.frames[ad.target].location.href = ad.href;
}

function b_showStatus(){
	var ad = this.ads[this.currentAd];
	if (ad.mouseover)
		window.status = ad.mouseover;
	else window.status = ad.href;
}

function b_randomAd(){
	var n
	do { n = Math.floor(Math.random() * (this.mySize)) } 
	while(n == this.currentAd)
	this.currentAd = n
}

function b_output(){
	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.");
}

function b_newAd(){
    if (!this.random){	
		this.currentAd++;
		if (this.currentAd >= this.mySize)
		   this.currentAd = 0;
    }
	else {
	     this.randomAd();
		}
	this.nextAd();
}

function b_nextAd(){
	document.images[this.objName+ 'Img'].src = this.ads[this.currentAd].src;
	setTimeout(this.objName+'.newAd()',this.refreshTime)
}

