function BannerMgr_WriteBanner(kind, criteria) // escreve o banner no ecran
{	
	var htm = this.GetBannerHTML(kind,criteria);
	document.write(htm);	
}

function BannerMgr_GetBanner(kind, criteriaStr) //vai buscar os banners seleccionados pelo tipo de banner (0,1,2) e grupo 
{	
	var banArray = this.banners[kind];
	var possibles = new Array();
	var result = null;
	var anterior = -1;
	
	for (var i=0;i<banArray.length;i++)
	{
		var criteria = criteriaStr.split(",");		
		
		for (var j=0;j<criteria.length;j++)
		{			
			if ((criteria[j]=="all") || (banArray[i].keywords.indexOf(criteria[j]) >= 0))
			{				
				possibles[possibles.length] = banArray[i];				
			}			
		}		
	}
		
	if (possibles.length > 0)
	{
		do {
			var choice = Math.floor(Math.random()*possibles.length);	
		   }
		while (possibles[choice].idsite==nomesite);		
		result = possibles[choice];		
	}	
	return result;	
}

function BannerMgr_Switch(imageObj, kind, criteria) 
{
	var banObj = this.GetBanner(kind, criteria);
	if (banObj != null)
	{
		imageObj.src = banObj.imgSrc;
		this.SetAnchorRef(imageObj.name+"Ref",banObj.ref);
	}
}

function BannerMgr_SetAnchorRef(name,ref) //vê qual o ref do banner
{
	for (var i=0;i<document.anchors.length;i++)
	{
		if (document.anchors[i].name == name)
		{
			document.anchors[i].href = ref;			
			break;
		}
	}
}

function BannerMgr_Add(kind, keywords, idsite, imgSrc, altText, ref) //adiciona os banners do fim do fx ao array 
{	
	var banArray = this.banners[kind];
	var banObj = new Object();
	banObj.name = "ban" + banArray.length;
	banObj.keywords = keywords;
	banObj.imgSrc = imgSrc;
	banObj.altText = altText;
	banObj.ref = ref;
	banObj.idsite = idsite;
		
	banArray[banArray.length] = banObj;
}

function BannerMgr_GetBannerHTML(kind, criteria)
{	
	var banObj = this.GetBanner(kind, criteria);
	var wh = this.GetWidthHeight(kind);
	
	var htm = '';
	
	htm += '<a name="' + banObj.name + 'Ref" href="' + banObj.ref + '" target="_blank">';
	htm += '<img name="' + banObj.name + '" src="' + banObj.imgSrc + '" width=';
	htm += wh.width + ' height=' + wh.height + ' onerror="gBannerMgr.Switch(this,' + kind + ',\'local,' + criteria + '\')" ';
	htm += 'alt="' + banObj.altText + '" border=0></a>';

		// support for airplane banner
		if (kind==BannerMgr.BAN)
		{
			gBannerName = banObj.name;
			gBannerLinkName = banObj.name;
			gBannerLinkURL = banObj.ref;
		}	

	return htm;	
}

function BannerMgr_GetWidthHeight(kind) // vê qual o tamanho do banner
{
	var returnObj = new  Object();
	switch(kind)
	{
		case 0:			
			returnObj.width = 468; //BANNER NORMAL
			returnObj.height = 60;
			break;
		case 1:			
			returnObj.width = 234;  //BANNER A 50%
			returnObj.height = 30;
			break;
		case 2:
			returnObj.width = 120; //QUADRADO
			returnObj.height = 60;
			break;
		case 3:
			returnObj.width = 350; //BANNER A 75%
			returnObj.height = 45;
			break;
		case 4:
			returnObj.width = 88; //BOTAO
			returnObj.height = 31;
			break;		
	}
	return returnObj;		
}

// estas 3 próximas linhas indicam o tamanho do banner, ver função "BannerMgr_GetWidthHeight"
BannerMgr.BAN = 0;
BannerMgr.B50 = 1;
BannerMgr.BTN2X = 2;
BannerMgr.BANP = 3;

