/** * @author Roger Wu * @version 1.0 */ (function($){ $.extend($.fn, { jPanel:function(options){ var op = $.extend({header:"panelHeader", headerC:"panelHeaderContent", content:"panelContent", coll:"collapsable", exp:"expandable", footer:"panelFooter", footerC:"panelFooterContent"}, options); return this.each(function(){ var $panel = $(this); var close = $panel.hasClass("close"); var collapse = $panel.hasClass("collapse"); var $content = $(">div", $panel).addClass(op.content); var title = $(">h1",$panel).wrap('
'); if(collapse)$("").addClass(close?op.exp:op.coll).insertAfter(title); var header = $(">div:first", $panel); var footer = $('
').appendTo($panel); var defaultH = $panel.attr("defH")?$panel.attr("defH"):0; var minH = $panel.attr("minH")?$panel.attr("minH"):0; if (close) $content.css({ height: "0px", display: "none" }); else { if (defaultH > 0) $content.height(defaultH + "px"); else if(minH > 0){ $content.css("minHeight", minH+"px"); } } if(!collapse) return; var $pucker = $("a", header); var inH = $content.innerHeight() - 6; if(minH > 0 && minH >= inH) defaultH = minH; else defaultH = inH; $pucker.click(function(){ if($pucker.hasClass(op.exp)){ $content.jBlindDown({to:defaultH,call:function(){ $pucker.removeClass(op.exp).addClass(op.coll); if(minH > 0) $content.css("minHeight",minH+"px"); }}); } else { if(minH > 0) $content.css("minHeight",""); if(minH >= inH) $content.css("height", minH+"px"); $content.jBlindUp({call:function(){ $pucker.removeClass(op.coll).addClass(op.exp); }}); } return false; }); }); } }); })(jQuery);