// Wenn innerhalb eines Formulares über onsubmit ein Ajax-Aufruf gestartet werden soll
function submitInForm(formName, XHRurl, wherein, params){
	if(params['nospace']==1) {var contentNode = new_window(params['titel'], {}); wherein='window_content';}
	else var contentNode = dojo.byId(wherein);
	if(!contentNode) 
		if(window_content) contentNode=window_content;
		else alert("kein Ausgabekanal gefunden: "+wherein);
	if(params['handle']) var handle=params['handle'];
	else var handle='text';
	if(handle=='json') XHRurl+='&handle=json';
	document.body.style.cursor = "wait";
	dojo.xhrPost({
		url: "/ajaxRsp.php?what="+XHRurl+"&amp;wherein="+wherein,
		form: formName,
		handleAs: handle, 
		contentType: "application/x-www-form-urlencoded",
		load: function(data,args){
				document.body.style.cursor = "auto";
				if(params['reload']==1 && params['nospace']!=1) location.reload();
				if(contentNode.innerHTML.length<10){
					dojo.style(contentNode, "opacity", "0");
					if(handle=='json') { contentNode.innerHTML = data.content; dojo.eval(data.javaScriptPart); }
					else contentNode.innerHTML = data;
					dojo.fadeIn({node: contentNode, duration:400, delay:0}).play();
				}
				else {
					dojo.fadeOut({
						node: contentNode,
						onEnd: function(){
							if(handle=='json') { contentNode.innerHTML = data.content; dojo.eval(data.javaScriptPart); }
							else contentNode.innerHTML = data;
							dojo.fadeIn({node: contentNode, duration:400, delay:0}).play();    
						}
					}).play();
				}
		},
		error: function(data, args){
			contentNode.innerHTML="<div id='errormessage'>"+data+"</div>";
		}
	})
	return false;
}

// Wenn per Link ein Ajax-Aufruf gestartet werden soll
function followLink(XHRurl, wherein, params){
	if(params['nospace']==1) {var contentNode = new_window(params['titel'], params); wherein='window_content';}
	else var contentNode = dojo.byId(wherein);
	if(!contentNode) 
		if(window_content) contentNode=window_content;
		else {alert("kein Ausgabekanal gefunden: "+wherein); return false; }
	if(params['handle']) var handle=params['handle'];
	else var handle='text';
	if(handle=='json') XHRurl+='&handle=json';
	document.body.style.cursor = "wait";
	dojo.xhrGet({
			url: "/ajaxRsp.php?what="+XHRurl+"&wherein="+wherein,
			handleAs: handle,
			load: function(data,args){
					document.body.style.cursor = "auto";
					if(params['reload']==1 && params['nospace']!=1) location.reload();
					else if(contentNode.innerHTML.length<10){
						dojo.style(contentNode, "opacity", "0");
						if(handle=='json') { contentNode.innerHTML = data.content; dojo.eval(data.javaScriptPart); }
						else contentNode.innerHTML = data;
						dojo.fadeIn({node: contentNode, duration:400, delay:0}).play();
					}
					else {
						if(params['reload'] && params['reload']==1) location.reload();
						else dojo.fadeOut({
							node: contentNode,
							onEnd: function(){
								if(handle=='json') { contentNode.innerHTML = data.content; dojo.eval(data.javaScriptPart); }
								else contentNode.innerHTML = data; 
								dojo.fadeIn({node: contentNode, duration:400, delay:0}).play();    
							}
						}).play();
						
					}
			},
			error: function(data, args){
				contentNode.innerHTML="<div id='errormessage'>"+data+"</div>";
			}
		})
	return false;
}

