adobe.use("adobe.flash.NeroliFile");
adobe.use("adobe.flash.Overlay");
adobe.use("adobe.OneShotEventRegister");

var _story_overlay = new adobe.flash.Overlay(),
_story_overlay_listener = _story_overlay.openListener,
_story_config_queue = new adobe.OneShotEventRegister(window, "load", true);


function createCustomerStory(xml, title) {
	var swf = new adobe.flash.NeroliFile();
	swf.setTitle(title);
	swf.setHeight(383);
	swf.setWidth(640);
	swf.setConfig(xml);
	swf.setServer("http://wwwimages.adobe.com/www.adobe.com");
	return swf;
}

function createStoryButton(selector, xml, title) {
	
	var selector = selector;
	
	var video = createCustomerStory(xml, title);
	
	if(!adobe.flash.supportsPlayerVersion(video.requiredVersion)) {
		return;	
	}
	
	var handleBoundClick = _story_overlay_listener
			.bindAsEventListener(_story_overlay, 
					     video);
	
	function handleKeyEvent(event) {
		if(event.keyCode == Event.KEY_RETURN) {
			handleBoundClick();
		}
	}
	
	_story_config_queue.register(function() {
		$$(selector).invoke("observe", "click", handleBoundClick)
				.invoke("writeAttribute", "tabindex", "0")
				.invoke("setStyle", {cursor: "pointer"})
				.invoke("observe", "keydown", handleKeyEvent);			
	});
}

function initStoryButtons(json) {
	json.each(function(config) {
		createStoryButton(config.selector, config.xml, config.title);
	});
}