Edit C:\inetpub\wwwroot\aspnet_client\system_web\4_0_30319\crystalreportviewers13\js\dhtmllib\dom.js
// <script> _userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null _ie=(document.all!=null)?true:false _dom=(document.getElementById!=null)?true:false _isQuirksMode = (document.compatMode != 'CSS1Compat'); _dtd4=!_ie||(document.compatMode!='BackCompat') // Browser is compatible HTML 4.0 Strict _moz=_dom&&!_ie _show='visible' _hide='hidden' _hand=_ie?"hand":"pointer" _appVer=navigator.appVersion.toLowerCase(); _webKit=(_userAgent.indexOf("safari")>=0)||(_userAgent.indexOf("applewebkit")>=0) _mac=(_appVer.indexOf('macintosh')>=0)||(_appVer.indexOf('macos')>=0); _opera = (_userAgent.indexOf('opera') != -1); // Browser is opera _userAgent=navigator.userAgent?navigator.userAgent.toLowerCase():null _saf=_moz&&(_userAgent.indexOf("safari")>=0) _ctrl=0 _shift=1 _alt=2 //_def_shortcut=_mac?"⌘": _ie6 = _ie&&(_appVer.indexOf("msie 5")<0) _ie7 = _ie6&&(_appVer.indexOf("msie 6")<0) _ie8 = _ie7&&(_appVer.indexOf("msie 7")<0) _small=(screen.height<=600) _curDoc=document _curWin=self _tooltipWin=self _tooltipDx=0 _tooltipDy=0 _codeWinName="_CW" _leftBtn=(_ie||_saf)?1:0 _preloadArr=new Array _widgets=new Array _resizeW=_ie6?"col-resize":"E-resize" _resizeH=_ie6?"row-resize":"S-resize" _ddData=new Array _dontNeedEncoding=null; _thex=null; _defaultButtonWidth=60; // ================================================================================ // ================================================================================ // // MANDATORY FUNCTIONS // // Must be called for the library to work // // IMPORTANT : must be used in a script tag in the doc header (not in loadCB for example) // ================================================================================ // ================================================================================ function initDom(skin,style,lang,curWin,codeUniqueName) // MUST be called after including dom.js // skin [String] skin path // lang [String] language code // curWin [Window - Optional] pointer on a window to redirect the interface // tooltipWin [Window - Optional] pointer on a window that displays drag & drop tooltips // codeUniqueName [String - Optional] must be set if curWin specfied - enter a unique keyword { _skin=skin; _lang=lang; _style=style; if (curWin) { _curWin=curWin _curDoc=curWin.document } _tooltipWin=_curWin if (codeUniqueName) _codeWinName="_CW"+codeUniqueName _curWin[_codeWinName]=self } function styleSheet() // MUST be called after initDom() // must be between scripts tags to avois sync problems // Include the default style sheet depending on the parameters of initDom() { includeCSS('style') //we use only one css file for all languages //switch(_lang) //{ // case 'ja': // case 'ko': // case 'zh': // includeCSS('style_fe') // break; // default: // includeCSS('style') // break; //} } // ================================================================================ function isLayerDisplayed(lyr) //check if the layer is displayed //and check its parents //if one parent is not displayed return false { var css=lyr?lyr.style:null if(css) { if(css.display == "none" || css.visibility=="hidden") return false else { var par=lyr.parentNode if(par!=null) return isLayerDisplayed(par) else return true } } else return true; } // ================================================================================ function safeSetFocus(lyr) { if (lyr && lyr.focus && isLayerDisplayed(lyr)) lyr.focus() } // ================================================================================ // ================================================================================ // // OBJECT newWidget (Constructor) // // Base Class for widgets // // ================================================================================ // ================================================================================ function newWidget(id) // CONSTRUCTOR // id [String] the id for DHTML processing { var o=new Object o.id=id o.layer=null o.css=null o.getHTML=Widget_getHTML o.beginHTML=Widget_getHTML o.endHTML=Widget_getHTML o.write=Widget_write o.begin=Widget_begin o.end=Widget_end o.init=Widget_init o.move=Widget_move o.resize=Widget_resize o.setBgColor=Widget_setBgColor o.show=Widget_show o.getWidth=Widget_getWidth o.getHeight=Widget_getHeight o.setHTML=Widget_setHTML o.setDisabled=Widget_setDisabled o.focus=Widget_focus o.setDisplay=Widget_setDisplay o.isDisplayed=Widget_isDisplayed o.appendHTML=Widget_appendHTML o.setTooltip=Widget_setTooltip o.initialized=Widget_initialized o.widx=_widgets.length _widgets[o.widx]=o return o } function new_Widget(prm) // CONSTRUCTOR - DEPRECATED (use new_Widget instead) // id [String] the id for DHTML processing { return newWidget(prm.id) } function getEvent(e,w) { if (_ie&&(e==null)) e = w ? w.event : _curWin.event return e } function Widget_param(paramsObj, paramName, paramDefaultValue) { var val = paramsObj ? paramsObj[paramName] : null; return val == null ? paramDefaultValue : val; } // ================================================================================ function Widget_appendHTML() // Write the widget dynamically into the body { append(_curDoc.body,this.getHTML()) } // ================================================================================ function Widget_getHTML() // VIRTUAL Get the widget HTML // return [String] the HTML { return '' } // ================================================================================ function Widget_write(i) // write the widget { _curDoc.write(this.getHTML(i)) } // ================================================================================ function Widget_begin() // for container widgets - write the HTML begin part { _curDoc.write(this.beginHTML()) } // ================================================================================ function Widget_end() // for container widgets - write the HTML begin part { _curDoc.write(this.endHTML()) } // ================================================================================ function Widget_init() // Inits the widget layer pointers { var o=this o.layer=getLayer(o.id) o.css=o.layer.style o.layer._widget=o.widx if (o.initialHTML) o.setHTML(o.initialHTML) } function Widget_move(x,y) // moves a widget // x [int optional] new abscissa // y [int optional] new ordinate { var c=this.css;if (x!=null){if (_moz) c.left=""+x+"px";else c.pixelLeft=x}if (y!=null){if (_moz) c.top=""+y+"px";else c.pixelTop=y} } // ================================================================================ function Widget_focus() // Set the focus on the current widget { safeSetFocus(this.layer) } // ================================================================================ function Widget_setBgColor(c) // Set the widget background color // c [String] HTML color code { this.css.backgroundColor=c } // ================================================================================ function Widget_show(show) // Show/hide a widget (the widget layout always exists) // show [boolean] { this.css.visibility=show?_show:_hide } // ================================================================================ function Widget_getWidth() // return [int] the widget width in pixels { return this.layer.offsetWidth } // ================================================================================ function Widget_getHeight() // return [int] the widget height in pixels { return this.layer.offsetHeight } // ================================================================================ function Widget_setHTML(s) // Set the widget HTML // s [String] the new HTML { var o=this if (o.layer) o.layer.innerHTML=s else o.initialHTML=s } // ================================================================================ function Widget_setDisplay(d) // Show/hide a widget (the widget takes no space if d is false) // d [boolean] { if (this.css) this.css.display=d?"":"none" } // ================================================================================ function Widget_isDisplayed() { if(this.css.display == "none") return false else return true } // ================================================================================ function Widget_setDisabled(d) // Disable a widget (its becomes insensitive to key or mouse actions) // d [boolean] { if (this.layer) this.layer.disabled=d } // ================================================================================ function Widget_resize(w,h) // Resize a widget // w [int optional] new width // h [int optional] new height { if (w!=null) this.css.width=''+(Math.max(0,w))+'px';if (h!=null) this.css.height=''+(Math.max(0,h))+'px'; } // ================================================================================ function Widget_setTooltip(tooltip) // Set the widget tooltip // tooltip [String] { this.layer.title=tooltip } // ================================================================================ function Widget_initialized() // Return true if the widget is initialized { return this.layer!=null } // ================================================================================ // ================================================================================ // // OBJECT newGrabberWidget (Constructor) // // Class to add grabber for resizing zones // // ================================================================================ // ================================================================================ function newGrabberWidget(id,resizeCB,x,y,w,h,isHori,buttonCB,tooltip) // CONSTRUCTOR // id [String] the id for DHTML processing // resizeCB [Function] callback when grabber is moved // x [int] initial abscissa // y [int] initial ordinate // w [int] initial width // h [int] initial height // isHori [boolean] if true, moves horizontally, else vertically { o=newWidget(id) o.resizeCB=resizeCB o.x=x o.y=y o.w=w o.h=h o.dx=0 o.dy=0 o.min=null o.max=null o.isHori=isHori o.preloaded=new Image o.preloaded.src=_skin+"../resizepattern.gif" o.buttonCB=buttonCB o.allowGrab=true o.collapsed=false o.isFromButton=false o.showGrab=GrabberWidget_showGrab o.setCollapsed=GrabberWidget_setCollapsed o.tooltipButton=tooltip o.getHTML=GrabberWidget_getHTML o.enableGrab=GrabberWidget_enableGrab o.setMinMax=GrabberWidget_setMinMax if (window._allGrabbers==null) window._allGrabbers=new Array o.index=_allGrabbers.length _allGrabbers[o.index]=o o.buttonLyr=null o.setButtonImage=GrabberWidget_setButtonImage o.getImgOffset=GrabberWidget_getImgOffset return o } // ================================================================================ function GrabberWidget_setCollapsed(collapsed,tooltip) { this.collapsed=collapsed this.setButtonImage(false,tooltip) } // ================================================================================ function GrabberWidget_getImgOffset(isRollover) { // PRIVATE var o=this if (o.isHori) { o.dx=(o.collapsed?12:0)+(isRollover?6:0) o.dy=0 } else { o.dy=(o.collapsed?12:0)+(isRollover?6:0) o.dx=0 } } // ================================================================================ function GrabberWidget_setButtonImage(isRollover,tooltip) { // PRIVATE var o=this o.getImgOffset(isRollover) o.tooltipButton=tooltip if (o.layer) { if (o.buttonLyr==null) o.buttonLyr=getLayer("grabImg_"+o.id) if (o.buttonLyr) { changeSimpleOffset(o.buttonLyr,o.dx,o.dy,null,tooltip) } } } // ================================================================================ function GrabberWidget_enableGrab(bEnable) { var o=this o.allowGrab=bEnable if (o.css) o.css.cursor=o.allowGrab?(o.isHori?_resizeW:_resizeH):"default" } // ================================================================================ function GrabberWidget_getHTML() // returns [String] widget HTML { var o=this var cr=o.isHori?_resizeW:_resizeH var moveableCb='onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+'.GrabberWidget_down(event,\''+o.index+'\',this);return false;"' var imgG=_ie?('<img onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+'.eventCancelBubble(event)" border="0" hspace="0" vspace="0" src="'+_skin+'../transp.gif" id="modal_'+o.id+'" style="z-index:10000;display:none;position:absolute;top:0px;left:0px;width:1px;height:1px;cursor:'+cr+'">'):('<div onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+'.eventCancelBubble(event)" border="0" hspace="0" vspace="0" id="modal_'+o.id+'" style="z-index:10000;display:none;position:absolute;top:0px;left:0px;width:1px;height:1px;cursor:'+cr+'"></div>') return getBGIframe('grabIframe_'+o.id)+imgG+'<table cellpadding="0" cellspacing="0" border="0" '+moveableCb+' id="'+o.id+'" style="overflow:hidden;position:absolute;left:'+o.x+'px;top:'+o.y+'px;width:'+o.w+'px;height:'+o.h+'px;cursor:'+cr+'"><tr><td></td></tr></table>' } // ================================================================================ function GrabberWidget_setMinMax(min,max) // Set the range in pixels // min [int] minimum value // min [int] maximum value { this.min=min this.max=max } // ================================================================================ function GrabberWidget_button(e,index,lyr) // PRIVATE { var o=_allGrabbers[index] o.isFromButton=true lyr.onmouseup=eval('_curWin.'+_codeWinName+'.GrabberWidget_buttonup') } // ================================================================================ function GrabberWidget_buttonover(e,index,lyr) // PRIVATE { var o=_allGrabbers[index] o.setButtonImage(true) } // ================================================================================ function GrabberWidget_buttonout(e,index,lyr) // PRIVATE { var o=_allGrabbers[index] o.setButtonImage(false) } // ================================================================================ function GrabberWidget_buttonup(e) // PRIVATE { GrabberWidget_up(e) } // ================================================================================ function GrabberWidget_showGrab() { var o=this,mod=o.mod,ifr=o.iframe,stl=o.layer.style,st=mod.style ifr.setDisplay(true) } // ================================================================================ function GrabberWidget_down(e,index,lyr) // PRIVATE { var o=_allGrabbers[index] window._theGrabber=o if (o.mod==null) { o.mod=getLayer('modal_'+o.id) o.iframe=newWidget('grabIframe_'+o.id) o.iframe.init() } o.mod.onmousemove=eval('_curWin.'+_codeWinName+'.GrabberWidget_move') o.mod.onmouseup=eval('_curWin.'+_codeWinName+'.GrabberWidget_up') o.grabStartPosx=parseInt(lyr.style.left) o.grabStartPosy=parseInt(lyr.style.top) o.grabStartx=eventGetX(e) o.grabStarty=eventGetY(e) var mod=o.mod,ifr=o.iframe,stl=o.layer.style,st=mod.style stl.backgroundImage='url(\''+_skin+'../resizepattern.gif\')' o.prevZ=stl.zIndex stl.zIndex=9999 ifr.css.zIndex=9998 st.width='100%' st.height='100%' mod.style.display="block" var p=getPos(o.layer) ifr.move(p.x,p.y) ifr.resize(o.getWidth(),o.getHeight()) if (!o.isFromButton) o.showGrab() return false } // ================================================================================ function GrabberWidget_move(e) // PRIVATE { var o=_theGrabber,lyr=o.layer,mod=o.mod if (o.isFromButton) { if (o.isHori) { var x = eventGetX(e), ox=o.grabStartx if ((x < ox - 3) || (x > ox + 3)) o.isFromButton = false } else { var Y = eventGetY(e), oy=o.grabStarty if ((y < oy - 3) || (y > oy + 3)) o.isFromButton = false } if (!o.isFromButton) o.showGrab() } if (!o.isFromButton) { if (o.allowGrab) { var x=o.isHori?Math.max(0,o.grabStartPosx-o.grabStartx+eventGetX(e)):null var y=o.isHori?null:Math.max(0,o.grabStartPosy-o.grabStarty+eventGetY(e)) if (o.isHori) { if (o.min!=null) x=Math.max(x,o.min) if (o.max!=null) x=Math.min(x,o.max) } else { if (o.min!=null) y=Math.max(y,o.min) if (o.max!=null) y=Math.min(y,o.max) } eventCancelBubble(e) o.move(x,y) getPos(o.layer) if (o.buttonCB) { var bCss=o.buttonLyr.style if (bCss.display!="none") bCss.display="none" } o.iframe.move(x,y) } } } // ================================================================================ function GrabberWidget_up(e) { var o=_theGrabber,lyr=o.layer,mod=o.mod,stl=lyr.style stl.backgroundImage='' stl.zIndex=o.prevZ var ifr=o.iframe ifr.move(-100,-100) ifr.resize(1,1) ifr.setDisplay(false) eventCancelBubble(e) var st=mod.style st.display="none" st.width='0px' st.height='0px' if (o.buttonCB) o.buttonLyr.style.display="" if (o&&(o.isFromButton)) { if (o.buttonCB) o.buttonCB() o.isFromButton=false } if (o.allowGrab&&(!o.isFromButton)) { if (o.resizeCB) o.resizeCB(parseInt(lyr.style.left),parseInt(lyr.style.top)) } } // ================================================================================ // ================================================================================ // // OBJECT ButtonWidget (Constructor) // // Class for building push buttons // // ================================================================================ // ================================================================================ function newButtonWidget(id,label,cb,width,hlp,tooltip,tabIndex,margin,url,w,h,dx,dy,imgRight,disDx,disDy) // CONSTRUCTOR // id [String] button ID // label [String Optional] button label // w [int optional] : text zone minimal width // hlp OBSOLETE // tooltip [String Optional] button tooltip // tabIndex [int Optional] for 508/IE : tab index for keyboard navigation // url [String Optional] : the combined image url // w [int Optional] the visible image part width // dx [int Optional] the horizontal offset in image // dy [int Optional] the vertical offset in image // disDx : [int - optional] horizontal offset for disabled state // disDy : [int - optional] vertical offset for disabled state { var o=newWidget(id) o.label=label o.cb=cb o.width=width o.hlp=hlp o.tooltip=tooltip o.tabIndex=tabIndex o.isGray=false o.isDefault=false o.txt=null o.icn=null o.margin=margin?margin:0 o.extraStyle="" o.isDelayCallback = true; if (url) { o.url=url o.w=w o.h=h o.dx=dx o.dy=dy o.disDx=(disDx!=null)?disDx:dx o.disDy=(disDy!=null)?disDy:dy o.imgRight=imgRight?true:false } o.getHTML=ButtonWidget_getHTML o.setDisabled=ButtonWidget_setDisabled o.setText=ButtonWidget_setText o.changeImg=ButtonWidget_changeImg o.oldInit=o.init o.init=ButtonWidget_init o.isDisabled=ButtonWidget_isDisabled o.setDefaultButton=ButtonWidget_setDefaultButton o.executeCB=ButtonWidget_executeCB o.setTooltip=ButtonWidget_setTooltip o.setDelayCallback=ButtonWidget_setDelayCallback o.instIndex=ButtonWidget_currInst ButtonWidget_inst[ButtonWidget_currInst++]=o return o; } // ================================================================================ ButtonWidget_inst=new Array ButtonWidget_currInst=0 function ButtonWidget_getHTML() // returns [String] widget HTML { with (this) { var clk=_codeWinName+'.ButtonWidget_clickCB('+this.instIndex+');return false;"' var clcbs= 'onclick="'+clk+'" ' if (_ie) clcbs+= 'ondblclick="'+clk+'" ' // var isDefaultSty=(this.isDefault && !this.isGray); //add onkeydown for dialog default action (Enter) clcbs+= 'onkeydown=" return '+_codeWinName+'.ButtonWidget_keydownCB(event,'+this.instIndex+');" ' var url1=_skin+"button.gif",addPar=' style="'+extraStyle+'cursor:'+_hand+';margin-left:'+margin+'px; margin-right:'+margin+'px; "'+clcbs+' ',tip=attr('title', tooltip),idText="theBttn"+id, idIcon="theBttnIcon"+id; var bg=backImgOffset(url1,0,isDefaultSty?105:42); var lnkB='<a '+attr('id',idText)+' '+tip+' '+attr('tabindex',tabIndex)+' href="javascript:void(0)" class="wizbutton" role="button">' var l=(label!=null) var im=(this.url?('<td align="'+(l?(this.imgRight?'right':'left'):'center')+'" style="'+bg+'" width="'+(!l&&(width!=null)?width+6:w+6)+'">'+(l?'':lnkB)+simpleImgOffset(url,w,h,this.isGray?disDs:dx,this.isGray?disDy:dy,idIcon,null,(l?'':tooltip),'cursor:'+_hand)+(l?'':'</a>')+'</td>'):'') // Justin... I've change the button left and right to use backImgOffset because IE would not hide the simpleImgOffset once it had been displayed in the cancel dialog. return '<table onmouseover="return true" '+attr('id',id)+' '+addPar+' border="0" cellspacing="0" cellpadding="0"><tr valign="middle">'+ '<td height="21" width="5" style="' + backImgOffset(url1,0,isDefaultSty?63:0)+'"></td>'+ (this.imgRight?'':im)+ (l?('<td '+attr("width",width)+ attr('id',"theBttnCenterImg"+id)+' align="center" class="'+(this.isGray?'wizbuttongray':'wizbutton')+'" style="padding-left:3px;padding-right:3px;'+bg+'"><nobr>'+lnkB+label+'</a></nobr></td>'):'')+ (this.imgRight?im:'')+ '<td height="21" width="5" style="' + backImgOffset(url1,0,isDefaultSty?84:21)+'"></td></tr></table>'; } } function ButtonWidget_setDelayCallback(value) { this.isDelayCallback = (value == true); } // ================================================================================ function ButtonWidget_setDisabled(d) // Enable/Disable // s [boolean] if true disable the button // returns [void] { var o=this,newCur=d?'default':_hand o.isGray=d if (o.layer) { var newClassName=d?'wizbuttongray':'wizbutton' // Ensure the button state hasn't changed to avoid unnecessary processing // The text className is a safe way to do the test if (o.txt.className!=newClassName) { o.txt.className=newClassName o.txt.style.cursor=newCur o.css.cursor=newCur if(o.icn) { changeSimpleOffset(o.icn,o.isGray?o.disDx:o.dx,o.isGray?o.disDy:o.dy) o.icn.style.cursor=newCur } if(o.isDefault) //default button style { var isDefaultSty=!d,url=_skin+"button.gif"; changeSimpleOffset(o.leftImg,0,isDefaultSty?63:0,url); changeOffset(o.centerImg,0,isDefaultSty?105:42,url); changeSimpleOffset(o.rightImg,0,isDefaultSty?84:21,url); } } } } // ================================================================================ function ButtonWidget_setDefaultButton() { var o=this; if (o.layer) { var isDefaultSty = !o.isGray,url=_skin+"button.gif"; changeSimpleOffset(o.leftImg,0,isDefaultSty?63:0,url); changeOffset(o.centerImg,0,isDefaultSty?105:42,url); changeSimpleOffset(o.rightImg,0,isDefaultSty?84:21,url); } o.isDefault=true; } // ================================================================================ function ButtonWidget_isDisabled() { return this.isGray } // ================================================================================ function ButtonWidget_setText(str) // Changes the button text // str [String] the new button text // returns [void] { this.txt.innerHTML=convStr(str) } function ButtonWidget_setTooltip(tooltip) // Set the widget tooltip // tooltip [String] { var o=this o.tooltip=tooltip o.layer.title=tooltip if (o.txt) o.txt.title=tooltip if (o.icn) o.icn.title=tooltip } // ================================================================================ function ButtonWidget_init() // Inits the button // returns [void] { var o=this o.oldInit() o.txt=getLayer('theBttn'+this.id) o.icn=getLayer('theBttnIcon'+this.id) o.leftImg=getLayer('theBttnLeftImg'+this.id) o.centerImg=getLayer('theBttnCenterImg'+this.id) o.rightImg=getLayer('theBttnRightImg'+this.id) // reset if already initialized var newClassName=o.isGray?'wizbuttongray':'wizbutton' if (o.txt.className!=newClassName) { o.setDisabled(o.isGray) } } // ================================================================================ function ButtonWidget_changeImg(dx,dy,disDx,disDy,url,tooltip) { var o=this if (url) o.url=url if (dx!=null) o.dx=dx if (dy!=null) o.dy=dy if (disDx!=null) o.disDx=disDx if (disDy!=null) o.disDy=disDy if (tooltip!=null) o.tooltip=tooltip if (o.icn) changeSimpleOffset(o.icn,o.isGray?o.disDx:o.dx,o.isGray?o.disDy:o.dy, o.url, o.tooltip) } // ================================================================================ function ButtonWidget_clickCB(index) // PRIVATE internal click event handler { var btn=ButtonWidget_inst[index] if (btn && !btn.isGray) { if(btn.isDelayCallback) setTimeout("ButtonWidget_delayClickCB("+index+")",1); else ButtonWidget_delayClickCB(index); } } // ================================================================================ function ButtonWidget_delayClickCB(index) // PRIVATE internal click event handler { var btn=ButtonWidget_inst[index] btn.executeCB(); /* if (btn.cb) { if (typeof btn.cb!="string") btn.cb() else eval(btn.cb) }*/ } // ================================================================================ function ButtonWidget_executeCB() // PRIVATE internal click event handler { var o=this if (o.cb) { if (typeof o.cb!="string") o.cb() else eval(o.cb) } } // ================================================================================ function ButtonWidget_keydownCB(e,index) { var k=eventGetKey(e); var btn=ButtonWidget_inst[index] if(k == 13 && btn.cb )//enter { eventCancelBubble(e); } return true; } // ================================================================================ // ================================================================================ // // OBJECT ScrolledZoneWidget (Constructor) // // Base Class for widgets // // ================================================================================ // ================================================================================ function newScrolledZoneWidget(id,borderW,padding,w,h,bgClass) // id [String] the id for DHTML processing // borderW [int] widget border width // padding [int] widget padding // w [int] widget width, including borders // h [int] widget height, including borders // Return [ScrolledZoneWidget] the instance { var o=newWidget(id) o.borderW=borderW o.padding=padding o.w=w o.h=h o.oldResize=o.resize o.beginHTML=ScrolledZoneWidget_beginHTML o.endHTML=ScrolledZoneWidget_endHTML o.resize=ScrolledZoneWidget_resize o.bgClass = (bgClass)? bgClass : 'insetBorder' return o; } // ================================================================================ function ScrolledZoneWidget_beginHTML() // Returns : [String] the HTML beginning block { var w=this.w,h=this.h; var ofs=_moz?2*(this.borderW+this.padding):0 if (typeof(w)=="number") { if (_moz) w=Math.max(0,w-ofs) w=""+w+"px" } if (typeof(h)=="number") { if (_moz) h=Math.max(0,h-ofs) h=""+h+"px" } return '<div tabindex=-1 align="left" class="' + this.bgClass + '" id="'+this.id+'" style="border-width:'+this.borderW+'px;padding:'+this.padding+'px;'+sty("width",w)+sty("height",h)+'overflow:auto">' } // ================================================================================ function ScrolledZoneWidget_endHTML() // Returns : [String] the HTML ending block { return '</div>' } // ================================================================================ function ScrolledZoneWidget_resize(w,h) // w [int] widget width, including borders // h [int] widget height, including borders // Returns [void] { if (_moz) { var ofs=2*(this.borderW+this.padding) if (w!=null) w=Math.max(0,w-ofs) if (h!=null) h=Math.max(0,h-ofs) } this.oldResize(w,h) } // ================================================================================ // ================================================================================ // // OBJECT newTooltipWidget (Constructor) // // A tooltip widget. Only one by window/frame // // ================================================================================ // ================================================================================ /* function newTooltipWidget(maxw,maxh) // Return [TooltipWidget] the instance { if (window._theGlobalTooltip!=null) return window._theGlobalTooltip var o=newWidget('theGobalTooltip') o.maxw=maxw o.maxh=maxh o.getPrivateHTML=TooltipWidget_getPrivateHTML o.init=TooltipWidget_init o.oldShow=o.show o.show=TooltipWidget_show o.hide=TooltipWidget_hide o.setPos=TooltipWidget_setPos o.inputs=null window._theGlobalTooltip=o o.eventWin=_curWin preloadImg(_skin+'../swap.gif') return o; } // ================================================================================ function TooltipWidget_init() { //cancels the default init behaviour } // ================================================================================ function TooltipWidget_getPrivateHTML() // Returns [String] the HTML { var o=this return getBGIframe('tipIframe_'+o.id)+'<div class="dragTooltip" id="'+o.id+'" style="visibility:hidden;z-index:10000;position:absolute;top:0px;left:0px,visibility:'+_hide+'"'+attr("width",o.w)+attr("height",o.h)+'></div>'+ '<img width="11" height="11" border="0" hspace="0" vspace="0" src="'+_skin+'../swap.gif" id="swap_'+o.id+'" style="position:absolute;top:0px;left:0px;display:none;z-index:10000;">' } // ================================================================================ function TooltipWidget_show(show,str,url,w,h,dx,dy,isHTML, e) // show/hide the drag & drop tooltip // show [boolean] true for showing the tooltip // str [String] the tooltip text // url [String] combined image url { var o=this oldWin=_curWin _curWin=_tooltipWin _curDoc=_tooltipWin.document // object not init yet, 2 cases if (o.layer==null) { o.layer=getLayer(o.id) // another instance hasn't written it's HTML yet if (o.layer==null) { targetApp(o.getPrivateHTML()) o.layer=getLayer(o.id) } o.css=o.layer.style o.swapLayer=getLayer("swap_"+o.id) o.iframe=newWidget('tipIframe_'+o.id) o.iframe.init() } // hides combo boxes or restore //if (show) o.inputs=hideAllInputs() //else restoreAllInputs(o.inputs) dx=dx!=null?dx:0 dy=dy!=null?dy:0 if (show) { var s=null if (url) //s='<span style="margin-right:2px;width:'+w+'px;height:'+h+'px;overflow:hidden">'+img(url,null,null,'top','style="position:relative;top:-'+dy+'px;left:-'+dx+'px"')+'</span>' s=simpleImgOffset(url,w,h,dx,dy,null,null,null,"margin-right:4px;margin-left:0px;",'top') //o.resize(0,0) o.css.width='' o.css.height='' o.setHTML('<table border="0" cellspacing="0" cellpadding="0"><tr valign="middle">'+(s?'<td align="center">'+s+'</td>':'')+'<td class="dragTxt"><nobr>'+(isHTML?str:convStr(str))+'</nobr></td></tr></table>') o.setPos(null,e) if (o.getWidth()>o.maxw) o.resize(o.maxw) o.oldShow(show) o.iframe.setDisplay(true) } else { o.oldShow(false) o.setHTML('') o.move(0,0) o.swapLayer.style.display="none" o.iframe.setDisplay(false) } _curWin=oldWin _curDoc=_curWin.document } // ================================================================================ function TooltipWidget_hide() { var o=this o.show(false) } // ================================================================================ function TooltipWidget_setPos(shift,e) // Return [void] { var o=this if (o.layer==null) return if (e) { var x=absxpos(e), y=absypos(e) } else { var ew=o.eventWin,x=ew.event.x+_curDoc.body.scrollLeft,y=ew.event.y+_curDoc.body.scrollTop } x+=_tooltipDx y+=_tooltipDy o.move(x+27,y+10); o.iframe.move(x+27,y+10); o.iframe.resize(o.getWidth(),o.getHeight()) var c=o.swapLayer.style; c.display=shift?"":"none" if (shift) { y+=18 x+=14 if (_moz) { c.left=""+x+"px" c.top=""+y+"px" } else { c.pixelLeft=x c.pixelTop=y } } } // ================================================================================ function initTooltipWin(tooltipWin) { _tooltipWin=tooltipWin } // ================================================================================ function setTooltipOffset(dx,dy) { _tooltipDx=dx _tooltipDy=dy } */ // ================================================================================ // ================================================================================ // // OBJECT newComboWidget (Constructor) // // Combo box widget - based on SELECT tags // // ================================================================================ // ================================================================================ function newComboWidget(id,changeCB,noMargin,width,tooltip) // id [String] the id for DHTML processing // changeCB [Function] calback when selection is changed by the user // noMargin [boolean - optional] default is false - no margin (else 10px left margin ) // width [int - optional] combo width (if not, auto width) // tooltip [String - optional] combo tooltip for 508 // Return [ComboWidget] the widget instance { var o=newWidget(id) o.tooltip=tooltip o.size=1 o.getHTML=ComboWidget_getHTML o.beginHTML=ComboWidget_beginHTML o.endHTML=ComboWidget_endHTML o.changeCB=changeCB o.noMargin=noMargin o.width=width==null?null:''+width+'px' o.add=ComboWidget_add o.del=ComboWidget_del o.getSelection=ComboWidget_getSelection o.select=ComboWidget_select o.valueSelect=ComboWidget_valueSelect o.getCount=ComboWidget_getCount o.oldSetDisabled=o.setDisabled o.setDisabled=ComboWidget_setDisabled o.setUndefined=ComboWidget_setUndefined o.delByID=ComboWidget_delByID // o.move=ComboWidget_move o.findByValue=ComboWidget_findByValue o.findByText=ComboWidget_findByText o.getValue=ComboWidget_getValue o.isGrayed=ComboWidget_isGrayed o.clearSelection=ComboWidget_clearSelection; o.isDisabled=false o.multi=false o.undef=false o.isCombo=true o.undefId=o.id+"__undef" o.disabledId=o.id+"__disabled" return o; } // ================================================================================ _extrCmbS=(_moz?'font-size:12px;':'') function ComboWidget_beginHTML() { var o=this,_extrCmbS=((_moz&&!o.isCombo)?'font-size:12px;':'') return '<select '+(o.multi?'multiple':'')+' '+(o.noMargin?'style="'+sty("width",o.width)+_extrCmbS+'"':'style="'+sty("width",o.width)+'margin-left:10px;'+_extrCmbS+'"')+' class="listinputs" '+attr('onchange',_codeWinName+'.ComboWidget_changeCB(event,this)')+attr('onclick',_codeWinName+'.ComboWidget_clickCB(event,this)')+attr('ondblclick',_codeWinName+'.ComboWidget_dblClickCB(event,this)')+attr('onkeyup',_codeWinName+'.ComboWidget_keyUpCB(event,this)')+attr('onkeydown',_codeWinName+'.ComboWidget_keyDownCB(event,this)')+attr('id',o.id)+attr('name',o.id)+attr('title',o.tooltip)+'size="'+o.size+'">' } // ================================================================================ function ComboWidget_clearSelection() { var o=this; if(o.layer) o.layer.selectedIndex=-1; } //================================================================================ function ComboWidget_endHTML() { return '</select>' } // ================================================================================ function ComboWidget_getHTML(inner) { return this.beginHTML()+(inner?inner:'')+this.endHTML() } // ================================================================================ function ComboWidget_add(s,val,sel,id,grayed) { var e=this.layer,opt=_curDoc.createElement('option'); // Add item if (_ie) e.options.add(opt); else e.appendChild(opt); // Set text content if (opt.innerText!=null) opt.innerText=s; else opt.innerHTML=convStr(s); // Set other attributes opt.value=val; if(id!=null) opt.id=id; if (sel) opt.selected=true; if (grayed) { opt.style.color='gray' } return opt; } // ================================================================================ //function ComboWidget_move(delta) //{ // var e=this.layer,i=e.selectedIndex,len=e.options.length-1,newI=i+delta // if ((i==-1)||(newI<0)||(newI>len)) // return false // // var oldOpt = e.options[i],newOpt = e.options[newI] // var oldVal=oldOpt.value,oldHTML=oldOpt.innerHTML,oldID=oldOpt.id,newID=newOpt.id,oldColor=oldOpt.style.color,newColor=newOpt.style.color // // oldOpt.value=newOpt.value // oldOpt.innerHTML=newOpt.innerHTML // newOpt.id=null // oldOpt.id=newOpt.id // oldOpt.style.color=newColor // // newOpt.value=oldVal // newOpt.innerHTML=oldHTML // newOpt.id=oldID // newOpt.style.color=oldColor // // e.selectedIndex=newI // return true //} // ================================================================================ function ComboWidget_getSelection() { var e=this.layer,i=e.selectedIndex;if (i<0) return null;var ret=new Object;ret.index=i;ret.value=e.options[i].value;ret.text=e.options[i].text;return ret } // ================================================================================ function ComboWidget_select(i) { var o=this,e=o.layer,len=e.options.length if (i==null) e.selectedIndex=-1 if ((i<0)||(i>=len)) i=len-1 if (i>=0) e.selectedIndex=i o.setUndefined(false) } // ================================================================================ function ComboWidget_valueSelect(v) { var o=this,e=o.layer,opts=e.options,len=opts.length for (var i=0;i<len;i++) { if (opts[i].value==v) { //e.selectedIndex=i opts[i].selected=true o.setUndefined(false) break; } } } // ================================================================================ function ComboWidget_del(i) { var e=this.layer if (i==null) e.options.length=0 else { if (_ie) e.remove(i) else e.options[i]=null this.select(i) } } // ================================================================================ function ComboWidget_changeCB(e,l) // PRIVATE { var o=getWidget(l);if(o.changeCB) o.changeCB(e) } // ================================================================================ function ComboWidget_clickCB(e,l) // PRIVATE { var o=getWidget(l);if(o.clickCB) o.clickCB(e) } // ================================================================================ function ComboWidget_dblClickCB(e,l) // PRIVATE { var o=getWidget(l);if(o.dblClickCB) o.dblClickCB(e) } // ================================================================================ function ComboWidget_keyUpCB(e,l) { var o=getWidget(l);if(o.keyUpCB) o.keyUpCB(e) } // ================================================================================ function ComboWidget_keyDownCB(e,l) { var k=eventGetKey(e); var o=getWidget(l); //be careful ! usefull for dialog box close by Enter ou Escape keypressed if(o.isCombo && (k==27 || k==13))//Escape ou Enter { eventCancelBubble(e); } else if(k==13 && o.keyUpCB) //Enter can be attached to an action in listwidget { eventCancelBubble(e); } } // ================================================================================ function ComboWidget_getCount() { return this.layer.options.length } // ================================================================================ function ComboWidget_delByID(id) // PRIVATE { var opt=getLayer(id) if (opt!=null) this.del(opt.index) opt=null } // ================================================================================ function ComboWidget_setDisabled(d,addEmptyElt) { var o=this o.oldSetDisabled(d); o.isDisabled=d; if (d==true) { var old=getLayer(o.disabledId) if (old==null) o.add('','',true,o.disabledId); else o.layer.selectedIndex=old.index } else o.delByID(o.disabledId) } // ================================================================================ function ComboWidget_setUndefined(u) { var o=this o.undef=u; if (u==true) { var old=getLayer(o.undefId) if (old==null) o.add('','',true,o.undefId); else o.layer.selectedIndex=old.index } else o.delByID(o.undefId) } // ================================================================================ function ComboWidget_findByValue(val) //return the data if already exist else null { var o=this,e=o.layer,opts=e.options,len=opts.length for (var i=0;i<len;i++) { if (opts[i].value==val) { var ret=new Object; ret.index=i; ret.value=e.options[i].value; ret.text=e.options[i].text; return ret } } return null } // ================================================================================ function ComboWidget_findByText(txt) //return the data if already exist else null { var o=this,e=o.layer,opts=e.options,len=opts.length for (var i=0;i<len;i++) { if (opts[i].text==txt) { var ret=new Object; ret.index=i; ret.value=e.options[i].value; ret.text=e.options[i].text; return ret } } return null } // ================================================================================ function ComboWidget_getValue(i) //return the value at index i { var o=this,e=o.layer,opts=e.options,len=opts.length if(i==null || i<0 || i>len) return null; var ret=new Object; ret.index=i; ret.value=e.options[i].value; return ret } // ================================================================================ function ComboWidget_isGrayed(i) //return true is the option is gray { var o=this,e=o.layer,opts=e.options,len=opts.length if(i==null || i<0 || i>len) return false; return (e.options[i].style.color=="gray") } // ================================================================================ // ================================================================================ // // OBJECT newListWidget (Constructor) // // List box widget - based on SELECT tags // // ================================================================================ // ================================================================================ function newListWidget(id,changeCB,multi,width,lines,tooltip,dblClickCB,keyUpCB,clickCB) { var o=newComboWidget(id,changeCB,true,width,tooltip) o.clickCB=clickCB o.dblClickCB=dblClickCB o.keyUpCB=keyUpCB o.size=lines o.multi=multi o.getMultiSelection=ListWidget_getMultiSelection o.setUndefined=ListWidget_setUndefined o.isUndefined=ListWidget_isUndefined o.change=ListWidget_change o.isCombo=false return o; } // ================================================================================ function ListWidget_setUndefined(u) { var o=this o.undef=u; if (u==true) { o.layer.selectedIndex = -1 } } // ================================================================================ function ListWidget_isUndefined() { return (this.layer.selectedIndex == -1) } // ================================================================================ function ListWidget_getMultiSelection() { var e=this.layer,rets=new Array,len=e.options.length for (var i=0;i<len;i++) { var opt=e.options[i] if (opt.selected) { var ret=new Object; ret.index=i;ret.value=opt.value;ret.text=opt.text;rets[rets.length]=ret } } return rets } function ListWidget_change(multi,lines) { var o=this if(multi!=null) { o.multi=multi o.layer.multiple=multi } if(lines!=null) { o.size=lines o.layer.size=lines } } // ================================================================================ // ================================================================================ // // OBJECT newInfoWidget (Constructor) // // List box widget - based on SELECT tags // // ================================================================================ // ================================================================================ function newInfoWidget(id,title,boldTitle,text,height) { var o=newWidget(id) o.title=title?title:"" o.boldTitle=boldTitle?boldTitle:"" o.text=text?text:"" o.height=(height!=null)?height:55 o.getHTML=InfoWidget_getHTML o.setText=InfoWidget_setText o.setTitle=InfoWidget_setTitle o.setTitleBold=InfoWidget_setTitleBold o.oldResize=o.resize o.resize=InfoWidget_resize o.textLayer=null return o } // ================================================================================ function InfoWidget_setText(text,isHTML) { var o=this text=text?text:"" o.text=text if (o.layer) { var l=o.textLayer if (l==null) l=o.textLayer=getLayer('infozone_'+o.id) if (l) l.innerHTML=isHTML?text:convStr(text,false,true) } } // ================================================================================ function InfoWidget_setTitle(text) { var o=this text=text?text:"" o.title=text if (o.layer) { var l=o.titleLayer if (l==null) l=o.titleLayer=getLayer('infotitle_'+o.id) if (l) l.innerHTML=convStr(text) } } // ================================================================================ function InfoWidget_setTitleBold(text) { var o=this text=text?text:"" o.boldTitle=text if (o.layer) { var l=o.titleLayerBold if (l==null) l=o.titleLayerBold=getLayer('infotitlebold_'+o.id) if (l) l.innerHTML=convStr(text) } } // ================================================================================ function InfoWidget_getHTML() { var o=this return '<div class="dialogzone" align="left" style="overflow:hidden;'+sty("width",o.width)+sty("height",""+o.height+"px")+'" id="'+o.id+'">'+ '<nobr>'+img(_skin+'../help.gif',16,16,'top',null,_helpLab)+ '<span class="dialogzone" style="padding-left:5px" id="infotitle_'+o.id+'">'+convStr(o.title)+'</span><span style="padding-left:5px" class="dialogzonebold" id="infotitlebold_'+o.id+'">'+convStr(o.boldTitle)+'</span></nobr>'+ '<br>'+getSpace(1,2)+ '<div class="infozone" align="left" id="infozone_'+o.id+'" style="height:'+(o.height-18-(_moz?10:0))+'px;overflow'+(_ie?'-y':'')+':auto">'+convStr(o.text,false,true)+'</div>'+ '</div>' } // ================================================================================ function InfoWidget_resize(w,h) { var o=this; if (w!=null) o.w=w if (h!=null) o.h=h o.oldResize(w,h) if (o.layer) { var l=o.textLayer if (l==null) l=o.textLayer=getLayer('infozone_'+o.id) if (l) { if (o.h!=null) l.style.height=""+Math.max(0, o.h-(_ie?18:28))+"px" } } } // ================================================================================ // ================================================================================ // // OBJECT newCheckWidget (Constructor) // // Check box widget // // ================================================================================ // ================================================================================ function newCheckWidget(id,text,changeCB,bold,imgUrl,imgW,imgH,bconvtext) { var o=newWidget(id) o.text=text o.convText=bconvtext o.changeCB=changeCB o.idCheckbox='check_'+id o.checkbox=null o.kind='checkbox' o.name=o.idCheckbox o.bold=bold o.imgUrl=imgUrl o.imgW=imgW o.imgH=imgH o.getHTML=CheckWidget_getHTML o.setText=CheckWidget_setText o.parentInit=Widget_init o.init=CheckWidget_init o.check=CheckWidget_check o.isChecked=CheckWidget_isChecked o.setDisabled=CheckWidget_setDisabled o.isDisabled=CheckWidget_isDisabled o.uncheckOthers=CheckWidget_uncheckOthers o.isIndeterminate=CheckWidget_isIndeterminate o.setIndeterminate=CheckWidget_setIndeterminate o.layerClass=('dialogzone'+(o.bold?'bold':'')) o.nobr=true return o } // ================================================================================ function CheckWidget_getHTML() { var o=this,cls=o.layerClass; return '<table border="0" onselectstart="return false" cellspacing="0" cellpadding="0" class="'+cls+'"'+attr('id',o.id)+'>' + '<tr valign="middle">'+ '<td style="height:20px;width:21px"><input style="margin:'+(_moz?3:0)+'px" onclick="'+_codeWinName+'.CheckWidget_changeCB(event,this)" ' + 'type="'+o.kind+'"'+attr('id',o.idCheckbox)+attr('name',o.name)+'>' + '</td>'+ (o.imgUrl?'<td><label style="padding-left:2px" for="'+o.idCheckbox+'">'+img(o.imgUrl,o.imgW,o.imgH)+'</label></td>':'')+ '<td>'+(o.nobr?'<nobr>':'')+'<label style="padding-left:'+ (o.imgUrl?4:2) +'px" id="label_'+o.id+'" for="'+o.idCheckbox+'">'+(o.convText?convStr(o.text):o.text)+'</label>'+(o.nobr?'</nobr>':'')+'</td>'+ '</tr></table>' } // ================================================================================ function CheckWidget_setText(s) // Set the check text // s [String] the new text { var o=this o.text=s if (o.layer) { if (o.labelLyr==null) o.labelLyr=getLayer('label_'+o.id) o.labelLyr.innerHTML=o.convText?convStr(s):s } } function CheckWidget_init() { this.parentInit() this.checkbox=getLayer(this.idCheckbox) } // ================================================================================ function CheckWidget_check(c) {this.checkbox.checked=c;if(c)this.uncheckOthers()} function CheckWidget_isChecked() {return this.checkbox.checked} function CheckWidget_changeCB(e,l) {var o=getWidget(l);o.uncheckOthers();if(o.changeCB) o.changeCB(e)} function CheckWidget_setDisabled(d) {this.checkbox.disabled=d;if(_moz) this.checkbox.className=(d?'dialogzone':'')} function CheckWidget_isDisabled(){ return this.checkbox.disabled } function CheckWidget_uncheckOthers() {} function CheckWidget_isIndeterminate() {return this.checkbox.indeterminate} function CheckWidget_setIndeterminate(b) {this.checkbox.indeterminate=b} // ================================================================================ // ================================================================================ // // OBJECT newRadioWidget (Constructor) // // Class for radio buttons // // ================================================================================ // ================================================================================ function newRadioWidget(id,group,text,changeCB,bold,imgUrl,imgW,imgH,bconvtext) { var o=newCheckWidget(id,text,changeCB,bold,imgUrl,imgW,imgH,bconvtext) o.kind='radio' o.name=group if (_RadioWidget_groups[group]==null) _RadioWidget_groups[group]=new Array o.groupInstance=_RadioWidget_groups[group] var g=o.groupInstance o.groupIdx=g.length g[g.length]=o o.uncheckOthers=RadioWidget_uncheckOthers return o; } // ================================================================================ var _RadioWidget_groups=new Array function RadioWidget_uncheckOthers() { var g=this.groupInstance,idx=this.groupIdx,len=g.length for (var i=0;i<len;i++) { if (i!=idx) { var c=g[i].checkbox if(c) c.checked=false } } } // ================================================================================ // ================================================================================ // // OBJECT newIconNoTextCheckWidget (Constructor) // // Class for icon only checkbox // // ================================================================================ // ================================================================================ /* function newIconNoTextCheckWidget(id,changeCB,imgUrl,imgW,imgH,tooltip) { var o=newWidget(id) o.changeCB=changeCB o.idCheckbox='check_'+id o.checkbox=null o.kind='checkbox' o.name=o.idCheckbox o.imgUrl=imgUrl o.imgW=imgW o.imgH=imgH o.tooltip=(tooltip?tooltip:"") o.getHTML=IconNoTextCheckWidget_getHTML o.parentInit=Widget_init o.init=CheckWidget_init o.check=CheckWidget_check o.isChecked=CheckWidget_isChecked o.setDisabled=CheckWidget_setDisabled o.uncheckOthers=CheckWidget_uncheckOthers return o } // ================================================================================ function IconNoTextCheckWidget_getHTML() { var o=this return '<table border="0" onselectstart="return false" cellspacing="0" cellpadding="0" title= "'+ convStr(o.tooltip) + '" ' + attr('id',o.id) +'>' + '<tr>'+ '<td align="center"><label style="padding-left:2px" for="'+o.idCheckbox+'">'+img(o.imgUrl,o.imgW,o.imgH, null, null, convStr(o.tooltip))+'</label></td>'+ '</tr>'+ '<tr>'+ '<td align="center"><input style="margin:'+(_moz?3:0)+'px" onclick="'+_codeWinName+'.CheckWidget_changeCB(event,this)" ' + 'type="'+o.kind+'"'+attr('id',o.idCheckbox)+attr('name',o.name)+'>' + '</td>'+ '</tr></table>' } // ================================================================================ // ================================================================================ // // OBJECT newIconNoTextCheckWidget (Constructor) // // Class for icon only radio button // // ================================================================================ // ================================================================================ function newIconNoTextRadioWidget(id,group,changeCB,imgUrl,imgW,imgH,tooltip) { var tip = tooltip?tooltip:"" var o=newIconNoTextCheckWidget(id,changeCB,imgUrl,imgW,imgH,tip) o.kind='radio' o.name=group if (_RadioWidget_groups[group]==null) _RadioWidget_groups[group]=new Array o.groupInstance=_RadioWidget_groups[group] var g=o.groupInstance o.groupIdx=g.length g[g.length]=o o.uncheckOthers=RadioWidget_uncheckOthers return o; } */ // ================================================================================ // ================================================================================ // // OBJECT newTextFieldWidget (Constructor) // // Text field widget // // ================================================================================ // ================================================================================ function newTextFieldWidget(id,changeCB,maxChar,keyUpCB,enterCB,noMargin,tooltip,width,focusCB,blurCB) { var o=newWidget(id) o.tooltip=tooltip o.changeCB=changeCB o.maxChar=maxChar o.keyUpCB=keyUpCB o.enterCB=enterCB o.noMargin=noMargin o.width=width==null?null:''+width+'px' o.focusCB=focusCB o.blurCB=blurCB o.disabled=false o.getHTML=TextFieldWidget_getHTML o.getValue=TextFieldWidget_getValue o.setValue=TextFieldWidget_setValue o.intValue=TextFieldWidget_intValue o.intPosValue=TextFieldWidget_intPosValue o.select=TextFieldWidget_select o.setDisabled=TextFieldWidget_setDisabled o.beforeChange=null o.wInit=o.init o.init=TextFieldWidget_init o.oldValue="" o.helpTxt='' o.isHelpTxt=false o.setHelpTxt=TextFieldWidget_setHelpTxt o.eraseHelpTxt=TextFieldWidget_eraseHelpTxt o.enterCancelBubble=true return o } // ================================================================================ function TextFieldWidget_setDisabled(d) { var o=this o.disabled=d if (o.layer) o.layer.disabled=d } // ================================================================================ function TextFieldWidget_init() { var o=this o.wInit() o.layer.value=""+ (o.oldValue != "")?o.oldValue : ""; if(o.helpTxt && !o.oldValue) o.setHelpTxt(o.helpTxt); } // ================================================================================ function TextFieldWidget_getHTML() { var o=this return '<input'+(o.disabled?' disabled':'')+' oncontextmenu="event.cancelBubble=true;return true" style="'+sty("width",this.width)+(_moz?'margin-top:1px;margin-bottom:1px;padding-left:5px;padding-right:2px;':'')+(_isQuirksMode? 'height:20px;' : 'height:16px;') + 'margin-left:'+(this.noMargin?0:10)+'px" onfocus="'+_codeWinName+'.TextFieldWidget_focus(this)" onblur="'+_codeWinName+'.TextFieldWidget_blur(this)" onchange="'+_codeWinName+'.TextFieldWidget_changeCB(event,this)" onkeydown=" return '+_codeWinName+'.TextFieldWidget_keyDownCB(event,this);" onkeyup=" return '+_codeWinName+'.TextFieldWidget_keyUpCB(event,this);" onkeypress=" return '+_codeWinName+'.TextFieldWidget_keyPressCB(event,this);" type="text" '+attr('maxLength',this.maxChar)+' ondragstart="event.cancelBubble=true;return true" onselectstart="event.cancelBubble=true;return true" class="textinputs" id="'+this.id+'" name="'+this.id+'"'+attr('title',this.tooltip)+' value="">' } // ================================================================================ function TextFieldWidget_getValue() { var o=this if (o.isHelpTxt) { return '' } else { return o.layer ? o.layer.value : o.oldValue } } // ================================================================================ function TextFieldWidget_setValue(s) { var o=this if (o.layer) { o.eraseHelpTxt() o.layer.value=''+s } else { o.oldValue=s } } // ================================================================================ function TextFieldWidget_changeCB(e,l) // PRIVATE { var o=getWidget(l) o.eraseHelpTxt() if(o.beforeChange) o.beforeChange() if(o.changeCB) o.changeCB(e) } // ================================================================================ function TextFieldWidget_keyPressCB(e,l) // PRIVATE { var o=getWidget(l) if (eventGetKey(e)==13) { // Only non-IME enter key press will come here o.enterKeyPressed = true; return false; } else { o.enterKeyPressed = false; } return true } // ================================================================================ function TextFieldWidget_keyUpCB(e,l) // PRIVATE { var o=getWidget(l) o.eraseHelpTxt() if (eventGetKey(e)==13 && o.enterKeyPressed) // Ignore the IME enter key up { if (o.beforeChange) o.beforeChange() if (o.enterCB) { if (o.enterCancelBubble) eventCancelBubble(e) o.enterCB(e) } return false } else if(o.keyUpCB) { o.keyUpCB(e) } o.enterKeyPressed = false; return true } // ================================================================================ function TextFieldWidget_keyDownCB(e,l) // PRIVATE { var o=getWidget(l) o.eraseHelpTxt() o.enterKeyPressed = false; if (eventGetKey(e)==13) { return true } else if (eventGetKey(e)==8)//back space { eventCancelBubble(e); } return true; } // ================================================================================ function TextFieldWidget_eraseHelpTxt() // PRIVATE { var o=this if (o.isHelpTxt) o.layer.value= "" o.isHelpTxt = false o.layer.style.color="black" } // ================================================================================ function TextFieldWidget_focus(l) // PRIVATE { var o=getWidget(l) o.eraseHelpTxt() if (o.focusCB) o.focusCB() } // ================================================================================ function TextFieldWidget_blur(l) // PRIVATE { var o=getWidget(l) if(o.beforeChange) o.beforeChange() if (o.blurCB) o.blurCB() } // ================================================================================ function TextFieldWidget_intValue(nanValue) { var n=parseInt(this.getValue()) return isNaN(n)?nanValue:n } // ================================================================================ function TextFieldWidget_intPosValue(nanValue) { var n=this.intValue(nanValue) return (n<0)?nanValue:n } // ================================================================================ function TextFieldWidget_select() { this.layer.select() } // ================================================================================ function TextFieldWidget_setHelpTxt(h) { var o=this o.helpTxt=h if (o.layer && (o.layer.value == "")) { o.isHelpTxt=true o.layer.value=h o.layer.style.color="#808080" } } // ================================================================================ // ================================================================================ // // OBJECT newIntFieldWidget (Constructor) // // Text field widget that handles integer numeric values // // ================================================================================ // ================================================================================ function newIntFieldWidget(id,changeCB,maxChar,keyUpCB,enterCB,noMargin,tooltip,width,customCheckCB) { var o=newTextFieldWidget(id,changeCB,maxChar,keyUpCB,enterCB,noMargin,tooltip,width) o.min=-Number.MAX_VALUE o.max=Number.MAX_VALUE o.customCheckCB=customCheckCB // Returns a boolean o.setMin=IntFieldWidget_setMin o.setMax=IntFieldWidget_setMax o.setValue=IntFieldWidget_setValue o.beforeChange=IntFieldWidget_checkChangeCB o.value='' return o } // ================================================================================ function IntFieldWidget_setMin(min) { if (!isNaN(min)) this.min=min } // ================================================================================ function IntFieldWidget_setMax(max) { if (!isNaN(max)) this.max=max } // ================================================================================ function IntFieldWidget_setValue(s) { var o=this,l=o.layer s = '' + s if (s =='') { if (l) l.value= '' o.oldValue = '' return } var n=parseInt(s) value = '' if (!isNaN(n) && (n >= o.min) && (n <= o.max) && ((o.customCheckCB==null) || o.customCheckCB(n))) { value = n o.oldValue = value } else { if (o.oldValue) value = o.oldValue } if (l) l.value= '' + value } // ================================================================================ function IntFieldWidget_checkChangeCB() { var o=this o.setValue(o.layer.value) } // ================================================================================ // ================================================================================ // // OBJECT newFloatFieldWidget (Constructor) // // Text field widget that handles floating point numeric values // // ================================================================================ // ================================================================================ /* function newFloatFieldWidget(id,changeCB,maxChar,keyUpCB,enterCB,noMargin,tooltip,width,customCheckCB) { var o=newIntFieldWidget(id,changeCB,maxChar,keyUpCB,enterCB,noMargin,tooltip,width) o.setValue=FloatFieldWidget_setValue o.customCheckCB=customCheckCB // Returns a boolean o.setPrecision=FloatFieldWidget_setPrecision o.toPrecision=FloatFieldWidget_toPrecision o.setSeparator=FloatFieldWidget_setSeparator o.beforeChange=FloatFieldWidget_checkChangeCB o.precision=10 // default precision !!is it enough? o.sep='.' // default separator return o } // ================================================================================ function FloatFieldWidget_setValue(s) { var o=this,l=o.layer s = '' + s if (s =='') { if (l) l.value= '' o.oldValue = '' return } var n=parseFloat(s) value = '' if (!isNaN(n) && (n >= o.min) && (n <= o.max) && ((o.customCheckCB==null) || o.customCheckCB(n))) { value = '' + o.toPrecision(n) o.oldValue = value } else { if (o.oldValue) value = o.oldValue } if (l) l.value = value } // ================================================================================ function FloatFieldWidget_toPrecision(n) { var o=this n = '' + n var nAr = n.split(o.sep) if (nAr.length == 1) return nAr[0] var dec = (nAr[1].length >= o.precision)? nAr[1].substr(0, o.precision) : nAr[1] return nAr[0] + o.sep + dec } // ================================================================================ function FloatFieldWidget_checkChangeCB() { var o=this o.setValue(o.layer.value) } // ================================================================================ function FloatFieldWidget_setPrecision(p) { this.precision=p } // ================================================================================ function FloatFieldWidget_setSeparator(s) { this.sep=s } // ================================================================================ // ================================================================================ // // OBJECT newTextAreaWidget (Constructor) // // Text Area widget // // ================================================================================ // ================================================================================ function newTextAreaWidget(id,rows,cols,tooltip,changeCB,enterCB,cancelCB) { var o=newWidget(id) o.rows=rows o.cols=cols o.allowCR=true o.tooltip=tooltip o.changeCB=changeCB o.enterCB=enterCB o.cancelCB=cancelCB o.getHTML=TextAreaWidget_getHTML o.getValue=TextAreaWidget_getValue o.setValue=TextAreaWidget_setValue o.resize=TextAreaWidget_resize o.wInit=o.init o.init=TextAreaWidget_init o.oldValue="" if ((o.rows!=null)&&!_ie&&!_saf) o.rows-- return o } // ================================================================================ function TextAreaWidget_init() { var o=this o.wInit() o.layer.value=""+o.oldValue } // ================================================================================ function TextAreaWidget_getHTML() { return '<textarea oncontextmenu="event.cancelBubble=true;return true" id="'+this.id+'" '+attr('title',this.tooltip)+ 'rows="'+this.rows+'" cols="'+this.cols+'" class="textinputs" value="" onkeydown="return '+_codeWinName+'.TextAreaWidget_keyDownCB(event,this)" ondragstart="event.cancelBubble=true;return true" onselectstart="event.cancelBubble=true;return true" ></textarea>' } // ================================================================================ function TextAreaWidget_getValue() { return this.layer.value } // ================================================================================ function TextAreaWidget_setValue(s) { if (this.layer) this.layer.value=''+s else this.oldValue=s } // ================================================================================ function TextAreaWidget_resize(lines,cols) { var o=this if(lines && lines >0) o.layer.rows=lines if(cols && cols>0) o.layer.cols=cols } // ================================================================================ function TextAreaWidget_keyDownCB(e,l) { var key = eventGetKey(e),o=getWidget(l) if (key==13)//enter { if (o.enterCB) { eventCancelBubble(e) o.enterCB(e) } else if (o.allowCR) { eventCancelBubble(e); //change in textarea setTimeout("TextAreaWidget_delayedChangeCB("+key+","+o.widx+")",1) } return o.allowCR; } else if(key==27)//escape { if(o.cancelCB) return o.cancelCB(e) else return true; } else if(key == 8)// back space { eventCancelBubble(e); //change in textarea setTimeout("TextAreaWidget_delayedChangeCB("+key+","+o.widx+")",1) return true; } else { //setTimeout to be sure that the key is writen in the textarea //we do not use the keyup event because of rapid keyboard pression setTimeout("TextAreaWidget_delayedChangeCB("+key+","+o.widx+")",1) return true; } } // ================================================================================ function TextAreaWidget_delayedChangeCB(key,widx) { var o=_widgets[widx] if (o.changeCB) o.changeCB(key) } */ // ================================================================================ // ================================================================================ // // OBJECT newFrameZoneWidget (Constructor) // // Text field widget that handles floating point numeric values // // ================================================================================ // ================================================================================ function newFrameZoneWidget(id,w,h,reverse) { var o=newWidget(id) o.w=(w!=null)?""+Math.max(0,w-10)+"px":null o.h=(h!=null)?""+Math.max(0,h-10)+"px":null o.reverse=(reverse!=null)?reverse:false o.cont=null o.beginHTML=FrameZoneWidget_beginHTML o.endHTML=FrameZoneWidget_endHTML o.oldResize=o.resize o.resize=FrameZoneWidget_resize return o } // ================================================================================ function FrameZoneWidget_resize(w,h) { var o=this var d=o.layer.display!="none" if (d&_moz&&!_saf) o.setDisplay(false) o.oldResize(w,h) if (d&_moz&&!_saf) o.setDisplay(true) } // ================================================================================ function FrameZoneWidget_beginHTML() { var o=this return '<table width="100%" style="'+sty("width",o.w)+sty("height",o.h)+'" id="'+o.id+'" cellspacing="0" cellpadding="4" border="0"><tbody>'+ '<tr><td valign="top" class="dlgFrame" id="frame_cont_'+o.id+'" style="padding:5px">' } // ================================================================================ function FrameZoneWidget_endHTML() { var o=this return '</td></tr></tbody></table>' } // ================================================================================ // ================================================================================ // // OBJECT newBOColor (Constructor) // // Color object // // ================================================================================ // ================================================================================ /* function newBOColor(r,g,b) { var o=new Object; if (r && (g==null) && (b==null)) { s = r.split(",") o.r=parseInt(s[0]) o.g=parseInt(s[1]) o.b=parseInt(s[2]) } else { o.r=r o.g=g o.b=b } o.set=BOColor_set o.getCopy=BOColor_getCopy o.getStringDef=BOColor_getStringDef o.getStyleColor=BOColor_getStyleColor return o; } // ================================================================================ function BOColor_getStringDef() { var o=this return ""+o.r+","+o.g+","+o.b } // ================================================================================ function BOColor_getCopy() { var f=this var o=newBOColor(f.r,f.g,f.b) return o; } // ================================================================================ function BOColor_set(r,g,b) { this.r=r this.g=g this.b=b } // ================================================================================ function BOColor_getStyleColor() { var o=this // if undefined if (o.r == -1 || o.r == null) return null; if (o.g == -1 || o.g == null) return null; if (o.b == -1 || o.b == null) return null; return "rgb(" + o.r + "," + o.g + "," + o.b + ")" } // ================================================================================ // ================================================================================ // // PRIVATE OBJECT newDragDropData (Constructor) // // Generic object fo Drag and drop support. // // ================================================================================ // ================================================================================ function newDragDropData(widget,dragStartCB,dragCB,dragEndCB,acceptDropCB,leaveDropCB,dropCB) // void dragStartCB (source,layer) // void dragCB (source,layer, shift) // void dragEndCB (source,layer) // boolean acceptDropCB (source, target, ctrl, shift, layer, enter) // void leaveDropCB (source, target, ctrl, shift, layer) // void dropCB (source, target, ctrl, shift, layer) { var o=new Object o.widget=widget o.dragStartCB=dragStartCB o.dragCB=dragCB o.dragEndCB=dragEndCB o.acceptDropCB=acceptDropCB o.leaveDropCB=leaveDropCB o.dropCB=dropCB o.attachCallbacks=DragDropData_attachCallbacks o.id=_ddData.length _ddData[o.id]=o return o } // ================================================================================ function DragDropData_attachCallbacks(lyr,onlyDrop) { if (_ie) { onlyDrop=(onlyDrop==null)?false:onlyDrop if (!onlyDrop) { lyr.ondragstart=DDD_dragStart lyr.ondragend=DDD_dragEnd } lyr.ondrop=DDD_drop lyr.ondragleave=DDD_dragLeave lyr.ondragover=DDD_dragOver lyr.ondrag=DDD_drag lyr._dragDropData=this.id } } // ================================================================================ function DDD_dragStart() { var e=_curWin.event,dt=e.dataTransfer dt.effectAllowed='copyMove' dt.dropEffect=_curWin.event.ctrlKey?'copy':'move' var o=_ddData[this._dragDropData] o.dragStartCB(o.widget,this) window._globalDDD=o.widget e.cancelBubble=true } // ================================================================================ function DDD_drag() { var e=_curWin.event,dt=e.dataTransfer dt.dropEffect=e.ctrlKey?'copy':'move' var o=_ddData[this._dragDropData] o.dragCB(o.widget,this,e.ctrlKey?false:e.shiftKey) e.cancelBubble=true } // ================================================================================ function DDD_dragEnd() { var o=_ddData[this._dragDropData] o.dragEndCB(o.widget,this) window._globalDDD=null } // ================================================================================ function DDD_dragEnter() { DDD_dragOverEnter(this,true) } // ================================================================================ function DDD_dragOver() { DDD_dragOverEnter(this,false) } // ================================================================================ function DDD_dragOverEnter(layer,isEnter) { var o=_ddData[layer._dragDropData],e=_curWin.event e.dataTransfer.dropEffect=e.ctrlKey?'copy':'move' var o=_ddData[layer._dragDropData]; if (o.acceptDropCB(window._globalDDD,o.widget,e.ctrlKey,e.ctrlKey?false:e.shiftKey,layer,isEnter)) e.returnValue=false e.cancelBubble=true } // ================================================================================ function DDD_dragLeave() { var o=_ddData[this._dragDropData],e=_curWin.event o.leaveDropCB(window._globalDDD,o.widget,e.ctrlKey,e.ctrlKey?false:e.shiftKey,this) } // ================================================================================ function DDD_drop() { var o=_ddData[this._dragDropData],e=_curWin.event o.dropCB(window._globalDDD,o.widget,e.ctrlKey,e.ctrlKey?false:e.shiftKey,this) window._globalDDD=null e.cancelBubble=true } */ // ================================================================================ // ================================================================================ // // GLOBAL FUNCTIONS : ARRAYS // // Dynamic array management // // ================================================================================ // ================================================================================ function arrayAdd(obj,fieldName,item,idx) { var array=obj[fieldName],len=array.length if ((idx==null)||(typeof idx!="number")) idx=-1 if ((idx<0)||(idx>len)) idx=len if (idx!=len) { var end=array.slice(idx) array.length=idx+1 array[idx]=item array=array.concat(end) } else array[idx]=item obj[fieldName]=array return idx } // ================================================================================ function arrayRemove(obj,fieldName,idx) { var array=obj[fieldName],last=array.length-1 if (idx==null) { array.length=0 obj[fieldName]=array return -1 } if ((idx<0)||(idx>last)) return -1 if (idx==last) array.length=last else { var end=array.slice(idx+1) array.length=idx array=array.concat(end) } obj[fieldName]=array return idx } // ================================================================================ //function arrayMove(obj,fieldName,i,j) //{ // var array=obj[fieldName],len=array.length // // if ((i<0)||(i>=len)||(j<0)||(j>=len)) return false // var old=array[i] // arrayRemove(obj,fieldName,i) // arrayAdd(obj,fieldName,old,j) // return true; //} // ================================================================================ //function arrayGetCopy(arr) //{ // var o=new Array,len=arr.length; // // for (var i=0;i<len;i++) // o[i]=arr[i] // // return o; //} // ================================================================================ //function arrayFind(obj,fieldName,v,subfield) //return the index of value in array //{ // var array=obj[fieldName],len=array.length; // // for (var i=0;i<len;i++) // { // if(subfield) // { // if (array[i][subfield] == v) return i; // } // else // if(array[i]==v) return i; // } // // return -1; //} // ================================================================================ // ================================================================================ // // GLOBAL FUNCTIONS : FRAMES // // Frame functions // // ================================================================================ // ================================================================================ function getFrame(name,par) { if (par==null) par=self var frames=par.frames,w=eval("frames."+name) if (w==null) return w var l=frames.length for (var i=0;i<l;i++) { w=frames[i] try { if (w.name==name) return w } catch (exc) { // keep on } } return null } // ================================================================================ //function frameNav(name,url,fillHistory,par,noRefreshDrillBar) //// par [window optional] //{ // var fr=null // if (noRefreshDrillBar & name=="Report") // { // var topfs=getTopFrameset(); // fr=topfs.getReportFrame() // } else { // fr=getFrame(name,par) // } // // if (fr) { // var l=fr.location // // if (fillHistory) // l.href=url // else // l.replace(url) // } else { // var lay = document.getElementById(name) // if (lay) // lay.src=url; // } //} // ================================================================================ /* function genericIframeNav(url,fillHistory) { var l = getDynamicBGIFrameLayer() if (fillHistory) { l.href=url } else { l.replace(url) } } */ // ================================================================================ function frameGetUrl(win) { return win.location.href } // ================================================================================ function frameReload(win) { var loc=win.location loc.replace(loc.href) } // ================================================================================ function setTopFrameset() // Marks the current window as a "top frameset" // returns [void] { _curWin._topfs="topfs" } // ================================================================================ function getTopFrameset(f) // get int the parents window the one marked as "top frameset" // returns [window] the top frameset, or null if not { if(f == null) f = self if(f._topfs=="topfs") { return f; } else { if(f!= top) return getTopFrameset(f.parent) else return null; } } // ================================================================================ // ================================================================================ // // GLOBAL FUNCTIONS : UTILITY FUNCTIONS // // Frame functions // // ================================================================================ // ================================================================================ function convStr(s,nbsp,br) { s=""+s var ret=s.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""") if (nbsp) ret=ret.replace(/ /g," ") if (br) ret=ret.replace(/\n/g,"<br>") return ret } // ================================================================================ function escapeCR(s) { s=""+s var ret=s.replace(/\r/g,"").replace(/\n/g,"\\n"); return ret } // ================================================================================ function addDblClickCB(l,cb) // Adds a function double click event handler. fixes a Netscape bug // l [layer] the layer // cb [Function] the double click function handler { if (l.addEventListener && !_saf) {// ADAPT00521043 for Safari : Bug 7790: ondblclick doesn't fire when attached with addEventListener l.addEventListener("dblclick",cb,false) } else { l.ondblclick=cb } } // ================================================================================ function img(src,w,h,align,att,alt) // get the HTML of an image // src [String] the combined image url // w [int] the width // h [int] the height // align [String optional] image alignment // att [String optional] optional attributes (do no use style & alt & align attribute) // alt [String optional] image tooltip { att=(att?att:'') if (alt==null) alt='' return '<img'+attr('width',w)+attr('height',h)+attr('src', src)+attr('alt',alt)+attr("align", align)+' border="0" hspace="0" vspace="0" '+(att?att:'')+'>' } // ================================================================================ function imgOffset(url,w,h,dx,dy,id,att,alt,st,align) // get the HTML of an image that display only a part of a bigger one // url [String] the combined image url // w [int] the VISIBLE width // h [int] the VISIBLE height // dx [int] the horizontal offset in combined image // dy [int] the vertical offset in combined image // id [String optional] the DOM id // att [String optional] optional attributes (do no use style & alt & align attribute) // alt [String optional] image tooltip // st [String optional] optional style attributes // align [String optional] image alignment { return img(_skin+'../transp.gif',w,h,align, (att?att:'') +' '+attr('id',id)+' style="float:left;'+backImgOffset(url,dx,dy)+(st?st:'')+'"', alt) } // ================================================================================ function simpleImgOffset(url,w,h,dx,dy,id,att,alt,st,align) // get the HTML of an image that display only a part of a bigger one // url [String] the combined image url // w [int] the VISIBLE width // h [int] the VISIBLE height // dx [int] the horizontal offset in combined image // dy [int] the vertical offset in combined image // id [String optional] the DOM id // att [String optional] optional attributes (do no use style & alt & align attribute) // alt [String optional] image tooltip // st [String optional] optional style attributes // align [String optional] optional style attributes { if (_ie) { if (dx==null) dx=0 if (dy==null) dy=0 return '<div '+(att?att:'')+' '+attr("id",id)+' style="position:relative;padding:0px;width:'+w+'px;height:'+h+'px;overflow:hidden;'+(st?st:'')+'">'+img(url,null,null,(align?align:'top'),'style="margin:0px;position:relative;top:'+(-dy)+'px;left:'+(-dx)+'px" tabIndex="-1"',alt)+'</div>' } else return imgOffset(url,w,h,dx,dy,id,att,alt,st,align) } // ================================================================================ function changeSimpleOffset(lyr,dx,dy,url,alt) // Generate a background image with a given offset // ONLY APPLIES TO HTML GENRATED BY simpleImgOffset !! // url [String] the combined image url // dx [int] the horizontal offset in combined image // dy [int] the vertical offset in combined image { if (_ie) { lyr=lyr.childNodes[0] var st=lyr.style if ((url!=null)&&(url!=lyr.src)) lyr.src=url if (dx!=null) st.left=""+(-dx)+"px" if (dy!=null) st.top=""+(-dy)+"px" if (alt!=null) { lyr.title=alt lyr.alt = alt; } } else changeOffset(lyr,dx,dy,url,alt) } // ================================================================================ function backImgOffset(url,dx,dy) // Generate a background image with a given offset // url [String] the combined image url // dx [int] the horizontal offset in combined image // dy [int] the vertical offset in combined image { return 'background-image:url(\''+url+'\');background-position:'+(-dx)+'px '+(-dy)+'px;' } // ================================================================================ function changeOffset(lyr,dx,dy,url,alt) // Change the offset in backgroung image (and eventually the image) // lyr [layer] the layer // dx [int] the horizontal offset in combined image // dy [int] the vertical offset in combined image // url [String - Optional] the combined image url { var st=lyr.style if (st) { if ((dx!=null)&&(dy!=null)) st.backgroundPosition=''+(-dx)+'px '+(-dy)+'px' if (url) st.backgroundImage='url(\''+url+'\')' } if(alt) lyr.title=alt } // ================================================================================ //function includeScript(url) //// Include a script //{ // document.write('<scr'+'ipt language="javascript" charset="UTF-8" src="'+url+'"><\/scr'+'ipt>') //} // ================================================================================ function includeCSS(css,noskin) // Include the CSS related to the current skin // css [String] file name with no extension // noskin [boolean optional] if true, search in the parent folder { if (typeof (_skin) == 'string' && _skin != "") { var url = "" if (noskin) url = _skin + '../' + css else url = _skin + css url += '.css' _curDoc.write ('<li' + 'nk rel="stylesheet" type="text/css" href="' + url + '">') } } // ================================================================================ function getLayer(id) // Get a layer from its ID // id [String] the id { return _curDoc.getElementById(id) } // ================================================================================ function setLayerTransp(lyr,percent) // lyr [Object] : the layer // percent [number] : the opacity 0 .. 100 { if (_ie) lyr.style.filter=(percent==null) ? "" : "progid:DXImageTransform.Microsoft.Alpha( style=0,opacity="+percent+")" else lyr.style.MozOpacity=(percent==null) ? 1 : percent/100 } // ================================================================================ function getPos(el,relTo) // Get the layer position in pixels // returns an object with (x,y) int fields { relTo = relTo?relTo:null for (var lx=0,ly=0;(el!=null)&&(el!=relTo); lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent); return {x:lx,y:ly} } // ================================================================================ // Gets the position of el relativeto relTo // it fixes the cases where Safari with doctype fails function getPos2(el,relTo) { var relTo = relTo?relTo:null var posX = 0; var posY = 0; while(el.parentNode || el.offsetParent) { if(el.offsetParent) { posX +=el.offsetLeft; posY += el.offsetTop; el = el.offsetParent; } else if(el.parentNode) { if(el.style) { if(el.style.left) { posX += el.style.left; } if(el.style.top) { posY += el.style.top; } } el = el.parentNode; } else { break; } } if(relTo) { relToCord = getPos2(relTo); posX -= relToCord.x; posY -= relToCord.y; } return {x:posX,y:posY}; } // ================================================================================ function getPosScrolled(el,relTo) // Get the layer position in pixels // returns an object with (x,y) int fields { relTo = relTo?relTo:null if (_ie) { for (var lx=0,ly=0;(el!=null)&&(el!=relTo); lx+=el.offsetLeft-el.scrollLeft,ly+=el.offsetTop-el.scrollTop,el=el.offsetParent); } else { var oldEl=el for (var lx=0,ly=0;(el!=null)&&(el!=relTo); lx+=el.offsetLeft,ly+=el.offsetTop,el=el.offsetParent); for (el=oldEl;(el!=null)&&(el!=relTo);el=el.parentNode) { if (el.scrollLeft!=null) { lx-=el.scrollLeft ly-=el.scrollTop } } } lx+=getScrollX() ly+=getScrollY() return {x:lx,y:ly} } // ================================================================================ function getWidget(layer) // Apply only with layers generated by widgets // layer [layer] the layer // return [Widget] the widget (or null) { if (layer==null) return null var w=layer._widget if (w!=null) return _widgets[w] else return getWidget(layer.parentNode) } // ================================================================================ function getWidgetFromID(id) // Retrieve a widget from its id // id [string] the id of the widget // return [Widget] the widget (or null) { if (id==null) return null var l=getLayer(id) return getWidget(l) } // ================================================================================ function attr(key,val) // writes an HTML attribute (if val null, do nothing) // key [String] the attribute name // value [String or null] the attribute value // returs [String] { return (val!=null?' '+key+'="'+val+'" ':'') } // ================================================================================ function sty(key,val) // writes style value (if val null, do nothing) // key [String] the style name // value [String or null] the attribute value // returs [String] { return (val!=null?key+':'+val+';' :'') } // ================================================================================ function getSep(marg,solid) // get the HTML for a 3D look horizontal separator // marg [int optional] left & right margin // solid [boolean optional] solid look { if (marg==null)marg=0;var spc=marg>0?'<td width="'+marg+'">'+getSpace(marg,1)+'</td>':''; return '<table style="margin-top:5px;margin-bottom:5px;" width="100%" cellspacing="0" cellpadding="0"><tr>'+spc+'<td background="'+_skin+'sep'+(solid?'_solid':'')+'.gif" class="smalltxt"><img alt="" src="'+_skin+'../transp.gif" width="10" height="2"></td>'+spc+'</tr></table>' } // ================================================================================ function writeSep(marg,solid) // writes a 3D look horizontal separator // marg [int optional] left & right margin // solid [boolean optional] solid look { _curDoc.write(getSep(marg,solid)) } // ================================================================================ function getSpace(w,h) // Return the HTML for forcing a space // Return [String] { return '<table height="'+h+'" border="0" cellspacing="0" cellpadding="0"><tr><td>'+img(_skin+'../transp.gif',w,h)+'</td></tr></table>' } // ================================================================================ function writeSpace(w,h) // write the HTML for forcing a space // Return [void] { _curDoc.write(getSpace(w,h)) } // ================================================================================ function documentWidth(win) // Gets the document(page) width // return [int] { var win=win?win:_curWin; var width = Math.max(document.body.clientWidth,document.documentElement.clientWidth); width = Math.max(width,document.body.scrollWidth); return width; } // ================================================================================ function documentHeight(win) // Gets the document(page) height // return [int] { var win=win?win:_curWin; var height = Math.max(document.body.clientHeight,document.documentElement.clientHeight); height = Math.max(height,document.body.scrollHeight); return height; } // ================================================================================ function winWidth(win) // Gets the window width // return [int] { var width; var win=win?win:_curWin; if(_ie) { if(_isQuirksMode) { width = win.document.body.clientWidth; } else { width = win.document.documentElement.clientWidth; } } else { width = win.innerWidth; } return width; } // ================================================================================ function winHeight(win) // Gets the window height // return [int] { var win=win?win:_curWin; var height; if(_ie) { if(_isQuirksMode) { height = document.body.clientHeight; } else { height = document.documentElement.clientHeight; } } else { height = win.innerHeight; } return height; } // ================================================================================ function getScrollX(win) // Return [int] the scrolling horizontal value in pixels { var scrollLeft = 0; var win=win?win:_curWin; if(typeof(win.scrollX ) == 'number') { scrollLeft = win.scrollX; } else { scrollLeft = Math.max(win.document.body.scrollLeft,win.document.documentElement.scrollLeft); } return scrollLeft; } // ================================================================================ function getScrollY(win) // Get the X scroll position in pixels // returns an int { var scrollTop = 0; var win=win?win:_curWin; if(typeof(win.scrollY ) == 'number') { scrollTop = window.scrollY; } else { scrollTop = Math.max(win.document.body.scrollTop,win.document.documentElement.scrollTop); } return scrollTop; } // ================================================================================ function winScrollTo(x, y, win) // Scroll to the x, y position in pixels // takes 2 int { win=win?win:_curWin win.scrollTo(x,y) /*/if (_ie) { win.document.body.scrollLeft = x win.document.body.scrollTop = y } else { win.scrollTo(x,y) }*/ } // ================================================================================ function eventGetKey(e,win) // Get the event key code // e [event] { win=win?win:_curWin //return _ie?win.event.keyCode:e.which return _ie?win.event.keyCode:e.keyCode } // ================================================================================ function eventGetX(e) // Get the event mouse abscissa // e [event] { return _ie?_curWin.event.clientX: e.clientX ? e.clientX : e.pageX; } // ================================================================================ function eventGetY(e) // Get the event mouse ordinate // e [event] { return _ie?_curWin.event.clientY: e.clientY ? e.clientY : e.pageY; } // ================================================================================ function xpos(o,e,doc,zoom) { if ((zoom==null)||(!_ie)) zoom=1; return ((e.clientX/zoom)-getPos(o).x)+getScrollX(); } // ================================================================================ function ypos(o,e,doc,zoom) { if ((zoom==null)||(!_ie)) zoom=1 return ((e.clientY/zoom)-getPos(o).y)+(_ie?doc.body.scrollTop:0) } // ================================================================================ function absxpos(e,zoom) { if ((zoom==null)||(!_ie)) { return e.clientX } else { return e.clientX/zoom } } // ================================================================================ function absypos(e,zoom) { if ((zoom==null)||(!_ie)) { return e.clientY } else { return e.clientY/zoom } } // ================================================================================ function eventCancelBubble(e,win) // Cancels event bubbling // e [event] { win=win?win:_curWin var ev =_ie? win.event : e; if(ev) { ev.cancelBubble = true; if(ev.stopPropagation) ev.stopPropagation(); } } // ================================================================================ function isHidden(lyr) // Test if a layer is hidden // lyr [layer] // return [boolean] { if ((lyr==null)||(lyr.tagName=="BODY")) return false;var sty=lyr.style;if ((sty==null)||(sty.visibility==_hide)||(sty.display=='none')) return true;return isHidden(lyr.parentNode) } // ================================================================================ function opt(val,txt,sel) // get an option tag // val [String] the option value // txt [String] the option text // sel [boolean optional] set it selected // return [String] { return '<option value="'+val+'" '+(sel?'selected':'')+'>'+convStr(''+txt)+'</option>' } // ================================================================================ function lnk(inner,clickCB,cls,id,att,dblClickCB) // writes a A link tag // inner [String] inner HTML // clickCB [String] click callback // cls [String] CSS class // id [String] tag ID // dblClickCB [String] double click callback { if (clickCB==null) clickCB="return false" att=att?att:'';return '<a'+attr('class',cls)+attr('id',id)+attr('href','javascript:void(0)')+attr('onclick',clickCB)+attr('ondblclick',dblClickCB)+att+'>'+inner +'</a>' } // ================================================================================ _oldErrHandler=null function localErrHandler() { return true } // ================================================================================ function canScanFrames(w) // PRIVATE { //_excludeFromFrameScan variable is set by a frame that does not want to // be scaned, when the frame is used to download document for instance. var ex=true,d=null if (_moz) { _oldErrHandler=window.onerror window.onerror=localErrHandler } try { d=w.document //if ((d!=null&&(typeof(d)).toLowerCase()!="unknown")) //ex=(w._excludeFromFrameScan==true)?w._excludeFromFrameScan:false ex=false } catch(expt) { } if (_moz) window.onerror=_oldErrHandler return (!ex&&(d!=null)) } // ================================================================================ //function restoreAllInputs(win,level) //// restore inputs //{ // if (_ie&&_curWin._inptStackLevel!=null) // { // win=win?win:_curWin // // //_excludeFromFrameScan variable is set by a frame that does not want to // // be scaned, when the frame is used to download document for instance. // // if (canScanFrames(win)) // { // if (level==null) // level=--_curWin._inptStackLevel // // var b=win.document.body,arr=b?b.getElementsByTagName("SELECT"):null,len=arr?arr.length:0 // for (var i=0;i<len;i++) // { // var inpt=arr[i] // if (inpt._boHideLevel==level) // { // inpt.style.visibility=inpt._boOldVis // inpt._boHideLevel=null // } // } // // Process sub frames // var frames=win.frames,flen=frames.length // for (var k=0;k<flen;k++) // restoreAllInputs(frames[k],level) // } // } //} // ================================================================================ // //function hideAllInputs(x,y,w,h,win,level) //// Hide all inputs. If parameters passed, only in the specified rectangle //// x [int optional] the rectangle abscissa //// y [int optional] the rectangle ordinate //// w [int optional] the rectangle width //// h [int optional] the rectangle height //{ // if (_ie) // { // win=win?win:_curWin // // //_excludeFromFrameScan variable is set by a frame that does not want to // // be scaned, when the frame is used to download document for instance. // // if (canScanFrames(win)) // { // var b=win.document.body,arr=b?b.getElementsByTagName("SELECT"):null,len=arr?arr.length:0 // // if (level==null) // { // if (_curWin._inptStackLevel==null) // _curWin._inptStackLevel=0 // // level=_curWin._inptStackLevel++ // } // // for (var i=0;i<len;i++) // { // var inpt=arr[i],css=inpt.style; // var inter=(x==null)||isLayerIntersectRect(inpt,x,y,w,h) // // if (!isHidden(inpt)&&inter) // { // inpt._boHideLevel=level // inpt._boOldVis=css.visibility // css.visibility=_hide // } // } // // // Process sub frames // var frames=win.frames,flen=frames.length // // for (var k=0;k<flen;k++) // hideAllInputs(null,null,null,null,frames[k],level) // } // } //} // ================================================================================ function getBGIframe(id) { return '<iframe id="'+id+'" name="'+id+'" style="display:none;left:0px;position:absolute;top:0px" src="' + _skin + '../../empty.html' + '" frameBorder="0" scrolling="no"></iframe>' } function getDynamicBGIFrameLayer() { var recycle=false if (_curWin.BGIFramePool) { BGIFrames = _curWin.BGIFramePool.split(",") BGIFCount = BGIFrames.length for (var id = 0; id < BGIFCount; id++) { if (BGIFrames[id] != "1") { recycle=true break } } } else { id = 0 BGIFrames = new Array } BGIFrames[id] = "1" _curWin.BGIFramePool = BGIFrames.join(",") if (!recycle) { targetApp(getBGIframe("BGIFramePool_" + id)) } return getLayer("BGIFramePool_" + id) } function holdBGIFrame(layerId) { var l = getLayer(layerId) if (l) { l.style.display="" } id = parseInt(layerId.split('_')[1]) BGIFrames = _curWin.BGIFramePool.split(",") BGIFrames[id]=1 _curWin.BGIFramePool = BGIFrames.join(",") } function releaseBGIFrame(layerId) { var l = getLayer(layerId) if (l) { l.style.display="none" } id = parseInt(layerId.split('_')[1]) BGIFrames = _curWin.BGIFramePool.split(",") BGIFrames[id]=0 _curWin.BGIFramePool = BGIFrames.join(",") } // ================================================================================ // ================================================================================ function append(e,s,c) // inserts HTML BEFORE the end of a given layer // e [layer] the layer // s [String] the HTML // c curDoc { if (_ie) e.insertAdjacentHTML("BeforeEnd",s) else { var curDoc = c?c:_curDoc var r=curDoc.createRange() r.setStartBefore(e) var frag=r.createContextualFragment(s) e.appendChild(frag) } } // ================================================================================ function append2(e,s,c) // fixes IE's problem of appending elements to an element that hasn't been completely loaded // inserts HTML BEFORE the end of a given layer // e [layer] the layer // s [String] the HTML // c curDoc { if (_ie) e.insertAdjacentHTML("afterBegin",s) else { var curDoc = c?c:_curDoc var r=curDoc.createRange() r.setStartBefore(e) var frag=r.createContextualFragment(s) e.appendChild(frag) } } // ================================================================================ function insBefore(e,s,c) // inserts HTML AFTER the end of a given layer // e [layer] the layer // s [String] the HTML { if (_ie) e.insertAdjacentHTML("BeforeBegin",s) else { var curDoc = c?c:_curDoc var r=_curDoc.createRange() r.setEndBefore(e) var frag=r.createContextualFragment(s) e.parentNode.insertBefore(frag,e) } } // ================================================================================ function insBefore2(e,s,c) // Fixes Safari's problem of inserting HTML string before an element // inserts HTML AFTER the end of a given layer // e [layer] the layer // s [String] the HTML { if (_ie) e.insertAdjacentHTML("BeforeBegin",s) else { var curDoc = c?c:_curDoc var r=_curDoc.createRange() r.setStartBefore(e) var frag=r.createContextualFragment(s) e.parentNode.insertBefore(frag,e) } } // ================================================================================ function targetApp(s) // Add HTML code at the end of the body // s [String] the HTML { append(_curDoc.body,s) } // ================================================================================ //function getBasePath() //// Get the url path of the document WITHOUT the page name //// Return [String] the path //{ // var url=document.location.href,last1= url.lastIndexOf('?');if (last1>=0) url=url.slice(0,last1);var last = url.lastIndexOf('/');return (last>=0)?url.slice(0,last+1):url //} // ================================================================================ //function isLayerIntersectRect(l,x1,y1,w,h) // Test if a layer intersection with a rectangle if non empty // l [layer] // x1 [int optional] the rectangle abscissa // y1 [int optional] the rectangle ordinate // w [int optional] the rectangle width // h [int optional] the rectangle height //{ // var xl1=getPos(l).x,yl1=getPos(l).y,xl2=xl1+l.offsetWidth,yl2=yl1+l.offsetHeight,x2=x1+w,y2=y1+h // // return ((x1>xl1)||(x2>xl1))&&((x1<xl2)||(x2<xl2)) && ((y1>yl1)||(y2>yl1))&&((y1<yl2)||(y2<yl2)) //} // ================================================================================ function preloadImg(url) // preload an image // url [String] the image URL { var img=_preloadArr[_preloadArr.length]=new Image;img.src=url } // ================================================================================ //function convURL(str) //{ // if (_dontNeedEncoding == null) // { // //first time call for this page, generates "static" variables // _dontNeedEncoding = new Array(256); // for (var i = 0 ; i < 256 ; i++) _dontNeedEncoding[i] = false; // for (var i = (new String('a')).charCodeAt(0); i <= (new String('z')).charCodeAt(0); i++) _dontNeedEncoding[i] = true; // for (var i = (new String('A')).charCodeAt(0); i <= (new String('Z')).charCodeAt(0); i++) _dontNeedEncoding[i] = true; // for (var i = (new String('0')).charCodeAt(0); i <= (new String('9')).charCodeAt(0); i++) _dontNeedEncoding[i] = true; // _dontNeedEncoding[(new String(' ')).charCodeAt(0)] = true; /* encoding a space to a + is done in the encode() method */ // _dontNeedEncoding[(new String('-')).charCodeAt(0)] = true; // _dontNeedEncoding[(new String('_')).charCodeAt(0)] = true; // _dontNeedEncoding[(new String('.')).charCodeAt(0)] = true; // _dontNeedEncoding[(new String('*')).charCodeAt(0)] = true; // _thex = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"); // } // // var encstr = ""; // for (var i = 0 ; i < str.length ; i++) encstr += URLEncodeUTF8Char(str.charAt(i)); // return encstr; //} // ================================================================================ //function URLEncodeUTF8Char(c) //{ // var unicodeval = c.charCodeAt(0); // if (unicodeval < 128) // { // //first case should generate a simple byte with high bit at 0 (7 bit ASCII US) // if (_dontNeedEncoding[unicodeval]) return (c == ' ' ? '+' : c); // else return ("%" + _thex[unicodeval >> 4] + _thex[unicodeval & 15]); // } // else if (unicodeval < 2048) // { // //on 2 bytes 110xxxxx 10xxxxxx // return ("%" + _thex[(unicodeval >> 10) | 12] // + _thex[(unicodeval >> 6) & 15] // + "%" + _thex[(unicodeval >> 4) & 3 | 8] // + _thex[unicodeval & 15]); // } // else // { // //on 3 bytes 1110xxxx 10xxxxxx 10xxxxxx // return ("%" + _thex[14] // + _thex[unicodeval >> 12] // + "%" + _thex[(unicodeval >> 10) & 3 | 8] // + _thex[(unicodeval >> 6) & 15] // + "%" + _thex[(unicodeval >> 4) & 3 | 8] // + _thex[unicodeval & 15]); // } //} // ================================================================================ //function encString(s) //// encString() allows to serialize collections of //// string with beginnig by "[", terminated with "]" //// and using "," as separator. //// s [String] the string to encode //// return [String] the encoded string //{ // var res='' // if (s!=null) // { // var len=s.length // for (var i=0;i<len;i++) // { // var c=s.charAt(i) // switch (c) // { // case '$': res+='$3'; break // case ',': res+='$4'; break // case '[': res+='$5'; break // case ']': res+='$6'; break // default: res+=c; break // } // } // } // return res //} // ================================================================================ //function enc() //// Encode several values //// Variable number of parameters //{ // var args=enc.arguments,len=args.length,s='[' // if (len>0) s+=args[0] // for (var i=1;i<len;i++) s+=','+args[i] // return s+']' //} // ================================================================================ //remove space caracters around a string //function remSpaceAround(s) //{ // var len = s.length; // if(len<=0) return ""; // var start=0,end=len // var c=s.substr(start,1); // while (c==' ' && start<len) // { // start++ // c=s.substr(start,1); // } // if(start<len) // { // c=s.substr(end-1,1); // while (c==' ') // { // end-- // c=s.substr(end-1,1); // } // } // var sub = s.substring(start,end); //// alert(sub.length +"-"+sub) // return sub //} // ================================================================================ //function getArrows(upCb,downCB,hori,newNode,newNodeCB) //// OBSOLETE // //// Get the HTML String for move buttons if a list //// upCb [String] : callback string when pushing the up (rep left if hori == true) button //// downCb [String] : callback string when pushing the down (rep right if hori == true) button //// hori [Boolean - optional, default is false] : if true, display left & right arrows. Else display top & bottom arrows. //// Return [String] the HTML //{ // if (hori==null) hori=false; // // var s='' // if (hori) s+='<nobr>' // s+=lnk(img(_skin+(hori?'left.gif':'up.gif'),12,12,'top',null,hori?"_LEFT ARROW":"_UP ARROW"),upCb,null,null,null,(_moz?null:upCb)) // s+=(hori?'':img(_skin+'../transp.gif',1,5)+'<br>') // s+=lnk(img(_skin+(hori?'right.gif':'down.gif'),hori?11:12,hori?12:11,'top',null,hori?"_RIGHT ARROW":"_LEFT ARROW"),downCB,null,null,null,(_moz?null:downCB)) // // if (newNode) // { // s+=img(_skin+'../transp.gif',1,5)+'<br>' // s+=lnk(img(_skin+('node.gif'),12,12,'top',null,"_NEW NODE"),newNodeCB,null,null,null,(_moz?null:newNodeCB)) // } // // if (hori) s+='</nobr>' // return s //} // ================================================================================ // ================================================================================ // // OBJECT newBlockWhileWait (Constructor) // // Class for dialog box // // ================================================================================ // ================================================================================ _staticUnicBlockWhileWaitWidgetID = "staticUnicBlockWhileWaitWidgetID" function hideBlockWhileWaitWidget() { var lyr=getLayer(_staticUnicBlockWhileWaitWidgetID) if (lyr) lyr.style.display="none" } function newBlockWhileWaitWidget(urlImg) // Return [TooltipWidget] the instance { if (window._BlockWhileWaitWidget!=null) return window._BlockWhileWaitWidget var o=newWidget(_staticUnicBlockWhileWaitWidgetID) o.getPrivateHTML=BlockWhileWaitWidget_getPrivateHTML o.init=BlockWhileWaitWidget_init o.show=BlockWhileWaitWidget_show window._BlockWhileWaitWidget=o return o } // ================================================================================ function BlockWhileWaitWidget_init() { //cancels the default init behaviour } // ================================================================================ function BlockWhileWaitWidget_getPrivateHTML() // Returns [String] the HTML { return '<div id="'+ this.id+'" onselectstart="return false" ondragstart="return false" onmousedown="'+_codeWinName+'.eventCancelBubble(event)" border="0" hspace="0" vspace="0" style="background-image:url('+_skin+'../transp.gif);z-index:5000;cursor:wait;position:absolute;top:0px;left:0px;width:100%;height:100%"></div>' } // ================================================================================ function BlockWhileWaitWidget_show(show) // show [boolean] true for showing the tooltip { var o=this // object not init yet, 2 cases if (o.layer==null) { o.layer=getLayer(o.id) // another instance hasn't written it's HTML yet if (o.layer==null) { targetApp(o.getPrivateHTML()) o.layer=getLayer(o.id) o.css=o.layer.style } else { // convenient use of css property o.css=o.layer.style } } o.setDisplay(show) } /* var regLang= /^[a-zA-Z]{2}$|^[a-zA-Z]{2}_[a-zA-Z]{2}$/, regIntPos=/^\d+$/, regYes=/^yes$/, regPath=/^[\w|\/|:|.|-]+$/, regAlphanumDot=/^\w+\.+\w+$/, regAlphanumDotEx=/^\w+\.*\w+\.*\w+$/ var paramRegs = new Array() paramRegs["ID"]=regAlphanumDot paramRegs["allTableCells"]=regYes paramRegs["gotoPivot"]=regYes paramRegs["reportIndex"]=regIntPos paramRegs["fromLPane"]=regYes paramRegs["skin"]=regPath paramRegs["lang"]=regLang paramRegs["noGrabber"]=regYes paramRegs["isFormulaEdit"]=regYes paramRegs["fromQuery"]=regYes paramRegs["isFromHyperlinkEditor"]=regYes paramRegs["iAction"]=regIntPos paramRegs["callback"]=regAlphanumDotEx paramRegs["callbackin"]=regAlphanumDotEx paramRegs["callbackout"]=regAlphanumDotEx function requestQueryString(win, par){ params = win.location.search.substr(1).split("&") for(i=0;i<params.length;i++){ var param = params[i].split("="), key = param[0], val = param[1] if (key == par){ var reg = new RegExp(paramRegs[key]) if ((val == "") || (reg.test(val))) { return val } else { //alert("bad param error, val=" + val + ", key=" + key) // the following code is not library independant at all... var tpfs = getTopFrameset() if (tpfs != null) { tpfs._dontCloseDoc=true tpfs.document.location.replace(tpfs._root+"html/badparamserror.html"); } else { tpfs=getTopFrameset(window.opener) if (tpfs != null) { document.location.replace(tpfs._skin+"../../../html/badparamserror.html"); } } } } } } */ // ================================================================================ // Manipulating String function // ================================================================================ //function trim(strString) { // if (strString != null) { // var iLength = strString.length; // //Left side // var i; // for (i=0; i<iLength; i++) { // if (strString.charAt(i) != " ") { // break; // } // } // strString = strString.substring(i); // iLength = strString.length; // //Right Side // for (i=iLength; i>0; i--) { // if (strString.charAt(i-1) != " ") { // break; // } // } // strString = strString.substring(0,i); // } // return strString; //} //function startsWithIgnoreCase(strString, strToFind) { // var blnRet = false; // if (strToFind != null) { // var strVar = strString.substring(0, strToFind.length); // if (strVar.toLowerCase() == strToFind.toLowerCase()) { // blnRet = true; // } // } // return blnRet; //} //function endsWithIgnoreCase(strString, strToFind) { // var blnRet = false; // if (strToFind != null) { // var iRight = strString.length- strToFind.length; // if (iRight >= 0) { // var strVar = strString.substring(iRight); // if (strVar.toLowerCase() == strToFind.toLowerCase()) { // blnRet = true; // } // } // } // return blnRet; //} // ================================================================================ function isTextInput(ev) { var source = _ie?ev.srcElement:ev.target; var isText=false; if(source.tagName=="TEXTAREA") isText=true; if((source.tagName=="INPUT") && ((source.type.toLowerCase()=="text") || (source.type.toLowerCase()=="password"))) isText=true; return isText; } function isTextArea(ev) { var source = _ie?ev.srcElement:ev.target; if(source.tagName=="TEXTAREA") return true; else return false; } // function shrink text, used for tooltip, because a too long tooltip flickers ADAPT00465457 // max n chars ? //function shrinkTooltip(t,n) //{ // var n = n?n:360 // return (t.length < n)? t : (t.substring(0,n) + "...") //} // // ================================================================================ // ================================================================================ // // Functions to format a date // // ================================================================================ // ================================================================================ //function setDateValue(strDateValue, strInputFormat) //{ // var strRet = ",,"; // var strYear = ""; // var strMonth = ""; // var strDay = ""; // //Get separator // var length = strInputFormat.length; // var sep = ""; // for (var i=0; i<length; i++) // { // var c = strInputFormat.charAt(i); // switch(c) // { // case "/": // case "-": // case ".": // case ",": // case "\"": sep = c; break; // } // if (sep != "") break; // } // if (sep != "") // { // var arrInputFormat = strInputFormat.split(sep); // var arrDateValue = strDateValue.split(sep); // // for (var i=0; i<arrDateValue.length; i++) // { // if (arrInputFormat[i] != null && typeof(arrInputFormat[i]) != "undefined") // { // //Year // if (arrInputFormat[i].indexOf('y')>=0) // { // var iPosA = arrInputFormat[i].indexOf('y'); // var iPosB = arrInputFormat[i].lastIndexOf('y'); // if (iPosB>=0) // { // strYear = arrInputFormat[i].substring(iPosA, iPosB + 1); // if (strYear.length >= arrDateValue[i].length) strYear = arrDateValue[i]; // else // { // iPosB = iPosA; // for (var j=iPosA; j<arrDateValue[i].length; j++) // { // var c = arrDateValue[i].charAt(j); // if (c < '0' || c > '9') break; // else iPosB = j + 1; // } // strYear = arrDateValue[i].substring(iPosA, iPosB); // if (strYear.length <= 2) // { // var iYear = parseInt(strYear); // if (iYear>=70) iYear += 1900; // else iYear += 2000; // strYear = iYear.toString(); // } // } // } // else // { // return strRet; // } // } // //Month // else if (arrInputFormat[i].indexOf('M')>=0) // { // var iPosA = arrInputFormat[i].indexOf('M'); // var iPosB = arrInputFormat[i].lastIndexOf('M'); // if (iPosB>=0) // { // strMonth = arrInputFormat[i].substring(iPosA, iPosB + 1); // if (strMonth.length >= arrDateValue[i].length) strMonth = arrDateValue[i]; // else // { // iPosB = iPosA; // for (var j=iPosA; j<arrDateValue[i].length; j++) // { // var c = arrDateValue[i].charAt(j); // if (c < '0' || c > '9') break; // else iPosB = j + 1; // } // strMonth = arrDateValue[i].substring(iPosA, iPosB); // } // } // else // { // return strRet; // } // } // //Day // else if (arrInputFormat[i].indexOf('d')>=0) // { // var iPosA = arrInputFormat[i].indexOf('d'); // var iPosB = arrInputFormat[i].lastIndexOf('d'); // if (iPosB>=0) // { // strDay = arrInputFormat[i].substring(iPosA, iPosB + 1); // if (strDay.length >= arrDateValue[i].length) strDay = arrDateValue[i]; // else { // iPosB = iPosA; // for (var j=iPosA; j<arrDateValue[i].length; j++) // { // var c = arrDateValue[i].charAt(j); // if (c < '0' || c > '9') break; // else iPosB = j + 1; // } // strDay = arrDateValue[i].substring(iPosA, iPosB); // } // } // else // { // return strRet; // } // } // } // } // // if (strMonth != "" && strDay != "" && strYear != "" && !(isNaN(strMonth) || isNaN(strDay) || isNaN(strYear))) // { // //Set Date // strRet = strMonth + ',' + strDay + ',' + strYear; // } // } // return strRet; //} // ================================================================================ function LZ(x) { return(x<0||x>9?"":"0")+x } // ================================================================================ // //function formatDate(date,format) //{ // var format=format+""; // var result=""; // var i_format=0; // var c=""; // var token=""; // var y=date.getFullYear()+""; // var M=date.getMonth()+1; // var d=date.getDate(); // var E=date.getDay(); // var H=date.getHours(); // var m=date.getMinutes(); // var s=date.getSeconds(); // var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k; // // Convert real date parts into formatted versions // var value=new Object(); // if (y.length==2) { // if (y-0>=70) y=""+(y-0+1900); // else y=""+(y-0+2000); // } // value["y"]=""+y; // value["yyyy"]=y; // value["yy"]=y.substring(2,4); // value["M"]=M; // value["MM"]=LZ(M); // value["MMM"]=_month[M-1]; // value["NNN"]=_month[M+11]; // value["d"]=d; // value["dd"]=LZ(d); // value["E"]=_day[E+7]; // value["EE"]=_day[E]; // value["H"]=H; // value["HH"]=LZ(H); // if (H==0){value["h"]=12;} // else if (H>12){value["h"]=H-12;} // else {value["h"]=H;} // value["hh"]=LZ(value["h"]); // if (H>11){value["K"]=H-12;} else {value["K"]=H;} // value["k"]=H+1; // value["KK"]=LZ(value["K"]); // value["kk"]=LZ(value["k"]); // if (H > 11) { value["a"]=_PM; value["aa"]=_PM;; } // else { value["a"]=_AM; value["aa"]=_AM; } // value["m"]=m; // value["mm"]=LZ(m); // value["s"]=s; // value["ss"]=LZ(s); // while (i_format < format.length) { // c=format.charAt(i_format); // token=""; // while ((format.charAt(i_format)==c) && (i_format < format.length)) { // token += format.charAt(i_format++); // } // if (value[token] != null) { result=result + value[token]; } // else { result=result + token; } // } // return result; //} // //// ================================================================================ //// ================================================================================ //// //// Search Widget //// //// ================================================================================ //// ================================================================================ // //function newSearchWidget(id,w,searchCB,helpText) //{ // var o=newWidget(id) // // o.bMatchCase = false; // // o.searchField = newTextFieldWidget(id+"_searchVal",null,50,SearchWidget_keyUpCB,SearchWidget_searchCB,true,_lovSearchFieldLab,w?(w-40):null); // o.searchField.par = o; // o.searchField.setHelpTxt(helpText?helpText:_lovSearchFieldLab); // // o.searchIcn = newIconMenuWidget(id+"_searchIcn",_skin+'../lov.gif',SearchWidget_searchCB,null,_lovSearchLab,16,16,0,0,0,0) // o.searchIcn.par = o // o.searchMenu = o.searchIcn.getMenu() // o.normal = o.searchMenu.addCheck(id+"normal",_lovNormalLab,SearchWidget_normalClickCB) // o.matchCase = o.searchMenu.addCheck(id+"matchCase",_lovMatchCase,SearchWidget_matchCaseClickCB) // // o.oldInit = o.init // o.searchCB = searchCB // o.init = SearchWidget_init // o.getHTML = SearchWidget_getHTML // o.setCaseSensitive = SearchWidget_setCaseSensitive // o.isCaseSensitive = SearchWidget_isCaseSensitive // o.updateMatchCase = SearchWidget_updateMatchCase // o.getSearchValue = SearchWidget_getSearchValue; // o.setSearchValue = SearchWidget_setSearchValue; // o.resize = SearchWidget_resize; // // return o; //} // //function SearchWidget_getHTML() //{ // var o=this, s ='' // s= '<table id="'+o.id+'" border="0" cellspacing="0" cellpadding="0"><tbody>' + // '<tr>' + // '<td>' + o.searchField.getHTML() + '</td>' + // '<td>' + o.searchIcn.getHTML() + '</td>' + // '</tr>' + // '</tbody></table>'; // // return s //} // //function SearchWidget_resize(w,h) //{ // var o = this // // o.searchField.resize(w-40,h); //} // //function SearchWidget_init() //{ // var o=this // // o.oldInit(); // o.searchField.init() // o.searchIcn.init() // o.searchIcn.setDisabled((o.searchField.getValue()=='')) // Disabled if no value set on loading widget // o.updateMatchCase(o.bMatchCase) //} // //// function isCaseSensitive //// indicates if the option is checked //function SearchWidget_isCaseSensitive() //// return [boolean] true if the option is checked //{ // return this.bMatchCase; //} // //// function setCaseSensitive //// check or uncheck the match case checkbox //// update the icon //function SearchWidget_setCaseSensitive(b) //// b [boolean] used as is //{ // var o=this // // if(o.bMatchCase!=b) // { // o.updateMatchCase(b); // o.bMatchCase=b; // } //} // //function SearchWidget_updateMatchCase(b) //{ // var o=this // // o.normal.check(!b) // o.matchCase.check(b) // // if (b) // o.searchIcn.icon.changeImg(55,0) // match case icon // else // o.searchIcn.icon.changeImg(0,0) // normal icon //} // //function SearchWidget_normalClickCB() //{ // var o=this.par.parIcon.par // // if(o.bMatchCase) // o.bMatchCase=false; // // o.updateMatchCase(o.bMatchCase); //} // //function SearchWidget_matchCaseClickCB() //{ // var o=this.par.parIcon.par // // if(!o.bMatchCase) // o.bMatchCase=true; // // o.updateMatchCase(o.bMatchCase); //} // //function SearchWidget_keyUpCB() //{ // var p=this.par // // p.searchIcn.setDisabled((this.getValue()=='')) //} // //function SearchWidget_searchCB() //{ // var p=this.par; // // if (p.searchCB != null) // p.searchCB(); //} // //// getSearchValue() //// Return the value inserted in the search text field //function SearchWidget_getSearchValue() //// return a string with the value entered in the search field //{ // var o=this; // return o.searchField.getValue(); //} // //// setSearchValue(s) //// Set the value of the search text field //function SearchWidget_setSearchValue(s) //// s [String] string that will be displayed in the textfield //{ // var o=this; // o.searchField.setValue(s); //} // ================================================================================ // ================================================================================ // // OBJECT ToggleButtonWidget (Constructor) // // Class for building push buttons // // ================================================================================ // ================================================================================ /* function newToggleButtonWidget(id,label,cb,width,hlp,tooltip,tabIndex,margin,url,w,h,dx,dy,imgRight,disDx,disDy,togX,togY) { // CONSTRUCTOR // id [String] button ID // label [String Optional] button label // w [int optional] : text zone minimal width // hlp OBSOLETE // tooltip [String Optional] button tooltip // tabIndex [int Optional] for 508/IE : tab index for keyboard navigation // url [String Optional] : the combined image url // w [int Optional] the visible image part width // dx [int Optional] the horizontal offset in image // dy [int Optional] the vertical offset in image // disDx : [int - optional] horizontal offset for disabled state // disDy : [int - optional] vertical offset for disabled state var o=newButtonWidget(id,label,cb,width,hlp,tooltip,tabIndex,margin,url,w,h,dx,dy,imgRight,disDx,disDy) o.togX = togX o.togY = togY o.checked=false o.executeCB=ToggleButtonWidget_executeCB o.check=ToggleButtonWidget_check o.isChecked=ToggleButtonWidget_isChecked o.init=ButtonWidget_init return o } // ================================================================================ function ToggleButtonWidget_executeCB() // PRIVATE internal click event handler { var o=this o.check(!o.checked) // toggle if (o.cb) { if (typeof o.cb!="string") o.cb() else eval(o.cb) } } function ToggleButtonWidget_check(checked) // check or uncheck an icon check widget // check : [boolean] specified if the check icon must be checked or not { var o=this if (o.checked != checked) { o.checked=checked if (o.checked) { changeSimpleOffset(o.icn,o.togX,o.togY,o.url) } else { changeSimpleOffset(o.icn,o.dx,o.dy,o.url); } } if (o.checked&&o.beforeClickCB) { if (o.layer) o.beforeClickCB() } } // ================================================================================ function ToggleButtonWidget_isChecked() // return true if checked { return this.checked } */
Ms-Dos/Windows
Unix
Write backup
jsp File Browser version 1.2 by
www.vonloesch.de