/* Built from X 4.24 by XAG 1.0. 15Jun11 17:36 UT */
xLibrary={version:"4.24",license:"GNU LGPL",url:"http://cross-browser.com/"};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; @*/
}}}}function xAddEventListener(d,c,b,a){if(!(d=xGetElementById(d))){return}c=c.toLowerCase();if(d.addEventListener){d.addEventListener(c,b,a||false)}else{if(d.attachEvent){d.attachEvent("on"+c,b)}else{var f=d["on"+c];d["on"+c]=typeof f=="function"?function(e){f(e);b(e)}:b}}}function xCamelize(d){var e,g,b,f;b=d.split("-");f=b[0];for(e=1;e<b.length;++e){g=b[e].charAt(0);f+=b[e].replace(g,g.toUpperCase())}return f}function xClientHeight(){var b=0,c=document,a=window;if((!c.compatMode||c.compatMode=="CSS1Compat")&&c.documentElement&&c.documentElement.clientHeight){b=c.documentElement.clientHeight}else{if(c.body&&c.body.clientHeight){b=c.body.clientHeight}else{if(xDef(a.innerWidth,a.innerHeight,c.width)){b=a.innerHeight;if(c.width>a.innerWidth){b-=16}}}}return b}function xClientWidth(){var b=0,c=document,a=window;if((!c.compatMode||c.compatMode=="CSS1Compat")&&!a.opera&&c.documentElement&&c.documentElement.clientWidth){b=c.documentElement.clientWidth}else{if(c.body&&c.body.clientWidth){b=c.body.clientWidth}else{if(xDef(a.innerWidth,a.innerHeight,c.height)){b=a.innerWidth;if(c.height>a.innerHeight){b-=16}}}}return b}function xDef(){for(var b=0,a=arguments.length;b<a;++b){if(typeof(arguments[b])==="undefined"){return false}}return true}function xFirstChild(b,a){b=xGetElementById(b);var d=b?b.firstChild:null;while(d){if(d.nodeType==1&&(!a||d.nodeName.toLowerCase()==a.toLowerCase())){break}d=d.nextSibling}return d}function xGetComputedStyle(g,f,c){if(!(g=xGetElementById(g))){return null}var d,a="undefined",b=document.defaultView;if(b&&b.getComputedStyle){d=b.getComputedStyle(g,"");if(d){a=d.getPropertyValue(f)}}else{if(g.currentStyle){a=g.currentStyle[xCamelize(f)]}else{return null}}return c?(parseInt(a)||0):a}function xGetElementById(a){if(typeof(a)=="string"){if(document.getElementById){a=document.getElementById(a)}else{if(document.all){a=document.all[a]}else{a=null}}}return a}function xGetElementsByTagName(a,c){var b=null;a=a||"*";c=xGetElementById(c)||document;if(typeof c.getElementsByTagName!="undefined"){b=c.getElementsByTagName(a);if(a=="*"&&(!b||!b.length)){b=c.all}}else{if(a=="*"){b=c.all}else{if(c.all&&c.all.tags){b=c.all.tags(a)}}}return b||[]}function xHasPoint(f,i,g,j,a,h,d){if(!xNum(j)){j=a=h=d=0}else{if(!xNum(a)){a=h=d=j}else{if(!xNum(h)){d=a;h=j}}}var c=xPageX(f),k=xPageY(f);return(i>=c+d&&i<=c+xWidth(f)-a&&g>=k+j&&g<=k+xHeight(f)-h)}function xHeight(g,d){var c,f=0,b=0,a=0,i=0;if(!(g=xGetElementById(g))){return 0}if(xNum(d)){if(d<0){d=0}else{d=Math.round(d)}}else{d=-1}c=xDef(g.style);if(g==document||g.tagName.toLowerCase()=="html"||g.tagName.toLowerCase()=="body"){d=xClientHeight()}else{if(c&&xDef(g.offsetHeight)&&xStr(g.style.height)){if(d>=0){if(document.compatMode=="CSS1Compat"){f=xGetComputedStyle(g,"padding-top",1);if(f!==null){b=xGetComputedStyle(g,"padding-bottom",1);a=xGetComputedStyle(g,"border-top-width",1);i=xGetComputedStyle(g,"border-bottom-width",1)}else{if(xDef(g.offsetHeight,g.style.height)){g.style.height=d+"px";f=g.offsetHeight-d}}}d-=(f+b+a+i);if(isNaN(d)||d<0){return}else{g.style.height=d+"px"}}d=g.offsetHeight}else{if(c&&xDef(g.style.pixelHeight)){if(d>=0){g.style.pixelHeight=d}d=g.style.pixelHeight}}}return d}function xLeft(c,a){if(!(c=xGetElementById(c))){return 0}var b=xDef(c.style);if(b&&xStr(c.style.left)){if(xNum(a)){c.style.left=a+"px"}else{a=parseInt(c.style.left);if(isNaN(a)){a=xGetComputedStyle(c,"left",1)}if(isNaN(a)){a=0}}}else{if(b&&xDef(c.style.pixelLeft)){if(xNum(a)){c.style.pixelLeft=a}else{a=c.style.pixelLeft}}}return a}function xMoveTo(b,a,c){xLeft(b,a);xTop(b,c)}function xNextSib(c,a){c=xGetElementById(c);var b=c?c.nextSibling:null;while(b){if(b.nodeType==1&&(!a||b.nodeName.toLowerCase()==a.toLowerCase())){break}b=b.nextSibling}return b}function xNum(){for(var b=0,a=arguments.length;b<a;++b){if(isNaN(arguments[b])||typeof(arguments[b])!=="number"){return false}}return true}function xPageX(b){var a=0;b=xGetElementById(b);while(b){if(xDef(b.offsetLeft)){a+=b.offsetLeft}b=xDef(b.offsetParent)?b.offsetParent:null}return a}function xPageY(a){var b=0;a=xGetElementById(a);while(a){if(xDef(a.offsetTop)){b+=a.offsetTop}a=xDef(a.offsetParent)?a.offsetParent:null}return b}function xRemoveEventListener(d,c,b,a){if(!(d=xGetElementById(d))){return}c=c.toLowerCase();if(d.removeEventListener){d.removeEventListener(c,b,a||false)}else{if(d.detachEvent){d.detachEvent("on"+c,b)}else{d["on"+c]=null}}}function xScrollLeft(c,b){var a,d=0;if(!xDef(c)||b||c==document||c.tagName.toLowerCase()=="html"||c.tagName.toLowerCase()=="body"){a=window;if(b&&c){a=c}if(a.document.documentElement&&a.document.documentElement.scrollLeft){d=a.document.documentElement.scrollLeft}else{if(a.document.body&&xDef(a.document.body.scrollLeft)){d=a.document.body.scrollLeft}}}else{c=xGetElementById(c);if(c&&xNum(c.scrollLeft)){d=c.scrollLeft}}return d}function xScrollTop(c,b){var a,d=0;if(!xDef(c)||b||c==document||c.tagName.toLowerCase()=="html"||c.tagName.toLowerCase()=="body"){a=window;if(b&&c){a=c}if(a.document.documentElement&&a.document.documentElement.scrollTop){d=a.document.documentElement.scrollTop}else{if(a.document.body&&xDef(a.document.body.scrollTop)){d=a.document.body.scrollTop}}}else{c=xGetElementById(c);if(c&&xNum(c.scrollTop)){d=c.scrollTop}}return d}function xSlideTo(c,a,g,b){if(!(c=xGetElementById(c))){return}if(!c.timeout){c.timeout=25}c.xTarget=a;c.yTarget=g;c.slideTime=b;c.stop=false;c.yA=c.yTarget-xTop(c);c.xA=c.xTarget-xLeft(c);if(c.slideLinear){c.B=1/c.slideTime}else{c.B=Math.PI/(2*c.slideTime)}c.yD=xTop(c);c.xD=xLeft(c);var f=new Date();c.C=f.getTime();if(!c.moving){_xSlideTo(c)}}function _xSlideTo(f){if(!(f=xGetElementById(f))){return}var a,c,b,d,g;a=new Date();b=a.getTime()-f.C;if(f.stop){f.moving=false}else{if(b<f.slideTime){setTimeout("_xSlideTo('"+f.id+"')",f.timeout);c=f.B*b;if(!f.slideLinear){c=Math.sin(c)}g=Math.round(f.xA*c+f.xD);d=Math.round(f.yA*c+f.yD);xMoveTo(f,g,d);f.moving=true}else{xMoveTo(f,f.xTarget,f.yTarget);f.moving=false;if(f.onslideend){f.onslideend()}}}}function xStr(c){for(var b=0,a=arguments.length;b<a;++b){if(typeof(arguments[b])!=="string"){return false}}return true}function xTop(b,c){if(!(b=xGetElementById(b))){return 0}var a=xDef(b.style);if(a&&xStr(b.style.top)){if(xNum(c)){b.style.top=c+"px"}else{c=parseInt(b.style.top);if(isNaN(c)){c=xGetComputedStyle(b,"top",1)}if(isNaN(c)){c=0}}}else{if(a&&xDef(b.style.pixelTop)){if(xNum(c)){b.style.pixelTop=c}else{c=b.style.pixelTop}}}return c}function xWidth(f,a){var c,d=0,h=0,g=0,b=0;if(!(f=xGetElementById(f))){return 0}if(xNum(a)){if(a<0){a=0}else{a=Math.round(a)}}else{a=-1}c=xDef(f.style);if(f==document||f.tagName.toLowerCase()=="html"||f.tagName.toLowerCase()=="body"){a=xClientWidth()}else{if(c&&xDef(f.offsetWidth)&&xStr(f.style.width)){if(a>=0){if(document.compatMode=="CSS1Compat"){d=xGetComputedStyle(f,"padding-left",1);if(d!==null){h=xGetComputedStyle(f,"padding-right",1);g=xGetComputedStyle(f,"border-left-width",1);b=xGetComputedStyle(f,"border-right-width",1)}else{if(xDef(f.offsetWidth,f.style.width)){f.style.width=a+"px";d=f.offsetWidth-a}}}a-=(d+h+g+b);if(isNaN(a)||a<0){return}else{f.style.width=a+"px"}}a=f.offsetWidth}else{if(c&&xDef(f.style.pixelWidth)){if(a>=0){f.style.pixelWidth=a}a=f.style.pixelWidth}}}return a}if(top.location!=document.location){top.location=document.location}function xPage(c,d,a,b){this.siteRoot=c;this.left=d;this.right=a;this.downgrade=false;this.onLoad=function(f){if(!this.downgrade){if(d){initializeCollapsible("h3","leftColumn",f)}if(b){vtbInit()}eqCol();var g=xGetElementById("footerTopLink");if(g){g.onclick=topBtnOnClick}}}}function eqCol(){var b=xGetElementById("leftColumn");var a=xHeight(b);var c=xGetElementById("rightColumn");c=xFirstChild(c);if(a>xHeight(c)){xHeight(c,a)}}var useFixedVtb=typeof window.XMLHttpRequest!="undefined";function xNewEle(a,b,k,d,j,c,g,i){var f=document.createElement("DIV");if(f&&a){f.id=k+b;f.className=k;if(d){f.appendChild(document.createTextNode(d))}if(j){f.title=j}f=a.appendChild(f);if(c){f.onclick=c}if(g){f.onmouseover=g}if(i){f.onmouseout=i}}return f}function vtbInit(f,d){var e=xGetElementById("rightColumn");var c=xNewEle(document.getElementsByTagName("body")[0],1,"xToolbar");c.floatOffset=xPageY("leftColumn");var a=xNewEle(c,1,"xButton","^","Top of Page",topBtnOnClick,btnOnMouseover,btnOnMouseout);a=xNewEle(c,2,"xButton",">","Hide",clpsBtnOnClick,btnOnMouseover,btnOnMouseout);a.clpsColor="#ffc";a.clpsEle=e;a.collapsed=false;a=xNewEle(c,3,"xButton","m","Menu",pumBtnOnClick,btnOnMouseover,btnOnMouseout);pumInit();vtbWinOnResize(1);xAddEventListener(window,"resize",winOnResize,false);if(!useFixedVtb){xAddEventListener(window,"scroll",vtbWinOnScroll,false)}}function clpsBtnOnClick(){clpsBtnDoClick(this,this.collapsed)}function clpsBtnDoClick(i,b){var j,c,a,e;var f=xGetElementById("leftColumn");var g=xGetElementById("rightColumn");if(b){j="block";c="Hide";a="70";e=">"}else{j="none";c="Show";a="94";e="<"}c+=" Side Panel";g.style.display=j;f.style.width=a+"%";i.firstChild.data=e;i.title=c;i.collapsed=!b}function topBtnOnClick(){if(window.scrollTo){window.scrollTo(0,0)}else{if(window.scroll){window.scroll(0,0)}else{location.href="#topofpg"}}return false}function btnOnMouseover(){this.className="xButtonHover"}function btnOnMouseout(){this.className="xButton"}function winOnResize(){if(!winOnResize.tmr){winOnResize.tmr=setTimeout("vtbWinOnResize();winOnResize.tmr=null;",500)}}winOnResize.tmr=null;function vtbWinOnResize(e){var b=xGetElementById("xToolbar1");var d=xGetElementById("leftColumn");var c=xGetElementById("xPopupMenu1");var a=xClientWidth();var f=xPageY(d);if(useFixedVtb){if(e==1){b.style.position="fixed";b.style.zIndex="100";b.style.visibility="visible";c.style.position="fixed";c.style.zIndex="101"}xMoveTo(b,a-xWidth(b)-2,f);xMoveTo(c,a-xWidth(c)-6,f+36)}else{xMoveTo(b,a-xWidth(b)-2,f);if(e==1){b.style.visibility="visible"}else{vtbWinOnScroll()}}eqCol()}function winOnScroll(){if(!winOnScroll.tmr){winOnScroll.tmr=setTimeout("vtbWinOnScroll();winOnScroll.tmr=null;",500)}}winOnScroll.tmr=null;function vtbWinOnScroll(){var a=xGetElementById("xToolbar1");xSlideTo(a,xPageX(a),xScrollTop()+a.floatOffset,800)}function pumInit(){var c;var a=xGetElementsByTagName("H3",xGetElementById("leftColumn"));var b=xNewEle(document.getElementsByTagName("body")[0],1,"xPopupMenu");b.style.visibility="hidden";xWidth(b,150);b.style.zIndex=100;var d="<div class='mnuBox'>";d+="<h4>Page Menu</h4>";for(c=0;c<a.length;++c){a[c].id="lnk"+c;d+="<p><a href='#lnk"+c+"'>"+a[c].firstChild.data+"</a></p>"}d+="</div>";d+="<div class='mnuBox'>";d+="<h4>Site Menu</h4>";var e="<p><a href='"+pgObj.siteRoot+"/";d+=e+"x/lib/' title='X Library Viewer'>X Library</a></p>";d+=e+"x/docs/x_tools.php' title='X Library Tools'>X Tools</a></p>";d+=e+"toys/' title='Demos and Applications'>Demos</a></p>";d+=e+"talk/' title='Articles and Documentation'>Docs</a></p>";d+=e+"forums/' title='X Library Community'>Forums</a></p>";d+=e+"' title='Cross-Browser.com'>Home</a></p>";d+=e+"contact.php' title='Contact Mike'>Contact</a></p>";d+=e+"downloads/' title='Get X!'>Downloads</a></p>";d+="</div>";b.innerHTML=d}function pumBtnOnClick(){var a=xGetElementById("xPopupMenu1");if(!useFixedVtb){xMoveTo(a,xClientWidth()-xWidth(a)-6,xPageY(this))}a.style.visibility="visible";xAddEventListener(document,"mousemove",pumDocOnMousemove,false)}function pumDocOnMousemove(b){var d=new xEvent(b);var a=xGetElementById("xPopupMenu1");var c;if(useFixedVtb){c=xHasPoint(a,b.clientX,b.clientY,-10)}else{c=xHasPoint(a,d.pageX,d.pageY,-10)}if(!c){a.style.visibility="hidden";xRemoveEventListener(document,"mousemove",pumDocOnMousemove,false)}}function initializeCollapsible(b,g,h){var c,d,f,e,a;e=xGetElementById(g)||document;f=e.getElementsByTagName(b);a=f.length;for(c=0;c<a;c++){d=document.createElement("div");d.collapsibleSection=xNextSib(f[c]);d.onclick=iconOnClick;if(h==5&&c<a-1){d.collapsibleSection.style.display="block"}d.onclick();d.onmouseover=iconOnMouseover;d.onmouseout=iconOnMouseout;f[c].appendChild(d)}}function iconOnClick(){var a=this.collapsibleSection;if(a.style.display!="block"){a.style.display="block";this.className="CollapseIcon";this.title="Click to collapse"}else{a.style.display="none";this.className="ExpandIcon";this.title="Click to expand"}}function iconOnMouseover(){this.collapsibleSection.style.backgroundColor="#CFD4E6"}function iconOnMouseout(){this.collapsibleSection.style.backgroundColor="transparent"};
