1350 lines
38 KiB
JavaScript
1350 lines
38 KiB
JavaScript
|
/*
|
||
|
xbStyle.js Revision: 0.202 2002-02-11
|
||
|
|
||
|
Contributor(s): Bob Clary, Original Work, Copyright 2000
|
||
|
Bob Clary, Netscape Communications, Copyright 2001
|
||
|
|
||
|
Netscape grants you a royalty free license to use, modify and
|
||
|
distribute this software provided that this copyright notice
|
||
|
appears on all copies. This software is provided "AS IS,"
|
||
|
without a warranty of any kind.
|
||
|
|
||
|
Change Log:
|
||
|
|
||
|
2001-07-19: bclary - fixed function cssStyleGetLeft() and cssStyleGetTop() to
|
||
|
correctly handle the case where the initial style.left/style.top
|
||
|
are not initialized. This fixes positioning for relatively positioned
|
||
|
DIVS and as a result fixes behavior for ILAYERs exposed as relatively
|
||
|
positioned divs.
|
||
|
2001-10-02: bclary - added missing xbClipRect.getHeight/setHeight methods.
|
||
|
|
||
|
2001-11-20: bclary - removed use of practical browser sniffer,
|
||
|
added object sniffing, and limited support for opera
|
||
|
note opera returns ints for HTMLElement.style.[left|top|height|width] etc.
|
||
|
|
||
|
2002-02-11: v 0.201 bclary - with the help of Rob Johnston <rob_johnston@hotmail.com>
|
||
|
found that the "if (document.getElementsByName)" test excluded
|
||
|
IE4. Added a test for document.all to enable IE4 to fully use
|
||
|
xbStyle.
|
||
|
|
||
|
2002-03-12: v 0.202 Daniel Resare contributed a patch to cssStyleSetPage[X|Y]() which
|
||
|
handles the case where the element has no parentNode.
|
||
|
*/
|
||
|
|
||
|
function xbStyleNotSupported() {}
|
||
|
|
||
|
function xbStyleNotSupportStringValue(propname) { xbDEBUG.dump(propname + ' is not supported in this browser'); return '';};
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbClipRect
|
||
|
|
||
|
function xbClipRect(a1, a2, a3, a4)
|
||
|
{
|
||
|
this.top = 0;
|
||
|
this.right = 0;
|
||
|
this.bottom = 0;
|
||
|
this.left = 0;
|
||
|
|
||
|
if (typeof(a1) == 'string')
|
||
|
{
|
||
|
var val;
|
||
|
var ca;
|
||
|
var i;
|
||
|
|
||
|
if (a1.indexOf('rect(') == 0)
|
||
|
{
|
||
|
// I would have preferred [0-9]+[a-zA-Z]+ for a regexp
|
||
|
// but NN4 returns null for that.
|
||
|
ca = a1.substring(5, a1.length-1).match(/-?[0-9a-zA-Z]+/g);
|
||
|
for (i = 0; i < 4; ++i)
|
||
|
{
|
||
|
val = xbToInt(ca[i]);
|
||
|
if (val != 0 && ca[i].indexOf('px') == -1)
|
||
|
{
|
||
|
xbDEBUG.dump('xbClipRect: A clipping region ' + a1 + ' was detected that did not use pixels as units. Click Ok to continue, Cancel to Abort');
|
||
|
return;
|
||
|
}
|
||
|
ca[i] = val;
|
||
|
}
|
||
|
this.top = ca[0];
|
||
|
this.right = ca[1];
|
||
|
this.bottom = ca[2];
|
||
|
this.left = ca[3];
|
||
|
}
|
||
|
}
|
||
|
else if (typeof(a1) == 'number' && typeof(a2) == 'number' && typeof(a3) == 'number' && typeof(a4) == 'number')
|
||
|
{
|
||
|
this.top = a1;
|
||
|
this.right = a2;
|
||
|
this.bottom = a3;
|
||
|
this.left = a4;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
xbClipRect.prototype.top = 0;
|
||
|
xbClipRect.prototype.right = 0;
|
||
|
xbClipRect.prototype.bottom = 0;
|
||
|
xbClipRect.prototype.left = 0;
|
||
|
|
||
|
|
||
|
function xbClipRectGetWidth()
|
||
|
{
|
||
|
return this.right - this.left;
|
||
|
}
|
||
|
xbClipRect.prototype.getWidth = xbClipRectGetWidth;
|
||
|
|
||
|
function xbClipRectSetWidth(width)
|
||
|
{
|
||
|
this.right = this.left + width;
|
||
|
}
|
||
|
xbClipRect.prototype.setWidth = xbClipRectSetWidth;
|
||
|
|
||
|
function xbClipRectGetHeight()
|
||
|
{
|
||
|
return this.bottom - this.top;
|
||
|
}
|
||
|
xbClipRect.prototype.getHeight = xbClipRectGetHeight;
|
||
|
|
||
|
function xbClipRectSetHeight(height)
|
||
|
{
|
||
|
this.bottom = this.top + height;
|
||
|
}
|
||
|
xbClipRect.prototype.setHeight = xbClipRectSetHeight;
|
||
|
|
||
|
function xbClipRectToString()
|
||
|
{
|
||
|
return 'rect(' + this.top + 'px ' + this.right + 'px ' + this.bottom + 'px ' + this.left + 'px )' ;
|
||
|
}
|
||
|
xbClipRect.prototype.toString = xbClipRectToString;
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle
|
||
|
//
|
||
|
// Note Opera violates the standard by cascading the effective values
|
||
|
// into the HTMLElement.style object. We can use IE's HTMLElement.currentStyle
|
||
|
// to get the effective values. In Gecko we will use the W3 DOM Style Standard getComputedStyle
|
||
|
|
||
|
function xbStyle(obj, position)
|
||
|
{
|
||
|
if (typeof(obj) == 'object' && typeof(obj.style) != 'undefined')
|
||
|
this.styleObj = obj.style;
|
||
|
else if (document.layers) // NN4
|
||
|
{
|
||
|
if (typeof(position) == 'undefined')
|
||
|
position = '';
|
||
|
|
||
|
this.styleObj = obj;
|
||
|
this.styleObj.position = position;
|
||
|
}
|
||
|
this.object = obj;
|
||
|
}
|
||
|
|
||
|
xbStyle.prototype.styleObj = null;
|
||
|
xbStyle.prototype.object = null;
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getEffectiveValue()
|
||
|
// note that xbStyle's constructor uses the currentStyle object
|
||
|
// for IE5+ and that Opera's style object contains computed values
|
||
|
// already. Netscape Navigator's layer object also contains the
|
||
|
// computed values as well. Note that IE4 will not return the
|
||
|
// computed values.
|
||
|
|
||
|
function xbStyleGetEffectiveValue(propname)
|
||
|
{
|
||
|
var value = null;
|
||
|
|
||
|
// W3/Gecko
|
||
|
if (document.defaultView && document.defaultView.getComputedStyle)
|
||
|
{
|
||
|
if (navigator.family == 'gecko')
|
||
|
{
|
||
|
// xxxHack: work around Gecko getComputedStyle bugs...
|
||
|
switch(propname)
|
||
|
{
|
||
|
case 'clip':
|
||
|
return this.styleObj[propname];
|
||
|
case 'top':
|
||
|
if (navigator.family == 'gecko' && navigator.version < 0.96 && this.styleObj.position == 'relative')
|
||
|
return this.object.offsetTop;
|
||
|
case 'left':
|
||
|
if (navigator.family == 'gecko' && navigator.version < 0.96 && this.styleObj.position == 'relative')
|
||
|
return this.object.offsetLeft;
|
||
|
}
|
||
|
}
|
||
|
// Note that propname is the name of the property in the CSS Style
|
||
|
// Object. However the W3 method getPropertyValue takes the actual
|
||
|
// property name from the CSS Style rule, i.e., propname is
|
||
|
// 'backgroundColor' but getPropertyValue expects 'background-color'.
|
||
|
|
||
|
var capIndex;
|
||
|
var cappropname = propname;
|
||
|
while ( (capIndex = cappropname.search(/[A-Z]/)) != -1)
|
||
|
{
|
||
|
if (capIndex != -1)
|
||
|
cappropname = cappropname.substring(0, capIndex) + '-' + cappropname.substring(capIndex, capIndex).toLowerCase() + cappropname.substr(capIndex+1);
|
||
|
}
|
||
|
|
||
|
value = document.defaultView.getComputedStyle(this.object, '').getPropertyValue(cappropname);
|
||
|
|
||
|
// xxxHack for Gecko:
|
||
|
if (!value && this.styleObj[propname])
|
||
|
value = this.styleObj[propname];
|
||
|
}
|
||
|
else if (typeof(this.styleObj[propname]) == 'undefined')
|
||
|
value = xbStyleNotSupportStringValue(propname);
|
||
|
else
|
||
|
{
|
||
|
if (navigator.family != 'ie4' || navigator.version < 5)
|
||
|
{
|
||
|
// IE4+, Opera, NN4
|
||
|
value = this.styleObj[propname];
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
// IE5+
|
||
|
value = this.object.currentStyle[propname];
|
||
|
if (!value)
|
||
|
value = this.styleObj[propname];
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return value;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClip()
|
||
|
|
||
|
function cssStyleGetClip()
|
||
|
{
|
||
|
var clip = this.getEffectiveValue('clip');
|
||
|
|
||
|
// hack opera
|
||
|
if (clip == 'rect()')
|
||
|
clip = '';
|
||
|
|
||
|
if (clip == '')
|
||
|
clip = 'rect(0px ' + this.getWidth() + 'px ' + this.getHeight() + 'px 0px)';
|
||
|
|
||
|
return clip;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClip()
|
||
|
{
|
||
|
var clip = this.styleObj.clip;
|
||
|
var rect = new xbClipRect(clip.top, clip.right, clip.bottom, clip.left);
|
||
|
return rect.toString();
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClip()
|
||
|
|
||
|
function cssStyleSetClip(sClipString)
|
||
|
{
|
||
|
this.styleObj.clip = sClipString;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClip(sClipString)
|
||
|
{
|
||
|
var rect = new xbClipRect(sClipString);
|
||
|
this.styleObj.clip.top = rect.top;
|
||
|
this.styleObj.clip.right = rect.right;
|
||
|
this.styleObj.clip.bottom = rect.bottom;
|
||
|
this.styleObj.clip.left = rect.left;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClipTop()
|
||
|
|
||
|
function cssStyleGetClipTop()
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
return rect.top;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClipTop()
|
||
|
{
|
||
|
return this.styleObj.clip.top;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClipTop()
|
||
|
|
||
|
function cssStyleSetClipTop(top)
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
rect.top = top;
|
||
|
this.styleObj.clip = rect.toString();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClipTop(top)
|
||
|
{
|
||
|
return this.styleObj.clip.top = top;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClipRight()
|
||
|
|
||
|
function cssStyleGetClipRight()
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
return rect.right;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClipRight()
|
||
|
{
|
||
|
return this.styleObj.clip.right;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClipRight()
|
||
|
|
||
|
function cssStyleSetClipRight(right)
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
rect.right = right;
|
||
|
this.styleObj.clip = rect.toString();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClipRight(right)
|
||
|
{
|
||
|
return this.styleObj.clip.right = right;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClipBottom()
|
||
|
|
||
|
function cssStyleGetClipBottom()
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
return rect.bottom;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClipBottom()
|
||
|
{
|
||
|
return this.styleObj.clip.bottom;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClipBottom()
|
||
|
|
||
|
function cssStyleSetClipBottom(bottom)
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
rect.bottom = bottom;
|
||
|
this.styleObj.clip = rect.toString();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClipBottom(bottom)
|
||
|
{
|
||
|
return this.styleObj.clip.bottom = bottom;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClipLeft()
|
||
|
|
||
|
function cssStyleGetClipLeft()
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
return rect.left;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClipLeft()
|
||
|
{
|
||
|
return this.styleObj.clip.left;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClipLeft()
|
||
|
|
||
|
function cssStyleSetClipLeft(left)
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
rect.left = left;
|
||
|
this.styleObj.clip = rect.toString();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClipLeft(left)
|
||
|
{
|
||
|
return this.styleObj.clip.left = left;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClipWidth()
|
||
|
|
||
|
function cssStyleGetClipWidth()
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
return rect.getWidth();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClipWidth()
|
||
|
{
|
||
|
return this.styleObj.clip.width;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClipWidth()
|
||
|
|
||
|
function cssStyleSetClipWidth(width)
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
rect.setWidth(width);
|
||
|
this.styleObj.clip = rect.toString();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClipWidth(width)
|
||
|
{
|
||
|
return this.styleObj.clip.width = width;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClipHeight()
|
||
|
|
||
|
function cssStyleGetClipHeight()
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
return rect.getHeight();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetClipHeight()
|
||
|
{
|
||
|
return this.styleObj.clip.height;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setClipHeight()
|
||
|
|
||
|
function cssStyleSetClipHeight(height)
|
||
|
{
|
||
|
var clip = this.getClip();
|
||
|
var rect = new xbClipRect(clip);
|
||
|
rect.setHeight(height);
|
||
|
this.styleObj.clip = rect.toString();
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetClipHeight(height)
|
||
|
{
|
||
|
return this.styleObj.clip.height = height;
|
||
|
}
|
||
|
|
||
|
// the CSS attributes left,top are for absolutely positioned elements
|
||
|
// measured relative to the containing element. for relatively positioned
|
||
|
// elements, left,top are measured from the element's normal inline position.
|
||
|
// getLeft(), setLeft() operate on this type of coordinate.
|
||
|
//
|
||
|
// to allow dynamic positioning the getOffsetXXX and setOffsetXXX methods are
|
||
|
// defined to return and set the position of either an absolutely or relatively
|
||
|
// positioned element relative to the containing element.
|
||
|
//
|
||
|
//
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getLeft()
|
||
|
|
||
|
function cssStyleGetLeft()
|
||
|
{
|
||
|
var left = this.getEffectiveValue('left');
|
||
|
if (typeof(left) == 'number')
|
||
|
return left;
|
||
|
|
||
|
if (left != '' && left.indexOf('px') == -1)
|
||
|
{
|
||
|
xbDEBUG.dump('xbStyle.getLeft: Element ID=' + this.object.id + ' does not use pixels as units. left=' + left + ' Click Ok to continue, Cancel to Abort');
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
if (left == '')
|
||
|
left = this.styleObj.left = '0px';
|
||
|
|
||
|
return xbToInt(left);
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetLeft()
|
||
|
{
|
||
|
return this.styleObj.left;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setLeft()
|
||
|
|
||
|
function cssStyleSetLeft(left)
|
||
|
{
|
||
|
if (typeof(this.styleObj.left) == 'number')
|
||
|
this.styleObj.left = left;
|
||
|
else
|
||
|
this.styleObj.left = left + 'px';
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetLeft(left)
|
||
|
{
|
||
|
this.styleObj.left = left;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getTop()
|
||
|
|
||
|
function cssStyleGetTop()
|
||
|
{
|
||
|
var top = this.getEffectiveValue('top');
|
||
|
if (typeof(top) == 'number')
|
||
|
return top;
|
||
|
|
||
|
if (top != '' && top.indexOf('px') == -1)
|
||
|
{
|
||
|
xbDEBUG.dump('xbStyle.getTop: Element ID=' + this.object.id + ' does not use pixels as units. top=' + top + ' Click Ok to continue, Cancel to Abort');
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
if (top == '')
|
||
|
top = this.styleObj.top = '0px';
|
||
|
|
||
|
return xbToInt(top);
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetTop()
|
||
|
{
|
||
|
return this.styleObj.top;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setTop()
|
||
|
|
||
|
function cssStyleSetTop(top)
|
||
|
{
|
||
|
if (typeof(this.styleObj.top) == 'number')
|
||
|
this.styleObj.top = top;
|
||
|
else
|
||
|
this.styleObj.top = top + 'px';
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetTop(top)
|
||
|
{
|
||
|
this.styleObj.top = top;
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getPageX()
|
||
|
|
||
|
function cssStyleGetPageX()
|
||
|
{
|
||
|
var x = 0;
|
||
|
var elm = this.object;
|
||
|
var elmstyle;
|
||
|
var position;
|
||
|
|
||
|
//xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
|
||
|
// effective position attribute , attempt to use offsetXXX
|
||
|
|
||
|
if (typeof(elm.offsetLeft) == 'number')
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
x += elm.offsetLeft;
|
||
|
elm = elm.offsetParent;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
if (elm.style)
|
||
|
{
|
||
|
elmstyle = new xbStyle(elm);
|
||
|
position = elmstyle.getEffectiveValue('position');
|
||
|
if (position != '' && position != 'static')
|
||
|
x += elmstyle.getLeft();
|
||
|
}
|
||
|
elm = elm.parentNode;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return x;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetPageX()
|
||
|
{
|
||
|
return this.styleObj.pageX;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setPageX()
|
||
|
|
||
|
function cssStyleSetPageX(x)
|
||
|
{
|
||
|
var xParent = 0;
|
||
|
var elm = this.object.parentNode;
|
||
|
var elmstyle;
|
||
|
var position;
|
||
|
|
||
|
//xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
|
||
|
// effective position attribute , attempt to use offsetXXX
|
||
|
|
||
|
if (elm && typeof(elm.offsetLeft) == 'number')
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
xParent += elm.offsetLeft;
|
||
|
elm = elm.offsetParent;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
if (elm.style)
|
||
|
{
|
||
|
elmstyle = new xbStyle(elm);
|
||
|
position = elmstyle.getEffectiveValue('position');
|
||
|
if (position != '' && position != 'static')
|
||
|
xParent += elmstyle.getLeft();
|
||
|
}
|
||
|
elm = elm.parentNode;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
x -= xParent;
|
||
|
|
||
|
this.setLeft(x);
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetPageX(x)
|
||
|
{
|
||
|
this.styleObj.x = this.styleObj.x + x - this.styleObj.pageX;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getPageY()
|
||
|
|
||
|
function cssStyleGetPageY()
|
||
|
{
|
||
|
var y = 0;
|
||
|
var elm = this.object;
|
||
|
var elmstyle;
|
||
|
var position;
|
||
|
|
||
|
//xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
|
||
|
// effective position attribute , attempt to use offsetXXX
|
||
|
|
||
|
if (typeof(elm.offsetTop) == 'number')
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
y += elm.offsetTop;
|
||
|
elm = elm.offsetParent;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
if (elm.style)
|
||
|
{
|
||
|
elmstyle = new xbStyle(elm);
|
||
|
position = elmstyle.getEffectiveValue('position');
|
||
|
if (position != '' && position != 'static')
|
||
|
y += elmstyle.getTop();
|
||
|
}
|
||
|
elm = elm.parentNode;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return y;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetPageY()
|
||
|
{
|
||
|
return this.styleObj.pageY;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setPageY()
|
||
|
|
||
|
function cssStyleSetPageY(y)
|
||
|
{
|
||
|
var yParent = 0;
|
||
|
var elm = this.object.parentNode;
|
||
|
var elmstyle;
|
||
|
var position;
|
||
|
|
||
|
//xxxHack: Due to limitations in Gecko's (0.9.6) ability to determine the
|
||
|
// effective position attribute , attempt to use offsetXXX
|
||
|
|
||
|
if (elm && typeof(elm.offsetTop) == 'number')
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
yParent += elm.offsetTop;
|
||
|
elm = elm.offsetParent;
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
while (elm)
|
||
|
{
|
||
|
if (elm.style)
|
||
|
{
|
||
|
elmstyle = new xbStyle(elm);
|
||
|
position = elmstyle.getEffectiveValue('position');
|
||
|
if (position != '' && position != 'static')
|
||
|
yParent += elmstyle.getTop();
|
||
|
}
|
||
|
elm = elm.parentNode;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
y -= yParent;
|
||
|
|
||
|
this.setTop(y);
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetPageY(y)
|
||
|
{
|
||
|
this.styleObj.y = this.styleObj.y + y - this.styleObj.pageY;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getHeight()
|
||
|
|
||
|
function cssStyleGetHeight()
|
||
|
{
|
||
|
var height = this.getEffectiveValue('height');
|
||
|
if (typeof(height) == 'number')
|
||
|
return height;
|
||
|
|
||
|
if ((height == 'auto' || height.indexOf('%') != -1) && typeof(this.object.offsetHeight) == 'number')
|
||
|
height = this.object.offsetHeight + 'px';
|
||
|
|
||
|
if (height != '' && height != 'auto' && height.indexOf('px') == -1)
|
||
|
{
|
||
|
xbDEBUG.dump('xbStyle.getHeight: Element ID=' + this.object.id + ' does not use pixels as units. height=' + height + ' Click Ok to continue, Cancel to Abort');
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
height = xbToInt(height);
|
||
|
|
||
|
return height;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetHeight()
|
||
|
{
|
||
|
//if (this.styleObj.document && this.styleObj.document.height)
|
||
|
// return this.styleObj.document.height;
|
||
|
|
||
|
return this.styleObj.clip.height;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setHeight()
|
||
|
|
||
|
function cssStyleSetHeight(height)
|
||
|
{
|
||
|
if (typeof(this.styleObj.height) == 'number')
|
||
|
this.styleObj.height = height;
|
||
|
else
|
||
|
this.styleObj.height = height + 'px';
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetHeight(height)
|
||
|
{
|
||
|
this.styleObj.clip.height = height;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getWidth()
|
||
|
|
||
|
function cssStyleGetWidth()
|
||
|
{
|
||
|
var width = this.getEffectiveValue('width');
|
||
|
if (typeof(width) == 'number')
|
||
|
return width;
|
||
|
|
||
|
if ((width == 'auto' || width.indexOf('%') != -1) && typeof(this.object.offsetWidth) == 'number')
|
||
|
width = this.object.offsetWidth + 'px';
|
||
|
|
||
|
if (width != '' && width != 'auto' && width.indexOf('px') == -1)
|
||
|
{
|
||
|
xbDEBUG.dump('xbStyle.getWidth: Element ID=' + this.object.id + ' does not use pixels as units. width=' + width + ' Click Ok to continue, Cancel to Abort');
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
width = xbToInt(width);
|
||
|
|
||
|
return width;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetWidth()
|
||
|
{
|
||
|
//if (this.styleObj.document && this.styleObj.document.width)
|
||
|
// return this.styleObj.document.width;
|
||
|
|
||
|
return this.styleObj.clip.width;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setWidth()
|
||
|
|
||
|
function cssStyleSetWidth(width)
|
||
|
{
|
||
|
if (typeof(this.styleObj.width) == 'number')
|
||
|
this.styleObj.width = width;
|
||
|
else
|
||
|
this.styleObj.width = width + 'px';
|
||
|
}
|
||
|
|
||
|
// netscape will not dynamically change the width of a
|
||
|
// layer. It will only happen upon a refresh.
|
||
|
function nsxbStyleSetWidth(width)
|
||
|
{
|
||
|
this.styleObj.clip.width = width;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getVisibility()
|
||
|
|
||
|
function cssStyleGetVisibility()
|
||
|
{
|
||
|
return this.getEffectiveValue('visibility');
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetVisibility()
|
||
|
{
|
||
|
switch(this.styleObj.visibility)
|
||
|
{
|
||
|
case 'hide':
|
||
|
return 'hidden';
|
||
|
case 'show':
|
||
|
return 'visible';
|
||
|
}
|
||
|
return '';
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setVisibility()
|
||
|
|
||
|
function cssStyleSetVisibility(visibility)
|
||
|
{
|
||
|
this.styleObj.visibility = visibility;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetVisibility(visibility)
|
||
|
{
|
||
|
switch(visibility)
|
||
|
{
|
||
|
case 'hidden':
|
||
|
visibility = 'hide';
|
||
|
break;
|
||
|
case 'visible':
|
||
|
visibility = 'show';
|
||
|
break;
|
||
|
case 'inherit':
|
||
|
break;
|
||
|
default:
|
||
|
visibility = 'show';
|
||
|
break;
|
||
|
}
|
||
|
this.styleObj.visibility = visibility;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getzIndex()
|
||
|
|
||
|
function cssStyleGetzIndex()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('zIndex'));
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetzIndex()
|
||
|
{
|
||
|
return this.styleObj.zIndex;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setzIndex()
|
||
|
|
||
|
function cssStyleSetzIndex(zIndex)
|
||
|
{
|
||
|
this.styleObj.zIndex = zIndex;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetzIndex(zIndex)
|
||
|
{
|
||
|
this.styleObj.zIndex = zIndex;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getBackgroundColor()
|
||
|
|
||
|
function cssStyleGetBackgroundColor()
|
||
|
{
|
||
|
return this.getEffectiveValue('backgroundColor');
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetBackgroundColor()
|
||
|
{
|
||
|
return this.styleObj.bgColor;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setBackgroundColor()
|
||
|
|
||
|
function cssStyleSetBackgroundColor(color)
|
||
|
{
|
||
|
this.styleObj.backgroundColor = color;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetBackgroundColor(color)
|
||
|
{
|
||
|
if (color)
|
||
|
{
|
||
|
this.styleObj.bgColor = color;
|
||
|
this.object.document.bgColor = color;
|
||
|
this.resizeTo(this.getWidth(), this.getHeight());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getColor()
|
||
|
|
||
|
function cssStyleGetColor()
|
||
|
{
|
||
|
return this.getEffectiveValue('color');
|
||
|
}
|
||
|
|
||
|
function nsxbStyleGetColor()
|
||
|
{
|
||
|
return '#ffffff';
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setColor()
|
||
|
|
||
|
function cssStyleSetColor(color)
|
||
|
{
|
||
|
this.styleObj.color = color;
|
||
|
}
|
||
|
|
||
|
function nsxbStyleSetColor(color)
|
||
|
{
|
||
|
this.object.document.fgColor = color;
|
||
|
}
|
||
|
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.moveAbove()
|
||
|
|
||
|
function xbStyleMoveAbove(cont)
|
||
|
{
|
||
|
this.setzIndex(cont.getzIndex()+1);
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.moveBelow()
|
||
|
|
||
|
function xbStyleMoveBelow(cont)
|
||
|
{
|
||
|
var zindex = cont.getzIndex() - 1;
|
||
|
|
||
|
this.setzIndex(zindex);
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.moveBy()
|
||
|
|
||
|
function xbStyleMoveBy(deltaX, deltaY)
|
||
|
{
|
||
|
this.moveTo(this.getLeft() + deltaX, this.getTop() + deltaY);
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.moveTo()
|
||
|
|
||
|
function xbStyleMoveTo(x, y)
|
||
|
{
|
||
|
this.setLeft(x);
|
||
|
this.setTop(y);
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.moveToAbsolute()
|
||
|
|
||
|
function xbStyleMoveToAbsolute(x, y)
|
||
|
{
|
||
|
this.setPageX(x);
|
||
|
this.setPageY(y);
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.resizeBy()
|
||
|
|
||
|
function xbStyleResizeBy(deltaX, deltaY)
|
||
|
{
|
||
|
this.setWidth( this.getWidth() + deltaX );
|
||
|
this.setHeight( this.getHeight() + deltaY );
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.resizeTo()
|
||
|
|
||
|
function xbStyleResizeTo(x, y)
|
||
|
{
|
||
|
this.setWidth(x);
|
||
|
this.setHeight(y);
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////
|
||
|
// Navigator 4.x resizing...
|
||
|
|
||
|
function nsxbStyleOnresize()
|
||
|
{
|
||
|
if (saveInnerWidth != xbGetWindowWidth() || saveInnerHeight != xbGetWindowHeight())
|
||
|
location.reload();
|
||
|
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.setInnerHTML()
|
||
|
|
||
|
function xbSetInnerHTML(str)
|
||
|
{
|
||
|
if (typeof(this.object.innerHTML) != 'undefined')
|
||
|
this.object.innerHTML = str;
|
||
|
}
|
||
|
|
||
|
function nsxbSetInnerHTML(str)
|
||
|
{
|
||
|
this.object.document.open('text/html');
|
||
|
this.object.document.write(str);
|
||
|
this.object.document.close();
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////
|
||
|
// Extensions to xbStyle that are not supported by Netscape Navigator 4
|
||
|
// but that provide cross browser implementations of properties for
|
||
|
// Mozilla, Gecko, Netscape 6.x and Opera
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getBorderTopWidth()
|
||
|
|
||
|
function cssStyleGetBorderTopWidth()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('borderTopWidth'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getBorderRightWidth()
|
||
|
|
||
|
function cssStyleGetBorderRightWidth()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('borderRightWidth'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getBorderBottomWidth()
|
||
|
|
||
|
function cssStyleGetBorderBottomWidth()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('borderLeftWidth'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getBorderLeftWidth()
|
||
|
|
||
|
function cssStyleGetBorderLeftWidth()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('borderLeftWidth'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getMarginTop()
|
||
|
|
||
|
function cssStyleGetMarginTop()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('marginTop'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getMarginRight()
|
||
|
|
||
|
function cssStyleGetMarginRight()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('marginRight'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getMarginBottom()
|
||
|
|
||
|
function cssStyleGetMarginBottom()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('marginBottom'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getMarginLeft()
|
||
|
|
||
|
function cssStyleGetMarginLeft()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('marginLeft'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getPaddingTop()
|
||
|
|
||
|
function cssStyleGetPaddingTop()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('paddingTop'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getPaddingRight()
|
||
|
|
||
|
function cssStyleGetPaddingRight()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('paddingRight'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getPaddingBottom()
|
||
|
|
||
|
function cssStyleGetPaddingBottom()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('paddingBottom'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getPaddingLeft()
|
||
|
|
||
|
function cssStyleGetPaddingLeft()
|
||
|
{
|
||
|
return xbToInt(this.getEffectiveValue('paddingLeft'));
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClientTop()
|
||
|
|
||
|
function cssStyleGetClientTop()
|
||
|
{
|
||
|
return this.getTop() - this.getMarginTop() - this.getBorderTopWidth() - this.getPaddingTop();
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClientLeft()
|
||
|
|
||
|
function cssStyleGetClientLeft()
|
||
|
{
|
||
|
return this.getLeft() - this.getMarginLeft() - this.getBorderLeftWidth() - this.getPaddingLeft();
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClientWidth()
|
||
|
|
||
|
function cssStyleGetClientWidth()
|
||
|
{
|
||
|
return this.getMarginLeft() + this.getBorderLeftWidth() + this.getPaddingLeft() + this.getWidth() + this.getPaddingRight() + this.getBorderRightWidth() + this.getMarginRight();
|
||
|
}
|
||
|
|
||
|
/////////////////////////////////////////////////////////////////////////////
|
||
|
// xbStyle.getClientHeight()
|
||
|
|
||
|
function cssStyleGetClientHeight()
|
||
|
{
|
||
|
return this.getMarginTop() + this.getBorderTopWidth() + this.getPaddingTop() + this.getHeight() + this.getPaddingBottom() + this.getBorderBottomWidth() + this.getMarginBottom();
|
||
|
}
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
xbStyle.prototype.getEffectiveValue = xbStyleGetEffectiveValue;
|
||
|
xbStyle.prototype.moveAbove = xbStyleMoveAbove;
|
||
|
xbStyle.prototype.moveBelow = xbStyleMoveBelow;
|
||
|
xbStyle.prototype.moveBy = xbStyleMoveBy;
|
||
|
xbStyle.prototype.moveTo = xbStyleMoveTo;
|
||
|
xbStyle.prototype.moveToAbsolute = xbStyleMoveToAbsolute;
|
||
|
xbStyle.prototype.resizeBy = xbStyleResizeBy;
|
||
|
xbStyle.prototype.resizeTo = xbStyleResizeTo;
|
||
|
|
||
|
if (document.all || document.getElementsByName)
|
||
|
{
|
||
|
xbStyle.prototype.getClip = cssStyleGetClip;
|
||
|
xbStyle.prototype.setClip = cssStyleSetClip;
|
||
|
xbStyle.prototype.getClipTop = cssStyleGetClipTop;
|
||
|
xbStyle.prototype.setClipTop = cssStyleSetClipTop;
|
||
|
xbStyle.prototype.getClipRight = cssStyleGetClipRight;
|
||
|
xbStyle.prototype.setClipRight = cssStyleSetClipRight;
|
||
|
xbStyle.prototype.getClipBottom = cssStyleGetClipBottom;
|
||
|
xbStyle.prototype.setClipBottom = cssStyleSetClipBottom;
|
||
|
xbStyle.prototype.getClipLeft = cssStyleGetClipLeft;
|
||
|
xbStyle.prototype.setClipLeft = cssStyleSetClipLeft;
|
||
|
xbStyle.prototype.getClipWidth = cssStyleGetClipWidth;
|
||
|
xbStyle.prototype.setClipWidth = cssStyleSetClipWidth;
|
||
|
xbStyle.prototype.getClipHeight = cssStyleGetClipHeight;
|
||
|
xbStyle.prototype.setClipHeight = cssStyleSetClipHeight;
|
||
|
xbStyle.prototype.getLeft = cssStyleGetLeft;
|
||
|
xbStyle.prototype.setLeft = cssStyleSetLeft;
|
||
|
xbStyle.prototype.getTop = cssStyleGetTop;
|
||
|
xbStyle.prototype.setTop = cssStyleSetTop;
|
||
|
xbStyle.prototype.getPageX = cssStyleGetPageX;
|
||
|
xbStyle.prototype.setPageX = cssStyleSetPageX;
|
||
|
xbStyle.prototype.getPageY = cssStyleGetPageY;
|
||
|
xbStyle.prototype.setPageY = cssStyleSetPageY;
|
||
|
xbStyle.prototype.getVisibility = cssStyleGetVisibility;
|
||
|
xbStyle.prototype.setVisibility = cssStyleSetVisibility;
|
||
|
xbStyle.prototype.getzIndex = cssStyleGetzIndex;
|
||
|
xbStyle.prototype.setzIndex = cssStyleSetzIndex;
|
||
|
xbStyle.prototype.getHeight = cssStyleGetHeight;
|
||
|
xbStyle.prototype.setHeight = cssStyleSetHeight;
|
||
|
xbStyle.prototype.getWidth = cssStyleGetWidth;
|
||
|
xbStyle.prototype.setWidth = cssStyleSetWidth;
|
||
|
xbStyle.prototype.getBackgroundColor = cssStyleGetBackgroundColor;
|
||
|
xbStyle.prototype.setBackgroundColor = cssStyleSetBackgroundColor;
|
||
|
xbStyle.prototype.getColor = cssStyleGetColor;
|
||
|
xbStyle.prototype.setColor = cssStyleSetColor;
|
||
|
xbStyle.prototype.setInnerHTML = xbSetInnerHTML;
|
||
|
xbStyle.prototype.getBorderTopWidth = cssStyleGetBorderTopWidth;
|
||
|
xbStyle.prototype.getBorderRightWidth = cssStyleGetBorderRightWidth;
|
||
|
xbStyle.prototype.getBorderBottomWidth = cssStyleGetBorderBottomWidth;
|
||
|
xbStyle.prototype.getBorderLeftWidth = cssStyleGetBorderLeftWidth;
|
||
|
xbStyle.prototype.getMarginLeft = cssStyleGetMarginLeft;
|
||
|
xbStyle.prototype.getMarginTop = cssStyleGetMarginTop;
|
||
|
xbStyle.prototype.getMarginRight = cssStyleGetMarginRight;
|
||
|
xbStyle.prototype.getMarginBottom = cssStyleGetMarginBottom;
|
||
|
xbStyle.prototype.getMarginLeft = cssStyleGetMarginLeft;
|
||
|
xbStyle.prototype.getPaddingTop = cssStyleGetPaddingTop;
|
||
|
xbStyle.prototype.getPaddingRight = cssStyleGetPaddingRight;
|
||
|
xbStyle.prototype.getPaddingBottom = cssStyleGetPaddingBottom;
|
||
|
xbStyle.prototype.getPaddingLeft = cssStyleGetPaddingLeft;
|
||
|
xbStyle.prototype.getClientTop = cssStyleGetClientTop;
|
||
|
xbStyle.prototype.getClientLeft = cssStyleGetClientLeft;
|
||
|
xbStyle.prototype.getClientWidth = cssStyleGetClientWidth;
|
||
|
xbStyle.prototype.getClientHeight = cssStyleGetClientHeight;
|
||
|
}
|
||
|
else if (document.layers)
|
||
|
{
|
||
|
xbStyle.prototype.getClip = nsxbStyleGetClip;
|
||
|
xbStyle.prototype.setClip = nsxbStyleSetClip;
|
||
|
xbStyle.prototype.getClipTop = nsxbStyleGetClipTop;
|
||
|
xbStyle.prototype.setClipTop = nsxbStyleSetClipTop;
|
||
|
xbStyle.prototype.getClipRight = nsxbStyleGetClipRight;
|
||
|
xbStyle.prototype.setClipRight = nsxbStyleSetClipRight;
|
||
|
xbStyle.prototype.getClipBottom = nsxbStyleGetClipBottom;
|
||
|
xbStyle.prototype.setClipBottom = nsxbStyleSetClipBottom;
|
||
|
xbStyle.prototype.getClipLeft = nsxbStyleGetClipLeft;
|
||
|
xbStyle.prototype.setClipLeft = nsxbStyleSetClipLeft;
|
||
|
xbStyle.prototype.getClipWidth = nsxbStyleGetClipWidth;
|
||
|
xbStyle.prototype.setClipWidth = nsxbStyleSetClipWidth;
|
||
|
xbStyle.prototype.getClipHeight = nsxbStyleGetClipHeight;
|
||
|
xbStyle.prototype.setClipHeight = nsxbStyleSetClipHeight;
|
||
|
xbStyle.prototype.getLeft = nsxbStyleGetLeft;
|
||
|
xbStyle.prototype.setLeft = nsxbStyleSetLeft;
|
||
|
xbStyle.prototype.getTop = nsxbStyleGetTop;
|
||
|
xbStyle.prototype.setTop = nsxbStyleSetTop;
|
||
|
xbStyle.prototype.getPageX = nsxbStyleGetPageX;
|
||
|
xbStyle.prototype.setPageX = nsxbStyleSetPageX;
|
||
|
xbStyle.prototype.getPageY = nsxbStyleGetPageY;
|
||
|
xbStyle.prototype.setPageY = nsxbStyleSetPageY;
|
||
|
xbStyle.prototype.getVisibility = nsxbStyleGetVisibility;
|
||
|
xbStyle.prototype.setVisibility = nsxbStyleSetVisibility;
|
||
|
xbStyle.prototype.getzIndex = nsxbStyleGetzIndex;
|
||
|
xbStyle.prototype.setzIndex = nsxbStyleSetzIndex;
|
||
|
xbStyle.prototype.getHeight = nsxbStyleGetHeight;
|
||
|
xbStyle.prototype.setHeight = nsxbStyleSetHeight;
|
||
|
xbStyle.prototype.getWidth = nsxbStyleGetWidth;
|
||
|
xbStyle.prototype.setWidth = nsxbStyleSetWidth;
|
||
|
xbStyle.prototype.getBackgroundColor = nsxbStyleGetBackgroundColor;
|
||
|
xbStyle.prototype.setBackgroundColor = nsxbStyleSetBackgroundColor;
|
||
|
xbStyle.prototype.getColor = nsxbStyleGetColor;
|
||
|
xbStyle.prototype.setColor = nsxbStyleSetColor;
|
||
|
xbStyle.prototype.setInnerHTML = nsxbSetInnerHTML;
|
||
|
xbStyle.prototype.getBorderTopWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderRightWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderBottomWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderLeftWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginRight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginBottom = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingRight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingBottom = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientHeight = xbStyleNotSupported;
|
||
|
|
||
|
window.saveInnerWidth = window.innerWidth;
|
||
|
window.saveInnerHeight = window.innerHeight;
|
||
|
|
||
|
window.onresize = nsxbStyleOnresize;
|
||
|
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
xbStyle.prototype.toString = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClip = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClip = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClipTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClipTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClipRight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClipRight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClipBottom = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClipBottom = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClipLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClipLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClipWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClipWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClipHeight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setClipHeight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getVisibility = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setVisibility = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getzIndex = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setzIndex = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getHeight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setHeight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBackgroundColor = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setBackgroundColor = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getColor = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setColor = xbStyleNotSupported;
|
||
|
xbStyle.prototype.setInnerHTML = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderTopWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderRightWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderBottomWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getBorderLeftWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginRight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginBottom = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getMarginLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingRight = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingBottom = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getPaddingLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientTop = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientLeft = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientWidth = xbStyleNotSupported;
|
||
|
xbStyle.prototype.getClientHeight = xbStyleNotSupported;
|
||
|
}
|
||
|
|
||
|
|