function Preload()
{
	this.init(arguments);
}



Preload.prototype = {
	images		: new Array(),
	path		: 'images/',
	names		: null,
	selected	: null,
	
	
	
	init : function(args)
	{
		var obj	= this;
		this.names = [];	// initialize array

		for (var i = 0, max = args.length; i < max; ++i) {
			var arg = args[i];
			this.preload_image(arg);
		}
		
		addEvent(window, 'load', function() { obj.add_rollovers() } );
	},
	
	
	
	preload_image : function(name)
	{
		if (document.images) {
			this.names[this.names.length] = name;
			var on 					= name + '_on';
			var off					= name + '_off';
			this.images[on] 		= new Image();
			this.images[on].src 	= this.path + on + '.gif';
			this.images[off]		= new Image();
			this.images[off].src	= this.path + off + '.gif';
		}
	},
	
	
	
	add_rollover : function(name)
	{
		var obj		= this;
		var image 	= document.images[name];
		var a		= null;
		if (image && (a = image.parentNode) && a.tagName.toUpperCase() == 'A') {
			addEvent(a, 'mouseover', function() { obj.rollover(name, true) } );
			addEvent(a, 'mouseout', function() { obj.rollover(name, false) } );
		}
	},
	
	
	
	add_rollovers : function()
	{
		for (var i = 0, max = this.names.length; i < max; ++i) {
			this.add_rollover(this.names[i]);
		}
	},
	
	
	
	rollover: function(name, active)
	{
		if (name == this.selected) return;
		if (document.images && document.images[name]) {
			active? document[name].src = this.images[name + '_on'].src : document[name].src = this.images[name + '_off'].src;
		}
	}
};




function addEvent(obj, type, fn)
{
	if (obj.attachEvent) {
		return obj.attachEvent('on' + type, fn);
	} else if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
		return true;
	} else {
		obj['on' + type] = fn;
	}
}




var subnav = new Preload('subnav_boardofdirectors', 'subnav_contactus', 'subnav_grants', 'subnav_p4p');
var mainnav = new Preload('mainnav_aboutus', 'mainnav_howtodonate', 'mainnav_givingguidelines', 'mainnav_foundationheroes');
