﻿// IMPORTANT: requires imagerotation_bannerinfo.js loaded BEFORE this file

var posImg = [];
var posLen = [];
var links = []; // link addresses
var img = [];  // preload image array
var alts = []; // link titles
var len;  // length
var targetWindow;
var timeBasis; // in seconds

// Array.indexOf hack for IE!!!!
if (!Array.indexOf) {
	Array.prototype.indexOf = function(obj) {
		for (var i = 0; i < this.length; i++) {
			if(this[i] == obj) {
				return i;
			}
		}
		return -1;
	}
}

// check whether the requested position is enabled (defined)
function isPositionEnabled(pos) {
	if (-1 != positions.indexOf(pos.toUpperCase()))
		return true;
	return false;
}

// preload images only if they will be needed
for (i = 0; i < positions.length; i++) {
	posImg[positions[i]] = []; // preloading array
	posLen[positions[i]] = (posLinks[positions[i]].length + posImgs[positions[i]].length + posAlts[positions[i]].length) / 3; // length
	for (j = 0; j < posImgs[positions[i]].length; j++){
		posImg[positions[i]][j] = new Image();
		posImg[positions[i]][j].src = posImgs[positions[i]][j];
	}
}

// to be called from showAd and updateAd, this function selects the Ad properties according to its position (if that position is enabled)
function selectPosition(pos) {
	pos = pos.toUpperCase();
	if (isPositionEnabled(pos)) {
		links = posLinks[pos];
		img = posImg[pos];
		alts = posAlts[pos];
		len = posLen[pos];
		target = posTarget[pos];
		timeBasis = posTimeBasis[pos];
		return true;
	}
	return false;
}

// shows a random Ad in the requested position, and sets its to be updated after a given time
function showAd(pos, bannerWidth, bannerHeight){
	if (!selectPosition(pos)) {
		document.write('<img src="' + spacerURL + '" alt="" width="' + bannerWidth + '" height="' + bannerHeight + '">');
		return false;
	}
	if ((len * 3) % 3 != 0) {
		document.write('<img src="' + spacerURL + '" alt="" width="' + bannerWidth + '" height="' + bannerHeight + '">');
		return false;
	}
	var rand = Math.floor(len * Math.random());
	document.write('<a href="' + links[rand] + '" title="' + alts[rand] + '" target="' + target + '" id="myAd_' + pos.toLowerCase() + '">');
	document.write('<img src="' + img[rand].src + '" width="' + bannerWidth + '" height="' + bannerHeight + '" alt="' + alts[rand] + '" border="0" name="myAdImg_' + pos.toLowerCase() + '"></a>');
	if (timeBasis > 0) {
		setInterval("updateAd('" + pos + "')", timeBasis * 1000);
	}
}

// updates the banner in the requested position with another one, randomly selected
function updateAd(pos) {
	if (!selectPosition(pos)) {
		return false;
	}
	var r = Math.floor(len * Math.random());
    if (!document.links) return false;
    for (i = 0; i < document.links.length; i++) {
		if (document.links[i].id == "myAd_" + pos.toLowerCase()) {
			if (document.links[i].href != links[r]) {
				document.links[i].href = links[r];
				document.links[i].title = alts[r];
				document.images['myAdImg_' + pos.toLowerCase()].src = img[r].src;
				document.images['myAdImg_' + pos.toLowerCase()].alt = alts[r];
			} else {
				updateAd(pos);
			}
		}
	}
}