/** * gollum.dialog.js * * Used for dialogs. Duh. * */ (function($) { var Dialog = { debugOn: false, markupCreated: false, attachEvents: function( evtOK ) { $('#gollum-dialog-action-ok').click(function( e ) { Dialog.eventOK( e, evtOK ); }); $('#gollum-dialog-action-cancel').click( Dialog.eventCancel ); }, createFieldMarkup: function( fieldArray ) { var fieldMarkup = '
'; return fieldMarkup; }, createFieldText: function( fieldAttributes ) { var html = ''; if ( fieldAttributes.name ) { html += ''; } html += ''; } return html; }, createMarkup: function( title, body ) { Dialog.markupCreated = true; return '' + argObject.body + '
'; } // alright, build out fields if ( argObject.fields && typeof argObject.fields == 'object' ) { body += Dialog.createFieldMarkup( argObject.fields ); } if ( argObject.title && typeof argObject.title == 'string' ) { title = argObject.title; } if ( Dialog.markupCreated ) { $('#gollum-dialog-dialog').remove(); } var $dialog = $( Dialog.createMarkup( title, body ) ); $('body').append( $dialog ); if ( argObject.OK && typeof argObject.OK == 'function' ) { Dialog.attachEvents( argObject.OK ); } Dialog.show(); }, show: function() { if ( !Dialog.markupCreated ) { debug('Dialog: No markup to show. Please use init first.'); } else { debug('Showing dialog'); if ( $.browser.msie ) { $('#gollum-dialog.dialog').addClass('active'); Dialog.position(); $('select').css('visibility', 'hidden'); } else { $('#gollum-dialog.dialog').css('display', 'none'); $('#gollum-dialog-dialog').animate({ opacity: 0 }, { duration: 0, complete: function() { $('#gollum-dialog-dialog').css('display', 'block'); Dialog.position(); // position this thing $('#gollum-dialog-dialog').animate({ opacity: 1 }, { duration: 500 }); } }); } } }, position: function() { var dialogHeight = $('#gollum-dialog-dialog-inner').height(); $('#gollum-dialog-dialog-inner') .css('height', dialogHeight + 'px') .css('margin-top', -1 * parseInt( dialogHeight / 2 )); } }; var debug = function(m) { if ( Dialog.debugOn && typeof console != 'undefined' ) { console.log( m ); } }; $.GollumDialog = Dialog; })(jQuery);