$(document).ready(function(){ csscody.initialize(); }); jQuery.bind = function(object, method){ var args = Array.prototype.slice.call(arguments, 2); return function() { var args2 = [this].concat(args, $.makeArray( arguments )); return method.apply(object, args2); }; }; jQuery.fn.delay = function(time,func){ return this.each(function(){ setTimeout(func,time); }); }; jQuery.fn.extend({ $chain : [], chain: function(fn) { this.$chain.push(fn); return this; }, callChain: function(context) { return (this.$chain.length) ? this.$chain.pop().apply(context, arguments) : false; }, clearChain: function(){ this.$chain.empty(); return this; } }); (function($) { csscody = { getOptions: function() { return { name : 'alert', zIndex : 65555, onReturn : false, onReturnFunction: function(e) {}, BoxStyles : { 'width': 500 }, OverlayStyles : { 'backgroundColor': '#000', 'opacity': 0.7 }, showDuration : 200, closeDuration : 100, moveDuration : 500, onCloseComplete : $.bind(this, function() { this.options.onReturnFunction(this.options.onReturn); }) }; }, initialize: function(options) { this.i=0; this.options = $.extend(this.getOptions(), options); $('body').append('
'); this.Content = $('#'+this.options.name+'-BoxContenedor'); this.Contenedor = $('#'+this.options.name+'-BoxContent'); this.InBox = $('#'+this.options.name+'-InBox'); this.Box = $('#'+this.options.name+'-Box'); $('#BoxOverlay').css({ position : 'absolute', top : 0, left : 0, opacity : this.options.OverlayStyles.opacity, backgroundColor : this.options.OverlayStyles.backgroundColor, 'z-index' : this.options.zIndex, height : $(document).height(), width : $(document).width() }).hide(); this.Box.css({ display : 'none', position : 'absolute', top : 0, left : 0, 'z-index' : this.options.zIndex + 2, width : this.options.BoxStyles.width + 'px' }); this.preloadImages(); $(window).bind('resize', $.bind(this, function(){ if(this.options.display == 1) { $('#BoxOverlay').css({ height : 0, width : 0 }); $('#BoxOverlay').css({ height : $(document).height(), width : $(document).width() }); this.replaceBox(); } })); this.Box.bind('keydown', $.bind(this, function(obj, event){ if (event.keyCode == 27){ this.options.onReturn = false; this.display(0); } })); $(window).bind('scroll', $.bind(this, function(){ this.replaceBox(); })); }, replaceBox: function() { if(this.options.display == 1) { this.Box.stop(); this.Box.animate({ left : ( ($(document).width() - this.options.BoxStyles.width) / 2), top : ( $(document).scrollTop() + ($(window).height() - this.Box.outerHeight()) / 2 ) }, { duration : this.options.moveDuration, easing : 'easeOutBack' }); $(this).delay(this.options.moveDuration, $.bind(this, function() { $('#BoxAlertBtnOk').focus(); $('#BoxPromptInput').focus(); $('#BoxConfirmBtnOk').focus(); })); } }, display: function(option) { if(this.options.display == 0 && option != 0 || option == 1) { if (!$.support.maxHeight) { //IE6 //$('embed, object, select').css({ 'visibility' : 'hidden' }); BY VISHAL 23-10-2010 } this.togFlashObjects('hidden'); this.options.display = 1; $('#BoxOverlay').stop(); $('#BoxOverlay').fadeIn(this.options.showDuration, $.bind(this, function(){ this.Box.css({ display : 'block', left : ( ($(document).width() - this.options.BoxStyles.width) / 2) }); this.replaceBox(); })); } else { this.Box.css({ display : 'none', top : 0 }); this.options.display = 0; $(this).delay(500, $.bind(this, this.queue)); $(this.Content).empty(); this.Content.removeClass(); if(this.i==1) { $('#BoxOverlay').stop(); $('#BoxOverlay').fadeOut(this.options.closeDuration, $.bind(this, function(){ $('#BoxOverlay').hide(); if (!$.support.maxHeight) { //IE6 //$('embed, object, select').css({ 'visibility' : 'hidden' }); //$('embed, object, select').css({ 'visibility' : 'hidden' }); } this.togFlashObjects('visible'); this.options.onCloseComplete.call(); })); } } }, messageBox: function(type, message, properties, input) { $(this).chain(function () { properties = $.extend({ 'textBoxBtnOk' : 'OK', 'textBoxBtnCancel' : 'Cancel', 'textBoxInputPrompt' : null, 'password' : false, 'onComplete' : function(e) {} }, properties || {}); this.options.onReturnFunction = properties.onComplete; this.Content.append('
'); if(type == 'alert' || type == 'info' || type == 'error') { $('#'+this.options.name+'-Buttons').append(''); $('#BoxAlertBtnOk').val(properties.textBoxBtnOk).css({'width':70}); $('#BoxAlertBtnOk').bind('click', $.bind(this, function(){ this.options.onReturn = true; this.display(0); })); if(type == 'alert') { clase = 'BoxAlert'; } else if(type == 'error') { clase = 'BoxError'; } else if(type == 'info') { clase = 'BoxInfo'; } this.Content.addClass(clase).prepend(message); this.display(1); } else if(type == 'confirm') { $('#'+this.options.name+'-Buttons').append(' '); $('#BoxConfirmBtnOk').val(properties.textBoxBtnOk).css({'width':70}); $('#BoxConfirmBtnCancel').val(properties.textBoxBtnCancel).css({'width':70}); $('#BoxConfirmBtnOk').bind('click', $.bind(this, function(){ this.options.onReturn = true; this.display(0); })); $('#BoxConfirmBtnCancel').bind('click', $.bind(this, function(){ this.options.onReturn = false; this.display(0); })); this.Content.addClass('BoxConfirm').prepend(message); this.display(1); } else if(type == 'prompt') { $('#'+this.options.name+'-Buttons').append(' '); $('#BoxPromptBtnOk').val(properties.textBoxBtnOk).css({'width':70}); $('#BoxPromptBtnCancel').val(properties.textBoxBtnCancel).css({'width':70}); type = properties.password ? 'password' : 'text'; this.Content.prepend(''); $('#BoxPromptInput').val(properties.input); $('#BoxPromptInput').css({'width':250}); $('#BoxPromptBtnOk').bind('click', $.bind(this, function(){ this.options.onReturn = $('#BoxPromptInput').val(); this.display(0); })); $('#BoxPromptBtnCancel').bind('click', $.bind(this, function(){ this.options.onReturn = false; this.display(0); })); this.Content.addClass('BoxPrompt').prepend(message + '
'); this.display(1); } else { this.options.onReturn = false; this.display(0); } }); this.i++; if(this.i==1) { $(this).callChain(this); } }, queue: function() { this.i--; $(this).callChain(this); }, chk: function (obj) { return !!(obj || obj === 0); }, togFlashObjects: function(state) { var hideobj=new Array("embed", "iframe", "object"); for (y = 0; y < hideobj.length; y++) { var objs = document.getElementsByTagName(hideobj[y]); for(i = 0; i < objs.length; i++) { objs[i].style.visibility = state; } } }, preloadImages: function() { var img = new Array(2); img[0] = new Image();img[1] = new Image();img[2] = new Image(); /*img[0].src = this.Box.css('background-image').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); img[1].src = this.InBox.css('background-image').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); img[2].src = this.Contenedor.css('background-image').replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");*/ }, /* Property: alert Shortcut for alert // http://www.csscody.com/demo -- more examples here ----// Argument: properties - see Options in messageBox */ alert: function(message, properties) { this.messageBox('alert', message, properties); }, /* Property: info Shortcut for alert info Argument: properties - see Options in messageBox */ info: function(message, properties){ this.messageBox('info', message, properties); }, /* Property: error Shortcut for alert error Argument: properties - see Options in messageBox */ error: function(message, properties){ this.messageBox('error', message, properties); }, /* Property: confirm Shortcut for confirm Argument: properties - see Options in messageBox */ confirm: function(message, properties){ this.messageBox('confirm', message, properties); }, /* Property: prompt Shortcut for prompt Argument: properties - see Options in messageBox */ prompt: function(message, input, properties){ this.messageBox('prompt', message, properties, input); } }; })(jQuery);