function BannerMgr() // função principal
{	
	this.banners = new Array( new Array(), new Array(),new Array() );	
	this.GetWidthHeight = BannerMgr_GetWidthHeight;
	this.WriteBanner = BannerMgr_WriteBanner;
	this.Add = BannerMgr_Add;
	this.GetBanner = BannerMgr_GetBanner;
	this.SetAnchorRef = BannerMgr_SetAnchorRef;
	this.Switch = BannerMgr_Switch;
	this.GetBannerHTML = BannerMgr_GetBannerHTML;	
}

var gBannerMgr = new BannerMgr();

// Button Size Banner Examples
// gBannerMgr.Add(BannerMgr.BTN, "genealogy", "http://www.ancestry.com/images/small_anc.gif", "Ancestry.com", "http://www.angusog.com/redir.asp?url=http://service.bfast.com/bfast/click?bfmid=5647408&siteid=33161451&bfpage=anc_small");
// gBannerMgr.Add(BannerMgr.BTN, "local,general", "http://www.angusog.com/images/FreeMarklet.gif", "Click here for details", "http://www.angusog.com/redir.asp?url=http://www.angusog.com/marklets/");

// Regular Size Banner Examples
// ATENÇÃO: não esquecer pôr um banner com o genero local para ser à prova de falhas de banners externos
gBannerMgr.Add(BannerMgr.BAN, "negocios", "pipanni", "http://www.lazybonesband.com/bannermanager/banners/ppbanner.gif", "WebMaster Pipanni - Sites excelentes a preços miseráveis!", "http://www.pipanni.pt.vu");
gBannerMgr.Add(BannerMgr.BAN, "negocios", "canilsertao", "http://www.lazybonesband.com/bannermanager/banners/csbanner.gif", "Canil Do Sertão - Fila Brasileiro", "http://home.eunet.pt/id007101");
gBannerMgr.Add(BannerMgr.BAN, "negocios", "coudelariamt", "http://www.lazybonesband.com/bannermanager/banners/cmt_banner.gif", "Coudelaria Monte Da Tarouca", "http://www.mtarouca.com/coudelaria");
gBannerMgr.Add(BannerMgr.BAN, "negocios", "insideout", "http://www.lazybonesband.com/bannermanager/banners/insideout.gif", "InSideOut - Camisas, Boxers, Pijamas", "http://www.insideout.web.pt");
gBannerMgr.Add(BannerMgr.BAN, "musica", "lazybones", "http://www.lazybonesband.com/pics/agifs/lazybanner.gif", "Lazy Bones - A melhor banda portuga de rock alternativo", "http://www.lazybonesband.com");
gBannerMgr.Add(BannerMgr.BAN, "musica", "popjamsessions", "http://www.lazybonesband.com/bannermanager/banners/popbanner.gif", "PopJamSessions - Noites temáticas, mp3's e muito mais!", "http://www.popjamsessions.com");
gBannerMgr.Add(BannerMgr.BAN, "cinema,humor", "filmesdesancados", "http://www.lazybonesband.com/bannermanager/banners/fdbanner.gif", "FilmesDesancados - Artigos, notícias, críticas e não só!", "http://www.filmesdesancados.web.pt");
gBannerMgr.Add(BannerMgr.BAN, "jogos", "srclan", "http://www.lazybonesband.com/bannermanager/banners/srbanner.gif", "Soul Reavers - Starcraft Clan", "http://www.geocities.com/sr_clan2001");
gBannerMgr.Add(BannerMgr.BAN, "cinema", "marcoscopio", "http://www.marcoscopio.com/pics/banner.gif", "MARCOscópio", "http://www.marcoscopio.com");
gBannerMgr.Add(BannerMgr.BAN, "jogos", "dustbin", "http://www.lazybonesband.com/bannermanager/banners/dustbin.gif", "Dust Bin", "http://www.dustbin.web.pt");
//gBannerMgr.Add(BannerMgr.BAN, "teste", "teste" , "http://www.lazybonesband.com/bannermanager/banners/lbflashbanners.swf", "Lazy Bones", "http://www.LazyBonesBand.com");

