Event.observe(window,"load",
function()
{
	if (Prototype.Browser.IE)
	{
		confirmLoad.delay(0);
	}
	else 
	{
		confirmLoad();
	}
	preLoadInterfaceImages.delay(2);
});

Event.observe(window,"unload",
function()
{
	if (Prototype.Browser.IE)
	{
		destroyCache();
	}
});

destroyCache = function()
{
	$A(document.getElementsByTagName("*")).each(function(element)
	{
    	if (!element._prototypeEventID) return;
		Event.stopObserving(element);
  });
}

confirmLoad= function()
{
	$("viewport-outer").addClassName("is-loaded");
}

// ----------------------------------------------
preLoadInterfaceImages = function()
{
	var i = 0;
	imageObj = new Image();
	
	images = new Array();
	images[0]="/images/containers/index-dropdown/border-left-trans.png"
	images[1]="/images/containers/index-dropdown/border-right-trans.png"
	images[2]="/images/containers/index-dropdown/bottom-center-trans.png"
	images[3]="/images/containers/index-dropdown/bottom-left-trans.png"
	images[4]="/images/containers/index-dropdown/bottom-right-trans.png"
	images[5]="/images/containers/index-dropdown/top-left-trans.png"
	images[6]="/images/containers/index-dropdown/top-right-trans.png"

	// start preloading
	for(i=0; i<images.length; i++) 
	{
		imageObj.src=images[i];
	}
}

// ----------------------------------------------
toggleContent = function(selector)
{	
	var container = selector.up(1);
	var expandableSelector = container.next();
	
	if (container.className == "container-white type-02")
	{
		container.className = "container-white-current type-02";
		
		expandableSelector.setStyle
		(
			{
				display: "block"
			}
		);
	}
	else
	{
		container.className = "container-white type-02";
		expandableSelector.setStyle
		(
			{
				display: "none"
			}
		);
	}
}

// ----------------------------------------------
toggleIndex  = function()
{
	var anchor = $("index-toggler");
	var selector = $("index-series");
	
	if (anchor.className != "current")
	{	
		anchor.className = "current";
		
		adjustProblematicSelectors();

		if (Prototype.Browser.IE)
		{
			selector.setStyle
			(
				{
					display: "block"
				}
			);
		}
		else
		{
			Effect.BlindDown(selector,
			{
				duration: 0.3
			});
		}
	}
	else
	{
		closeIndex();
	}

	var viewportListener = new Element("div",
	{
		"id": "viewport-listener"
	});
		
	var unit = "px";
	var viewportListenerDimensions = $("viewport").getDimensions();
	var viewportListenerHeight = viewportListenerDimensions.height + unit;
	
	$("viewport").insert(viewportListener);
	
	$("viewport-listener").setStyle
	(
		{
			height: viewportListenerHeight
		}
	);
	
	listenForClickOutsideIndex();
}

listenForClickOutsideIndex = function()
{		
	if ($("viewport-listener").observe("click",
	function()
	{
		closeIndex();
	}));
}

closeIndex = function()
{
	var anchor = $("index-toggler");
	var selector = $("index-series");
	
	selector.setStyle
	(
		{
			display: "none"
		}
	);
		
	anchor.className = "default";
	
	restoreProblematicSelectors();
	
	$("viewport-listener").stopObserving("click");
	$("viewport-listener").remove();
}

submitKeywordSearch= function()
{
	document.search.submit();
}

// ----------------------------------------------
adjustProblematicSelectors = function()
{
	var selectorTypeA = $$("textarea");
	for (var i = 0;i<selectorTypeA.length;i++)
	{
		if (selectorTypeA[i].className != "scrollOK")
		{
			selectorTypeA[i].setStyle
			(
				{
					overflow: "hidden"
				}
			);
		}
	}				
	if (Prototype.Browser.IE)
	{
		var selectorTypeB = $$("select");
		for (var s = 0;s<selectorTypeB.length;s++)
		{
			selectorTypeB[s].setStyle
			(
				{
					visibility: "hidden"
				}
			);
		}
		var selectorTypeC = ($$("object") || $$("embed"));
		for (var i = 0;i<selectorTypeC.length;i++)
		{
			if (selectorTypeC[i].className != "viewOK")
			{
				selectorTypeC[i].setStyle
				(
					{
						visibility: "hidden"
					}
				);
			}
		}
	}
}

restoreProblematicSelectors = function()
{
	var selectorTypeA = $$("textarea");
	for (var i = 0;i<selectorTypeA.length;i++)
	{
		if (selectorTypeA[i].className != "scrollOK")
		{
			selectorTypeA[i].setStyle
			(
				{
					overflow: "auto"
				}
			);
		}	
	}
	if (Prototype.Browser.IE)
	{
		var selectorTypeB = $$("select");
		for (var s = 0;s<selectorTypeB.length;s++)
		{
			selectorTypeB[s].setStyle
			(
				{
					visibility: "visible"
				}
			);
		}
		var selectorTypeC = ($$("object") || $$("embed"));
		for (var i = 0;i<selectorTypeC.length;i++)
		{
			if (selectorTypeC[i].className != "viewOK")
			{
				selectorTypeC[i].setStyle
				(
					{
						visibility: "visible"
					}
				);
			}
		}
	}
}

