function createQuote() {
	var el = Ext.get('testimony-link');
	var tid = 0, menu, doc = Ext.getDoc();
	var closeButton, readMoreButton;
	
	var handleOver = function(e, t){
		if(t != el.dom && t != menu.dom && !e.within(el) && !e.within(menu)){
			hideMenu();
		}	
	};
			
	var hideMenu = function(){
		if(menu){
			menu.hide();
			doc.un('mouseover', handleOver);
			doc.un('mousedown', handleDown);
		}
	}
	 
	var handleDown = function(e){
		if(!e.within(menu)){
			hideMenu();
		}
	}
	
	var showMenu = function(){
		clearTimeout(tid);
		tid = 0;
		
		if (!menu) {
			menu = new Ext.Layer({shadow:'sides',hideMode: 'display'}, 'quote');
		}
		menu.hideMenu = hideMenu;
			
		menu.el = el;
		if(activeMenu && menu != activeMenu){
			activeMenu.hideMenu();
		}
		activeMenu = menu;
		
		if (!menu.isVisible()) {
			menu.show();
			if (Ext.isIE) {
				menu.alignTo(el, 'l-r', [0, 0]);
			} else {
				menu.alignTo(el, 'l-r', [65, 0]);
			}
//			menu.alignTo(el, 'tl-bl?');

			menu.sync();
			
			doc.on('mouseover', handleOver, null, {buffer:150});
			doc.on('mousedown', handleDown);
		}
	}
	
	closeButton = Ext.get('quote-button-close');
	closeButton.on('click', function() {
		hideMenu();
	});
	
	el.on('mouseover', function(e){
		if(!tid){ tid = showMenu.defer(150); }
	});
	
	el.on('mouseout', function(e){
		if(tid && !e.within(el, true)){
			clearTimeout(tid);
			tid = 0;				
		}
	});
}

Ext.onReady(function() {
	createQuote();
})