YUI({
    modules: {
        'gallery-overlay-modal': {
            path: '../../yui3-gallery/build/gallery-overlay-modal/gallery-overlay-modal-min.js',
            requires: ['overlay','plugin','event-focus'],
            optional: [],
            supersedes: []
      }
 
    }
}).use( 'io', 'io-form', 'node', 'dd', 'dd-constraint', 'gallery-overlay-modal', function(Y) {
	Y.on("contentready", function () {
		Y.one('#body-overlay').on('click', function (e) {
			Y.one('#free-food-overlay').setStyle('display', 'none');
			Y.one('#suggest-menu-overlay').setStyle('display', 'none');
			Y.one('#sign-in-overlay').setStyle('display', 'none');
			Y.one('#body-overlay').setStyle('display', 'none');
		});
		
		Y.all("a.overlay").on('click', function (e) {
			e.preventDefault();
			var uri = e.currentTarget.get('href');
			
			var dialogNode = Y.Node.create('<div><div class="yui3-widget-hd"></div><div class="yui3-widget-bd"></div><div class="yui3-widget-ft"></div></div>');
			Y.one('body').appendChild(dialogNode);
			
			var dialog = new Y.Overlay({
				visible: false,
				centered: true,
				zIndex: 1000000,
				srcNode: dialogNode,
				width: "45%"
			});
			
			dialog.plug(Y.Plugin.OverlayModal);
			dialog.render();
			dialog.set('align', {points: [Y.WidgetPositionAlign.TC, Y.WidgetPositionAlign.TC]});
			dialog.set('bodyContent', '<div class="loading-indicator"><img src="/images/ajax-loader.gif" /></div>');
			dialog.show();
			
			new Y.DD.Drag({
				node: dialog.get('boundingBox'),
				handles: ['.yui3-widget-hd']
			}).plug(Y.Plugin.DDConstrained, {constrain2view: true});
			
			var request = Y.io(uri, {
	            method: 'GET',
	            on: {
	                complete: showOverlayDialog
	            },
	            arguments: {
	            	dialog: dialog
	            }
	        });
			
			function showOverlayDialog(id, o, args)
			{
				var dialog = args.dialog;
				var html   = o.responseText;
				var node   = Y.Node.create(html);
				var hd     = node.one('h1');
				node.removeChild(hd);
				var header = hd.get('innerHTML');
				
				var form = node.one('form');
				
				node.all('.reset').on('click', function (e, dialog) {
					e.preventDefault();
					dialog.hide();
				}, this, dialog);
				
				if (form && form.hasClass('replace')) {
					form.on('submit', function (e) { e.prefentDefault(); });
					
					node.all('input.submit').on('click', function (e, dialog, form) {
						e.preventDefault();
						var uri = form.get('action');
						
						var request = Y.io(uri, {
				            method: 'POST',
				            form: {
				                id: form
				            },
				            on: {
				                complete: showOverlayDialog
				            },
				            arguments: {
				            	dialog: dialog
				            }
				        });
					}, this, dialog, form);
				}
				
				dialog.set("bodyContent", node);
				dialog.set("headerContent", header);
			}
				
		});
	}, "#footer");
});
