/** * @author Roger Wu * @version 1.0 */ (function($){ $.fn.extend({jresize:function(options) { if (typeof options == 'string') { if (options == 'destroy') return this.each(function() { var dialog = this; $("div[class^='resizable']",dialog).each(function() { $(this).hide(); }); }); } return this.each(function(){ var dialog = $(this); var resizable = $(".resizable"); $("div[class^='resizable']",dialog).each(function() { var bar = this; $(bar).mousedown(function(event) { $.pdialog.switchDialog(dialog); $.resizeTool.start(resizable, dialog, event, $(bar).attr("tar")); return false; }).show(); }); }); }}); $.resizeTool = { start:function(resizable, dialog, e, target) { $.pdialog.initResize(resizable, dialog, target); $.data(resizable[0], 'layer-drag', { options: $.extend($.pdialog._op, {target:target, dialog:dialog,stop:$.resizeTool.stop}) }); $.layerdrag.start(resizable[0], e, $.pdialog._op); }, stop:function(){ var data = $.data(arguments[0], 'layer-drag'); $.pdialog.resizeDialog(arguments[0], data.options.dialog, data.options.target); $("body").css("cursor", ""); $(arguments[0]).hide(); } }; $.layerdrag = { start:function(obj, e, options) { if (!$.layerdrag.current) { $.layerdrag.current = { el: obj, oleft: parseInt(obj.style.left) || 0, owidth: parseInt(obj.style.width) || 0, otop: parseInt(obj.style.top) || 0, oheight:parseInt(obj.style.height) || 0, ox: e.pageX || e.screenX, oy: e.pageY || e.clientY }; $(document).bind('mouseup', $.layerdrag.stop); $(document).bind('mousemove', $.layerdrag.drag); } return $.layerdrag.preventEvent(e); }, drag: function(e) { if (!e) var e = window.event; var current = $.layerdrag.current; var data = $.data(current.el, 'layer-drag'); var lmove = (e.pageX || e.screenX) - current.ox; var tmove = (e.pageY || e.clientY) - current.oy; if((e.pageY || e.clientY) <= 0 || (e.pageY || e.clientY) >= ($(window).height() - $(".dialogHeader", $(data.options.dialog)).outerHeight())) return false; var target = data.options.target; var width = current.owidth; var height = current.oheight; if (target != "n" && target != "s") { width += (target.indexOf("w") >= 0)?-lmove:lmove; } if (width >= $.pdialog._op.minW) { if (target.indexOf("w") >= 0) { current.el.style.left = (current.oleft + lmove) + 'px'; } if (target != "n" && target != "s") { current.el.style.width = width + 'px'; } } if (target != "w" && target != "e") { height += (target.indexOf("n") >= 0)?-tmove:tmove; } if (height >= $.pdialog._op.minH) { if (target.indexOf("n") >= 0) { current.el.style.top = (current.otop + tmove) + 'px'; } if (target != "w" && target != "e") { current.el.style.height = height + 'px'; } } return $.layerdrag.preventEvent(e); }, stop: function(e) { var current = $.layerdrag.current; var data = $.data(current.el, 'layer-drag'); $(document).unbind('mousemove', $.layerdrag.drag); $(document).unbind('mouseup', $.layerdrag.stop); if (data.options.stop) { data.options.stop.apply(current.el, [ current.el ]); } $.layerdrag.current = null; return $.layerdrag.preventEvent(e); }, preventEvent:function(e) { if (e.stopPropagation) e.stopPropagation(); if (e.preventDefault) e.preventDefault(); return false; } }; })(jQuery);