Index: lams_admin/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -re9f3814b6b6ca31db204710d2eed84d6339807da -rfbcc39165dcd908171cee18188e528e176693a04 --- lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision e9f3814b6b6ca31db204710d2eed84d6339807da) +++ lams_admin/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -358,6 +358,7 @@ config.custom.tab.link =Custom Tab URL config.custom.tab.title =Custom Tab Title config.flash.enable =Enable Flash for Learners +config.learner.collapsible.progress.panel=Use collapsible panel for progress bar in Learner config.authoring.screen.size =Authoring Screen Size config.monitor.screen.size =Monitor Screen Size config.learner.screen.size =Learner Screen Size Index: lams_central/web/includes/javascript/jquery.layout.js =================================================================== diff -u --- lams_central/web/includes/javascript/jquery.layout.js (revision 0) +++ lams_central/web/includes/javascript/jquery.layout.js (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -0,0 +1,172 @@ +/* + jquery.layout 1.3.0 - Release Candidate 30.51 + $Date$ + $Rev: 303005 $ + + Copyright (c) 2012 + Fabrizio Balliano (http://www.fabrizioballiano.net) + Kevin Dalman (http://allpro.net) + + Dual licensed under the GPL (http://www.gnu.org/licenses/gpl.html) + and MIT (http://www.opensource.org/licenses/mit-license.php) licenses. + + Changelog: http://layout.jquery-dev.net/changelog.cfm#1.3.0.rc30.5 + + Docs: http://layout.jquery-dev.net/documentation.html + Tips: http://layout.jquery-dev.net/tips.html + Help: http://groups.google.com/group/jquery-ui-layout +*/ +(function($){var min=Math.min,max=Math.max,round=Math.floor;function isStr(v){return $.type(v)==="string"}function runPluginCallbacks(Instance,a_fn){if($.isArray(a_fn))for(var i=0,c=a_fn.length;i').appendTo("body");var d={width:$c.width()-$c[0].clientWidth,height:$c.height()-$c[0].clientHeight};$c.remove();window.scrollbarWidth=d.width; +window.scrollbarHeight=d.height;return dim.match(/^(width|height)$/)?d[dim]:d},showInvisibly:function($E,force){if(!$E)return{};if(!$E.jquery)$E=$($E);var CSS={display:$E.css("display"),visibility:$E.css("visibility")};if(force||CSS.display==="none"){$E.css({display:"block",visibility:"hidden"});return CSS}else return{}},getElementDimensions:function($E){var d={},x=d.css={},i={},b,p,N=$.layout.cssNum,off=$E.offset();d.offsetLeft=off.left;d.offsetTop=off.top;$.each("Left,Right,Top,Bottom".split(","), +function(idx,e){b=x["border"+e]=$.layout.borderWidth($E,e);p=x["padding"+e]=$.layout.cssNum($E,"padding"+e);i[e]=b+p;d["inset"+e]=p});d.offsetWidth=$E.innerWidth();d.offsetHeight=$E.innerHeight();d.outerWidth=$E.outerWidth();d.outerHeight=$E.outerHeight();d.innerWidth=max(0,d.outerWidth-i.Left-i.Right);d.innerHeight=max(0,d.outerHeight-i.Top-i.Bottom);x.width=$E.width();x.height=$E.height();x.top=N($E,"top",true);x.bottom=N($E,"bottom",true);x.left=N($E,"left",true);x.right=N($E,"right",true);return d}, +getElementCSS:function($E,list){var CSS={},style=$E[0].style,props=list.split(","),sides="Top,Bottom,Left,Right".split(","),attrs="Color,Style,Width".split(","),p,s,a,i,j,k;for(i=0;i=L&&x<=R&&y>=T&&y<=B},msg:function(info, +popup,debugTitle,debugOpts){if($.isPlainObject(info)&&window.debugData){if(typeof popup==="string"){debugOpts=debugTitle;debugTitle=popup}else if(typeof debugTitle==="object"){debugOpts=debugTitle;debugTitle=null}var t=debugTitle||"log( )",o=$.extend({sort:false,returnHTML:false,display:false},debugOpts);if(popup===true||o.display)debugData(info,t,o);else if(window.console)console.log(debugData(info,t,o))}else if(popup)alert(info);else if(window.console)console.log(info);else{var id="#layoutLogger", +$l=$(id);if(!$l.length)$l=createLog();$l.children("ul").append('
  • '+info.replace(/\/g,">")+"
  • ")}function createLog(){var pos=$.support.fixedPosition?"fixed":"absolute",$e=$('
    '+'
    '+ +'XLayout console.log
    '+'
      '+"
      ").appendTo("body");$e.css("left",$(window).width()-$e.outerWidth()-5);if($.ui.draggable)$e.draggable({handle:":first-child"});return $e}}};var lang=$.layout.language;$.layout.defaults={name:"",containerSelector:"", +containerClass:"ui-layout-container",scrollToBookmarkOnLoad:true,resizeWithWindow:true,resizeWithWindowDelay:200,resizeWithWindowMaxDelay:0,onresizeall_start:null,onresizeall_end:null,onload_start:null,onload_end:null,onunload_start:null,onunload_end:null,autoBindCustomButtons:false,initPanes:true,showErrorMessages:true,showDebugMessages:false,zIndex:null,zIndexes:{pane_normal:0,content_mask:1,resizer_normal:2,pane_sliding:100,pane_animate:1E3,resizer_drag:1E4},panes:{applyDemoStyles:false,closable:true, +resizable:true,slidable:true,initClosed:false,initHidden:false,contentSelector:".ui-layout-content",contentIgnoreSelector:".ui-layout-ignore",findNestedContent:false,paneClass:"ui-layout-pane",resizerClass:"ui-layout-resizer",togglerClass:"ui-layout-toggler",buttonClass:"ui-layout-button",minSize:0,maxSize:0,spacing_open:6,spacing_closed:6,togglerLength_open:50,togglerLength_closed:50,togglerAlign_open:"center",togglerAlign_closed:"center",togglerTip_open:lang.Close,togglerTip_closed:lang.Open,togglerContent_open:"", +togglerContent_closed:"",resizerDblClickToggle:true,autoResize:true,autoReopen:true,resizerDragOpacity:1,maskContents:false,maskObjects:false,maskZindex:null,resizingGrid:false,livePaneResizing:false,liveContentResizing:false,liveResizingTolerance:1,noRoomToOpenTip:lang.noRoomToOpenTip,resizerTip:lang.Resize,sliderTip:lang.Slide,sliderCursor:"pointer",slideTrigger_open:"click",slideTrigger_close:"mouseleave",slideDelay_open:300,slideDelay_close:300,hideTogglerOnSlide:false,preventQuickSlideClose:$.layout.browser.webkit, +preventPrematureSlideClose:false,showOverflowOnHover:false,enableCursorHotkey:true,customHotkeyModifier:"SHIFT",fxName:"slide",fxSpeed:null,fxSettings:{},fxOpacityFix:true,animatePaneSizing:false,childOptions:null,initChildLayout:true,destroyChildLayout:true,resizeChildLayout:true,triggerEventsOnLoad:false,triggerEventsDuringLiveResize:true,onshow_start:null,onshow_end:null,onhide_start:null,onhide_end:null,onopen_start:null,onopen_end:null,onclose_start:null,onclose_end:null,onresize_start:null, +onresize_end:null,onsizecontent_start:null,onsizecontent_end:null,onswap_start:null,onswap_end:null,ondrag_start:null,ondrag_end:null},north:{paneSelector:".ui-layout-north",size:"auto",resizerCursor:"n-resize",customHotkey:""},south:{paneSelector:".ui-layout-south",size:"auto",resizerCursor:"s-resize",customHotkey:""},east:{paneSelector:".ui-layout-east",size:200,resizerCursor:"e-resize",customHotkey:""},west:{paneSelector:".ui-layout-west",size:200,resizerCursor:"w-resize",customHotkey:""},center:{paneSelector:".ui-layout-center", +minWidth:0,minHeight:0}};$.layout.optionsMap={layout:("stateManagement,effects,zIndexes,"+"name,zIndex,scrollToBookmarkOnLoad,showErrorMessages,"+"resizeWithWindow,resizeWithWindowDelay,resizeWithWindowMaxDelay,"+"onresizeall,onresizeall_start,onresizeall_end,onload,onunload,autoBindCustomButtons").split(","),center:("paneClass,contentSelector,contentIgnoreSelector,findNestedContent,applyDemoStyles,triggerEventsOnLoad,"+"showOverflowOnHover,maskContents,maskObjects,liveContentResizing,"+"childOptions,initChildLayout,resizeChildLayout,destroyChildLayout,"+ +"onresize,onresize_start,onresize_end,onsizecontent,onsizecontent_start,onsizecontent_end").split(","),noDefault:"paneSelector,resizerCursor,customHotkey".split(",")};$.layout.transformData=function(hash){var json={panes:{},center:{}},data,branch,optKey,keys,key,val,i,c;if(typeof hash!=="object")return json;for(optKey in hash){branch=json;data=$.layout.optionsMap.layout;val=hash[optKey];keys=optKey.split("__");c=keys.length-1;for(i=0;i<=c;i++){key=keys[i];if(i===c)branch[key]=val;else if(!branch[key])branch[key]= +{};branch=branch[key]}}return json};$.layout.backwardCompatibility={map:{applyDefaultStyles:"applyDemoStyles",resizeNestedLayout:"resizeChildLayout",resizeWhileDragging:"livePaneResizing",resizeContentWhileDragging:"liveContentResizing",triggerEventsWhileDragging:"triggerEventsDuringLiveResize",maskIframesOnResize:"maskContents",useStateCookie:"stateManagement.enabled","cookie.autoLoad":"stateManagement.autoLoad","cookie.autoSave":"stateManagement.autoSave","cookie.keys":"stateManagement.stateKeys", +"cookie.name":"stateManagement.cookie.name","cookie.domain":"stateManagement.cookie.domain","cookie.path":"stateManagement.cookie.path","cookie.expires":"stateManagement.cookie.expires","cookie.secure":"stateManagement.cookie.secure"},renameOptions:function(opts){var map=$.layout.backwardCompatibility.map,oldData,newData,value;for(var itemPath in map){oldData=getBranch(itemPath);value=oldData.branch[oldData.key];if(value!==undefined){newData=getBranch(map[itemPath],true);newData.branch[newData.key]= +value;delete oldData.branch[oldData.key]}}function getBranch(path,create){var a=path.split("."),c=a.length-1,D={branch:opts,key:a[c]},i=0,k,undef;for(;i0){if(autoHide&&$E.data("autoHidden")&& +$E.innerHeight()>0){$E.show().data("autoHidden",false);if(!browser.mozilla)$E.css(_c.hidden).css(_c.visible)}}else if(autoHide&&!$E.data("autoHidden"))$E.hide().data("autoHidden",true)},setOuterHeight=function(el,outerHeight,autoHide){var $E=el,h;if(isStr(el))$E=$Ps[el];else if(!el.jquery)$E=$(el);h=cssH($E,outerHeight);$E.css({height:h,visibility:"visible"});if(h>0&&$E.innerWidth()>0){if(autoHide&&$E.data("autoHidden")){$E.show().data("autoHidden",false);if(!browser.mozilla)$E.css(_c.hidden).css(_c.visible)}}else if(autoHide&& +!$E.data("autoHidden"))$E.hide().data("autoHidden",true)},setOuterSize=function(el,outerSize,autoHide){if(_c[pane].dir=="horz")setOuterHeight(el,outerSize,autoHide);else setOuterWidth(el,outerSize,autoHide)},_parseSize=function(pane,size,dir){if(!dir)dir=_c[pane].dir;if(isStr(size)&&size.match(/%/))size=size==="100%"?-1:parseInt(size,10)/100;if(size===0)return 0;else if(size>=1)return parseInt(size,10);var o=options,avail=0;if(dir=="horz")avail=sC.innerHeight-($Ps.north?o.north.spacing_open:0)-($Ps.south? +o.south.spacing_open:0);else if(dir=="vert")avail=sC.innerWidth-($Ps.west?o.west.spacing_open:0)-($Ps.east?o.east.spacing_open:0);if(size===-1)return avail;else if(size>0)return round(avail*size);else if(pane=="center")return 0;else{var dim=dir==="horz"?"height":"width",$P=$Ps[pane],$C=dim==="height"?$Cs[pane]:false,vis=$.layout.showInvisibly($P),szP=$P.css(dim),szC=$C?$C.css(dim):0;$P.css(dim,"auto");if($C)$C.css(dim,"auto");size=dim==="height"?$P.outerHeight():$P.outerWidth();$P.css(dim,szP).css(vis); +if($C)$C.css(dim,szC);return size}},getPaneSize=function(pane,inclSpace){var $P=$Ps[pane],o=options[pane],s=state[pane],oSp=inclSpace?o.spacing_open:0,cSp=inclSpace?o.spacing_closed:0;if(!$P||s.isHidden)return 0;else if(s.isClosed||s.isSliding&&inclSpace)return cSp;else if(_c[pane].dir==="horz")return $P.outerHeight()+oSp;else return $P.outerWidth()+oSp},setSizeLimits=function(pane,slide){if(!isInitialized())return;var o=options[pane],s=state[pane],c=_c[pane],dir=c.dir,side=c.side.toLowerCase(),type= +c.sizeType.toLowerCase(),isSliding=slide!=undefined?slide:s.isSliding,$P=$Ps[pane],paneSpacing=o.spacing_open,altPane=_c.oppositeEdge[pane],altS=state[altPane],$altP=$Ps[altPane],altPaneSize=!$altP||altS.isVisible===false||altS.isSliding?0:dir=="horz"?$altP.outerHeight():$altP.outerWidth(),altPaneSpacing=(!$altP||altS.isHidden?0:options[altPane][altS.isClosed!==false?"spacing_closed":"spacing_open"])||0,containerSize=dir=="horz"?sC.innerHeight:sC.innerWidth,minCenterDims=cssMinDims("center"),minCenterSize= +dir=="horz"?max(options.center.minHeight,minCenterDims.minHeight):max(options.center.minWidth,minCenterDims.minWidth),limitSize=containerSize-paneSpacing-(isSliding?0:_parseSize("center",minCenterSize,dir)+altPaneSize+altPaneSpacing),minSize=s.minSize=max(_parseSize(pane,o.minSize),cssMinDims(pane).minSize),maxSize=s.maxSize=min(o.maxSize?_parseSize(pane,o.maxSize):1E5,limitSize),r=s.resizerPosition={},top=sC.insetTop,left=sC.insetLeft,W=sC.innerWidth,H=sC.innerHeight,rW=o.spacing_open;switch(pane){case "north":r.min= +top+minSize;r.max=top+maxSize;break;case "west":r.min=left+minSize;r.max=left+maxSize;break;case "south":r.min=top+H-maxSize-rW;r.max=top+H-minSize-rW;break;case "east":r.min=left+W-maxSize-rW;r.max=left+W-minSize-rW;break}},calcNewCenterPaneDims=function(){var d={top:getPaneSize("north",true),bottom:getPaneSize("south",true),left:getPaneSize("west",true),right:getPaneSize("east",true),width:0,height:0};d.width=sC.innerWidth-d.left-d.right;d.height=sC.innerHeight-d.bottom-d.top;d.top+=sC.insetTop; +d.bottom+=sC.insetBottom;d.left+=sC.insetLeft;d.right+=sC.insetRight;return d},getHoverClasses=function(el,allStates){var $El=$(el),type=$El.data("layoutRole"),pane=$El.data("layoutEdge"),o=options[pane],root=o[type+"Class"],_pane="-"+pane,_open="-open",_closed="-closed",_slide="-sliding",_hover="-hover ",_state=$El.hasClass(root+_closed)?_closed:_open,_alt=_state===_closed?_open:_closed,classes=root+_hover+(root+_pane+_hover)+(root+_state+_hover)+(root+_pane+_state+_hover);if(allStates)classes+= +root+_alt+_hover+(root+_pane+_alt+_hover);if(type=="resizer"&&$El.hasClass(root+_slide))classes+=root+_slide+_hover+(root+_pane+_slide+_hover);return $.trim(classes)},addHover=function(evt,el){var $E=$(el||this);if(evt&&$E.data("layoutRole")==="toggler")evt.stopPropagation();$E.addClass(getHoverClasses($E))},removeHover=function(evt,el){var $E=$(el||this);$E.removeClass(getHoverClasses($E,true))},onResizerEnter=function(evt){if($.fn.disableSelection)$("body").disableSelection()},onResizerLeave=function(evt, +el){var e=el||this,pane=$(e).data("layoutEdge"),name=pane+"ResizerLeave";timer.clear(pane+"_openSlider");timer.clear(name);if(!el)timer.set(name,function(){onResizerLeave(evt,e)},200);else if(!state[pane].isResizing&&$.fn.enableSelection)$("body").enableSelection()},_create=function(){initOptions();var o=options;state.creatingLayout=true;runPluginCallbacks(Instance,$.layout.onCreate);if(false===_runCallbacks("onload_start"))return"cancel";_initContainer();initHotkeys();$(window).bind("unload."+sID, +unload);runPluginCallbacks(Instance,$.layout.onLoad);if(o.initPanes)_initLayoutElements();delete state.creatingLayout;return state.initialized},isInitialized=function(){if(state.initialized||state.creatingLayout)return true;else return _initLayoutElements()},_initLayoutElements=function(retry){var o=options;if(!$N.is(":visible")){if(!retry&&browser.webkit&&$N[0].tagName==="BODY")setTimeout(function(){_initLayoutElements(true)},50);return false}if(!getPane("center").length){if(options.showErrorMessages)_log(lang.errCenterPaneMissing, +true);return false}state.creatingLayout=true;$.extend(sC,elDims($N));initPanes();if(o.scrollToBookmarkOnLoad){var l=self.location;if(l.hash)l.replace(l.hash)}if(Instance.hasParentLayout)o.resizeWithWindow=false;else if(o.resizeWithWindow)$(window).bind("resize."+sID,windowResize);delete state.creatingLayout;state.initialized=true;runPluginCallbacks(Instance,$.layout.onReady);_runCallbacks("onload_end");return true},_initChildLayouts=function(){$.each(_c.allPanes,function(idx,pane){if(options[pane].initChildLayout)createChildLayout(pane)})}, +createChildLayout=function(evt_or_pane,opts){var pane=evtPane.call(this,evt_or_pane),$P=$Ps[pane],C=children;if($P){var $C=$Cs[pane],o=opts||options[pane].childOptions,d="layout",$Cont=o.containerSelector?$P.find(o.containerSelector):$C||$P,containerFound=$Cont.length,child=containerFound?C[pane]=$Cont.data(d)||null:null;if(!child&&containerFound&&o)child=C[pane]=$Cont.eq(0).layout(o)||null;if(child)child.hasParentLayout=true}Instance[pane].child=C[pane]},windowResize=function(){var delay=Number(options.resizeWithWindowDelay); +if(delay<10)delay=100;timer.clear("winResize");timer.set("winResize",function(){timer.clear("winResize");timer.clear("winResizeRepeater");var dims=elDims($N);if(dims.innerWidth!==sC.innerWidth||dims.innerHeight!==sC.innerHeight)resizeAll()},delay);if(!timer.data["winResizeRepeater"])setWindowResizeRepeater()},setWindowResizeRepeater=function(){var delay=Number(options.resizeWithWindowMaxDelay);if(delay>0)timer.set("winResizeRepeater",function(){setWindowResizeRepeater();resizeAll()},delay)},unload= +function(){var o=options;_runCallbacks("onunload_start");runPluginCallbacks(Instance,$.layout.onUnload);_runCallbacks("onunload_end")},_initContainer=function(){var N=$N[0],tag=sC.tagName=N.tagName,id=sC.id=N.id,cls=sC.className=N.className,o=options,name=o.name,fullPage=tag==="BODY",props="overflow,position,margin,padding,border",css="layoutCSS",CSS={},hid="hidden",parent=$N.data("parentLayout"),pane=$N.data("layoutEdge"),isChild=parent&&pane;sC.selector=$N.selector.split(".slice")[0];sC.ref=(o.name? +o.name+" layout / ":"")+tag+(id?"#"+id:cls?".["+cls+"]":"");$N.data({layout:Instance,layoutContainer:sID}).addClass(o.containerClass);var layoutMethods={destroy:"",initPanes:"",resizeAll:"resizeAll",resize:"resizeAll"},name;for(name in layoutMethods)$N.bind("layout"+name.toLowerCase()+"."+sID,Instance[layoutMethods[name]||name]);if(isChild){Instance.hasParentLayout=true;parent[pane].child=parent.children[pane]=$N.data("layout")}if(!$N.data(css)){if(fullPage){CSS=$.extend(elCSS($N,props),{height:$N.css("height"), +overflow:$N.css("overflow"),overflowX:$N.css("overflowX"),overflowY:$N.css("overflowY")});var $H=$("html");$H.data(css,{height:"auto",overflow:$H.css("overflow"),overflowX:$H.css("overflowX"),overflowY:$H.css("overflowY")})}else CSS=elCSS($N,props+",top,bottom,left,right,width,height,overflow,overflowX,overflowY");$N.data(css,CSS)}try{if(fullPage){$("html").css({height:"100%",overflow:hid,overflowX:hid,overflowY:hid});$("body").css({position:"relative",height:"100%",overflow:hid,overflowX:hid,overflowY:hid, +margin:0,padding:0,border:"none"});$.extend(sC,elDims($N))}else{CSS={overflow:hid,overflowX:hid,overflowY:hid};var p=$N.css("position"),h=$N.css("height");if(!isChild)if(!p||!p.match(/fixed|absolute|relative/))CSS.position="relative";$N.css(CSS);if($N.is(":visible")){$.extend(sC,elDims($N));if(o.showErrorMessages&&sC.innerHeight<1)_log(lang.errContainerHeight.replace(/CONTAINER/,sC.ref),true)}}}catch(ex){}},initHotkeys=function(panes){panes=panes?panes.split(","):_c.borderPanes;$.each(panes,function(i, +pane){var o=options[pane];if(o.enableCursorHotkey||o.customHotkey){$(document).bind("keydown."+sID,keyDown);return false}})},initOptions=function(){var data,d,pane,key,val,i,c,o;opts=$.layout.transformData(opts);opts=$.layout.backwardCompatibility.renameAllOptions(opts);if(!$.isEmptyObject(opts.panes)){data=$.layout.optionsMap.noDefault;for(i=0,c=data.length;i0){z.pane_normal=zo;z.content_mask=max(zo+1,z.content_mask);z.resizer_normal=max(zo+2,z.resizer_normal)}function createFxOptions(pane){var o=options[pane],d=options.panes;if(!o.fxSettings)o.fxSettings= +{};if(!d.fxSettings)d.fxSettings={};$.each(["_open","_close","_size"],function(i,n){var sName="fxName"+n,sSpeed="fxSpeed"+n,sSettings="fxSettings"+n,fxName=o[sName]=o[sName]||d[sName]||o.fxName||d.fxName||"none";if(fxName==="none"||!$.effects||!$.effects[fxName]||!options.effects[fxName])fxName=o[sName]="none";var fx=options.effects[fxName]||{},fx_all=fx.all||null,fx_pane=fx[pane]||null;o[sSpeed]=o[sSpeed]||d[sSpeed]||o.fxSpeed||d.fxSpeed||null;o[sSettings]=$.extend({},fx_all,fx_pane,d.fxSettings, +o.fxSettings,d[sSettings],o[sSettings])});delete o.fxName;delete o.fxSpeed;delete o.fxSettings}delete options.panes},getPane=function(pane){var sel=options[pane].paneSelector;if(sel.substr(0,1)==="#")return $N.find(sel).eq(0);else{var $P=$N.children(sel).eq(0);return $P.length?$P:$N.children("form:first").children(sel).eq(0)}},initPanes=function(){$.each(_c.allPanes,function(idx,pane){addPane(pane,true)});initHandles();$.each(_c.borderPanes,function(i,pane){if($Ps[pane]&&state[pane].isVisible){setSizeLimits(pane); +makePaneFit(pane)}});sizeMidPanes("center");$.each(_c.allPanes,function(i,pane){var o=options[pane];if($Ps[pane]){if(state[pane].isVisible){sizeContent(pane);if(o.triggerEventsOnLoad)_runCallbacks("onresize_end",pane);else resizeChildLayout(pane)}if(o.initChildLayout&&o.childOptions)createChildLayout(pane)}})},addPane=function(pane,force){if(!force&&!isInitialized())return;var o=options[pane],s=state[pane],c=_c[pane],fx=s.fx,dir=c.dir,spacing=o.spacing_open||0,isCenter=pane==="center",CSS={},$P=$Ps[pane], +size,minSize,maxSize;if($P)removePane(pane,false,true,false);else $Cs[pane]=false;$P=$Ps[pane]=getPane(pane);if(!$P.length){$Ps[pane]=false;return}if(!$P.data("layoutCSS")){var props="position,top,left,bottom,right,width,height,overflow,zIndex,display,backgroundColor,padding,margin,border";$P.data("layoutCSS",elCSS($P,props))}Instance[pane]={name:pane,pane:$Ps[pane],content:$Cs[pane],options:options[pane],state:state[pane],child:children[pane]};$P.data({parentLayout:Instance,layoutPane:Instance[pane], +layoutEdge:pane,layoutRole:"pane"}).css(c.cssReq).css("zIndex",options.zIndexes.pane_normal).css(o.applyDemoStyles?c.cssDemo:{}).addClass(o.paneClass+" "+o.paneClass+"-"+pane).bind("mouseenter."+sID,addHover).bind("mouseleave."+sID,removeHover);var paneMethods={hide:"",show:"",toggle:"",close:"",open:"",slideOpen:"",slideClose:"",slideToggle:"",size:"manualSizePane",sizePane:"manualSizePane",sizeContent:"",sizeHandles:"",enableClosable:"",disableClosable:"",enableSlideable:"",disableSlideable:"", +enableResizable:"",disableResizable:"",swapPanes:"swapPanes",swap:"swapPanes",move:"swapPanes",removePane:"removePane",remove:"removePane",createChildLayout:"",resizeChildLayout:"",resizeAll:"resizeAll",resizeLayout:"resizeAll"},name;for(name in paneMethods)$P.bind("layoutpane"+name.toLowerCase()+"."+sID,Instance[paneMethods[name]||name]);initContent(pane,false);if(!isCenter){size=s.size=_parseSize(pane,o.size);minSize=_parseSize(pane,o.minSize)||1;maxSize=_parseSize(pane,o.maxSize)||1E5;if(size> +0)size=max(min(size,maxSize),minSize);s.isClosed=false;s.isSliding=false;s.isResizing=false;s.isHidden=false;if(!s.pins)s.pins=[]}s.tagName=$P[0].tagName;s.edge=pane;s.noRoom=false;s.isVisible=true;switch(pane){case "north":CSS.top=sC.insetTop;CSS.left=sC.insetLeft;CSS.right=sC.insetRight;break;case "south":CSS.bottom=sC.insetBottom;CSS.left=sC.insetLeft;CSS.right=sC.insetRight;break;case "west":CSS.left=sC.insetLeft;break;case "east":CSS.right=sC.insetRight;break;case "center":}if(dir==="horz")CSS.height= +cssH($P,size);else if(dir==="vert")CSS.width=cssW($P,size);$P.css(CSS);if(dir!="horz")sizeMidPanes(pane,true);if(o.initClosed&&o.closable&&!o.initHidden)close(pane,true,true);else if(o.initHidden||o.initClosed)hide(pane);else if(!s.noRoom)$P.css("display","block");$P.css("visibility","visible");if(o.showOverflowOnHover)$P.hover(allowOverflow,resetOverflow);if(state.initialized){initHandles(pane);initHotkeys(pane);resizeAll();if(s.isVisible)if(o.triggerEventsOnLoad)_runCallbacks("onresize_end",pane); +else resizeChildLayout(pane);if(o.initChildLayout&&o.childOptions)createChildLayout(pane)}},initHandles=function(panes){panes=panes?panes.split(","):_c.borderPanes;$.each(panes,function(i,pane){var $P=$Ps[pane];$Rs[pane]=false;$Ts[pane]=false;if(!$P)return;var o=options[pane],s=state[pane],c=_c[pane],rClass=o.resizerClass,tClass=o.togglerClass,side=c.side.toLowerCase(),spacing=s.isVisible?o.spacing_open:o.spacing_closed,_pane="-"+pane,_state=s.isVisible?"-open":"-closed",I=Instance[pane],$R=I.resizer= +$Rs[pane]=$("
      "),$T=I.toggler=o.closable?$Ts[pane]=$("
      "):false;if(!s.isVisible&&o.slidable)$R.attr("title",o.sliderTip).css("cursor",o.sliderCursor);$R.attr("id",o.paneSelector.substr(0,1)=="#"?o.paneSelector.substr(1)+"-resizer":"").data({parentLayout:Instance,layoutPane:Instance[pane],layoutEdge:pane,layoutRole:"resizer"}).css(_c.resizers.cssReq).css("zIndex",options.zIndexes.resizer_normal).css(o.applyDemoStyles?_c.resizers.cssDemo:{}).addClass(rClass+" "+rClass+_pane).hover(addHover, +removeHover).hover(onResizerEnter,onResizerLeave).appendTo($N);if($T){$T.attr("id",o.paneSelector.substr(0,1)=="#"?o.paneSelector.substr(1)+"-toggler":"").data({parentLayout:Instance,layoutPane:Instance[pane],layoutEdge:pane,layoutRole:"toggler"}).css(_c.togglers.cssReq).css(o.applyDemoStyles?_c.togglers.cssDemo:{}).addClass(tClass+" "+tClass+_pane).hover(addHover,removeHover).bind("mouseenter",onResizerEnter).appendTo($R);if(o.togglerContent_open)$(""+o.togglerContent_open+"").data({layoutEdge:pane, +layoutRole:"togglerContent"}).data("layoutRole","togglerContent").data("layoutEdge",pane).addClass("content content-open").css("display","none").appendTo($T);if(o.togglerContent_closed)$(""+o.togglerContent_closed+"").data({layoutEdge:pane,layoutRole:"togglerContent"}).addClass("content content-closed").css("display","none").appendTo($T);enableClosable(pane)}initResizable(pane);if(s.isVisible)setAsOpen(pane);else{setAsClosed(pane);bindStartSlidingEvent(pane,true)}});sizeHandles()},initContent= +function(pane,resize){if(!isInitialized())return;var o=options[pane],sel=o.contentSelector,I=Instance[pane],$P=$Ps[pane],$C;if(sel)$C=I.content=$Cs[pane]=o.findNestedContent?$P.find(sel).eq(0):$P.children(sel).eq(0);if($C&&$C.length){$C.data("layoutRole","content");if(!$C.data("layoutCSS"))$C.data("layoutCSS",elCSS($C,"height"));$C.css(_c.content.cssReq);if(o.applyDemoStyles){$C.css(_c.content.cssDemo);$P.css(_c.content.cssDemoPane)}state[pane].content={};if(resize!==false)sizeContent(pane)}else I.content= +$Cs[pane]=false},initResizable=function(panes){var draggingAvailable=$.layout.plugins.draggable,side;panes=panes?panes.split(","):_c.borderPanes;$.each(panes,function(idx,pane){var o=options[pane];if(!draggingAvailable||!$Ps[pane]||!o.resizable){o.resizable=false;return true}var s=state[pane],z=options.zIndexes,c=_c[pane],side=c.dir=="horz"?"top":"left",opEdge=_c.oppositeEdge[pane],masks=pane+",center,"+opEdge+(c.dir=="horz"?",west,east":""),$P=$Ps[pane],$R=$Rs[pane],base=o.resizerClass,lastPos=0, +r,live,resizerClass=base+"-drag",resizerPaneClass=base+"-"+pane+"-drag",helperClass=base+"-dragging",helperPaneClass=base+"-"+pane+"-dragging",helperLimitClass=base+"-dragging-limit",helperPaneLimitClass=base+"-"+pane+"-dragging-limit",helperClassesSet=false;if(!s.isClosed)$R.attr("title",o.resizerTip).css("cursor",o.resizerCursor);$R.draggable({containment:$N[0],axis:c.dir=="horz"?"y":"x",delay:0,distance:1,grid:o.resizingGrid,helper:"clone",opacity:o.resizerDragOpacity,addClasses:false,zIndex:z.resizer_drag, +start:function(e,ui){o=options[pane];s=state[pane];live=o.livePaneResizing;if(false===_runCallbacks("ondrag_start",pane))return false;s.isResizing=true;timer.clear(pane+"_closeSlider");setSizeLimits(pane);r=s.resizerPosition;lastPos=ui.position[side];$R.addClass(resizerClass+" "+resizerPaneClass);helperClassesSet=false;$("body").disableSelection();showMasks(masks)},drag:function(e,ui){if(!helperClassesSet){ui.helper.addClass(helperClass+" "+helperPaneClass).css({right:"auto",bottom:"auto"}).children().css("visibility", +"hidden");helperClassesSet=true;if(s.isSliding)$Ps[pane].css("zIndex",z.pane_sliding)}var limit=0;if(ui.position[side]r.max){ui.position[side]=r.max;limit=1}if(limit){ui.helper.addClass(helperLimitClass+" "+helperPaneLimitClass);window.defaultStatus=limit>0&&pane.match(/north|west/)||limit<0&&pane.match(/south|east/)?lang.maxSizeWarning:lang.minSizeWarning}else{ui.helper.removeClass(helperLimitClass+" "+helperPaneLimitClass);window.defaultStatus= +""}if(live&&Math.abs(ui.position[side]-lastPos)>=o.liveResizingTolerance){lastPos=ui.position[side];resizePanes(e,ui,pane)}},stop:function(e,ui){$("body").enableSelection();window.defaultStatus="";$R.removeClass(resizerClass+" "+resizerPaneClass);s.isResizing=false;resizePanes(e,ui,pane,true,masks)}})});var resizePanes=function(evt,ui,pane,resizingDone,masks){var dragPos=ui.position,c=_c[pane],o=options[pane],s=state[pane],resizerPos;switch(pane){case "north":resizerPos=dragPos.top;break;case "west":resizerPos= +dragPos.left;break;case "south":resizerPos=sC.offsetHeight-dragPos.top-o.spacing_open;break;case "east":resizerPos=sC.offsetWidth-dragPos.left-o.spacing_open;break}var newSize=resizerPos-sC["inset"+c.side];if(!resizingDone){if(Math.abs(newSize-s.size)s.maxSize){syncPinBtns(pane,false);if(!noAlert&&o.noRoomToOpenTip)alert(o.noRoomToOpenTip);return queueNext()}if(slide)bindStopSlidingEvents(pane,true);else if(s.isSliding)bindStopSlidingEvents(pane,false);else if(o.slidable)bindStartSlidingEvent(pane,false);s.noRoom=false;makePaneFit(pane);isShowing= +s.isShowing;delete s.isShowing;doFX=!noAnimation&&s.isClosed&&o.fxName_open!="none";s.isMoving=true;s.isVisible=true;s.isClosed=false;if(isShowing)s.isHidden=false;if(doFX){var masks="center"+(c.dir=="horz"?",west,east":"");if(s.isSliding)masks+=","+_c.oppositeEdge[pane];showMasks(masks,true);lockPaneForFX(pane,true);$P.show(o.fxName_open,o.fxSettings_open,o.fxSpeed_open,function(){lockPaneForFX(pane,false);if(s.isVisible)open_2();queueNext()})}else{_showPane(pane);open_2();queueNext()}});function open_2(){s.isMoving= +false;_fixIframe(pane);if(!s.isSliding){hideMasks();sizeMidPanes(_c[pane].dir=="vert"?"center":"",false)}setAsOpen(pane)}},setAsOpen=function(pane,skipCallback){var $P=$Ps[pane],$R=$Rs[pane],$T=$Ts[pane],o=options[pane],s=state[pane],side=_c[pane].side.toLowerCase(),inset="inset"+_c[pane].side,rClass=o.resizerClass,tClass=o.togglerClass,_pane="-"+pane,_open="-open",_closed="-closed",_sliding="-sliding";$R.css(side,sC[inset]+getPaneSize(pane)).removeClass(rClass+_closed+" "+rClass+_pane+_closed).addClass(rClass+ +_open+" "+rClass+_pane+_open);if(s.isSliding)$R.addClass(rClass+_sliding+" "+rClass+_pane+_sliding);else $R.removeClass(rClass+_sliding+" "+rClass+_pane+_sliding);if(o.resizerDblClickToggle)$R.bind("dblclick",toggle);removeHover(0,$R);if(o.resizable&&$.layout.plugins.draggable)$R.draggable("enable").css("cursor",o.resizerCursor).attr("title",o.resizerTip);else if(!s.isSliding)$R.css("cursor","default");if($T){$T.removeClass(tClass+_closed+" "+tClass+_pane+_closed).addClass(tClass+_open+" "+tClass+ +_pane+_open).attr("title",o.togglerTip_open);removeHover(0,$T);$T.children(".content-closed").hide();$T.children(".content-open").css("display","block")}syncPinBtns(pane,!s.isSliding);$.extend(s,elDims($P));if(state.initialized){sizeHandles();sizeContent(pane,true)}if(!skipCallback&&(state.initialized||o.triggerEventsOnLoad)&&$P.is(":visible")){_runCallbacks("onopen_end",pane);if(s.isShowing)_runCallbacks("onshow_end",pane);if(state.initialized)_runCallbacks("onresize_end",pane)}},slideOpen=function(evt_or_pane){if(!isInitialized())return; +var evt=evtObj(evt_or_pane),pane=evtPane.call(this,evt_or_pane),s=state[pane],delay=options[pane].slideDelay_open;if(evt)evt.stopImmediatePropagation();if(s.isClosed&&evt&&evt.type==="mouseenter"&&delay>0)timer.set(pane+"_openSlider",open_NOW,delay);else open_NOW();function open_NOW(){if(!s.isClosed)bindStopSlidingEvents(pane,true);else if(!s.isMoving)open(pane,true)}},slideClose=function(evt_or_pane){if(!isInitialized())return;var evt=evtObj(evt_or_pane),pane=evtPane.call(this,evt_or_pane),o=options[pane], +s=state[pane],delay=s.isMoving?1E3:300;if(s.isClosed||s.isResizing)return;else if(o.slideTrigger_close==="click")close_NOW();else if(o.preventQuickSlideClose&&s.isMoving)return;else if(o.preventPrematureSlideClose&&evt&&$.layout.isMouseOverElem(evt,$Ps[pane]))return;else if(evt)timer.set(pane+"_closeSlider",close_NOW,max(o.slideDelay_close,delay));else close_NOW();function close_NOW(){if(s.isClosed)bindStopSlidingEvents(pane,false);else if(!s.isMoving)close(pane)}},slideToggle=function(evt_or_pane){var pane= +evtPane.call(this,evt_or_pane);toggle(pane,true)},lockPaneForFX=function(pane,doLock){var $P=$Ps[pane],s=state[pane],o=options[pane],z=options.zIndexes;if(doLock){$P.css({zIndex:z.pane_animate});if(pane=="south")$P.css({top:sC.insetTop+sC.innerHeight-$P.outerHeight()});else if(pane=="east")$P.css({left:sC.insetLeft+sC.innerWidth-$P.outerWidth()})}else{$P.css({zIndex:s.isSliding?z.pane_sliding:z.pane_normal});if(pane=="south")$P.css({top:"auto"});else if(pane=="east"&&!$P.css("left").match(/\-99999/))$P.css({left:"auto"}); +if(browser.msie&&o.fxOpacityFix&&o.fxName_open!="slide"&&$P.css("filter")&&$P.css("opacity")==1)$P[0].style.removeAttribute("filter")}},bindStartSlidingEvent=function(pane,enable){var o=options[pane],$P=$Ps[pane],$R=$Rs[pane],evtName=o.slideTrigger_open.toLowerCase();if(!$R||enable&&!o.slidable)return;if(evtName.match(/mouseover/))evtName=o.slideTrigger_open="mouseenter";else if(!evtName.match(/click|dblclick|mouseenter/))evtName=o.slideTrigger_open="click";$R[enable?"bind":"unbind"](evtName+"."+ +sID,slideOpen).css("cursor",enable?o.sliderCursor:"default").attr("title",enable?o.sliderTip:"")},bindStopSlidingEvents=function(pane,enable){var o=options[pane],s=state[pane],c=_c[pane],z=options.zIndexes,evtName=o.slideTrigger_close.toLowerCase(),action=enable?"bind":"unbind",$P=$Ps[pane],$R=$Rs[pane];s.isSliding=enable;timer.clear(pane+"_closeSlider");if(enable)bindStartSlidingEvent(pane,false);$P.css("zIndex",enable?z.pane_sliding:z.pane_normal);$R.css("zIndex",enable?z.pane_sliding+2:z.resizer_normal); +if(!evtName.match(/click|mouseleave/))evtName=o.slideTrigger_close="mouseleave";$R[action](evtName,slideClose);if(evtName==="mouseleave"){$P[action]("mouseleave."+sID,slideClose);$R[action]("mouseenter."+sID,cancelMouseOut);$P[action]("mouseenter."+sID,cancelMouseOut)}if(!enable)timer.clear(pane+"_closeSlider");else if(evtName==="click"&&!o.resizable){$R.css("cursor",enable?o.sliderCursor:"default");$R.attr("title",enable?o.togglerTip_open:"")}function cancelMouseOut(evt){timer.clear(pane+"_closeSlider"); +evt.stopPropagation()}},makePaneFit=function(pane,isOpening,skipCallback,force){var o=options[pane],s=state[pane],c=_c[pane],$P=$Ps[pane],$R=$Rs[pane],isSidePane=c.dir==="vert",hasRoom=false;if(pane==="center"||isSidePane&&s.noVerticalRoom){hasRoom=s.maxHeight>=0;if(hasRoom&&s.noRoom){_showPane(pane);if($R)$R.show();s.isVisible=true;s.noRoom=false;if(isSidePane)s.noVerticalRoom=false;_fixIframe(pane)}else if(!hasRoom&&!s.noRoom){_hidePane(pane);if($R)$R.hide();s.isVisible=false;s.noRoom=true}}if(pane=== +"center");else if(s.minSize<=s.maxSize){hasRoom=true;if(s.size>s.maxSize)sizePane(pane,s.maxSize,skipCallback,force,true);else if(s.sizesize)thisTry.attempt=max(0,lastTry.attempt-(lastTry.actual-size));else thisTry.attempt=max(0,lastTry.attempt+(size-lastTry.actual));thisTry.cssSize=cssSize(pane,thisTry.attempt);$P.css(dimName,thisTry.cssSize);thisTry.actual=dimName=="width"?$P.outerWidth():$P.outerHeight();thisTry.correct=size===thisTry.actual;if(options.showDebugMessages){if(tries.length===1){_log(msg,false);_log(lastTry,false)}_log(thisTry,false)}if(tries.length>3)break;tries.push(thisTry);lastTry= +tries[tries.length-1]}s.size=size;$.extend(s,elDims($P));if(s.isVisible&&$P.is(":visible")){if($R)$R.css(side,size+sC[inset]);sizeContent(pane)}if(!skipCallback&&!skipResizeWhileDragging&&state.initialized&&s.isVisible)_runCallbacks("onresize_end",pane);if(!skipCallback){if(!s.isSliding)sizeMidPanes(_c[pane].dir=="horz"?"":"center",skipResizeWhileDragging,force);sizeHandles()}var altPane=_c.oppositeEdge[pane];if(size1)_log(msg+"\nSee the Error Console for details.",true)}},sizeMidPanes=function(panes,skipCallback,force){panes=(panes?panes:"east,west,center").split(",");$.each(panes,function(i,pane){if(!$Ps[pane])return;var o=options[pane],s=state[pane],$P=$Ps[pane],$R=$Rs[pane],isCenter=pane=="center",hasRoom=true,CSS={},newCenter=calcNewCenterPaneDims();$.extend(s,elDims($P));if(pane==="center"){if(!force&&s.isVisible&&newCenter.width===s.outerWidth&& +newCenter.height===s.outerHeight)return true;$.extend(s,cssMinDims(pane),{maxWidth:newCenter.width,maxHeight:newCenter.height});CSS=newCenter;CSS.width=cssW($P,CSS.width);CSS.height=cssH($P,CSS.height);hasRoom=CSS.width>=0&&CSS.height>=0;if(!state.initialized&&o.minWidth>s.outerWidth){var reqPx=o.minWidth-s.outerWidth,minE=options.east.minSize||0,minW=options.west.minSize||0,sizeE=state.east.size,sizeW=state.west.size,newE=sizeE,newW=sizeW;if(reqPx>0&&state.east.isVisible&&sizeE>minE){newE=max(sizeE- +minE,sizeE-reqPx);reqPx-=sizeE-newE}if(reqPx>0&&state.west.isVisible&&sizeW>minW){newW=max(sizeW-minW,sizeW-reqPx);reqPx-=sizeW-newW}if(reqPx===0){if(sizeE!=minE)sizePane("east",newE,true,force,true);if(sizeW!=minW)sizePane("west",newW,true,force,true);sizeMidPanes("center",skipCallback,force);return}}}else{if(s.isVisible&&!s.noVerticalRoom)$.extend(s,elDims($P),cssMinDims(pane));if(!force&&!s.noVerticalRoom&&newCenter.height===s.outerHeight)return true;CSS.top=newCenter.top;CSS.bottom=newCenter.bottom; +CSS.height=cssH($P,newCenter.height);s.maxHeight=CSS.height;hasRoom=s.maxHeight>=0;if(!hasRoom)s.noVerticalRoom=true}if(hasRoom){if(!skipCallback&&state.initialized)_runCallbacks("onresize_start",pane);$P.css(CSS);sizeHandles(pane);if(s.noRoom&&!s.isClosed&&!s.isHidden)makePaneFit(pane);if(s.isVisible){$.extend(s,elDims($P));if(state.initialized)sizeContent(pane)}}else if(!s.noRoom&&s.isVisible)makePaneFit(pane);if(!s.isVisible)return true;if(pane==="center"){var b=$.layout.browser;var fix=b.isIE6|| +b.msie&&!$.support.boxModel;if($Ps.north&&(fix||state.north.tagName=="IFRAME"))$Ps.north.css("width",cssW($Ps.north,sC.innerWidth));if($Ps.south&&(fix||state.south.tagName=="IFRAME"))$Ps.south.css("width",cssW($Ps.south,sC.innerWidth))}if(!skipCallback&&state.initialized)_runCallbacks("onresize_end",pane)})},resizeAll=function(){if(!state.initialized){_initLayoutElements();return}var oldW=sC.innerWidth,oldH=sC.innerHeight;if(!$N.is(":visible:"))return;$.extend(state.container,elDims($N));if(!sC.outerHeight)return; +if(false===_runCallbacks("onresizeall_start"))return false;var shrunkH=sC.innerHeight0&&$P.css("overflow")==="hidden"){$P.css("overflow", +"visible");_measure();$P.css("overflow","hidden")}}var newH=s.innerHeight-(m.spaceAbove-s.css.paddingTop)-(m.spaceBelow-s.css.paddingBottom);if(!$C.is(":visible")||m.height!=newH){setOuterHeight($C,newH,true);m.height=newH}if(state.initialized)_runCallbacks("onsizecontent_end",pane);function _below($E){return max(s.css.paddingBottom,parseInt($E.css("marginBottom"),10)||0)}function _measure(){var ignore=options[pane].contentIgnoreSelector,$Fs=$C.nextAll().not(ignore||":lt(0)"),$Fs_vis=$Fs.filter(":visible"), +$F=$Fs_vis.filter(":last");m={top:$C[0].offsetTop,height:$C.outerHeight(),numFooters:$Fs.length,hiddenFooters:$Fs.length-$Fs_vis.length,spaceBelow:0};m.spaceAbove=m.top;m.bottom=m.top+m.height;if($F.length)m.spaceBelow=$F[0].offsetTop+$F.outerHeight()-m.bottom+_below($F);else m.spaceBelow=_below($C)}})},sizeHandles=function(evt_or_panes){var panes=evtPane.call(this,evt_or_panes);panes=panes?panes.split(","):_c.borderPanes;$.each(panes,function(i,pane){var o=options[pane],s=state[pane],$P=$Ps[pane], +$R=$Rs[pane],$T=$Ts[pane],$TC;if(!$P||!$R)return;var dir=_c[pane].dir,_state=s.isClosed?"_closed":"_open",spacing=o["spacing"+_state],togAlign=o["togglerAlign"+_state],togLen=o["togglerLength"+_state],paneLen,left,offset,CSS={};if(spacing===0){$R.hide();return}else if(!s.noRoom&&!s.isHidden)$R.show();if(dir==="horz"){paneLen=sC.innerWidth;s.resizerLength=paneLen;left=$.layout.cssNum($P,"left");$R.css({width:cssW($R,paneLen),height:cssH($R,spacing),left:left>-9999?left:sC.insetLeft})}else{paneLen= +$P.outerHeight();s.resizerLength=paneLen;$R.css({height:cssH($R,paneLen),width:cssW($R,spacing),top:sC.insetTop+getPaneSize("north",true)})}removeHover(o,$R);if($T){if(togLen===0||s.isSliding&&o.hideTogglerOnSlide){$T.hide();return}else $T.show();if(!(togLen>0)||togLen==="100%"||togLen>paneLen){togLen=paneLen;offset=0}else if(isStr(togAlign))switch(togAlign){case "top":case "left":offset=0;break;case "bottom":case "right":offset=paneLen-togLen;break;case "middle":case "center":default:offset=round((paneLen- +togLen)/2)}else{var x=parseInt(togAlign,10);if(togAlign>=0)offset=x;else offset=paneLen-togLen+x}if(dir==="horz"){var width=cssW($T,togLen);$T.css({width:width,height:cssH($T,spacing),left:offset,top:0});$T.children(".content").each(function(){$TC=$(this);$TC.css("marginLeft",round((width-$TC.outerWidth())/2))})}else{var height=cssH($T,togLen);$T.css({height:height,width:cssW($T,spacing),top:offset,left:0});$T.children(".content").each(function(){$TC=$(this);$TC.css("marginTop",round((height-$TC.outerHeight())/ +2))})}removeHover(0,$T)}if(!state.initialized&&(o.initHidden||s.noRoom)){$R.hide();if($T)$T.hide()}})},enableClosable=function(evt_or_pane){if(!isInitialized())return;var pane=evtPane.call(this,evt_or_pane),$T=$Ts[pane],o=options[pane];if(!$T)return;o.closable=true;$T.bind("click."+sID,function(evt){evt.stopPropagation();toggle(pane)}).css("visibility","visible").css("cursor","pointer").attr("title",state[pane].isClosed?o.togglerTip_closed:o.togglerTip_open).show()},disableClosable=function(evt_or_pane, +hide){if(!isInitialized())return;var pane=evtPane.call(this,evt_or_pane),$T=$Ts[pane];if(!$T)return;options[pane].closable=false;if(state[pane].isClosed)open(pane,false,true);$T.unbind("."+sID).css("visibility",hide?"hidden":"visible").css("cursor","default").attr("title","")},enableSlidable=function(evt_or_pane){if(!isInitialized())return;var pane=evtPane.call(this,evt_or_pane),$R=$Rs[pane];if(!$R||!$R.data("draggable"))return;options[pane].slidable=true;if(s.isClosed)bindStartSlidingEvent(pane, +true)},disableSlidable=function(evt_or_pane){if(!isInitialized())return;var pane=evtPane.call(this,evt_or_pane),$R=$Rs[pane];if(!$R)return;options[pane].slidable=false;if(state[pane].isSliding)close(pane,false,true);else{bindStartSlidingEvent(pane,false);$R.css("cursor","default").attr("title","");removeHover(null,$R[0])}},enableResizable=function(evt_or_pane){if(!isInitialized())return;var pane=evtPane.call(this,evt_or_pane),$R=$Rs[pane],o=options[pane];if(!$R||!$R.data("draggable"))return;o.resizable= +true;$R.draggable("enable");if(!state[pane].isClosed)$R.css("cursor",o.resizerCursor).attr("title",o.resizerTip)},disableResizable=function(evt_or_pane){if(!isInitialized())return;var pane=evtPane.call(this,evt_or_pane),$R=$Rs[pane];if(!$R||!$R.data("draggable"))return;options[pane].resizable=false;$R.draggable("disable").css("cursor","default").attr("title","");removeHover(null,$R[0])},swapPanes=function(evt_or_pane1,pane2){if(!isInitialized())return;var pane1=evtPane.call(this,evt_or_pane1);state[pane1].edge= +pane2;state[pane2].edge=pane1;if(false===_runCallbacks("onswap_start",pane1)||false===_runCallbacks("onswap_start",pane2)){state[pane1].edge=pane1;state[pane2].edge=pane2;return}var oPane1=copy(pane1),oPane2=copy(pane2),sizes={};sizes[pane1]=oPane1?oPane1.state.size:0;sizes[pane2]=oPane2?oPane2.state.size:0;$Ps[pane1]=false;$Ps[pane2]=false;state[pane1]={};state[pane2]={};if($Ts[pane1])$Ts[pane1].remove();if($Ts[pane2])$Ts[pane2].remove();if($Rs[pane1])$Rs[pane1].remove();if($Rs[pane2])$Rs[pane2].remove(); +$Rs[pane1]=$Rs[pane2]=$Ts[pane1]=$Ts[pane2]=false;move(oPane1,pane2);move(oPane2,pane1);oPane1=oPane2=sizes=null;if($Ps[pane1])$Ps[pane1].css(_c.visible);if($Ps[pane2])$Ps[pane2].css(_c.visible);resizeAll();_runCallbacks("onswap_end",pane1);_runCallbacks("onswap_end",pane2);return;function copy(n){var $P=$Ps[n],$C=$Cs[n];return!$P?false:{pane:n,P:$P?$P[0]:false,C:$C?$C[0]:false,state:$.extend(true,{},state[n]),options:$.extend(true,{},options[n])}}function move(oPane,pane){if(!oPane)return;var P= +oPane.P,C=oPane.C,oldPane=oPane.pane,c=_c[pane],side=c.side.toLowerCase(),inset="inset"+c.side,s=$.extend({},state[pane]),o=options[pane],fx={resizerCursor:o.resizerCursor},re,size,pos;$.each("fxName,fxSpeed,fxSettings".split(","),function(i,k){fx[k+"_open"]=o[k+"_open"];fx[k+"_close"]=o[k+"_close"];fx[k+"_size"]=o[k+"_size"]});$Ps[pane]=$(P).data({layoutPane:Instance[pane],layoutEdge:pane}).css(_c.hidden).css(c.cssReq);$Cs[pane]=C?$(C):false;options[pane]=$.extend({},oPane.options,fx);state[pane]= +$.extend({},oPane.state);re=new RegExp(o.paneClass+"-"+oldPane,"g");P.className=P.className.replace(re,o.paneClass+"-"+pane);initHandles(pane);if(c.dir!=_c[oldPane].dir){size=sizes[pane]||0;setSizeLimits(pane);size=max(size,state[pane].minSize);manualSizePane(pane,size,true,true)}else $Rs[pane].css(side,sC[inset]+(state[pane].isVisible?getPaneSize(pane):0));if(oPane.state.isVisible&&!s.isVisible)setAsOpen(pane,true);else{setAsClosed(pane);bindStartSlidingEvent(pane,true)}oPane=null}},syncPinBtns= +function(pane,doPin){if($.layout.plugins.buttons)$.each(state[pane].pins,function(i,selector){$.layout.buttons.setPinState(Instance,$(selector),pane,doPin)})};function keyDown(evt){if(!evt)return true;var code=evt.keyCode;if(code<33)return true;var PANE={38:"north",40:"south",37:"west",39:"east"},ALT=evt.altKey,SHIFT=evt.shiftKey,CTRL=evt.ctrlKey,CURSOR=CTRL&&code>=37&&code<=40,o,k,m,pane;if(CURSOR&&options[PANE[code]].enableCursorHotkey)pane=PANE[code];else if(CTRL||SHIFT)$.each(_c.borderPanes,function(i, +p){o=options[p];k=o.customHotkey;m=o.customHotkeyModifier;if(SHIFT&&m=="SHIFT"||CTRL&&m=="CTRL"||CTRL&&SHIFT)if(k&&code===(isNaN(k)||k<=9?k.toUpperCase().charCodeAt(0):k)){pane=p;return false}});if(!pane||!$Ps[pane]||!options[pane].closable||state[pane].isHidden)return true;toggle(pane);evt.stopPropagation();evt.returnValue=false;return false}function allowOverflow(el){if(!isInitialized())return;if(this&&this.tagName)el=this;var $P;if(isStr(el))$P=$Ps[el];else if($(el).data("layoutRole"))$P=$(el); +else $(el).parents().each(function(){if($(this).data("layoutRole")){$P=$(this);return false}});if(!$P||!$P.length)return;var pane=$P.data("layoutEdge"),s=state[pane];if(s.cssSaved)resetOverflow(pane);if(s.isSliding||s.isResizing||s.isClosed){s.cssSaved=false;return}var newCSS={zIndex:options.zIndexes.resizer_normal+1},curCSS={},of=$P.css("overflow"),ofX=$P.css("overflowX"),ofY=$P.css("overflowY");if(of!="visible"){curCSS.overflow=of;newCSS.overflow="visible"}if(ofX&&!ofX.match(/visible|auto/)){curCSS.overflowX= +ofX;newCSS.overflowX="visible"}if(ofY&&!ofY.match(/visible|auto/)){curCSS.overflowY=ofX;newCSS.overflowY="visible"}s.cssSaved=curCSS;$P.css(newCSS);$.each(_c.allPanes,function(i,p){if(p!=pane)resetOverflow(p)})}function resetOverflow(el){if(!isInitialized())return;if(this&&this.tagName)el=this;var $P;if(isStr(el))$P=$Ps[el];else if($(el).data("layoutRole"))$P=$(el);else $(el).parents().each(function(){if($(this).data("layoutRole")){$P=$(this);return false}});if(!$P||!$P.length)return;var pane=$P.data("layoutEdge"), +s=state[pane],CSS=s.cssSaved||{};if(!s.isSliding&&!s.isResizing)$P.css("zIndex",options.zIndexes.pane_normal);$P.css(CSS);s.cssSaved=false}var $N=$(this).eq(0);if(!$N.length){if(options.showErrorMessages)_log(lang.errContainerMissing,true);return null}if($N.data("layoutContainer")&&$N.data("layout"))return $N.data("layout");var $Ps={},$Cs={},$Rs={},$Ts={},$Ms=$([]),sC=state.container,sID=state.id;var Instance={options:options,state:state,container:$N,panes:$Ps,contents:$Cs,resizers:$Rs,togglers:$Ts, +hide:hide,show:show,toggle:toggle,open:open,close:close,slideOpen:slideOpen,slideClose:slideClose,slideToggle:slideToggle,setSizeLimits:setSizeLimits,_sizePane:sizePane,sizePane:manualSizePane,sizeContent:sizeContent,swapPanes:swapPanes,initContent:initContent,addPane:addPane,removePane:removePane,createChildLayout:createChildLayout,enableClosable:enableClosable,disableClosable:disableClosable,enableSlidable:enableSlidable,disableSlidable:disableSlidable,enableResizable:enableResizable,disableResizable:disableResizable, +allowOverflow:allowOverflow,resetOverflow:resetOverflow,destroy:destroy,initPanes:isInitialized,resizeAll:resizeAll,runCallbacks:_runCallbacks,hasParentLayout:false,children:children,north:false,south:false,west:false,east:false,center:false};if(_create()==="cancel")return null;else return Instance};if(!$.ui)$.ui={};$.ui.cookie={acceptsCookies:!!navigator.cookieEnabled,read:function(name){var c=document.cookie,cs=c?c.split(";"):[],pair;for(var i=0,n=cs.length;i0)date.setDate(date.getDate()+x);else{date.setFullYear(1970);clear=true}}if(date)params+=";expires="+date.toUTCString();if(o.path)params+=";path="+o.path;if(o.domain)params+=";domain="+o.domain;if(o.secure)params+=";secure";document.cookie=name+"="+(clear? +"":encodeURIComponent(val))+params},clear:function(name){$.ui.cookie.write(name,"",{expires:-1})}};if(!$.cookie)$.cookie=function(k,v,o){var C=$.ui.cookie;if(v===null)C.clear(k);else if(v===undefined)return C.read(k);else C.write(k,v,o)};$.layout.plugins.stateManagement=true;$.layout.config.optionRootKeys.push("stateManagement");$.layout.defaults.stateManagement={enabled:false,autoSave:true,autoLoad:true,stateKeys:"north.size,south.size,east.size,west.size,"+"north.isClosed,south.isClosed,east.isClosed,west.isClosed,"+ +"north.isHidden,south.isHidden,east.isHidden,west.isHidden",cookie:{name:"",domain:"",path:"",expires:"",secure:false}};$.layout.optionsMap.layout.push("stateManagement");$.layout.state={saveCookie:function(inst,keys,cookieOpts){var o=inst.options,oS=o.stateManagement,oC=$.extend(true,{},oS.cookie,cookieOpts||null),data=inst.state.stateData=inst.readState(keys||oS.stateKeys);$.ui.cookie.write(oC.name||o.name||"Layout",$.layout.state.encodeJSON(data),oC);return $.extend(true,{},data)},deleteCookie:function(inst){var o= +inst.options;$.ui.cookie.clear(o.stateManagement.cookie.name||o.name||"Layout")},readCookie:function(inst){var o=inst.options;var c=$.ui.cookie.read(o.stateManagement.cookie.name||o.name||"Layout");return c?$.layout.state.decodeJSON(c):{}},loadCookie:function(inst){var c=$.layout.state.readCookie(inst);if(c){inst.state.stateData=$.extend(true,{},c);inst.loadState(c)}return c},loadState:function(inst,stateData,animate){stateData=$.layout.transformData(stateData);if($.isEmptyObject(stateData))return; +$.extend(true,inst.options,stateData);if(inst.state.initialized){var pane,vis,o,s,h,c,noAnimate=animate===false;$.each($.layout.config.borderPanes,function(idx,pane){state=inst.state[pane];o=stateData[pane];if(typeof o!="object")return;s=o.size;c=o.initClosed;h=o.initHidden;vis=state.isVisible;if(!vis)inst.sizePane(pane,s,false,false);if(h===true)inst.hide(pane,noAnimate);else if(c===false)inst.open(pane,false,noAnimate);else if(c===true)inst.close(pane,false,noAnimate);else if(h===false)inst.show(pane, +false,noAnimate);if(vis)inst.sizePane(pane,s,false,noAnimate)})}},readState:function(inst,keys){var data={},alt={isClosed:"initClosed",isHidden:"initHidden"},state=inst.state,panes=$.layout.config.allPanes,pair,pane,key,val;if(!keys)keys=inst.options.stateManagement.stateKeys;if($.isArray(keys))keys=keys.join(",");keys=keys.replace(/__/g,".").split(",");for(var i=0,n=keys.length;i8||!b.msie)return false;if(s.deviceXDPI)return calc(s.deviceXDPI,s.systemXDPI); +if(b.webkit&&(r=d.body.getBoundingClientRect))return calc(r.left-r.right,d.body.offsetWidth);if(b.webkit&&(sW=w.outerWidth))return calc(sW,w.innerWidth);if((sW=s.width)&&(cW=dE.clientWidth))return calc(sW,cW);return false;function calc(x,y){return(parseInt(x,10)/parseInt(y,10)*100).toFixed()}}};$.layout.onReady.push($.layout.browserZoom._init)})(jQuery); Index: lams_common/db/sql/insert_lams_windows_config_data.sql =================================================================== diff -u -r638958bf80f0a705e40e63e5b1cc6724a9256a8c -rfbcc39165dcd908171cee18188e528e176693a04 --- lams_common/db/sql/insert_lams_windows_config_data.sql (.../insert_lams_windows_config_data.sql) (revision 638958bf80f0a705e40e63e5b1cc6724a9256a8c) +++ lams_common/db/sql/insert_lams_windows_config_data.sql (.../insert_lams_windows_config_data.sql) (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -245,6 +245,9 @@ values ('EnableFlash','true', 'config.flash.enable', 'config.header.features', 'BOOLEAN', 1); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) +values ('LearnerCollapsProgressPanel','true', 'config.learner.collapsible.progress.panel', 'config.header.features', 'BOOLEAN', 0); + +insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) values ('AuthoringScreenSize','1024x768', 'config.authoring.screen.size', 'config.header.look.feel', 'STRING', 1); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) Index: lams_common/db/sql/insert_rams_unix_config_data.sql =================================================================== diff -u -r3ed9333a3a6431a53da819edd32fa294829e9fd7 -rfbcc39165dcd908171cee18188e528e176693a04 --- lams_common/db/sql/insert_rams_unix_config_data.sql (.../insert_rams_unix_config_data.sql) (revision 3ed9333a3a6431a53da819edd32fa294829e9fd7) +++ lams_common/db/sql/insert_rams_unix_config_data.sql (.../insert_rams_unix_config_data.sql) (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -233,6 +233,9 @@ values ('EnableFlash','true', 'config.flash.enable', 'config.header.features', 'BOOLEAN', 1); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) +values ('LearnerCollapsProgressPanel','true', 'config.learner.collapsible.progress.panel', 'config.header.features', 'BOOLEAN', 0); + +insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) values ('AuthoringScreenSize','1024x768', 'config.authoring.screen.size', 'config.header.look.feel', 'STRING', 1); insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040011.sql =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040011.sql (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040011.sql (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -0,0 +1,10 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; + +-- LDEV-2889 Collapsible progress panel in Learner +insert into lams_configuration (config_key, config_value, description_key, header_name, format, required) +values ('LearnerCollapsProgressPanel','true', 'config.learner.collapsible.progress.panel', 'config.header.features', 'BOOLEAN', 0); + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java =================================================================== diff -u -r1b5e1d1a56b7c671c57bbd9257fdba49c85abc3f -rfbcc39165dcd908171cee18188e528e176693a04 --- lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision 1b5e1d1a56b7c671c57bbd9257fdba49c85abc3f) +++ lams_common/src/java/org/lamsfoundation/lams/util/ConfigurationKeys.java (.../ConfigurationKeys.java) (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -277,5 +277,8 @@ // LDEV-2747 public static String ENABLE_SERVER_REGISTRATION = "EnableServerRegistration"; + + // LDEV-2889 + public static String LEARNER_COLLAPSIBLE_PROGRESS_PANEL = "LearnerCollapsProgressPanel"; } Index: lams_learning/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -r542c2cefed9f7ef2c515eff59a06f508330e24f7 -rfbcc39165dcd908171cee18188e528e176693a04 --- lams_learning/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 542c2cefed9f7ef2c515eff59a06f508330e24f7) +++ lams_learning/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -106,6 +106,8 @@ label.print =Print message.released.lessons =You are now able to participate in following lessons: {0}. learner.im.title =Instant messaging - - +label.learner.progress.open=CLOSE +label.learner.progress.open.tooltip=Hide lesson progress +label.learner.progress.closed=PROGRESS +label.learner.progress.closed.tooltip=Show lesson progress #======= End labels: Exported 100 labels for en AU ===== Index: lams_learning/web/css/mainflash.css =================================================================== diff -u --- lams_learning/web/css/mainflash.css (revision 0) +++ lams_learning/web/css/mainflash.css (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -0,0 +1,35 @@ +body.stripes { + margin: 0px; +} + +div#controlFrame { + position: absolute; + width: 160px; + height:100%; + top: 0px; + left: 0px; +} + +#contentFrame { + border: none; + margin-left: 160px; +} + +.ui-layout-pane { + padding: 0px !important; +} + +.ui-layout-toggler-west { + background-color: #2B95E9 !important; +} + +.ui-layout-toggler-west-hover { + background-color: #B8E335 !important; +} + +.ui-layout-toggler-west-open .content, .ui-layout-toggler-west-closed .content { + font-size: 10px; + text-align: center; + font-weight: bold; + word-wrap: break-word; +} \ No newline at end of file Index: lams_learning/web/mainflash.jsp =================================================================== diff -u -rda9398a57213d049378cff52cfae1b0f353936b0 -rfbcc39165dcd908171cee18188e528e176693a04 --- lams_learning/web/mainflash.jsp (.../mainflash.jsp) (revision da9398a57213d049378cff52cfae1b0f353936b0) +++ lams_learning/web/mainflash.jsp (.../mainflash.jsp) (revision fbcc39165dcd908171cee18188e528e176693a04) @@ -26,21 +26,27 @@ <%@ taglib uri="tags-fmt" prefix="fmt" %> <%@ taglib uri="tags-lams" prefix="lams" %> +<%=Configuration.get(ConfigurationKeys.LEARNER_COLLAPSIBLE_PROGRESS_PANEL)%> + + + <fmt:message key="learner.title"/> + - + +