//Date: 22 feb 2012
//Week: 8
var today = new Date();
var now = today.getTime();

var bannerIds = new Array();
var bannerTitles = new Array();
var pictures = new Array();
var percentages = new Array();
var widths = new Array();
var heights = new Array();
var altTexts = new Array();
var params = new Array();
var urlLinks = new Array();

var bcnt = 0;
bannerIds[bcnt] = "2607";
bannerTitles[bcnt] = "";
pictures[bcnt] = "/3/banner/00/26/07/bubbledeck_468x60.gif";
percentages[bcnt] = 33;
widths[bcnt] = 0;
heights[bcnt] = 60;
altTexts[bcnt] = "BubbleDeck - de enige bollenplaatvloer";
params[bcnt] = "";
urlLinks[bcnt++] = "http://www.bubbledeck.nl/";
bannerIds[bcnt] = "2829";
bannerTitles[bcnt] = "Man & Machine 468 x 60 be";
pictures[bcnt] = "/3/banner/00/28/29/new-seat_468x60_nl-emea.jpg";
percentages[bcnt] = 33;
widths[bcnt] = 468;
heights[bcnt] = 60;
altTexts[bcnt] = "AutoCAD LT 2012 Rebate";
params[bcnt] = "";
urlLinks[bcnt++] = "http://www.2dcad.info/CAD_2D_AutoCAD_LT_Promoties.html";
bannerIds[bcnt] = "3559";
bannerTitles[bcnt] = "Casius BE";
pictures[bcnt] = "/3/banner/00/35/59/casius_be_486x60.gif";
percentages[bcnt] = 33;
widths[bcnt] = 468;
heights[bcnt] = 60;
altTexts[bcnt] = "Casius... de kortste weg naar de beste vakman! Ontvang gratis en eenvoudig offertes voor uw klus of verbouwing.";
params[bcnt] = "";
urlLinks[bcnt++] = "http://www.casius.be";
bannerIds[bcnt] = "3621";
bannerTitles[bcnt] = "Man & Machine 120x600.be";
pictures[bcnt] = "/3/banner/00/36/21/banner_120x600_nl-emea.jpg";
percentages[bcnt] = 100;
widths[bcnt] = 120;
heights[bcnt] = 600;
altTexts[bcnt] = "AutoCAD LT 2012";
params[bcnt] = "";
urlLinks[bcnt++] = "http://www.2dcad.info/index-nl.html";


var swfs = new Array();
for (var i = 0; i < bcnt; i++) {
    swfs[i] = null;
}

function getBookedBannerIds(position) {
    var bookedBannerIds = new Array();
    if (position == null) position = "";
    if (position == "000035") {
        bookedBannerIds[0] = "2607";
        bookedBannerIds[1] = "2829";
        bookedBannerIds[2] = "3559";
    }
    if (position == "000053") {
        bookedBannerIds[0] = "3621";
    }
    return bookedBannerIds;
}

var usedPositions = new Array();
var currentBannerIndexes = new Array();
var MINPOSITIONID = 35;
var MAXPOSITIONID = 53;

function bannerClickCount(positionStr) {
    if (positionStr) {
        var positionIndex = -1;
        for (var i = 0; ((i < usedPositions.length) && (positionIndex == -1)); i++) {
            if (usedPositions[i] == positionStr) positionIndex = i;
        }
        if (positionIndex >= 0) {
           docu_stats_clicktru_no_time('BANNER', bannerIds[currentBannerIndexes[positionIndex]], null, 3);
        }
    }
}

function bannerViewCount(bannerIndex) {
    docu_stats_bannerview_no_time(bannerIds[bannerIndex], null, 3);
}

function bannerViewCountByBannerId(bannerId) {
    docu_stats_bannerview_no_time(bannerId, null, 3);
}

