
var load_type = "content";
var param_method = "get";

//var global_path = window.location.pathname;

var content_path = "common/";
var content_path = "common/";

var current_file = 0;

var current_hash = window.location.hash;

var myGlobalHandlers = {
	onCreate: function(){
		Element.show('loader');
		Element.addClassName('kuenstler_content','transparent');
		//Element.show('loader_inFrame');
		Element.update('loader', "...Seite wird geladen...");
		//$('loader').innerHTML = "...Seite wird geladen...";
	},

	onFailure: function(){
		Element.hide('loader');
		Element.removeClassName('kuenstler_content','transparent');
		alert('ACHTUNG: File kann nicht geladen werden...<br>');
	},

	onComplete: function() {
		if(Ajax.activeRequestCount == 0){
			//Element.hide('loader');
			Element.removeClassName('kuenstler_content','transparent');
			//location.replace("#" + file_name);
			load_type = "content";
			param_method = "get";
			//Element.hide('loader');
			//Event.observe('link', 'click', function(event){ alert(Event.element(event));});
		}
	}
};

Ajax.Responders.register(myGlobalHandlers);



function init()
{
	getContent(current_file,id,type);
	/*
	if ( location.hash !== "" )
	{
		//$('debug').innerHTML += "FUNCTION init() ruft loadAjaxLinkByHash() auf, hash "+location.hash+" soll geladen werden...<br><br>";
		loadAjaxLinkByHash();
	}
	else
	{
		//$('debug').innerHTML += "FUNCTION init() ruft getContent("+current_file+",0) auf...<br><br>";
		getContent(current_file,id,0);
	}
	*/
}



function loadAjaxLinkByHash()
{
	var url = global_path + location.hash;
	var current_hash = location.hash;

	var current_file = current_hash.substr(22);

	if ( current_file == "" ) current_file = 0;

	$('debug').innerHTML += "loadAjaxLinkByHash: " + url + " wird geladen...->current_hash: " + current_hash + "...->"+current_file+"<br>";
	$('debug').innerHTML += "loadAjaxLinkByHash ruft getContent("+current_file+") auf...<br>";

	getContent(current_file,0);

}

function removeNaviActiveStyles()
{
	Element.removeClassName('nav_0','active_left');
	Element.removeClassName('nav_1','active_left');
	Element.removeClassName('nav_2','active_left');
	Element.removeClassName('nav_3','active_left');
	Element.removeClassName('nav_4','active_left');
	Element.removeClassName('nav_5','active_left');
	Element.removeClassName('nav_6','active_left');
}

function getContent(id,type)
{
	//alert("getContent, ID: " + id);
//	if ( load_type == "save" )
//	{
//		//$('loader_text').innerHTML = "...Daten werden gespeichert...";
//		param_method = "post";
//	}
//	elseif ( load_type == "login" )
//	{
//		//$('loader_text').innerHTML = "...Daten werden gesendet...";
//		param_method = "post";
//	}

	param_method = "get";


	//var ele_name = 'nav_'+current_file;
	//Element.removeClassName(ele_name,'active_left');

	//current_file = file;

	var pars = "";

	var file_name = "get_content.php?id=" + id;

	if (type != 0) file_name += "&TYPE=" + type;

	var url = "common/" + file_name;
	//current_hash = file_name;



	//alert("Funktion getContent(" + id + ","+pars+") wurde aufgerufen...\nURL: " + url);

	//$('debug').innerHTML += "getContent: " + url + " wird geladen...\ncurrent_hash: " + current_hash + "<br>";

		var myAjax = new Ajax.Request(
			url,
			{
				//onSuccess: function() { Event.observe('page', 'click', function(loadData) { loadData.bindAsEventListener(myAjax)},false); },
				//onLoading: function(){ location.replace("#" + file_name);  },
				//onLoaded: function(){  },
				onCreate: function(){
					Element.show('loader');
					Element.addClassName('kuenstler_content','transparent');
					//Element.show('loader_inFrame');
					Element.update('loader', "...Seite wird geladen...");
					//$('loader').innerHTML = "...Seite wird geladen...";
				},
				method: param_method,
				parameters: pars,
				onComplete: loadData
				//onFailure: function(){ Element.hide('loader_inFrame'); Element.hide('loader'); alert('<b style="color:red">ACHTUNG: </b>File kann nicht geladen werden...<br>'); }
			}
			);
		Ajax.Responders.register(myAjax);

}



function loadData(originalRequest)
{
	//$('saver').src = "core/linkhandling.inc.php?target_name=" + current_file;

	var html_string = originalRequest.responseText;

	Element.update('kuenstler_content', originalRequest.responseText);
	//Element.update('content', html_string);
	//removeNaviActiveStyles();
	//var ele_name = 'nav_'+current_file;
	//Element.addClassName(ele_name,'active_left');

	//Element.update('headline', $(ele_name).innerHTML);
}

function saveData(form_name,target)
{
	//alert("Funktion saveData('" + form_to_save + "','"+target+"') wurde aufgerufen...");

	with (document.forms[form_name])
	{
		paramstr = ""; debugstr = "\n\nDubug starten...\n";

		for ( i=0; i < elements.length; i++ )
		{
			if ( elements[i].type == "undefined" ) { debugstr += "- "+elements[i].type+" gefunden. -> undefined!"; }
			if ( elements[i].type == "radio" || elements[i].type == "checkbox" )
			{
				debugstr += "- "+elements[i].type+" gefunden. -> gechecked: ";
				if ( elements[i].checked == true )
				{
				  debugstr += "JA, Wert: " + elements[i].value+"\n";
				  paramstr += "&" + elements[i].name + "=" + elements[i].value;
				}
				else { debugstr += "NEIN\n"; }
			}


			if ( elements[i].type == "select" )
			{
			 	paramstr += "&" + elements[i].name + "=" + elements[i].options[elements[i].options.selectedIndex].value;
			}
			if ( elements[i].type == "text" || elements[i].type == "textarea" )
			{
				debugstr += "- "+elements[i].type+" gefunden. -> Wert: " + elements[i].value + "\n";
				paramstr += "&" + elements[i].name + "=" + encodeURI( elements[i].value );
			}
		}
	}
	//alert("Gefundene Parameter:\n"+paramstr+debugstr);
	load_type = "save";
	getContent(target,paramstr+"&submit=submit");
}


function login(form_name,target,type)
{
	paramstr = ""; debugstr = "\n\nDubug starten...\n";

	with (document.forms[form_name])
	{
		if ( type == 'login' )
		{
			debugstr += "- username -> Wert: " + username.value + "\n";
			debugstr += "- password -> Wert: " + password.value + "\n";
			paramstr += "&username=" + username.value;
			paramstr += "&password=" + password.value;
			paramstr += "&login=1&submit=submit";
		}

		if ( type == 'get_pw' )
		{
			paramstr += "&forgotten_username=" + forgotten_username.value;
			paramstr += "&get_pw=submit";
		}
	}
	load_type = "login";
	alert("Gefundene Parameter:\n"+paramstr+debugstr);
	getContent(target,paramstr);
}


function decode_utf8(utftext) {
var plaintext = ""; var i=0; var c=c1=c2=0;
// while-Schleife, weil einige Zeichen uebersprungen werden
while(i<utftext.length)
{
	c = utftext.charCodeAt(i);
    if (c<128) {
        plaintext += String.fromCharCode(c);
        i++;}
    else if((c>191) && (c<224)) {
        c2 = utftext.charCodeAt(i+1);
        plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
        i+=2;}
    else {
        c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
        plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
        i+=3;}
    }
    return plaintext;
}
