// http://www.simplexsimple.com/archives/2006/09/post.html
function backToTop() {
    var x1 = x2 = x3 = 0;
    var y1 = y2 = y3 = 0;
    if (document.documentElement) {
        x1 = document.documentElement.scrollLeft || 0;
        y1 = document.documentElement.scrollTop || 0;
    }
    if (document.body) {
        x2 = document.body.scrollLeft || 0;
        y2 = document.body.scrollTop || 0;
    }
    x3 = window.scrollX || 0;
    y3 = window.scrollY || 0;
    var x = Math.max(x1, Math.max(x2, x3));
    var y = Math.max(y1, Math.max(y2, y3));
    window.scrollTo(Math.floor(x / 2), Math.floor(y / 2));
    if (x > 0 || y > 0) {
        window.setTimeout("backToTop()", 25);
    }
}

window.onload = function(){
    var h2 = document.getElementsByTagName('h2');
    for(var i=0,len=h2.length;i<len;i++){
        createHTML({
            children : {
                a : {
                    href : '#',
                    innerHTML : '↑',
                    style : {
                        margin : '0 10px',
                        fontSize : '80%',
                        fontWeight : 'normal'
                    },
                    Event : {
                        onclick : 'backToTop(); return false'
                    }
                }
            }
        },h2[i]);
    }
}

function createHTML(obj,par){
    for(var k in obj) {
        if(typeof obj[k] == 'object' && obj[k].constructor == Object && k == 'children') {
            for(var j in obj[k]){
                var el = document.createElement(j);
                par.appendChild(el);
                createHTML(obj[k][j],el)
            }
        } else if(typeof obj[k] == 'object' && obj[k].constructor == Object && k == 'style') {
            for(var l in obj[k])
                par[k][l] = obj[k][l];
        } else if(typeof obj[k] == 'object' && obj[k].constructor == Object && k == 'Event') {
            for(var m in obj[k]){
                par.setAttribute(m,obj[k][m]);
            }
        } else {
            par[k] = obj[k];
        }
    }
}
