'use strict'; /*@ Ox.Layer Background layer for dialogs and menus (options, self) -> Layer options Options type Layer type ('dialog' or 'menu') self Shared private variable @*/ Ox.Layer = function(options, self) { self = self || {}; var that = Ox.Element({}, self) .defaults({ type: 'dialog' }) .options(options || {}) .addClass('OxLayer Ox' + Ox.toTitleCase(self.options.type) + 'Layer') .bind(self.options.type == 'dialog' ? { mousedown: mousedown } : { click: click }); function click() { that.triggerEvent('click').remove(); } function mousedown() { that.stop().animate({opacity: 0.5}, 0); } function mouseup() { that.stop().animate({opacity: 0}, 250); } /*@ hide hide () -> hide layer @*/ that.hide = function() { if (self.options.type == 'dialog') { Ox.UI.$window.unbind({mouseup: mouseup}); } that.remove(); }; /*@ show show () -> show layer @*/ that.show = function() { if (self.options.type == 'dialog') { Ox.UI.$window.bind({mouseup: mouseup}); } that.appendTo(Ox.UI.$body); return that; } return that; }