/**
 * Transporter – Informationen bewegen, www.transporter.at, 2009
 * @author t.wanner
 */

var ajaxMode = 0;

/* !flashbase funktionen
 ****************************************************/
function loadPage(strText){

	setAjaxMode(1);
	window.softScrollTarget = "#seite";
	ajaxloaderstuff('index.php?id=' + strText, 'seite', 'type=2');
    returntoflash = 'ok';
    return (returntoflash);
}

function javascript_to_flash(texttoflash){
    var textfromflash = thisMovie("projektfilter").showPageInfo(texttoflash);
    return (true);
}

function thisMovie(movieName){
    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];
}

// ********* ajaxloader nur für aufrufe aus flash

// projektlink aufgerufen
function doAlert(message){
	alert(message);
}

// ******** ajaxloader nur für aufrufe aus html

// normaler seitencontent aufruf
function ajaxloader(link, target){

    if (target == undefined) target = "seite";
    if (link == "" || ajaxMode == 0) {
        // rsh script hat probleme mit leer und sonderzeichen und feurt faelschlicher weise einen event der hier abgefangen wird
        return true;
    } 
    window.link = link;
    ajaxfcontainer = document.getElementById("fcontainer");
	
    ajaxloaderstuff(link, target, "");
    
    window.softScrollTarget = "#alles";
    return false;
}

// ************

// diese funktion verwalten die ladeprozedur 
function ajaxloaderstuff(link, target, urlparams){
    window.link = link;
    seiteladen(link, target, urlparams);
}

// seiteladen lädt den inhalt per ajax
function seiteladen(link, target, urlparams){

    new Ajax.Updater({
        success: target
    }, link, {
        method: 'get',
        parameters: '?' + urlparams,
		evalScripts: true,
        onFailure: function(){
            ajaxErrorIn();
			alert('error');
        },
        onSuccess: function(){
            // ladeinfo aus
            //alert('success');
            if (ajaxMode) {
                if (this.link != null) {
					
					if (window.link.substring(0, 9) == "index.php") {
						dhtmlHistory.add(window.link, window.link);
					}
					
                }
                else {
                    dhtmlHistory.add(175, "Error");
                }
            }
        },
        onComplete: function(){
            // ladeinfo aus
            /*
			if (Hyphenator.isBookmarklet()) {
                Hyphenator.hyphenateDocument();
            }
            Hyphenator.setMinWordLength(8);
            Hyphenator.run();
            */
            Form.Observer;
			
			//reinitialize Protofish
			new ProtoFish('navi', '250', 'naviactive', true);
			
            //suchblur();
			if (window.softScrollTarget != "") {
				//alert(window.softScrollTarget);
				softscroll(window.softScrollTarget);
			}
        }
    });
}

var isSafari = !!navigator.userAgent.match(/Apple.*Safari/)

var historyChange = function(newLocation, historyData){
	if(newLocation.substring(0,9)=="index.php") {
		//alert("load newLocation: "+historyData);
		ajaxloaderstuff(historyData, 'seite', 'type=2');
	}    
}

function setAjaxMode(newAjaxMode){

	if(newAjaxMode==1 && ajaxMode!=newAjaxMode){
		if (dhtmlHistory.isFirstLoad()) {
			//alert(self.document.location);
			dhtmlHistory.add("", self.document.location);
		}
	}
	ajaxMode = newAjaxMode;
}


function initialize(){
	// alert("initialize: " + self.document.location.hash.substring(1).substring(0,5));
    if (self.document.location.hash.substring(1).substring(0,9)=="index.php") {
        setAjaxMode(1);
        ajaxloaderstuff(self.document.location.hash.substring(1), 'seite', 'type=2');
    }
}


window.dhtmlHistory.create({
    toJSON: function(o){
        return Object.toJSON(o);
    },
    fromJSON: function(s){
        return s.evalJSON();
    }
});

window.onload = function() {
    dhtmlHistory.initialize();
    dhtmlHistory.addListener(historyChange);
};

Event.observe(window, 'load', function(){
    dhtmlHistory.initialize();
    dhtmlHistory.addListener(historyChange);
});