function showBanner(position, bannerIndex) {
    //alert(position + " banner " + bannerIndex);
    if (document.getElementById('AdPosition' + position)) {
        document.getElementById('AdPosition' + position).style.display = "";
        if (altTexts[bannerIndex] == "Flash") {
            // Flash banner
            if (swfs[bannerIndex] == null) {
                var bannerWidth = widths[bannerIndex];
                if (bannerWidth == 0) bannerWidth = 468;
                var bannerHeight = heights[bannerIndex];
                if (bannerHeight == 0) bannerHeight = 60;
                swfs[bannerIndex] = new SWFObject(pictures[bannerIndex], "pullContent", bannerWidth, bannerHeight, "8");
                swfs[bannerIndex].addParam("wmode", "opaque");
                if (params[bannerIndex] != "") {
                    var parameters = params[bannerIndex] + ",";
                    var commaIndex = parameters.indexOf(",");
                    while (commaIndex != -1) {
                        var firstPart = parameters.substring(0, commaIndex);
                        var equalsIndex = parameters.indexOf("=");
                        if (equalsIndex != -1) {
                            var param = firstPart.substring(0, equalsIndex);
                            var value = firstPart.substring(equalsIndex + 1, firstPart.length);
                            swfs[bannerIndex].addVariable(param, value);
                        }
                        parameters = parameters.substring(commaIndex + 1, parameters.length);
                        commaIndex = parameters.indexOf(",");
                    }
                }
            }
            if (document.getElementById('FlashBanner' + position)) {
	               if (document.getElementById('AdImage' + position)) document.getElementById('AdImage' + position).style.display = "none";
                if (document.getElementById('BannerText' + position)) document.getElementById('BannerText' + position).style.display = "none";
                swfs[bannerIndex].write('FlashBanner' + position);
                document.getElementById('FlashBanner' + position).style.display = "";
            }
        } else {
            if (document.getElementById('AdLink' + position)) document.getElementById('AdLink' + position).href = urlLinks[bannerIndex];
            if (pictures[bannerIndex] == "") {
                // Text link
                if (document.getElementById('AdLink' + position)) document.getElementById('AdLink' + position).firstChild.nodeValue = bannerTitles[bannerIndex];
                if (document.getElementById('BannerText' + position)) {
	                   if (document.getElementById('AdImage' + position)) document.getElementById('AdImage' + position).style.display = "none";
                	   if (document.getElementById('FlashBanner' + position)) document.getElementById('FlashBanner' + position).style.display = "none";
                    document.getElementById('BannerText' + position).firstChild.nodeValue = altTexts[bannerIndex];
                    document.getElementById('BannerText' + position).style.display = "";
                    document.getElementById('BannerText' + position).blur();
                }
            } else {
                // Image banner
                var pictureName = pictures[bannerIndex];
                if (pictureName.indexOf("?") == -1) pictureName += "?ord=" + now;
                if (params[bannerIndex] != "") pictureName += "&" + params[bannerIndex];
                if (document.getElementById('AdImage' + position)) {
                	   if (document.getElementById('FlashBanner' + position)) document.getElementById('FlashBanner' + position).style.display = "none";
                	   if (document.getElementById('BannerText' + position)) document.getElementById('BannerText' + position).style.display = "none";
                    document.getElementById('AdImage' + position).src = pictureName;
                    document.getElementById('AdImage' + position).alt = altTexts[bannerIndex];
                    document.getElementById('AdImage' + position).title = altTexts[bannerIndex];
                    document.getElementById('AdImage' + position).style.display = "";
                    document.getElementById('AdImage' + position).blur();
                }
            }
        }
        bannerViewCount(bannerIndex);
    }
}

function drawBanner(bannerIndexes) {
    var selectedBannerIndex = -1;
    var maxPercentage = 0;
    for (var i = 0; i < bannerIndexes.length; i++) {
        maxPercentage += percentages[bannerIndexes[i]];
    }
    if (maxPercentage > 100) maxPercentage = 100;
    var randomNumber = Math.floor(Math.random() * maxPercentage); // generates a random integer between 0 and maxPercentage - 1 (0 and maxPercentage -1 included)
    var start = 0;
    var end = 0;
    for (var i = 0; ((i < bannerIndexes.length) && (start < 100) && (selectedBannerIndex == -1)); i++) {
        end += percentages[bannerIndexes[i]];
        if ((randomNumber >= start) && (randomNumber < end)) {
            selectedBannerIndex = bannerIndexes[i];
        }
        start = end;
    }
    return selectedBannerIndex;
}

