function trim(s) 
{
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

function str_replace(needle, replacement, haystack)
{	// ersetzt in haystack alle Vorkommen von needle durch replacement
	//while(haystack.search(needle) != -1) {
	haystack = haystack.replace(/needle/g, replacement);
	return haystack;
	// nicht getestet
}


function goback()
{ // springt zur vorigen Seite wie history.back(), entfernt dabei aber POST-Data und eventuelle update/append Parameter
	var ref = document.referrer;
	ref = ref.replace('&action=update', '');
	ref = ref.replace('&action=append', '');
	ref = ref.replace('&action=delete', '');
	window.location.href = ref;
}

function zoomimage(imgPath)
{
	image = new Image();
	image.src=(imgPath);
	ControlFoto(imgPath);

	function ControlFoto(img)
	{
		if ((image.width!=0)&&(image.height!=0)) { ViewFoto(img); }
		else { interval_a="ControlFoto('"+img+"')";	interval_b=setTimeout(interval_a,20); }
	}
	function ViewFoto(img)
	{
		width=image.width+20;
		height=image.height+24;
		try { if (popup.closed == false) throw "open"; }
		catch (e) {	if (e=="open") { popup.close(); } }	
	}
	popup = window.open('', 'Zoom', 'left=40,top=40,width='+width+',height='+height+',status=no,toolbar=no,resizable=yes,scrollbars=yes,menubar=no');
	popup.document.writeln("<html><head><title>Zoom<\/title><\/head>");
	popup.document.writeln("<body bgcolor=\"white\" text=\"white\" link=\"white\" vlink=\"white\" alink=\"white\" leftmargin=\"0\" marginwidth=\"0\" topmargin=\"0\" marginheight=\"0\">");
	popup.document.writeln("<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\" height=\"100%\">");
	popup.document.writeln("<tr><td width=\"100%\" height=\"100%\" align=\"left\" valign=\"top\"><p><a href=\"javascript:self.close()\"><img src=\""+imgPath+"\" width=\""+image.width+"\" height=\""+image.height+"\" border=\"10\" alt=\"Fenster schließen\" title=\"Fenster schließen\"></a><\/p><\/td><\/tr>");
	popup.document.writeln("<\/table><\/body><\/html>");	
	popup.focus();
}

function check_form_values(Param)
{	// überprüft die Formualareingaben parameterabhängig auf Gültigkeit. Nur als Hilfestellung; 
	// kein Schutz vor böswilligem Versenden falscher Daten mit entspr. techn. Mitteln -
	// dieser sollte im {formadata get... Bereich erfolgen falls nötig-
	// 2DO: Gültigkeit der Parameter und Existenx der IDs prüfen
	var check_ok = true;
	var error_msg = "Eingabefehler:\n\n";
	var param_arr = Param.split(";"); 
	for(var i in param_arr)
	{
		var format = param_arr[i].split(":");
		format[0] = trim(format[0]); format[1] = trim(format[1]); //Leerzeichen vorne und hinten weg, wichtig!
		
		var element_value = document.getElementById(format[0]).value;
		
		switch (format[1]) 
		{
			case "DATE_DDMMYYYY": 	// Datum gültig Format korrekt? Ggf. führende Nullen und Jahreszahl ergänzen.
			  var valid_date = true;
			  date_arr = element_value.split(".");
			  if (date_arr.length != 3) valid_date = false; else	// nicht 3-teilig mit Punkten? dann sofort Fehler, sonst:
			  {
				date_arr[0]=parseInt(date_arr[0],10); // zu INT konvertieren (führende Nullen entfernt)...
				date_arr[1]=parseInt(date_arr[1],10)-1; // dabei Monat an JS-interne Zählung (ab 0) anpassen
				if (date_arr[2].length==2) date_arr[2]="20"+date_arr[2]; // Jahr nur zweistellig? dann ergänzen
				if (date_arr[2].length==1) valid_date = false; // Jahr nur zweistellig? dann ergänzen
				if (date_arr[2].length==3) valid_date = false; // Jahr dreistellig? dann besser abbrechen
				if (date_arr[2].length > 4) valid_date = false; // Jahr mehr als vierstellig? dann besser abbrechen
				var control_date = new Date(date_arr[2],date_arr[1],date_arr[0]); // Kontroll-DateObjekt erzeugen...
				if (!(control_date.getDate()==date_arr[0] && control_date.getMonth()==date_arr[1] && control_date.getFullYear()==date_arr[2])) 					
				  valid_date = false;	// ..und mit Datum in Formularfeld vergleichen
			  }
			  if (valid_date) 
			  {
				  date_arr[0] = date_arr[0].toString(); date_arr[1] = (date_arr[1]+1).toString(); // zurück zu String konvertieren
				  if (date_arr[0].length==1) date_arr[0]="0"+date_arr[0];  // einstelligen Tag oder Monat korrigieren
				  if (date_arr[1].length==1) date_arr[1]="0"+date_arr[1];
				  var corrected_date = date_arr[0]+'.'+date_arr[1]+'.'+date_arr[2]; // Korrektur? dann Feld updaten:
				  if (corrected_date != element_value) document.getElementById(format[0]).value = corrected_date;
			  } else
			  {
				  check_ok = false;
				  error_msg += 'Feld "'+format[0]+'" verlangt gültiges Datum im Format dd.mm.yyyy (z.B. "01.02.2010")\n\n';
				  document.getElementById(format[0]).style.backgroundColor = "#FF0";
			  }
			  break;
		 
			case "not_empty": // Feld nicht leer?
				if (element_value.length == 0) 
				{
					check_ok = false;
					error_msg += 'Feld "'+format[0]+'" muss ausgefüllt werden\n\n';
					document.getElementById(format[0]).style.backgroundColor = "#FF0";
				}
				break;
		  }
	}
	if (!check_ok) 
	{
	  alert(error_msg);
	} else document.editform.submit();
}
