/*** CONFIGURATION ***/

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

// relative path from the file where this script is embedded to atikonnews.php
var phpPath = "fileadmin/templates/js/atikon/atikonnews.php";

var externalContent = new Array();
externalContent["atikon-news"] = "/content/inhalte/steuernews/index.html";
externalContent["atikon-autos"] = "/content/inhalte/auto/faq___autos/index.html";
externalContent["atikon-rechnungsmerkmale"] = "/content/inhalte/buchhaltung/rechnungsmerkmale/index.html";
externalContent["atikon-vorsteuerabzug"] = "/content/inhalte/auto/vorsteuerabzugsberechtigte_kfz/index.html";
externalContent["atikon-wichtigebetraege"] = "/content/inhalte/buchhaltung/wichtige_betr%C3%A4ge/index.html";
externalContent["atikon-foerderstellen"] = "/content/inhalte/link_zu_förderungen/förderstellen/index.html";
externalContent["atikon-downloads-buchhaltung"] = "/content/inhalte/buchhaltung/downloads/index.html";
externalContent["atikon-downloads-lohn"] = "/content/inhalte/lohnverrechnung/downloads/index.html";
externalContent["atikon-faq-buchhaltung"] = "/content/inhalte/buchhaltung/faq___buchhaltung/index.html";
externalContent["atikon-buchhaltung-reisekosten"] = "/content/inhalte/buchhaltung/reisekosten/index.html";
externalContent["atikon-reisekosten"] = "/content/inhalte/lohnverrechnung/reisekosten/index.html"
externalContent["atikon-steuertermine"] = "/content/inhalte/buchhaltung/steuertermine/index.html";
externalContent["atikon-sonderausgaben"] = "/content/inhalte/buchhaltung/sonderausgaben/index.html";
externalContent["atikon-belastungen"] = "/content/inhalte/buchhaltung/außergewöhnliche_belastungen/index.html";
externalContent["atikon-betriebsausgaben"] = "/content/inhalte/buchhaltung/betriebsausgaben/index.html";
externalContent["atikon-werbungskosten"] = "/content/inhalte/buchhaltung/werbungskosten/index.html";
externalContent["atikon-hfu"] = "/content/inhalte/buchhaltung/hfu___liste/index.html";
externalContent["atikon-sv"] = "/content/inhalte/lohnverrechnung/sozialversicherungs_beitragswerte/index.html";
externalContent["atikon-autos-info"] = "/content/inhalte/auto/infos_ums_auto/index.html";
externalContent["atikon-autos-ankauf-1"] = "/content/inhalte/auto/checkliste_ankauf_eines_autos_aus_einem_eu_staat/index.html";
externalContent["atikon-autos-ankauf-2"] = "/content/inhalte/auto/checkliste_ankauf_eines_autos_aus_einem_drittstaat/index.html";
externalContent["atikon-autos-leasing-1"] = "/content/inhalte/auto/checkliste_leasing_eines_autos_aus_einem_eu_staat/index.html";
externalContent["atikon-autos-leasing-2"] = "/content/inhalte/auto/checkliste_leasing_eines_autos_aus_einem_drittstaat/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=" +  encodeURIComponent(url) +'?v=' + (new Date().getTime());
    
    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++) {
                /*as[a].onclick = function() {
                    var hrefsplit = this.href.split('/content');
                    loadURL(divid, contentDomain + '/content' + hrefsplit[1]);
                    
                    return false;
                }
                */
                as[a].onclick = function() {
                	
                	var hrefsplit = this.href.split('/content');
                    	
                    	if(hrefsplit[1]) {
                    		loadURL(divid, contentDomain + '/content' + hrefsplit[1]);
                    		return false;
                    	} else {                	
		                    hrefsplit = this.href.split('#');
		                    
		                    if(hrefsplit[1]) {
		                    	loadURL(divid, contentDomain + externalContent[divid] + '#' + hrefsplit[1] );
		                   		return false;
		                   	}  
	                   	}                	
                   	
                    //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]);
        }
    }
});

