/** * @author Roger Wu * @version 1.0 */ (function($){ $.fn.cssv = function(pre){ var cssPre = $(this).css(pre); return cssPre.substring(0, cssPre.indexOf("px")) * 1; }; $.fn.jBar = function(options){ var op = $.extend({container:"#container", collapse:".collapse", toggleBut:".toggleCollapse div", sideBar:"#sidebar", sideBar2:"#sidebar_s", splitBar:"#splitBar", splitBar2:"#splitBarProxy"}, options); return this.each(function(){ var jbar = this; var sbar = $(op.sideBar2, jbar); var bar = $(op.sideBar, jbar); $(op.toggleBut, bar).click(function(){ DWZ.ui.sbar = false; $(op.splitBar).hide(); var sbarwidth = sbar.cssv("left") + sbar.outerWidth(); var barleft = sbarwidth - bar.outerWidth(); var cleft = $(op.container).cssv("left") - (bar.outerWidth() - sbar.outerWidth()); var cwidth = bar.outerWidth() - sbar.outerWidth() + $(op.container).outerWidth(); $(op.container).animate({left: cleft,width: cwidth},50,function(){ bar.animate({left: barleft}, 500, function(){ bar.hide(); sbar.show().css("left", -50).animate({left: 5}, 200); $(window).trigger(DWZ.eventType.resizeGrid); }); }); $(op.collapse,sbar).click(function(){ var sbarwidth = sbar.cssv("left") + sbar.outerWidth(); if(bar.is(":hidden")) { $(op.toggleBut, bar).hide(); bar.show().animate({left: sbarwidth}, 500); $(op.container).click(_hideBar); } else { bar.animate({left: barleft}, 500, function(){ bar.hide(); }); } function _hideBar() { $(op.container).unbind("click", _hideBar); if (!DWZ.ui.sbar) { bar.animate({left: barleft}, 500, function(){ bar.hide(); }); } } return false; }); return false; }); $(op.toggleBut, sbar).click(function(){ DWZ.ui.sbar = true; sbar.animate({left: -25}, 200, function(){ bar.show(); }); bar.animate({left: 5}, 800, function(){ $(op.splitBar).show(); $(op.toggleBut, bar).show(); var cleft = 5 + bar.outerWidth() + $(op.splitBar).outerWidth(); var cwidth = $(op.container).outerWidth() - (cleft - $(op.container).cssv("left")); $(op.container).css({left: cleft,width: cwidth}); $(op.collapse, sbar).unbind('click'); $(window).trigger(DWZ.eventType.resizeGrid); }); return false; }); $(op.splitBar).mousedown(function(event){ $(op.splitBar2).each(function(){ var spbar2 = $(this); setTimeout(function(){spbar2.show();}, 100); spbar2.css({visibility: "visible",left: $(op.splitBar).css("left")}); spbar2.jDrag($.extend(options, {obj:$("#sidebar"), move:"horizontal", event:event,stop: function(){ $(this).css("visibility", "hidden"); var move = $(this).cssv("left") - $(op.splitBar).cssv("left"); var sbarwidth = bar.outerWidth() + move; var cleft = $(op.container).cssv("left") + move; var cwidth = $(op.container).outerWidth() - move; bar.css("width", sbarwidth); $(op.splitBar).css("left", $(this).css("left")); $(op.container).css({left: cleft,width: cwidth}); }})); return false; }); }); }); } })(jQuery);