if (!mmbo)
	var mmbo = [];

/*
 oImg - 'b_oImg'
 pimgObj - 'b_imgObj'
 pflashID - 'b_themovie'
 bannerID - ID of banner or -1
 imageUrl - url of bannerimage with p=... parameter
 */
 
function MMBanner(pbannerID, pimgDisplayType, poImg, pimgObj, pflashID, ptimeout, 
	pimageLink, pclickUrl, pimageUrl, pfilterNonIE, pimageDataArray)
{
	this.id = mmbo.length;
	mmbo[this.id] = this;
	this.bannerID = pbannerID;
	this.imgDisplayType = pimgDisplayType;
	this.bannerImgID = '0';
	this.oImg = document.getElementById(poImg);
	this.imgObj = document.getElementById(pimgObj);
	this.imageLink = document.getElementById(pimageLink);
	this.imgID = '0';
	this.altImgID = '0';
	this.linkTarget = 'S';
	this.altTekst = '';
	this.hasUrl = '';
	this.timeout = ptimeout;
	this.clickUrl = pclickUrl;
	this.imageUrl = pimageUrl;
	this.flashID = pflashID;
	this.counter = 0;
	this.filterNonIE = pfilterNonIE;
	this.endImage = '';
	this.currentImageIndex = 0;
	
	this.parsingIndex = 0;
	this.totalWeight = 0;
	for (var i=0; i<pimageDataArray.length; i++)
		this.totalWeight += pimageDataArray[i][4];
	
	this.getSimpleIndex = function(nr)
	{
		if (nr < 0 || nr >= this.totalWeight)
			return 0;
		for (var i=0; i<pimageDataArray.length; i++)
		{
			if (nr < pimageDataArray[i][4])
				return i;
			nr -= pimageDataArray[i][4];
		}
		return 0;
	}
	
	this.getServerImageData = function(objType)
	{	
		//get next image to show
		var i;
		if (this.imgDisplayType == "sort")
		{		
			i = this.currentImageIndex = this.getSimpleIndex((this.parsingIndex++) % this.totalWeight);
		}
		else
		{
			i = this.currentImageIndex = this.getSimpleIndex(Math.floor(Math.random() * this.totalWeight));
		}		
		
		this.bannerImgID = pimageDataArray[i][0];		
		this.imgID = pimageDataArray[i][1];
		this.altImgID = pimageDataArray[i][2];
		this.altTekst = pimageDataArray[i][3];
		this.weight = pimageDataArray[i][4];
		this.linkTarget = pimageDataArray[i][5];
		this.hasUrl = pimageDataArray[i][6];
		
		if (objType=='imageBanner')
		{	
			if (this.imageLink != null){
				if(this.hasUrl==1)
				{
					this.imageLink.href = this.clickUrl + "&i=" + this.bannerImgID;				
					this.imageLink.target = this.getLinkTarget(this.linkTarget);	
					if (this.oImg != null)
						this.oImg.style.cursor='pointer';
				}
				else
				{
					//if the image has no link then it should not react to clicking
					this.imageLink.href='javascript://;';
					this.imageLink.target = '';
					if (this.oImg != null)
						this.oImg.style.cursor='default';
				}
			}
			if (this.oImg != null){
				this.oImg.alt = this.altTekst;
				this.oImg.title = this.altTekst;
			}
		}
	}
	
	this.getLinkTarget = function(lTarget)
	{
		switch(lTarget)
		{
			case 'N' : return '_blank';
			case 'T' : return '_top';
			default  : return '_self';
		}
	}

	this.getImage = function()
	{
		// counter is different each time to prevent browser caching of url		
		if(this.imgID==0)
			this.getServerImageData('imageBanner');			
		
		return this.imageUrl + "&im="+ this.imgID + "&c=" + this.counter++;
	}
	

	this.initBanner = function()
	{	
		//since many effects work only for ie we have to split the browsers in 2 parts: ie and the others
		this.oImg.src = this.getImage();
		
		if (this.timeout != 0)
		{
    		this.setTimer(1);
		}
	}
	
	this.mkTransitionNonIE = function()
	{
		this.endImage = this.getImage();
		this.getServerImageData('imageBanner');
		eval(this.filterNonIE);		
		this.setTimer(1);
	}
	
    
    this.checkBrowser = function(string)
	{
		var detect = navigator.userAgent.toLowerCase();
		place = detect.indexOf(string);
		return place != -1;
	}
	
	this.changeFlash = function()
	{	
		this.getServerImageData('swfBanner');
		var flashSrc = this.getImage();
	
		var txt = "";
		txt += "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' id='"+this.flashID+"' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0'>";
		txt += "<param name='quality' value='high'>";
		txt += "<param name='wmode' value='transparent'/>";
		txt += "<param name='movie' value='" + flashSrc + "'> ";
		txt += "<param name='FlashVars' value='clickUrl="+this.clickUrl+"&i="+this.bannerImgID+"' />"		
		txt += "<embed src='" + flashSrc + "' FlashVars='clickUrl="+this.clickUrl+"&i="+this.bannerImgID+"' quality='high' type='application/x-shockwave-flash' name='"+this.flashID+"' id='"+this.flashID+"' pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?p1_prod_version=shockwaveflash' wmode='transparent'></embed>";
		txt += "</object>";	
		
		this.imgObj.innerHTML = txt;
		this.setTimer(2);
	}
	
	this.setTimer = function(tType)
	{		
	    if(this.timeout > 0)
	    {
    	    setTimeout('MMBannerTimeout('+this.id+','+tType+')', this.timeout);
    	}
	}
}

function MMBannerTimeout(id, toType)
{
	if (mmbo[id] == null)
		return;
	switch (toType)
	{
		case 1:
			mmbo[id].mkTransitionNonIE();
			break;
		case 2:
			mmbo[id].changeFlash();
			break;
	}
}

function getBannerObj(imgObj)
{
	if( imgObj.getAttribute('bannerObj')==null )	
		return;
	return eval(imgObj.getAttribute('bannerObj'));
}

function getMouseOverAction(obj)
{
	bannerVar = getBannerObj(obj);
	if(bannerVar!=null)
		if (bannerVar.altImgID!='0' && bannerVar.altImgID!='')
		{
			obj.src = bannerVar.imageUrl + "&mo="+bannerVar.altImgID + "&c=" + bannerVar.counter++;				
		}
}

function imageLoaded(obj)
{	
	bannerVar = getBannerObj(obj);	
	if( bannerVar!=null )
	{
		bannerVar.imgObj.style.width = obj.width;
		bannerVar.imgObj.style.height = obj.height;
	}
}

function getMouseOutAction(obj)
{
	bannerVar = getBannerObj(obj);	
	if(bannerVar!=null)
		if (bannerVar.altImgID!='0' && bannerVar.altImgID!='')
		{
			obj.src = bannerVar.imageUrl + "&mo="+bannerVar.imgID + "&c=" + bannerVar.counter++;
		}
}