// ----------------------------------------------
anchorBehaviour = 
{	
	attachBehaviour: function()
	{
		$$("a[rel]").each(function(obj)
		{ 
			switch(obj.rel)
			{
				case 'external':
				case 'nofollow':
				
				obj.onclick = function()
				{
					anchorBehaviour.openWindow(this.href);
					return false;
				}
				break;
			}
		});
		
		$$("a[href$='.pdf'], a[href$='.doc'], a[href$='.xls'], a[href$='.ppt'], a[href$='.zip']").each(function(anchor)
		{
			var hrefParts = anchor.href.split('.');
			var fileType = hrefParts[hrefParts.length -1].toUpperCase();
			
			var titleValue = "Click to download " + fileType;
			
			anchor.writeAttribute("title",titleValue);
			anchor.onclick = function()
			{
				anchorBehaviour.openWindow(this.href);
				return false;
			}
		});
	},
	
	openWindow: function(href)
	{
		var attributes = "scrollbars=yes,toolbar=yes,menubar=yes,status=yes,directories=no,location=yes,resizable=yes";
		var windowOrTab = window.open(href,"",attributes);
		
		windowOrTab.focus();
	}
}

document.observe("dom:loaded",anchorBehaviour.attachBehaviour);

// ----------------------------------------------
var keywordSearchInput = 
{
	init: function()
	{
		var smartKeyword = $("query");
		if (smartKeyword)
		{
			smartKeyword.value = "Search";
			
			smartKeyword.observe("click",keywordSearchInput.click);
			smartKeyword.observe("blur",keywordSearchInput.blur);
		} 
	},
	click: function()
	{
		var smartKeyword = $("query");
		if (smartKeyword.value == "Search")
		{
			smartKeyword.value = "";
		}
	},
	blur: function()
	{
		var smartKeyword = $("query");
		if (smartKeyword.value == "" || smartKeyword.value == "")
		{
			smartKeyword.value = "Search";
		}
	}
};

document.observe
(
	"dom:loaded",
	keywordSearchInput.init
);

// Legacy functions: updated by method on 27 May 2009
// -----------------------------------------------------
open_dds = function()
{
	var href = "http://data.ftse.com/";
	var title = "FTSE";
	
	var attributes = "scrollbars=yes,toolbar=yes,menubar=yes,status=yes,directories=no,location=yes,resizable=yes";
	
	var newWindow = window.open
	(
		href,
		title,
		attributes
	);
	newWindow.focus();
}

popup_landscape = function(href)
{
	var unit = "px";
	var title = "FTSE";
	
	var windowWidth = 760;
	var windowHeight = 580;
	
	var xCoordinate = Math.round((screen.availWidth - windowWidth)/2) + unit; 	 
	var yCoordinate = Math.round((screen.availHeight - windowHeight)/2) + unit;
	
	var attributes = "width=" + windowWidth + ",height=" + windowHeight + ",left=" + xCoordinate + ",top=" + yCoordinate + "toolbar=no" + "," + "menubar=yes" + "," + "scrollbars=yes" + "," + "resizable=yes";
	
	var newWindow = window.open
	(
		href,
		title,
		attributes
	);
	
	newWindow.focus();
}

popup_portrait = function(href)
{
	var unit = "px";
	var title = "FTSE";
	
	var screenHeight = Math.round(screen.availHeight);
	
	var windowHeight = screenHeight - 180;
	var windowWidth = 660;
	
	var yOffset = 30
	
	var xCoordinate = Math.round(screen.availWidth - windowWidth)/2 + unit;
	var yCoordinate = Math.round((screenHeight - windowHeight)/2) - yOffset + unit;
	
	var attributes = "width=" + windowWidth + ",height=" + windowHeight + ",left=" + xCoordinate + ",top=" + yCoordinate + "toolbar=no" + "," + "menubar=yes" + "," + "scrollbars=yes" + "," + "resizable=yes";
	var newWindow = window.open
	(
		href,
		title,
		attributes
	);
	
	newWindow.focus();
}

toggle_content = function(selector)
{
	var selectorPrefix = "selector_";
	var contentPrefix = "content_";

	if ($)
	{
		thisSelector = $(selectorPrefix + selector);
		thisContent = $(contentPrefix + selector);
	}
	else if (document.all)
	{
		thisSelector = eval("document.all." + selectorPrefix + selector);
		thisContent = eval("document.all." + contentPrefix + selector);
	}
	else
	{
		return;
	}
	
	if (!thisContent)
	{
		return;
	}
	
	var closed = (thisContent.style.display == "none");
	
	thisContent.style.display = closed ? "block" : "none";
	thisSelector.className = closed ? "open" : "close";
}