﻿var popupHrefTemplate = 'javascript:void(popup_open("{0}","{1}","{2}","{3}"));';
var linkTemplate = '<a style="line-height:0;background-color:#EEE9DE;" href="{0}" target="{1}">{2}</a>';
var imageBannerTemplate = '<img border="0" vspace="0 hspace=0" align="center" src="image.axd?pic={0}&amp;w={1}&amp;h={2}&amp;q=100" alt="{3}" width="{1}" height="{2}" />';
var flashBennerTemplate = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" id="shockwaveflash1" width="{0}" height="{1}">'
                        + '<param name="movie" value="art_images/images/{2}"> '
                        + '<param name="quality" value="high"/><param name="wmode" value="transparent"/>'
                        + '<embed wmode="transparent" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="{0}" height="{1}" src="art_images/images/{2}"></embed>'
                        + '</object>';

//
//  Return full html for the specified banner object
//
function GetBannerHtml(banner) {
    // This is flash banner
    if (banner.Src.EndsWith('.swf', true)) {
        return String.Format(flashBennerTemplate, banner.Width, banner.Height, banner.Src);
    }
    else {
        var imgHtml = String.Format(imageBannerTemplate, banner.Src,banner.Width, banner.Height, banner.Alt);
        if (banner.Target.indexOf("popup") > -1) {
            var popupHref = String.Format(popupHrefTemplate, banner.Href, banner.Alt, banner.PopupWidth, banner.PopupHeight);
            return String.Format(linkTemplate, banner.PopupHref, '', imgHtml);
        }
        else {
            return String.Format(linkTemplate, banner.Href, banner.Target, imgHtml);
        }
    }
}

function PreLoadBannerList(list) {
    if (list.length < 2) return; 
    for (i = 0; i < list.length; i++) {
        PreLoadBanner(list[i]);
        }
}
function PreLoadBanner(banner) {
    
    var preloaderDiv = document.createElement("div");
    preloaderDiv.innerHTML = GetBannerHtml(banner);
    preloaderDiv.id = "preloaderDiv" + banner.Src;
    preloaderDiv.style.display = 'none';
    preloaderDiv.style.position = 'absolute';
    document.body.appendChild(preloaderDiv);
}

function SetBanner(elmId, bannerArray) {
    var bannerHolder = $getElement(elmId);
    if (bannerHolder) {
        var currentIndex = bannerHolder.current; 
        if (typeof (currentIndex) == 'undefined') {
            var randomnumber;
            // One banner was set to this element
            if (bannerArray.length < 2) {
                randomnumber = 0;
            }
            // More than one banner
            else {
                randomnumber = Math.floor(Math.random() * bannerArray.length);
            }
            bannerHolder.current = randomnumber;
            bannerHolder.innerHTML = GetBannerHtml(bannerArray[randomnumber]);
        }
        else {
            // One banner
            if (bannerArray.length < 2) return;
            // More than one
            else {
                currentIndex = parseInt(currentIndex, 0); 
                randomnumber = Math.floor(Math.random() * bannerArray.length);
                while (randomnumber == currentIndex) {
                   
                    randomnumber = Math.floor(Math.random() * bannerArray.length);
                }
                bannerHolder.current = randomnumber;
                bannerHolder.innerHTML = GetBannerHtml(bannerArray[randomnumber]);
            }
        }
    }
}

//
//  Get the complete banner info from the server as string
//
function GetBannerInfo(bannerName) {
    var retVal = Ajax.ExecuteRequest('AjaxHandler.ashx?aid=banner', false, "bannerName=" + bannerName, null);
    return retVal;
}

//
//  Parse a string into a list of banners object
//
function ParseBanner(bennersString,arr)
{
    var ban = bennersString.split(";");
    for(i = 0 ; i < ban.length ; i++) {
        if (ban[i].Trim().length > 0) {
            arr[i] = BannerObject.Parse(ban[i]);
        }
    }
}

//
// Email object
//
function BannerObject() {
    //src, width, height, alt, href, target,popupWidth,popupHeight
    this.Src = '';
    this.Width = '';
    this.Height = '';
    this.Alt = '';
    this.Href = '';
    this.Target = '';
    this.PopupWidth = '';
    this.PopupHeight = '';
}
// Create a new BannerObject from string
BannerObject.Parse = function(arg) {
    var b = new BannerObject();
    var params = arg.split("|");
    b.Src = params[0];
    b.Width = params[1];
    b.Height = params[2];
    b.Alt = params[3];
    b.Href = params[4];
    b.Target = params[5];
    b.PopupWidth = params[6]
    b.PopupHeight = params[7];
    return b;
}

