//----------------------------------------------------------------------------- // Visibility. //----------------------------------------------------------------------------- function hideElement(element) { if (element==null) return; if (browser.ns4) element.visibility='hide'; if (browser.hasDOM || browser.isIE) element.style.visibility='hidden'; } function hideElementEx(element) { if (element==null) return; hideElement(element); if (browser.hasDOM || browser.isIE) element.style.display='none'; } function showElement(element) { if (element==null) return; if (browser.ns4) element.visibility='show'; if (browser.hasDOM || browser.isIE) element.style.visibility='visible'; } function showElementEx(element) { if (element==null) return; showElement(element); if (browser.hasDOM || browser.isIE) element.style.display=''; } function inheritElement(element) { if (element==null) return; if (browser.ns4) element.visibility='inherit'; if (browser.hasDOM || browser.isIE) element.style.visibility='inherit'; } function getElementVisibility(element) { if (element==null) return ''; if (browser.ns4) { if (element.visibility=='show') return 'visible'; if (element.visibility=='hide') return 'hidden'; return element.visibility; } if (browser.hasDOM || browser.isIE) return element.style.visibility; return ''; } function getElementDisplay(element) { if (element==null) return ''; if (browser.hasDOM || browser.isIE) return element.style.display; return ''; } //----------------------------------------------------------------------------- // Positioning. //----------------------------------------------------------------------------- function moveElementTo(element,x,y) { if (element==null) return; if (browser.ns4) element.moveTo(x,y); if (browser.hasDOM || browser.isIE) { element.style.left=x; element.style.top=y; } } function moveElementBy(element,dx,dy) { if (element==null) return; if (browser.ns4) element.moveBy(dx,dy); if (browser.hasDOM || browser.isIE) { element.style.pixelLeft+=dx; element.style.pixelTop+=dy; } } function getElementLeft(element) { if (element==null) return -1; if (browser.ns4) return element.left; if (browser.hasDOM || browser.isIE) return element.style.pixelLeft; return -1; } function getElementTop(element) { if (element==null) return -1; if (browser.ns4) return element.top; if (browser.hasDOM || browser.isIE) return element.style.pixelTop; return -1; } function getElementRight(element) { if (element==null) return -1; if (browser.ns4) return element.left+getElementWidth(element); if (browser.hasDOM || browser.isIE) return element.style.pixelLeft+getElementWidth(element); return -1; } function getElementBottom(element) { if (element==null) return -1; if (browser.ns4) return element.top+getElementHeight(element); if (browser.hasDOM || browser.isIE) return element.style.pixelTop+getElementHeight(element); return -1; } function getElementPageLeft(element) { if (element==null) return -1; var x; if (browser.ns4) return element.pageX; if (browser.hasDOM || browser.isIE) { x=0; while (element.offsetParent!=null) { x+=element.offsetLeft; element=element.offsetParent; } x+=element.offsetLeft; return x; } return -1; } function getElementPageTop(element) { if (element==null) return -1; var y; if (browser.ns4) return element.pageY; if (browser.hasDOM || browser.isIE) { y=0; while (element.offsetParent!=null) { y+=element.offsetTop; element=element.offsetParent; } y+=element.offsetTop; return y; } return -1; } function getElementWidth(element) { if (element==null) return -1; if (browser.ns4) { if (element.document.width) return element.document.width; else return element.clip.right-element.clip.left; } if (browser.hasDOM) { if (element.scrollWidth) return element.scrollWidth; else return element.offsetWidth; } else if (browser.isIE) { if (element.style.pixelWidth) return element.style.pixelWidth; else return element.clientWidth; } return -1; } function getElementHeight(element) { if (element==null) return -1; if (browser.ns4) { if (element.document.height) return element.document.height; else return element.clip.bottom-element.clip.top; } if (browser.hasDOM) { if (element.scrollHeight) return element.scrollHeight; else return element.offsetHeight; } else if (browser.isIE) { if (element.style.pixelHeight) return element.style.pixelHeight; else return element.clientHeight; } return -1; } function getElementZIndex(element) { if (element==null) return -1; if (browser.ns4) return element.zIndex; if (browser.hasDOM || browser.isIE) return element.style.zIndex; return -1; } function setElementZIndex(element,z) { if (element==null) return; if (browser.ns4) element.zIndex=z; if (browser.hasDOM || browser.isIE) element.style.zIndex=z; } function setElementLeft(element,left) { if (element==null) return; if (browser.ns4) element.moveTo(left,getElementTop(element)); if (browser.hasDOM || browser.isIE) { element.style.left=left; } } function setElementTop(element,top) { if (element==null) return; if (browser.ns4) element.moveTo(getElementLeft(element),top); if (browser.hasDOM || browser.isIE) { element.style.top=top; } } function centerElementHorizontal(element,minPixelLeft) { if (element==null) return; var width=getElementWidth(element); var winWidth=getWindowWidth(); setElementLeft(element,Math.max(parseInt((winWidth-width)/2)+getPageScrollX(),minPixelLeft)); } function centerElementVertical(element,minPixelTop) { if (element==null) return; var height=getElementHeight(element); var winHeight=getWindowHeight(); setElementTop(element,Math.max(parseInt((winHeight-height)/2)+getPageScrollY(),minPixelTop)); } function centerElement(element,minPixelLeft,minPixelRight) { if (element==null) return; centerElementHorizontal(element,minPixelLeft); centerElementVertical(element,minPixelRight); } //----------------------------------------------------------------------------- // Clipping. //----------------------------------------------------------------------------- function clipElement(element,clipLeft,clipTop,clipRight,clipBottom) { if (element==null) return; if (browser.ns4) { element.clip.left=clipLeft; element.clip.top=clipTop; element.clip.right=clipRight; element.clip.bottom=clipBottom; } if (browser.hasDOM || browser.isIE) element.style.clip='rect('+clipTop+' '+clipRight+' '+clipBottom+' '+clipLeft+')'; } function getElementClipLeft(element) { if (element==null) return -1; if (browser.ns4) return element.clip.left; if (browser.hasDOM || browser.isIE) { var str=element.style.clip; if (!str) return 0; var clip=getElementClipValues(element.style.clip); return(clip[3]); } return -1; } function getElementClipTop(element) { if (element==null) return -1; if (browser.ns4) return element.clip.top; if (browser.hasDOM || browser.isIE) { var str=element.style.clip; if (!str) return 0; var clip=getElementClipValues(element.style.clip); return clip[0]; } return -1; } function getElementClipRight(element) { if (element==null) return -1; if (browser.ns4) return element.clip.right; if (browser.hasDOM || browser.isIE) { var str=element.style.clip; if (!str) return element.style.pixelWidth; var clip=getElementClipValues(element.style.clip); return clip[1]; } return -1; } function getElementClipBottom(element) { if (element==null) return -1; if (browser.ns4) return element.clip.bottom; if (browser.hasDOM || browser.isIE) { var str=element.style.clip; if (!str) return element.style.pixelHeight; var clip=getElementClipValues(element.style.clip); return clip[2]; } return -1; } function getElementClipWidth(element) { if (element==null) return -1; if (browser.ns4) return element.clip.width; if (browser.hasDOM || browser.isIE) { var str=element.style.clip; if (!str) return element.style.pixelWidth; var clip=getElementClipValues(element.style.clip); return clip[1]-clip[3]; } return -1; } function getElementClipHeight(element) { if (element==null) return -1; if (browser.ns4) return element.clip.height; if (browser.hasDOM || browser.isIE) { var str=element.style.clip; if (!str) return element.style.pixelHeight; var clip=getElementClipValues(element.style.clip); return clip[2]-clip[0]; } return -1; } function getElementClipValues(str) { var clip=new Array(); var i; // Parse out the clipping values i=str.indexOf('('); clip[0]=parseInt(str.substring(i+1,str.length),10); i=str.indexOf(' ',i+1); clip[1]=parseInt(str.substring(i+1,str.length),10); i=str.indexOf(' ',i+1); clip[2]=parseInt(str.substring(i+1,str.length),10); i=str.indexOf(' ',i+1); clip[3]=parseInt(str.substring(i+1,str.length),10); return clip; } //----------------------------------------------------------------------------- // Scrolling. //----------------------------------------------------------------------------- function scrollElementTo(element,x,y,bound) { if (element==null) return; var dx=getElementClipLeft(element)-x; var dy=getElementClipTop(element)-y; scrollElementBy(element,-dx,-dy,bound); } function scrollElementBy(element,dx,dy,bound) { if (element==null) return; var cl=getElementClipLeft(element); var ct=getElementClipTop(element); var cr=getElementClipRight(element); var cb=getElementClipBottom(element); if (bound) { if (cl+dx<0) dx=-cl; else if (cr+dx>getElementWidth(element)) dx=getElementWidth(element)-cr; if (ct+dy<0) dy=-ct; else if (cb+dy>getElementHeight(element)) dy=getElementHeight(element)-cb; } clipElement(element,cl+dx,ct+dy,cr+dx,cb+dy); moveElementBy(element,-dx,-dy); } //----------------------------------------------------------------------------- // Background. //----------------------------------------------------------------------------- function setElementBgColor(element,color) { if (element==null) return; if (browser.ns4) element.bgColor=color; if (browser.hasDOM || browser.isIE) element.style.backgroundColor=color; } function setElementBgImage(element,src) { if (element==null) return; if (browser.ns4) element.background.src=src; if (browser.hasDOM || browser.isIE) element.style.backgroundImage='url('+src+')'; } //----------------------------------------------------------------------------- // Utilities. //----------------------------------------------------------------------------- function getElement(id) { if (id=='') return null; if (browser.ns4) return findElement(id,document); else if (browser.hasDOM) return document.getElementById(id); else if (browser.isIE) return eval('document.all.'+id); return null; } function findElement(id,doc) { var i; var element; for (i=0; i0) if ((element=findElement(id,element.document))!=null) return element; } return null; } function getChild(fromNode,name) { if (browser.ns4) return null; for(var i=0; i0) { var tmp=getChild(node,name) if(tmp!=null) return tmp; } } return null; } function getChildByType(fromNode,nodename) { if (browser.ns4) return null; for(var i=0; i0) { var tmp=getChildByType(node,nodename) if(tmp!=null) return tmp; } } return null; } //----------------------------------------------------------------------------- // Image utilities. //----------------------------------------------------------------------------- function getImage(name) { if (name=='') return null; if (browser.isNS || browser.isOpera) return findImage(name,document); if (browser.isIE) return eval('document.all.' + name); return null; } function findImage(name,doc) { var i; var img; for (i=0; i