/*** CONFIGURATION ***/

// domainname of the news-project
var contentDomain = "http://wtsalzburg.at.news.atikon.at";

// relative path from the file where this script is embedded to atikon_contentimport.php
var phpPath = "atikon_contentimport.php";

var externalContent = new Array();
externalContent["news"] = "content/inhalte/news/steuernews_fuer_klienten/index.html";
externalContent["unternehmensgruendung"] = "content/inhalte/infolisten/unternehmensgruendung/index.html";
externalContent["rechtsformgestaltung"] = "content/inhalte/infolisten/rechtsformgestaltung/faq_rechtsformgestaltung/index.html";
externalContent["buchhaltung"] = "content/inhalte/infolisten/buchhaltung/index.html";
externalContent["auto"] = "content/inhalte/infolisten/auto/index.html";
externalContent["lohnverrechnung"] = "content/inhalte/infolisten/lohnverrechnung/index.html";
externalContent["planung_und_controlling"] = "content/inhalte/infolisten/planung_und_controlling/index.html";
externalContent["steuern_und_sozialversicherung"] = "content/inhalte/infolisten/steuern_und_sozialversicherung/index.html";
externalContent["steuer_rechner"] = "content/inhalte/onlinerechner/steuer_rechner/index.html";
externalContent["sozialversicherungs_rechner"] = "content/inhalte/onlinerechner/sozialversicherungs_rechner/index.html";
externalContent["betriebswirtschaftliche_rechner"] = "content/inhalte/onlinerechner/betriebswirtschaftliche_rechner/index.html";
externalContent["onlinerechner"] = "content/inhalte/onlinerechner/index.html";
externalContent["newsletterform"] = "content/inhalte/news/anmeldung_zum_newsletter/index.html";
// it's possible to add more divs with external content here: externalContent["divId"] = "path/to/content";


/*** SCRIPT ***/

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 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 (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();
                }
            }
        }
    }
}

function loadURL(divid, url) {
    var url = phpPath + "?url=" + url;
    var xmlhttp;
    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++) {
                if (as[a].href.indexOf('/content') != -1) {
                    as[a].onclick = function() {
                        var hrefsplit = this.href.split('/content');
                        loadURL(divid, contentDomain + '/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 = contentDomain + '/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(divid, contentDomain + '/' + this.value);
                    }
                }
            }
            // follow named anchor
            var hashSplit = url.split('#');
            if (hashSplit[1]) {
                window.location.hash = hashSplit[1];
            }
        }
    }
    xmlhttp.open("GET", url, true);
    xmlhttp.send(null);
    document.getElementById(divid).innerHTML = '<span class="load"><span>Inhalt wird geladen...</span></span>';
}

domready.add(function() {
    for (var divId in externalContent) {
        if (document.getElementById(divId)) {
            loadURL(divId, contentDomain + '/' + externalContent[divId]);
        }
    }
});

