var domready = new Object();
domready = {
    add: function(fn) {
        if (domready.loaded) return fn();
        var observers = domready.observers;
        if (!observers) observers = domready.observers = [];
        observers[observers.length] = fn; // Arraypush is not supported by Mac IE 5
        if (domready.callback) return;
        domready.callback = function() {
            if (domready.loaded) return;
            domready.loaded = true;
            if (domready.timer) {
                clearInterval(domready.timer);
                domready.timer = null;
            }
            var observers = domready.observers;
            for (var i = 0, length = observers.length; i < length; i++) {
                var fn = observers[i];
                observers[i] = null;
                fn(); // make 'this' as window
            }
            domready.callback = domready.observers = null;
        };

        var ie = !!(window.attachEvent && !window.opera);
        var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1;
        if (document.readyState && webkit) { // Apple WebKit (Safari, OmniWeb, ...)
            domready.timer = setInterval(function() {
                var state = document.readyState;
                if (state == 'loaded' || state == 'complete') {
                    domready.callback();
                }
            }, 50);
        }
        else if (document.readyState && ie) { // Windows IE
            var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)';
            document.write(
                '<script type="text/javascript" defer="defer" src="' + src + '" ' +
                'onreadystatechange="if (this.readyState == \'complete\') domready.callback();"' +
                '><\/script>');
        }
        else {
            if (window.addEventListener) { // for Mozilla browsers, Opera 9
                document.addEventListener("DOMContentLoaded", domready.callback, false);
                window.addEventListener("load", domready.callback, false); // Fail safe
            }
            else if (window.attachEvent) {
            window.attachEvent('onload', domready.callback);
            }
            else { // Legacy browsers (e.g. Mac IE 5)
                var fn = window.onload;
                window.onload = function() {
                    domready.callback();
                    if (fn) fn();
                }
            }
        }
    }
}

var mydomain = '';
function loadURL(divid, url) {
    if(document.getElementById(divid)) {
        if(mydomain == '') { // save domain after first load
            var spliturl = url.split('/content');
            mydomain = spliturl[0];
        }
        var url = document.location.protocol + '//' + document.location.hostname + (document.location.port ? ':' + document.location.port : '') + '/' + 'atikonnews.php' + '?url=' + url;
        if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        }
        else { // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function() {
            if(xmlhttp.readyState==4) {
                var cont = document.getElementById(divid);
                cont.innerHTML = xmlhttp.responseText;
                // change all links
                var as = cont.getElementsByTagName('a');
                for(a=0; a<as.length; a++) {
                    as[a].onclick = function() {
                        var hrefsplit = this.href.split('/content');
                        loadURL('atikonnewsmandanten', mydomain + '/content' + hrefsplit[1]);
                        return false;
                    }
                }
                // fix all images
                var imgs = cont.getElementsByTagName('img');
                for(i=0; i<imgs.length; i++) {
                    var srcsplit = imgs[i].src.split('/content');
                    imgs[i].src = mydomain + '/content' + srcsplit[1];
                }
                // fix selects with onchange events
                var selects = cont.getElementsByTagName('select');
                for(s=0; s<selects.length; s++) {
                    if(selects[s].onchange) {
                        selects[s].onchange = function() {
                            loadURL('atikonnewsmandanten', mydomain + this.value);
                        }
                    }
                }
            }
        }
        xmlhttp.open("GET", url, true);
        xmlhttp.send(null);
        document.getElementById(divid).innerHTML = '<span class="load"><span>Inhalt wird geladen...</span></span>';
    }
}
domready.add(function() {
    loadURL("atikonnewsmandanten", "http://stb-mueller.de.news.atikon.de/content/inhalte/steuernews_f%C3%BCr_mandanten/index.html");
});

