/* Compiled from X 4.18 by XC 1.07 on 17Feb09 */ function xEvent(evt){var e=evt||window.event;if(!e)return;this.type=e.type;this.target=e.target||e.srcElement;this.relatedTarget=e.relatedTarget;/*@cc_on if(e.type=='mouseover')this.relatedTarget=e.fromElement;else if(e.type=='mouseout')this.relatedTarget=e.toElement;@*/if(xDef(e.pageX)){this.pageX=e.pageX;this.pageY=e.pageY;}else if(xDef(e.clientX)){this.pageX=e.clientX+xScrollLeft();this.pageY=e.clientY+xScrollTop();}if(xDef(e.offsetX)){this.offsetX=e.offsetX;this.offsetY=e.offsetY;}else if(xDef(e.layerX)){this.offsetX=e.layerX;this.offsetY=e.layerY;}else{this.offsetX=this.pageX-xPageX(this.target);this.offsetY=this.pageY-xPageY(this.target);}this.keyCode=e.keyCode||e.which||0;this.shiftKey=e.shiftKey;this.ctrlKey=e.ctrlKey;this.altKey=e.altKey;if(typeof e.type=='string'){if(e.type.indexOf('click')!=-1){this.button=0;}else if(e.type.indexOf('mouse')!=-1){this.button=e.button;/*@cc_on if(e.button&1)this.button=0;else if(e.button&4)this.button=1;else if(e.button&2)this.button=2;@*/}}}xLibrary={version:'4.18',license:'GNU LGPL',url:'http://cross-browser.com/'};function xAddEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e)))return;eT=eT.toLowerCase();if(e.addEventListener)e.addEventListener(eT,eL,cap||false);else if(e.attachEvent)e.attachEvent('on'+eT,eL);else{var o=e['on'+eT];e['on'+eT]=typeof o=='function'?function(v){o(v);eL(v);}:eL;}}function xCamelize(cssPropStr){var i,c,a=cssPropStr.split('-');var s=a[0];for(i=1;iw.innerWidth)v-=16;}return v;}function xClientWidth(){var v=0,d=document,w=window;if((!d.compatMode||d.compatMode=='CSS1Compat')&&!w.opera&&d.documentElement&&d.documentElement.clientWidth){v=d.documentElement.clientWidth;}else if(d.body&&d.body.clientWidth){v=d.body.clientWidth;}else if(xDef(w.innerWidth,w.innerHeight,d.height)){v=w.innerWidth;if(d.height>w.innerHeight)v-=16;}return v;}function xDef(){for(var i=0;i=eX+l&&x<=eX+xWidth(e)-r&&y>=eY+t&&y<=eY+xHeight(e)-b);}function xHeight(e,h){if(!(e=xGetElementById(e)))return 0;if(xNum(h)){if(h<0)h=0;else h=Math.round(h);}else h=-1;var css=xDef(e.style);if(e==document||e.tagName.toLowerCase()=='html'||e.tagName.toLowerCase()=='body'){h=xClientHeight();}else if(css&&xDef(e.offsetHeight)&&xStr(e.style.height)){if(h>=0){var pt=0,pb=0,bt=0,bb=0;if(document.compatMode=='CSS1Compat'){var gcs=xGetComputedStyle;pt=gcs(e,'padding-top',1);if(pt!==null){pb=gcs(e,'padding-bottom',1);bt=gcs(e,'border-top-width',1);bb=gcs(e,'border-bottom-width',1);}else if(xDef(e.offsetHeight,e.style.height)){e.style.height=h+'px';pt=e.offsetHeight-h;}}h-=(pt+pb+bt+bb);if(isNaN(h)||h<0)return;else e.style.height=h+'px';}h=e.offsetHeight;}else if(css&&xDef(e.style.pixelHeight)){if(h>=0)e.style.pixelHeight=h;h=e.style.pixelHeight;}return h;}function xLeft(e,iX){if(!(e=xGetElementById(e)))return 0;var css=xDef(e.style);if(css&&xStr(e.style.left)){if(xNum(iX))e.style.left=iX+'px';else{iX=parseInt(e.style.left);if(isNaN(iX))iX=xGetComputedStyle(e,'left',1);if(isNaN(iX))iX=0;}}else if(css&&xDef(e.style.pixelLeft)){if(xNum(iX))e.style.pixelLeft=iX;else iX=e.style.pixelLeft;}return iX;}function xMoveTo(e,x,y){xLeft(e,x);xTop(e,y);}function xNum(){for(var i=0;i=0){var pl=0,pr=0,bl=0,br=0;if(document.compatMode=='CSS1Compat'){var gcs=xGetComputedStyle;pl=gcs(e,'padding-left',1);if(pl!==null){pr=gcs(e,'padding-right',1);bl=gcs(e,'border-left-width',1);br=gcs(e,'border-right-width',1);}else if(xDef(e.offsetWidth,e.style.width)){e.style.width=w+'px';pl=e.offsetWidth-w;}}w-=(pl+pr+bl+br);if(isNaN(w)||w<0)return;else e.style.width=w+'px';}w=e.offsetWidth;}else if(css&&xDef(e.style.pixelWidth)){if(w>=0)e.style.pixelWidth=w;w=e.style.pixelWidth;}return w;}/* Compiled from X 4.18 by XC 1.07 on 17Feb09 */ function xEvent(evt){var e=evt||window.event;if(!e)return;this.type=e.type;this.target=e.target||e.srcElement;this.relatedTarget=e.relatedTarget;/*@cc_on if(e.type=='mouseover')this.relatedTarget=e.fromElement;else if(e.type=='mouseout')this.relatedTarget=e.toElement;@*/if(xDef(e.pageX)){this.pageX=e.pageX;this.pageY=e.pageY;}else if(xDef(e.clientX)){this.pageX=e.clientX+xScrollLeft();this.pageY=e.clientY+xScrollTop();}if(xDef(e.offsetX)){this.offsetX=e.offsetX;this.offsetY=e.offsetY;}else if(xDef(e.layerX)){this.offsetX=e.layerX;this.offsetY=e.layerY;}else{this.offsetX=this.pageX-xPageX(this.target);this.offsetY=this.pageY-xPageY(this.target);}this.keyCode=e.keyCode||e.which||0;this.shiftKey=e.shiftKey;this.ctrlKey=e.ctrlKey;this.altKey=e.altKey;if(typeof e.type=='string'){if(e.type.indexOf('click')!=-1){this.button=0;}else if(e.type.indexOf('mouse')!=-1){this.button=e.button;/*@cc_on if(e.button&1)this.button=0;else if(e.button&4)this.button=1;else if(e.button&2)this.button=2;@*/}}}xLibrary={version:'4.18',license:'GNU LGPL',url:'http://cross-browser.com/'};function xAddEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e)))return;eT=eT.toLowerCase();if(e.addEventListener)e.addEventListener(eT,eL,cap||false);else if(e.attachEvent)e.attachEvent('on'+eT,eL);else{var o=e['on'+eT];e['on'+eT]=typeof o=='function'?function(v){o(v);eL(v);}:eL;}}function xPreventDefault(e){if(e&&e.preventDefault)e.preventDefault();else if(window.event)window.event.returnValue=false;}function xRemoveEventListener(e,eT,eL,cap){if(!(e=xGetElementById(e)))return;eT=eT.toLowerCase();if(e.removeEventListener)e.removeEventListener(eT,eL,cap||false);else if(e.detachEvent)e.detachEvent('on'+eT,eL);else e['on'+eT]=null;}function xStopPropagation(evt){if(evt&&evt.stopPropagation)evt.stopPropagation();else if(window.event)window.event.cancelBubble=true;}// xEnableDrag r8, Copyright 2002-2007 Michael Foster (Cross-Browser.com) // Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL function xEnableDrag(id,fS,fD,fE) { var mx = 0, my = 0, el = xGetElementById(id); if (el) { el.xDragEnabled = true; xAddEventListener(el, 'mousedown', dragStart, false); } // Private Functions function dragStart(e) { if (el.xDragEnabled) { var ev = new xEvent(e); xPreventDefault(e); mx = ev.pageX; my = ev.pageY; xAddEventListener(document, 'mousemove', drag, false); xAddEventListener(document, 'mouseup', dragEnd, false); if (fS) { fS(el, ev.pageX, ev.pageY, ev); } } } function drag(e) { var ev, dx, dy; xPreventDefault(e); ev = new xEvent(e); dx = ev.pageX - mx; dy = ev.pageY - my; mx = ev.pageX; my = ev.pageY; if (fD) { fD(el, dx, dy, ev); } else { xMoveTo(el, xLeft(el) + dx, xTop(el) + dy); } } function dragEnd(e) { var ev = new xEvent(e); xPreventDefault(e); xRemoveEventListener(document, 'mouseup', dragEnd, false); xRemoveEventListener(document, 'mousemove', drag, false); if (fE) { fE(el, ev.pageX, ev.pageY, ev); } if (xEnableDrag.drop) { xEnableDrag.drop(el, ev); } } } xEnableDrag.drops = []; // static property // xFirstChild r4, Copyright 2004-2007 Michael Foster (Cross-Browser.com) // Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL function xFirstChild(e,t) { e = xGetElementById(e); var c = e ? e.firstChild : null; while (c) { if (c.nodeType == 1 && (!t || c.nodeName.toLowerCase() == t.toLowerCase())){break;} c = c.nextSibling; } return c; } // xNextSib r4, Copyright 2005-2007 Michael Foster (Cross-Browser.com) // Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL function xNextSib(e,t) { e = xGetElementById(e); var s = e ? e.nextSibling : null; while (s) { if (s.nodeType == 1 && (!t || s.nodeName.toLowerCase() == t.toLowerCase())){break;} s = s.nextSibling; } return s; } // xSplitter r3, Copyright 2006-2007 Michael Foster (Cross-Browser.com) // Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL function xSplitter(sSplId, uSplX, uSplY, uSplW, uSplH, bHorizontal, uBarW, uBarPos, uBarLimit1, uBarLimit2, bBarEnabled, uSplBorderW, oSplChild1, oSplChild2) { // Private var pane1, pane2, splW, splH; var splEle, barPos, barLim1, barLim2, barEle; function barOnDrag(ele, dx, dy) { var bp; if (bHorizontal) { bp = barPos + dx; if (bp < barLim1 || bp > splW - barLim2) { return; } xWidth(pane1, xWidth(pane1) + dx); xLeft(barEle, xLeft(barEle) + dx); xWidth(pane2, xWidth(pane2) - dx); xLeft(pane2, xLeft(pane2) + dx); barPos = bp; } else { bp = barPos + dy; if (bp < barLim1 || bp > splH - barLim2) { return; } xHeight(pane1, xHeight(pane1) + dy); xTop(barEle, xTop(barEle) + dy); xHeight(pane2, xHeight(pane2) - dy); xTop(pane2, xTop(pane2) + dy); barPos = bp; } if (oSplChild1) { oSplChild1.paint(xWidth(pane1), xHeight(pane1)); } if (oSplChild2) { oSplChild2.paint(xWidth(pane2), xHeight(pane2)); } } // Public this.paint = function(uNewW, uNewH, uNewBarPos, uNewBarLim1, uNewBarLim2) // uNewBarPos and uNewBarLim are optional { if (uNewW == 0) { return; } var w1, h1, w2, h2; splW = uNewW; splH = uNewH; barPos = uNewBarPos || barPos; barLim1 = uNewBarLim1 || barLim1; barLim2 = uNewBarLim2 || barLim2; xMoveTo(splEle, uSplX, uSplY); xResizeTo(splEle, uNewW, uNewH); if (bHorizontal) { w1 = barPos; h1 = uNewH - 2 * uSplBorderW; w2 = uNewW - w1 - uBarW - 2 * uSplBorderW; h2 = h1; xMoveTo(pane1, 0, 0); xResizeTo(pane1, w1, h1); xMoveTo(barEle, w1, 0); xResizeTo(barEle, uBarW, h1); xMoveTo(pane2, w1 + uBarW, 0); xResizeTo(pane2, w2, h2); } else { w1 = uNewW - 2 * uSplBorderW;; h1 = barPos; w2 = w1; h2 = uNewH - h1 - uBarW - 2 * uSplBorderW; xMoveTo(pane1, 0, 0); xResizeTo(pane1, w1, h1); xMoveTo(barEle, 0, h1); xResizeTo(barEle, w1, uBarW); xMoveTo(pane2, 0, h1 + uBarW); xResizeTo(pane2, w2, h2); } if (oSplChild1) { pane1.style.overflow = 'hidden'; oSplChild1.paint(w1, h1); } if (oSplChild2) { pane2.style.overflow = 'hidden'; oSplChild2.paint(w2, h2); } }; // Constructor splEle = xGetElementById(sSplId); // we assume the splitter has 3 DIV children and in this order: pane1 = xFirstChild(splEle, 'DIV'); pane2 = xNextSib(pane1, 'DIV'); barEle = xNextSib(pane2, 'DIV'); // --- slightly dirty hack pane1.style.zIndex = 2; pane2.style.zIndex = 2; barEle.style.zIndex = 1; // --- barPos = uBarPos; barLim1 = uBarLimit1; barLim2 = uBarLimit2; this.paint(uSplW, uSplH); if (bBarEnabled) { xEnableDrag(barEle, null, barOnDrag, null); barEle.style.cursor = bHorizontal ? 'e-resize' : 'n-resize'; } splEle.style.visibility = 'visible'; } // end xSplitter