tags
for (var counter = 0; counter < span_tags.length; counter++) {
// Store the current object
current_object = span_tags[counter]
// Store how the browser accesses styles
object_css = current_object.style
// Store the object's id
object_id = current_object.id
// Only store those tags that have an id
if (object_id) {
// Create a new dhtml_object and store it in dhtml_objects
dhtml_objects[object_id] = new dhtml_object(current_object,
object_css,
object_id)
}
}
}
// Is the browser LDOM compliant?
else if (document.layers) {
// Use document.layers to get the positioned and tags
css_tags = document.layers
// Loop through the layers
for (var counter = 0; counter < css_tags.length; counter++) {
// Store the current object
current_object = css_tags[counter]
// Store how the browser accesses styles
object_css = current_object
// Store the object's id
object_id = current_object.id
// Only store those tags that have an id
if (object_id) {
// Create a new dhtml_object and store it in dhtml_objects
dhtml_objects[object_id] = new dhtml_object(current_object,
object_css,
object_id)
}
}
}
}
function dhtml_object (obj, css, id) {
this.obj = obj
this.css = css
this.id = id
this.left = get_left
this.right = get_right
this.top = get_top
this.bottom = get_bottom
this.width = get_width
this.height = get_height
this.visibility = get_visibility
this.zIndex = get_zIndex
this.move_to = move_to
this.move_by = move_by
this.set_left = set_left
this.set_top = set_top
this.set_width = set_width
this.set_height = set_height
this.set_visibility = set_visibility
this.set_zIndex = set_zIndex
this.move_above = move_above
this.move_below = move_below
this.set_backgroundColor = set_backgroundColor
this.set_backgroundImage = set_backgroundImage
this.set_html = set_html
this.get_clip_top = get_clip_top
this.get_clip_right = get_clip_right
this.get_clip_bottom = get_clip_bottom
this.get_clip_left = get_clip_left
this.get_clip_width = get_clip_width
this.get_clip_height = get_clip_height
this.resize_clip_to = resize_clip_to
this.resize_clip_by = resize_clip_by
}
function get_left() {
return parseInt(this.css.left)
}
function get_right() {
return this.left() + this.width()
}
function get_top() {
return parseInt(this.css.top)
}
function get_bottom() {
return this.top() + this.height()
}
function get_width() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, is the width defined?
if (this.css.width) {
// If so, return the width property
return parseInt(this.css.width)
}
else {
// If not, return the offsetWidth property
return parseInt(this.obj.offsetWidth)
}
}
else {
// If not, return the layer's document width
return parseInt(this.obj.document.width)
}
}
function get_height() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, is the height defined?
if (this.css.height) {
// If so, return the height property
return parseInt(this.css.height)
}
else {
// If not, return the offsetHeight property
return parseInt(this.obj.offsetHeight)
}
}
else {
// If not, return the layer's document height
return parseInt(this.obj.document.height)
}
}
function get_visibility() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, is the visibility defined?
if (this.css.visibility) {
// If so, return the visibility property
return this.css.visibility
}
}
else {
// Otherwise, it's an LDOM browser, so
// handle the proprietary visibility values
if (this.css.visibility == "show") {
return "visible"
}
if (this.css.visibility == "hide") {
return "hidden"
}
}
// If we get this far, just return "inherit"
return "inherit"
}
function get_zIndex() {
return this.css.zIndex
}
function move_to (new_left, new_top) {
this.css.left = new_left
this.css.top = new_top
}
function move_by (delta_left, delta_top) {
// Add the delta values
this.css.left = this.left() + parseInt(delta_left)
this.css.top = this.top() + parseInt(delta_top)
}
function set_left (new_left) {
this.css.left = new_left
}
function set_top (new_top) {
this.css.top = new_top
}
function set_width (new_width) {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, just set the width property
this.css.width = new_width
}
}
function set_height (new_height) {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, just set the width property
this.css.height = new_height
}
}
function set_visibility (new_visibility) {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, just set the visibility
// to the value of the argument
this.css.visibility = new_visibility
}
else {
// Otherwise, set the proprietary visibility values
if (new_visibility == "visible") {
this.css.visibility = "show"
}
else if (new_visibility == "hidden") {
this.css.visibility = "hide"
}
else {
this.css.visibility = "inherit"
}
}
}
function set_zIndex(new_zindex) {
// Is the new z-index greater than 0?
if (new_zindex > 0) {
// If so, set it
this.css.zIndex = new_zindex
}
else {
// If not, set it to 0
this.css.zIndex = 0
}
}
function move_above(reference_object) {
this.css.zIndex = reference_object.css.zIndex + 1
}
function move_below(reference_object) {
// Get the z-index of the reference object
reference_zindex = reference_object.css.zIndex
// Is it greater than 0?
if (reference_zindex > 0) {
// If so, set this object's zindex to one less
this.css.zIndex = reference_zindex - 1
}
else {
// If not, set the reference object's z-index to 1
// and this object's z-index to 0
reference_object.css.zIndex = 1
this.css.zIndex = 0
}
}
function set_backgroundColor(new_color) {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, use the backgroundColor property
this.css.backgroundColor = new_color
}
else {
// If not, use the bgcolor property
this.css.bgColor = new_color
}
}
function set_backgroundImage(new_image) {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, use the backgroundImage property
this.css.backgroundImage = "url(" + new_image + ")"
}
else {
// If not, use the background property
this.css.background.src = new_image
}
}
function set_html(new_html) {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, use the innerHTML property
this.obj.innerHTML = new_html
}
else {
// If not, use the document.write() method
this.obj.document.open()
this.obj.document.write(new_html)
this.obj.document.close()
}
}
function get_clip_top() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, first parse the clip string
parse_dom_clip(this)
// Clip values are now in the current_clip object
return current_clip.top
}
else {
// Otherwise, use clip.top
return this.css.clip.top
}
}
var current_clip
function clip_object(top, right, bottom, left) {
this.top = top
this.right = right
this.bottom = bottom
this.left = left
}
function parse_dom_clip(current_object) {
clip_string = current_object.css.clip
if (clip_string.length > 0) {
var values_string = clip_string.slice(5, clip_string.length - 1)
var clip_values = values_string.split(" ")
var clip_top = parseInt(clip_values[0])
var clip_right = parseInt(clip_values[1])
var clip_bottom = parseInt(clip_values[2])
var clip_left = parseInt(clip_values[3])
}
else {
var clip_top = 0
var clip_right = current_object.width()
var clip_bottom = current_object.height()
var clip_left = 0
}
current_clip = new clip_object(clip_top, clip_right, clip_bottom, clip_left)
}
function get_clip_right() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, first parse the clip string
parse_dom_clip(this)
// Clip values are now in the current_clip object
return current_clip.right
}
else {
// Otherwise, use clip.right
return this.css.clip.right
}
}
function get_clip_bottom() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, first parse the clip string
parse_dom_clip(this)
// Clip values are now in the current_clip object
return current_clip.bottom
}
else {
// Otherwise, use clip.bottom
return this.css.clip.bottom
}
}
function get_clip_left() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, first parse the clip string
parse_dom_clip(this)
// Clip values are now in the current_clip object
return current_clip.left
}
else {
// Otherwise, use clip.left
return this.css.clip.left
}
}
function get_clip_width() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, first parse the clip string
parse_dom_clip(this)
// Clip values are now in the current_clip object
return current_clip.right - current_clip.left
}
else {
// Otherwise, use clip.width
return this.css.clip.width
}
}
function get_clip_height() {
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// If so, first parse the clip string
parse_dom_clip(this)
// Clip values are now in the current_clip object
return current_clip.bottom - current_clip.top
}
else {
// Otherwise, use clip.width
return this.css.clip.height
}
}
function resize_clip_to(new_top, new_right, new_bottom, new_left) {
if (new_top == "auto") {new_top = this.get_clip_top() }
if (new_right == "auto") {new_right = this.get_clip_right() }
if (new_bottom == "auto") {new_bottom = this.get_clip_bottom() }
if (new_left == "auto") {new_left = this.get_clip_left() }
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// Clip values are now in the current_clip object
this.css.clip = "rect(" + new_top + " " + new_right + " " +
new_bottom + " " + new_left + ")"
}
else {
// Otherwise, use clip properties
this.css.clip.top = new_top
this.css.clip.right = new_right
this.css.clip.bottom = new_bottom
this.css.clip.left = new_left
}
}
function resize_clip_by(delta_top, delta_right, delta_bottom, delta_left) {
var new_top = this.get_clip_top() + delta_top
var new_right = this.get_clip_right() + delta_right
var new_bottom = this.get_clip_bottom() + delta_bottom
var new_left = this.get_clip_left() + delta_left
// Is this a W3C or DHTML DOM browser?
if (!document.layers) {
// Clip values are now in the current_clip object
this.css.clip = "rect(" + new_top + " " + new_right + " " +
new_bottom + " " + new_left + ")"
}
else {
// Otherwise, use clip properties
this.css.clip.top = new_top
this.css.clip.right = new_right
this.css.clip.bottom = new_bottom
this.css.clip.left = new_left
}
}
function get_mouse_x(current_event) {
// Is this Internet Explorer 4 or later?
if (its_ie4plus) {
// If so, return the event.clientX property
return event.clientX
}
// Is this Netscape Explorer 4 or later?
else if (its_ns4plus) {
// Otherwise, return the pageX property
return current_event.pageX
}
else {
// Otherwise, return null
return null
}
}
function get_mouse_y(current_event) {
// Is this Internet Explorer 4 or later?
if (its_ie4plus) {
// If so, return the event.clientY property
return event.clientY
}
// Is this Netscape Explorer 4 or later?
else if (its_ns4plus) {
// If so, return the pageY property
return current_event.pageY
}
else {
// Otherwise, return null
return null
}
}
function get_client_width() {
// Is this Internet Explorer 4 or later?
if (its_ie4plus) {
// If so, return the clientWidth property
return document.body.clientWidth
}
else if (its_ns4plus) {
// If so, return the innerWidth property
return window.innerWidth - 18
}
else {
// Otherwise, return null
return null
}
}
function get_client_height() {
// Is this Internet Explorer 4 or later?
if (its_ie4plus) {
// If so, return the clientHeight property
return document.body.clientHeight
}
// Is this Netscape Explorer 4 or later?
else if (its_ns4plus) {
// If so, return the innerHeight property
return window.innerHeight - 18
}
else {
// Otherwise, return null
return null
}
}
function get_client_scroll_left() {
// Is this Internet Explorer 4 or later?
if (its_ie4plus) {
// If so, return the scrollLeft property
return document.body.scrollLeft
}
// Is this Netscape Explorer 4 or later?
else if (its_ns4plus) {
// If so, return the pageXOffset property
return pageXOffset
}
else {
// Otherwise, return null
return null
}
}
function get_client_scroll_top() {
// Is this Internet Explorer 4 or later?
if (its_ie4plus) {
// If so, return the scrollTop property
return document.body.scrollTop
}
// Is this Netscape Explorer 4 or later?
else if (its_ns4plus) {
// If so, return the pageYOffset property
return pageYOffset
}
else {
// Otherwise, return null
return null
}
}