Prototype.Browser.IE6 = (Prototype.Browser.IE && navigator.appVersion.indexOf("MSIE 6")!=-1);
var Global = Class.create();

Global.prototype = {
	pngElements: [
		'h1 a',
		'a.gbca',
		'h2.qsi',
		'h1',
		'ul.related li a'
	],
	
	initialize: function() {
		this.png();
		this.externaliseLinks();
		this.subnavRollovers();
	},
	
	png: function() {
		// Add the classname "png" to the necessary elements
		for ( var x = 0 ; x < this.pngElements.length ; x++ ) {
			var elements = $$(this.pngElements[x]);
			for ( var y = 0 ; y < elements.length ; y++ ) {
				elements[y].addClassName('png');
			}
		}

		if (typeof DD_belatedPNG != "undefined" && Prototype.Browser.IE6) {
			DD_belatedPNG.fix('.png');
		}
	},
	
	// This method finds any links with the rel attribute of "external", and sets the target to "_blank"
	// as target is not a valid attribute in XHTML strict.
	externaliseLinks: function() {
		var links = $$("a"); 
		for ( var x=0; x<links.length; x++ ) { 
			var link = links[x];
			if (link.getAttribute("href")) {
				var rels = link.getAttribute("rel");
				if (rels != null) {
					rels = rels.split(" ");
					for (var i=0; i<rels.length; i++) {
						if (rels[i] == "external") {
							link.target = "_blank"; 
							break;
						}
					}
				}
			}
		} 
	},
	
	subnavRollovers: function() {
		var elements = $$('#subnav li a');
		for ( var x = 0 ; x < elements.length ; x++ ) {
			Event.observe(elements[x], 'mouseover', this.showSubnavImage.bind(this));
			Event.observe(elements[x], 'mouseout', this.hideSubnavImages.bind(this));
		}
	},
	
	hideSubnavImages: function() {
		var elements = $$('#subnav li img');
		for ( var x = 0 ; x < elements.length ; x++ ) {
			elements[x].hide();
		}
	},
	
	showSubnavImage: function(e) {
		this.hideSubnavImages();
		
		var element = Event.element(e);
		var image = element.next();
		image.show();
	}
};