preload = function(imageUrls) {
	if (document.images) {
		imagePreload = new Image();
		for (var i=0; i<imageUrls.length; i++) {
			imagePreload.src = imageUrls[i];
		}
	}
}

LocalNavThumbs = Class.create();
LocalNavThumbs.prototype = {
	learnMoreText: '', /*Learn more*/

	initialize: function(nav, item) {
		// get wrapper and selectors
		this.nav = $(nav);
		this.items = this.nav.getElementsByTagName(item);
		
		// create nodes
		for(var i=0, item; item=this.items[i]; i++) {
			this.createNodes(item);
		}
	},

	createNodes: function(item) {
		var title = item.innerHTML;
		var content = item.title;

		var hover = Builder.node('div', {'class': 'hover', style: 'display:none;'}, [
			Builder.node('div', {'class': 'hovercontent'}, [
				Builder.node('h3', title),
				Builder.node('p', content),
				Builder.node('span', {'class': 'arrow'}, this.learnMoreText)
			]), //middle
			Builder.node('div', {'class': 'bottom'})
		]); //hover
		item.appendChild(hover);

		// add events
		item.timeout = false;
		Event.observe(item, 'mouseover', this.mouseover.bind(item, hover), false);
		Event.observe(item, 'mouseout', this.mouseout.bind(item, hover), false);
	},

	mouseover: function(hover) {
		// clear timeout if it's running
		if (this.timeout) { 
			clearTimeout(this.timeout);
			this.timeout = false;
		}

		// show the hover state
		Effect.Appear(hover, {duration:.3});
	},

	mouseout: function(hover) {
		// set the timeout to hide the hover state
		this.timeout = setTimeout(LocalNavThumbs.prototype.hide.bind(hover), 200);
	},

	hide: function() {
		// hide the hover state
		Effect.Fade(this, {duration:.3});
	}
}

// local
Event.observe(window, 'load', function() {
	preload(['http://images.apple.com/finalcutstudio/images/localnav_thumbhover_bg20070414.png', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_bgbottom20070414.png', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_arrow20070414.gif', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_finalcutpro20070414.gif', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_motion20070414.gif', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_soundtrackpro20070414.gif', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_color20070414.gif', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_dvdstudiopro20070414.gif', 'http://images.apple.com/finalcutstudio/images/localnav_thumbhover_compressor20070414.gif'])
	if (AC.Detector.isIE() && $('quicktime')) {
		var agent = AC.Detector.getAgent();
		if (!agent.match(/msie 7/i)) return;
	}
	new LocalNavThumbs('localnav', 'a');
}, false);
