
var bannerType_text = 1;
var bannerType_graphic = 2;
var bannerType_flash = 3;
var bannerType_text_small = 4;

var bannerAction_buy_now = 1;
var bannerAction_learn_more = 2;

DriverBannerAd = function(image, text, url, keywords, type, width, height, tracking, action) {
	this.image = image;
	this.text = text;
	this.url = url;
	this.keywords = keywords;
	this.type = type;
	this.width = width;
	this.height = height;
	this.tracking = tracking;
	this.action = action;
}

//THIS IS THE ROOT URL WHERE ALL BANNERS LIVE.
var driverDownloadRootURL = "http://www.nvidia.com/content/DriverDownload/";
var bannerRootURL = "/content/DriverDownload/Banners/";

//THERE MUST BE AN ARRAY FOR EACH SUB-FOLDER IN THE /Banners/ FOLDER.
//FOR EACH IMAGE IN THE SUB-FOLDER, ADD A new Banner(image, url) ITEM TO THE ARRAY
var arrayengus1 = new Array(
	new DriverBannerAd("gf_8800.jpg", "Want to maximize your graphics performance? Looking for extreme overclocking?<br><b>Then upgrade to a second graphics card to run NVIDIA&reg; SLI<sup>TM</sup> technology today!</b>", "http://www.nvidia.com/page/geforce8.html", "", 1, null, null, "", bannerAction_learn_more),
	new DriverBannerAd("gf_8800.jpg", "Want to maximize your graphics performance? Looking for extreme overclocking?<br><b>Then upgrade your system with one or two NVIDIA&reg; GeForce&reg; SLI-Ready graphics cards today!</b>", "http://www.nvidia.com/page/geforce8.html", "", 1, null, null, "", bannerAction_learn_more),
	new DriverBannerAd("nv_case.jpg", "Want a certified NVIDIA&reg; SLI-Ready computer case?<br><b>Check out the custom NVIDIA-branded Cooler Master Stacker 830 Evolution PC Gaming Case today!</b>", "http://store.nvidia.com/servlet/ControllerServlet?Action=DisplayPage&Env=BASE&Locale=en_US&SiteID=nvidia&id=ProductDetailsPage&productID=58708300", "", 1, null, null, "", bannerAction_learn_more)
);

// PAGE 2 //

var arrayengus3 = new Array(
	new DriverBannerAd("driver_promo_opc.jpg", "Want your PC to be faster? There's a Better Way to Spend your PC Budget. Learn More.", "http://www.nvidia.com/object/balancedpc.html", "", bannerType_graphic, null, null, "", "")
);

var arrayengus4 = new Array(
	new DriverBannerAd("graphicsplus_promo.jpg", "Graphics Plus", "http://www.nvidia.com/content/graphicsplus/us/index.html", "", bannerType_graphic, null, null, "", "")
);

var arrayengus5 = new Array(
	new DriverBannerAd("driver_promo_bfp.jpg", "Maximize your AutoCAD Productivity. NVIDIA&reg; Quadro&reg;. Built for Professionals&trade;", "http://www.nvidia.com/object/builtforprofessionals.html", "quadro", bannerType_graphic, null, null, "", "")
);

var quadrous1 = new Array(
	new DriverBannerAd("bfp_promo.jpg", "Maximize your AutoCAD Productivity. NVIDIA&reg; Quadro&reg;. Built for Professionals&trade;", "http://www.nvidia.com/object/builtforprofessionals.html", "", bannerType_graphic, null, null, "", "")
);

var arrayde1 = new Array(
	new DriverBannerAd("Alternate_drivers_18052007_de.swf", "", "", "", 3, 473, 152, "Alternate_Zotec_promo18052007", null)
);

var arrayuk1 = new Array(
	new DriverBannerAd("scan_contest.gif", "Win 2 NVIDIA GeForce 8600 GTS Cards", "http://www.scan.co.uk/win8600/?NV=win8600", "", 2, null, null, "", null)
);