var window_shadow;
var window_main;
var window_content;
var iframe;
// Wenn kein Platz für ausgabe, dann muss ein neues Fenster her.
function new_window(titel, params){
	var my_width= (params['width']) ? params['width'] : 500;
	var my_height= (params['height']) ? params['height'] : 250;
	var my_top= (params['top']) ? params['top'] : 200;
	var my_border= (params['border']) ? params['border'] : 8;
	var my_borderRadius= (params['borderRadius']) ? params['borderRadius'] : my_border;
	var my_opacity= (params['opacity']) ? params['opacity'] : 0.4;
	var my_offset= (params['offset']) ? params['offset'] : 0;
	var my_duration= (params['duration']) ? params['duration'] : 300;
	var my_reload = (params['reload']) ? params['reload'] : 0;

	my_top = my_top + scrolltop();
	if(window_main) close_window(my_duration, my_opacity, my_reload);
	else {
		var my_padding=1;
		var kompleteWidth=Fensterweite();

		//window.location.href = "#";
		window_shadow = document.createElement('DIV');
		window_main = document.createElement('DIV');
		if(navigator.appName=="Microsoft Internet Explorer"){		// Worakround für SELECT-Position im IE6
			iframe = document.createElement('IFRAME');
			with(iframe.style){
				position="absolute";
				top=(my_top-my_offset)+"px";
				left=((kompleteWidth-my_width)/2-my_offset)+"px";
				height=(my_height-2*my_padding)+"px";
				width=(my_width-2*my_padding)+"px";
			}
			document.body.appendChild(iframe);
		}
		
		with(window_shadow.style) {
			position="absolute";
			if(my_border==-1){
				top="0px";
				left="0px";
				height=Fensterhoehe()+"px";
				//height='100%';
				//width=kompleteWidth+"px";
				width='100%';
			} else {
				top=(my_top-my_border)+"px";
				left=((kompleteWidth-my_width)/2-my_border)+"px";
				height=(my_height + 2*my_border)+"px";
				width=(my_width+my_border+my_border)+"px";
				MozBorderRadius=my_borderRadius+"px";
				KhtmlBorderRadius=my_borderRadius+"px";
			}
			backgroundColor='#666666';
			
		}
		with(window_main.style) {
			position="absolute";
			top=(my_top-my_offset)+"px";
			left=((kompleteWidth-my_width)/2-my_offset)+"px";
			height=(my_height-2*my_padding)+"px";
			width=(my_width-2*my_padding)+"px";
			backgroundColor='#FFFFFF';
			border="1px solid #969696";
			textAlign="left"; 
			padding=(my_padding)+"px";
		}
		dojo.style(window_main, "opacity",0);
		dojo.animateProperty({node: window_shadow, duration:my_duration, properties:{opacity:{start:0, end:my_opacity}}}).play();
		dojo.fadeIn({node: window_main, duration:my_duration, delay:0}).play();

		var window_header = document.createElement('DIV');
		dojo.addClass(window_header, "ajax_window_header");
		var w_close = "<div style='float:left; width:20%; text-align:right;'><a href='#' onclick='javascript: return close_window("+my_duration+", "+my_opacity+", "+my_reload+");'><img src='/style/icons/close.gif' style='border:0px; margin-top:4px;' alt='X' title='Fenster schließen' /></a></div>";
		window_header.innerHTML="<div style='float:left;width:80%'>"+titel+"</div>"+w_close+"<div style='clear:both'></div>";
		window_main.appendChild(window_header);
		
		window_content = document.createElement('DIV');
		window_content.id='window_content';
		window_content.style.padding='5px';
		window_content.style.overflow='auto';
		window_content.style.height=(my_height-30)+"px";
		window_main.appendChild(window_content);
		
		document.body.appendChild(window_shadow);
		document.body.appendChild(window_main);
		
		return window_content;
	}
}
function close_window(my_duration, my_opacity, my_reload){
	dojo.animateProperty({node: window_shadow, duration:my_duration, properties:{opacity:{start:my_opacity, end:0}}}).play();
	dojo.fadeOut({node: window_main, duration:my_duration, delay:0,
		onEnd: function(){
			document.body.removeChild(window_shadow);
			document.body.removeChild(window_main);
			if(iframe) {document.body.removeChild(iframe); iframe=null;}
			window_shadow=null;
			window_main=null;
			if(my_reload==1) location.reload();
		}
	}).play();
	return false;
}


function Fensterweite() {
 if (window.innerWidth) return window.innerWidth;
 else if (document.body && document.body.offsetWidth) 
  return document.body.offsetWidth;
 else return 0;
}
function Fensterhoehe (){
	var h1 = 0;
	var h2 = 0;
	if (window.innerHeight) h1 = window.innerHeight;
	if (document.body && document.body.offsetHeight) h2 = document.body.offsetHeight;
	return (h1>h2) ? h1 : h2;
}
function scrolltop(){
	var t1 = window.pageYOffset;
	var t2 = document.documentElement.scrollTop;
	var t3 = document.body.scrollTop;
	var x1 = (t1>t2)?t1:t2;
	return (x1>t3)?x1:t3;
}
