function Advert()
{
	this.adId
	this.adLinkText;
	this.adBodyText;
	this.adUrl;
	this.adChannelPlusId ;
	this.adKeywords ;
	this.focusMe = false;
}

function RenderOvertureAdWithFocus(AdArray)
{
	var searchArray = SearchStringArray(OvertureAdFocusText)
	var resultsArray = searchAds(AdArray, searchArray)
	var focusAd, i ;
	
	for(i=0;i<resultsArray.length;i++)
	{
		if(resultsArray[i] != null)
		{
			focusAd = resultsArray[i];
			break ;
		}
	}
	if(focusAd != null)
	{
		var a ;
		for(a=0;a<AdArray.length;a++)
		{
			if(AdArray[a].adId == focusAd)
			{
				AdArray[a].focusMe = true;
				break;
			}
		}
	}
	
	RenderOvertureAdsSimpleList(AdArray) ;
	
	//focus the selected ad
	ShowAd() ;
	
}

function RenderOvertureAdsSimpleList(AdArray)
{
	RenderSimpleList(AdArray, "OvertureAds", 1) ;
}

function RenderSecondOvertureAdsSimpleList(AdArray)
{
	RenderSimpleList(AdArray, "OvertureAds2", 2) ;
}

function RenderSimpleList(AdArray, ContainerId, ListNumber)
{
	var adPanel = document.getElementById(ContainerId);
	// Check if the element exists
	if(adPanel)
	{
		adPanel.className = "VerdanaTDStyle"
		//loop througth the array and add the advert blocks
		if (AdArray.length == 0) 
		{
			if (document.getElementById("OvertureContainer"))
			{
				document.getElementById("OvertureContainer").style.display = "none"
			}
		}
		else
		{
			for(i =0; i < AdArray.length; i++)
			{
				adPanel.appendChild(buildSingleAd(AdArray[i],ListNumber));
			}
		}
	}
}

function buildSingleAd(AdObj,ListNumber)
{
	
	//build the div to contain the add
	var adBlock = document.createElement("p");
	if(AdObj.focusMe)
	{
		adBlock.id = "focusCont";
	}
	adBlock.className = "singleoverturead";

	//build the form to post the data - this has to be done as a html string for mac ie to work
	var adForm = "<form name='Overture_" + ListNumber + "_" + AdObj.adId + "' id='Overture_" + ListNumber + "_" + AdObj.adId + "' action='../ads/ProcessOvertureLink.asp' method='post' target='_blank' style='display:inline;'>"
	//append the hidden inputs
	adForm += buildHiddenInput("Url", AdObj.adUrl);	
	adForm += buildHiddenInput("Title", AdObj.adLinkText);
	adForm += buildHiddenInput("ChannelPlusId", AdObj.adChannelPlusId);
	adForm += buildHiddenInput("Keywords", AdObj.adKeywords);
	adForm += buildHiddenInput("p", "0");
	adForm += "</form>";
	
	//create the link		
	var adLink = document.createElement("a");
	adLink.href = "javascript:document.getElementById(\"Overture_" + ListNumber + "_" + AdObj.adId +"\").submit();";
	adLink.style.color = "blue" ;
	adLink.onmouseover = function() { return showOvertureStatus(AdObj.adUrl); }
	adLink.onmouseout = function() { return showOvertureStatus(""); }
	adLink.innerHTML = AdObj.adLinkText;

	//create the content
	var adContent = document.createElement("div");
	adContent.innerHTML = AdObj.adBodyText ;

	adBlock.innerHTML += adForm;
	adBlock.appendChild(adLink);
	adBlock.appendChild(adContent);

	return adBlock;	
}

function buildHiddenInput(inputName, inputValue)
{
	var hiddenInput = "<input type='hidden' name='" + inputName + "' value='" + inputValue + "'>" ;

	return hiddenInput ;
}

function showOvertureStatus(displayText)
{
	window.status = displayText; 
	return true;
}

function SearchStringArray(SearchString)
{
	var SearchElements = SearchString.split(' ') ;
	var resultsArray = new Array(SearchElements.length)
	var i, a, b ;
	//build search strings
	for(i=0;i<SearchElements.length;i++)
	{
		resultsArray[i] = ' '
		for(a=0;a<(SearchElements.length - i);a++)
		{
			resultsArray[i] += SearchElements[a] + ' '
		}
	}
	
	//clean results
	for(b=0;b<resultsArray.length;b++)
	{
		resultsArray[b] = resultsArray[b].substr(1,resultsArray[b].length - 2)
	}
	
	return resultsArray ;
}

function searchAds(AdArray, SearchArray)
{
	var resultsArray = new Array(SearchArray.length)
	var AdString ;
	var i,a
	
	for(i = 0; i < AdArray.length; i++)
	{
		//if best match has been made, stop seaching
		if(resultsArray[0] != null)
		{
			break;
		}
		
		AdString = AdArray[i].adLinkText + ' ' + AdArray[i].adBodyText ;
		for(a=0; a < SearchArray.length; a++)
		{
			if(AdString.toLowerCase().indexOf(SearchArray[a].toLowerCase()) > -1)
			{
				if (resultsArray[a] == null)
				{
					resultsArray[a] = AdArray[i].adId ;
					break;
				}
			}
		}
	}
	
	return resultsArray ;
}

var showAdOffset = 0; // Allow scroll offset to be set in the calling page.
function ShowAd()
{
	var adBlock = document.getElementById("OvertureAds");
	var pleasewait = document.getElementById("pleasewait");
	var selectedCont = document.getElementById("focusCont");
	
	if (pleasewait != null)
	{
		pleasewait.style.display = "none";
	}

	if(selectedCont)
	{
		//don't know why but Ie need some sort of initialisation, don't use var s as it wont work
		adBlock.scrollTop = 0;
		var st = selectedCont.offsetTop;
		var sh = selectedCont.offsetHeight
		var at = adBlock.offsetTop
		var ah = adBlock.offsetHeight;
		
		var scr = selectedCont.offsetTop - adBlock.offsetTop  ;
		scr += showAdOffset;

		adBlock.scrollTop  = scr ;
		selectedCont.style.backgroundColor = "#FEFEBA" ;
	}
}