//THIS IS THE FUNCTION THE BANNER PARTICIPANTS MUST CALL IN THEIR PAGES.
function DriverBannerAd_init(divID, bannerFolder, keyWord)
{
	var bannerDiv;
	var randomBanner = null;
	var randomNumber;
	
	bannerDiv = document.getElementById(divID);
	
	//THERE MUST BE A SWITCH CASE FOR EACH SUB-FOLDER IN THE /Banners/ FOLDER.
	//GENERATE A RANDOM NUMBER BETWEEN 0 AND THE NUMBER OF IMAGES IN THE SUB-FOLDER.
	//CREATE THE RANDOM BANNER OBJECT.
	//NOTE: The code is basically the same for every case.  The only difference is the array that is used.
	
	
	if(keyWord != null && keyWord != "")
	{
		var keyWordBannerArray = new Array();
		
		switch(bannerFolder)
		{
			case "en-us1":
				for(var i = 0; i < arrayengus1.length; i++)
				{
					if(arrayengus1[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayengus1[i]);
						//randomBanner = new DriverBannerAd(arrayengus1[i].image, arrayengus1[i].text, arrayengus1[i].url, arrayengus1[i].keywords);
					}
				}
				break;
			case "en-us2":
				for(var i = 0; i < arrayengus2.length; i++)
				{
					if(arrayengus2[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayengus2[i]);
					}
				}
				break;
			case "en-us3":
				for(var i = 0; i < arrayengus3.length; i++)
				{
					if(arrayengus3[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayengus3[i]);
					}
				}
				break;
			case "en-us4":
				for(var i = 0; i < arrayengus4.length; i++)
				{
					if(arrayengus4[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayengus4[i]);
					}
				}
				break;
			case "en-us5":
				for(var i = 0; i < arrayengus5.length; i++)
				{
					if(arrayengus5[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayengus5[i]);
					}
				}
				break;
			case "quadro-us1":
				for(var i = 0; i < quadrous1.length; i++)
				{
					if(quadrous1[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(quadrous1[i]);
					}
				}
				break;
			case "de1":
				for(var i = 0; i < arrayde1.length; i++)
				{
					if(arrayde1[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayde1[i]);
					}
				}
				break;
			case "en-uk1":
				for(var i = 0; i < arrayde1.length; i++)
				{
					if(arrayde1[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayuk1[i]);
					}
				}
				break;
			default:
				for(var i = 0; i < arrayengus1.length; i++)
				{
					if(arrayengus1[i].keywords.indexOf(keyWord) > -1)
					{
						keyWordBannerArray.push(arrayengus1[i]);
					}
				}
				break;
		}
		
		if(keyWordBannerArray.length > 0)
		{
			randomNumber = Math.round(Math.random()*(keyWordBannerArray.length -1));
			randomBanner = new DriverBannerAd(keyWordBannerArray[randomNumber].image, keyWordBannerArray[randomNumber].text, keyWordBannerArray[randomNumber].url, keyWordBannerArray[randomNumber].keywords, keyWordBannerArray[randomNumber].type, keyWordBannerArray[randomNumber].width, keyWordBannerArray[randomNumber].height, keyWordBannerArray[randomNumber].tracking, keyWordBannerArray[randomNumber].action);
		}
	}
	
	if(randomBanner == null)
	{
		switch(bannerFolder)
		{
			case "en-us1":
				randomNumber = Math.round(Math.random()*(arrayengus1.length -1));
				randomBanner = new DriverBannerAd(arrayengus1[randomNumber].image, arrayengus1[randomNumber].text, arrayengus1[randomNumber].url, arrayengus1[randomNumber].keywords, arrayengus1[randomNumber].type, arrayengus1[randomNumber].width, arrayengus1[randomNumber].height, arrayengus1[randomNumber].tracking, arrayengus1[randomNumber].action);
				break;
			case "en-us2":
				randomNumber = Math.round(Math.random()*(arrayengus2.length -1));
				randomBanner = new DriverBannerAd(arrayengus2[randomNumber].image, arrayengus2[randomNumber].text, arrayengus2[randomNumber].url, arrayengus2[randomNumber].keywords, arrayengus2[randomNumber].type, arrayengus2[randomNumber].width, arrayengus2[randomNumber].height, arrayengus2[randomNumber].tracking, arrayengus2[randomNumber].action);
				break;
			case "en-us3":
				randomNumber = Math.round(Math.random()*(arrayengus3.length -1));
				randomBanner = new DriverBannerAd(arrayengus3[randomNumber].image, arrayengus3[randomNumber].text, arrayengus3[randomNumber].url, arrayengus3[randomNumber].keywords, arrayengus3[randomNumber].type, arrayengus3[randomNumber].width, arrayengus3[randomNumber].height, arrayengus3[randomNumber].tracking, arrayengus3[randomNumber].action);
				break;
			case "en-us4":
				randomNumber = Math.round(Math.random()*(arrayengus4.length -1));
				randomBanner = new DriverBannerAd(arrayengus4[randomNumber].image, arrayengus4[randomNumber].text, arrayengus4[randomNumber].url, arrayengus4[randomNumber].keywords, arrayengus4[randomNumber].type, arrayengus4[randomNumber].width, arrayengus4[randomNumber].height, arrayengus4[randomNumber].tracking, arrayengus4[randomNumber].action);
				break;
			case "en-us5":
				randomNumber = Math.round(Math.random()*(arrayengus5.length -1));
				randomBanner = new DriverBannerAd(arrayengus5[randomNumber].image, arrayengus5[randomNumber].text, arrayengus5[randomNumber].url, arrayengus5[randomNumber].keywords, arrayengus5[randomNumber].type, arrayengus5[randomNumber].width, arrayengus5[randomNumber].height, arrayengus5[randomNumber].tracking, arrayengus5[randomNumber].action);
				break;
			case "quadro-us1":
				randomNumber = Math.round(Math.random()*(quadrous1.length -1));
				randomBanner = new DriverBannerAd(quadrous1[randomNumber].image, quadrous1[randomNumber].text, quadrous1[randomNumber].url, quadrous1[randomNumber].keywords, quadrous1[randomNumber].type, quadrous1[randomNumber].width, quadrous1[randomNumber].height, quadrous1[randomNumber].tracking, quadrous1[randomNumber].action);
				break;
			case "de1":
				randomNumber = Math.round(Math.random()*(arrayde1.length -1));
				randomBanner = new DriverBannerAd(arrayde1[randomNumber].image, arrayde1[randomNumber].text, arrayde1[randomNumber].url, arrayde1[randomNumber].keywords, arrayde1[randomNumber].type, arrayde1[randomNumber].width, arrayde1[randomNumber].height, arrayde1[randomNumber].tracking, arrayde1[randomNumber].action);
				break;
			case "en-uk1":
				randomNumber = Math.round(Math.random()*(arrayuk1.length -1));
				randomBanner = new DriverBannerAd(arrayuk1[randomNumber].image, arrayuk1[randomNumber].text, arrayuk1[randomNumber].url, arrayuk1[randomNumber].keywords, arrayuk1[randomNumber].type, arrayuk1[randomNumber].width, arrayuk1[randomNumber].height, arrayuk1[randomNumber].tracking, arrayuk1[randomNumber].action);
				break;
			default:
				bannerFolder = "en-us1";
				randomNumber = Math.round(Math.random()*(arrayengus1.length -1));
				randomBanner = new DriverBannerAd(arrayengus1[randomNumber].image, arrayengus1[randomNumber].text, arrayengus1[randomNumber].url, arrayengus1[randomNumber].keywords, arrayengus1[randomNumber].type, arrayengus1[randomNumber].width, arrayengus1[randomNumber].height, arrayengus1[randomNumber].tracking, arrayengus1[randomNumber].action);
				break;
		}
	}
	
	if(bannerDiv == null || bannerDiv == "Undefined" || bannerFolder == null || bannerFolder.length == 0 || randomBanner == null || randomBanner == 'undefined')
	{
		return;
	}
	else
	{
		if(randomBanner.url != 'undefined' && randomBanner.image != 'undefined')
		{
			bannerDiv.innerHTML = DriverBannerAd_GetHTML(randomBanner, bannerFolder);
			return;
		}
		else
		{
			return;
		}
	}
}

function DriverBannerAd_GetHTML(bannerAd, bannerFolder)
{
	var innerHTML = "";
	var bannerImageURL = bannerRootURL + bannerFolder + "/" + bannerAd.image;
	
	var buyNowImageURL = driverDownloadRootURL + "btn_buy_now.jpg";
	var buyNowOnImageURL = driverDownloadRootURL + "btn_buy_now_on.jpg";
	
	var buyNowImageGreyURL = driverDownloadRootURL + "btn_buy_now_grey_off.jpg";
	var buyNowOnImageGreyURL = driverDownloadRootURL + "btn_buy_now_grey_on.jpg";
	
	var learnImageURL = driverDownloadRootURL + "btn_learn_off.jpg";
	var learnOnImageURL = driverDownloadRootURL + "btn_learn_on.jpg";
	
	var learnImageGreyURL = driverDownloadRootURL + "btn_learn_grey_off.jpg";
	var learnOnImageGreyURL = driverDownloadRootURL + "btn_learn_grey_on.jpg";
	
	var actionHTML = "";
	
	if(bannerAd.action != null)
	{
		if(bannerAd.action == bannerAction_buy_now && bannerAd.type == bannerType_text)
		{
			actionHTML = "<a href='" + bannerAd.url + "' target='_blank'><img alt='Buy Now' src='" + buyNowImageURL + "' border='0' target='_blank' onmouseover='javascript: this.src = \"" + buyNowOnImageURL + "\";' onmouseout='javascript: this.src = \"" + buyNowImageURL + "\";'><\/a>";
		}
		else if(bannerAd.action == bannerAction_learn_more && bannerAd.type == bannerType_text)
		{
			actionHTML = "<a href='" + bannerAd.url + "' target='_blank'><img alt='Learn More' src='" + learnImageURL + "' border='0' target='_blank' onmouseover='javascript: this.src = \"" + learnOnImageURL + "\";' onmouseout='javascript: this.src = \"" + learnImageURL + "\";'><\/a>";
		}
		else if(bannerAd.action == bannerAction_buy_now && bannerAd.type == bannerType_text_small)
		{
			actionHTML = "<a href='" + bannerAd.url + "' target='_blank'><img alt='Buy Now' src='" + buyNowImageGreyURL + "' border='0' target='_blank' onmouseover='javascript: this.src = \"" + buyNowOnImageGreyURL + "\";' onmouseout='javascript: this.src = \"" + buyNowImageGreyURL + "\";'><\/a>";
		}
		else if(bannerAd.action == bannerAction_learn_more && bannerAd.type == bannerType_text_small)
		{
			actionHTML = "<a href='" + bannerAd.url + "' target='_blank'><img alt='Learn More' src='" + learnImageGreyURL + "' border='0' target='_blank' onmouseover='javascript: this.src = \"" + learnOnImageGreyURL + "\";' onmouseout='javascript: this.src = \"" + learnImageGreyURL + "\";'><\/a>";
		}
	}
	
	if(bannerAd.type == bannerType_text)
	{
		innerHTML = "<div class='bannerAdTop'><\/div>";
		innerHTML += "<div class='bannerAdMiddle'>";
		innerHTML += "<table align='center' width='100%' cellpadding='2' cellspacing='0' border='0'>";
		innerHTML += "<tr><td align='center' valign='middle' width='135' rowspan='2'>";
		innerHTML += "<img src='" + bannerImageURL + "' border='0'>";
		innerHTML += "<\/td><td valign='top'>";
		innerHTML += bannerAd.text;
		innerHTML += "<\/td><\/tr><tr><td align='right'>";
		innerHTML += actionHTML;
		innerHTML += "<\/td><\/tr><\/table>"
		innerHTML += "<\/div>";
		innerHTML += "<div class='bannerAdBottom'><\/div>";
	}
	else if(bannerAd.type == bannerType_graphic)
	{
		innerHTML = "<a href='" + bannerAd.url + "' target='_blank'><img src='" + bannerImageURL + "' border='0' alt='" + bannerAd.text + "'></a>";
	}
	else if(bannerAd.type == bannerType_flash)
	{
		
		if(bannerAd.tracking != "")
		{
			innerHTML = "<a href=javascript:_hbLink('" + bannerAd.tracking + "','',0,0,,'" + bannerAd.width + "','" + bannerAd.height + "') />";
		}

		innerHTML += "<object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http:\/\/fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' width='" + bannerAd.width + "' height='" + bannerAd.height + "' align='middle' VIEWASTEXT>";
		innerHTML += "<param name='allowScriptAccess' value='sameDomain' />";
		innerHTML += "<param name='movie' value='" + bannerImageURL + "' />";
		innerHTML += "<param name='quality' value='high' />";
		innerHTML += "<param name='bgcolor' value='#000000' />";
		innerHTML += "<param name='wmode' value='transparent'>";
		innerHTML += "<embed src='" + bannerImageURL + "' wmode='transparent' quality='high' bgcolor='#000000' align='middle' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' width='" + bannerAd.width + "' height='" + bannerAd.height + "' pluginspage='http://www.macromedia.com/go/getflashplayer' />";
		innerHTML += "</object>";
	}
	else if(bannerAd.type == bannerType_text_small)
	{
		innerHTML = "<table align='center' width='100%' cellpadding='2' cellspacing='0' border='0'>";
		innerHTML += "<tr><td align='center' valign='middle'>";
		innerHTML += "<img src='" + bannerImageURL + "' border='0'>";
		innerHTML += "<\/td><\/tr><tr><td align='center'>";
		innerHTML += bannerAd.text;
		innerHTML += "<\/td><\/tr><tr><td align='center'>";
		innerHTML += actionHTML;
		innerHTML += "<\/td><\/tr><\/table>"
	}
	return innerHTML;
}

