﻿/*
DOM SCRIPTING FUNCTIONS
    
(c) 2008, Helder Internet.
www.helderinternet.nl
*/
    DOM = new function() {
        this.insertAfter = function(newElement, referenceElement) {
            var parent = referenceElement.parentNode;

            var nextSibling = referenceElement.nextSibling;
            if (nextSibling) {
                parent.insertBefore(newElement, nextSibling);
            }
            else {
                parent.appendChild(newElement);
            }
        }
        this.insertBefore = function(newElement, referenceElement) {
            var parent = referenceElement.parentNode;
            parent.insertBefore(newElement, referenceElement);
        }
        this.attachEvent = function(el, evt, fnc) {
            if (typeof (el.addEventListener) != "undefined") {
                evt = evt.replace("on", "");
                el.addEventListener(evt, fnc, false);
            }
            else if (typeof (el.attachEvent) != "undefined") {
                el.attachEvent(evt, fnc);
            }
        }
        this.setAttribute = function(el, attr, value) {
            if (attr == "class" && (BrowserDetect.isIE6() == true || BrowserDetect.isIE7() == true)) {
                attr = "className";
            }

            el.setAttribute(attr, value);
        }
        this.scrollTop = function() {
            win = window.pageYOffset ? window.pageYOffset : 0;
            docel = document.documentElement ? document.documentElement.scrollTop : 0;
            body = document.body ? document.body.scrollTop : 0;

            var result = win ? win : 0;
            if (docel && (!result || (result > docel)))
                result = docel;

            return body && (!result || (result > body)) ? body : result;
        }
        this.documentHeight = function() {
            var D = document;
                return Math.max(
                Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
                Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
                Math.max(D.body.clientHeight, D.documentElement.clientHeight)
            );
        }
    }