function rotateBanners() {
    for (var i = MINPOSITIONID; i <= MAXPOSITIONID; i++) {
        var positionStr = '' + i;
        while (positionStr.length < 6) {
            positionStr = '0' + positionStr;
        }
        var bookedBannerIds = getBookedBannerIds(positionStr);
        if (bookedBannerIds.length > 1) {	// Rotation is only possible when there's more than one banner for a position
            var bookedBannerIndexes = new Array(bookedBannerIds.length);
            for (var j = 0; j < bookedBannerIds.length; j++) {
                for (var k = 0; ((k < bannerIds.length) && (bookedBannerIndexes[j] == null)); k++) {
                    if (bookedBannerIds[j] == bannerIds[k]) bookedBannerIndexes[j] = k;
                }
            }
	           var positionIndex = -1;
	           for (var j = 0; ((j < usedPositions.length) && (positionIndex == -1)); j++) {
	               if (usedPositions[j] == positionStr) positionIndex = j;
	           }
	           if (positionIndex >= 0) {
	        	   var currentBannerIndex = currentBannerIndexes[positionIndex];	// Current banner for the position
	        	   if (currentBannerIndex >= 0) {
	        	       var indexInBookedArray = -1;
	        		   for (var j = 0; ((j < bookedBannerIndexes.length) && (indexInBookedArray == -1)); j++) {
			               if (bookedBannerIndexes[j] == currentBannerIndex) indexInBookedArray = j;
			           }
			           if (indexInBookedArray >= 0) {
			        	   var nextBookedBannerIndex = indexInBookedArray + 1;
			        	   if (nextBookedBannerIndex > (bookedBannerIndexes.length - 1)) nextBookedBannerIndex = 0;
			        	   var newBannerIndex = bookedBannerIndexes[nextBookedBannerIndex];
			               showBanner(positionStr, newBannerIndex);
		                   currentBannerIndexes[positionIndex] = newBannerIndex;
	           		   }
	           	   }
	           }
	       }
    }
}

function startBannerShow() {
 setTimeout("startBannerShowWithDelay()", 250);
}
function startBannerShowWithDelay() {
    var usedCounter = 0;
    for (var i = MINPOSITIONID; i <= MAXPOSITIONID; i++) {
        var positionStr = '' + i;
        while (positionStr.length < 6) {
            positionStr = '0' + positionStr;
        }
        var bookedBannerIds = getBookedBannerIds(positionStr);
        if (bookedBannerIds.length > 0) {
            var selectedBannerIndex = -1;
            var preferredBannerId = -1;
            // Look up start banner on page
            var startBannerDiv = document.getElementById('startbannerDefinition');
            if (startBannerDiv) {
            	   if (startBannerId) {
                    preferredBannerId = startBannerId;
                }
            }
            // Look up indexes in banner array
            var bookedBannerIndexes = new Array(bookedBannerIds.length);
            for (var j = 0; j < bookedBannerIds.length; j++) {
                for (var k = 0; ((k < bannerIds.length) && (bookedBannerIndexes[j] == null)); k++) {
                    if (bookedBannerIds[j] == bannerIds[k]) {
                        bookedBannerIndexes[j] = k;
                        if (bookedBannerIds[j] == preferredBannerId) selectedBannerIndex = k;
                    }
                }
            }
            if (selectedBannerIndex < 0) selectedBannerIndex = drawBanner(bookedBannerIndexes);
            if (selectedBannerIndex >= 0) {
                showBanner(positionStr, selectedBannerIndex);
                usedPositions[usedCounter] = positionStr;
                currentBannerIndexes[usedCounter] = selectedBannerIndex;
                usedCounter++;
            }
        }
    }
    setInterval("rotateBanners()", 12000);
}