//BANNERS DE SITES ASSOCIADOS (não exibem o banner manager)
//gBannerMgr.Add(BannerMgr.BAN, "negocios,local", "mtarouca", "http://www.mtarouca.com/images/mtbanner.gif", "Monte da Tarouca - Personalização", "http://www.mtarouca.com");
gBannerMgr.Add(BannerMgr.BAN, "musica", "123som", "http://www.lazybonesband.com/bannermanager/banners/123sombanner.gif", "123Som", "http://www.123som.com");
gBannerMgr.Add(BannerMgr.BAN, "jogos", "hotu", "http://www.lazybonesband.com/bannermanager/banners/hotubanner.gif", "Home Of The Underdogs", "http://www.the-underdogs.org");

// BANNERS COM METADE DO TAMANHO 50% - B50
gBannerMgr.Add(BannerMgr.B50, "negocios", "pipanni", "http://www.lazybonesband.com/bannermanager/banners/50/ppbanner.gif", "WebMaster Pipanni - Sites excelentes a preços miseráveis!", "http://www.pipanni.pt.vu");
gBannerMgr.Add(BannerMgr.B50, "negocios", "canilsertao", "http://www.lazybonesband.com/bannermanager/banners/50/csbanner.gif", "Canil Do Sertão - Fila Brasileiro", "http://www.canildosertao.pt.vu");
gBannerMgr.Add(BannerMgr.B50, "negocios", "coudelariamt", "http://www.lazybonesband.com/bannermanager/banners/50/cmt_banner.gif", "Coudelaria Monte Da Tarouca", "http://www.mtarouca.com/coudelaria");
gBannerMgr.Add(BannerMgr.B50, "negocios", "insideout", "http://www.lazybonesband.com/bannermanager/banners/50/insideout.gif", "InSideOut - Camisas, Boxers, Pijamas", "http://www.insideout.web.pt");
gBannerMgr.Add(BannerMgr.B50, "musica", "lazybones", "http://www.lazybonesband.com/bannermanager/banners/50/lazybanner.gif", "Lazy Bones - A melhor banda portuga de rock alternativo", "http://www.lazybonesband.com");
gBannerMgr.Add(BannerMgr.B50, "musica", "popjamsessions", "http://www.lazybonesband.com/bannermanager/banners/50/popbanner.gif", "PopJamSessions - Noites temáticas, mp3's e muito mais!", "http://www.popjamsessions.com");
gBannerMgr.Add(BannerMgr.B50, "cinema,humor", "filmesdesancados", "http://www.lazybonesband.com/bannermanager/banners/50/fdbanner.gif", "FilmesDesancados.pt.vu - Artigos, notícias, críticas e não só!", "http://www.filmesdesancados.pt.vu");
gBannerMgr.Add(BannerMgr.B50, "jogos", "srclan", "http://www.lazybonesband.com/bannermanager/banners/50/srbanner.gif", "Soul Reavers - Starcraft Clan", "http://www.geocities.com/sr_clan2001");
gBannerMgr.Add(BannerMgr.B50, "cinema", "marcoscopio", "http://www.lazybonesband.com/bannermanager/banners/50/marcobanner.gif", "MARCOscópio", "http://www.marcoscopio.com");
gBannerMgr.Add(BannerMgr.B50, "jogos", "dustbin", "http://www.lazybonesband.com/bannermanager/banners/50/dustbin.gif", "Dust Bin", "http://www.dustbin.web.pt");
gBannerMgr.Add(BannerMgr.B50, "musica", "123som", "http://www.lazybonesband.com/bannermanager/banners/50/123sombanner.gif", "123Som", "http://www.123som.com");
gBannerMgr.Add(BannerMgr.B50, "jogos", "hotu", "http://www.lazybonesband.com/bannermanager/banners/50/hotubanner.gif", "Home Of The Underdogs", "http://www.the-underdogs.org");
