function fixYear(numb) {
	
	numlen=numb.length;
	pos=numlen-2;
	retstr="20"+numb.substr(pos,2);
	return (retstr); 
}

function fixZero (str) {
	str=String(str);
	str= (str.length==1) ? "0"+str : str;
	return (str);	
}
function doDetail(where,context) {
	
	frm = document.forms["search"];
	frm.action=where;
	dotheSubmit(context)
	
}

function dotheSubmit(context) {

	frm = document.forms["search"];
	was = currComboVal("was");
	
	if (was) {
		frm.c.value = frm.c.value + ";" + was;
	} 
	
	
	Tag=parseInt(Number(frm.today.value.substr(0,2)));
	Monat=parseInt(Number(frm.today.value.substr(3,2)))-1;
	Jahr=parseInt(Number(frm.today.value.substr(6,4)));
	
	
	
	if (Date) {
		// wenn Date-Object im Browser vorhanden
		inSiebenTagen=Tag+7;
		today = new Date(Jahr,Monat,Tag);
		tomorrow = new Date(Jahr,Monat,(Tag+1));
		sevenday = new Date(Jahr,Monat,inSiebenTagen);
		if (today.getDay() != 0 && today.getDay() != 6) {
			c=today.getDay();
			saDiff = 6 - c;
			soDiff = saDiff + 1;
			saturday = new Date(Jahr,Monat,(Tag+saDiff));
			sunday = new Date(Jahr,Monat,(Tag+soDiff));
		} else {
			if (today.getDay() == 6) {
			saturday = today;
			sunday = new Date(Jahr,Monat,(Tag+1));
			}
			if (today.getDay() == 0) {
			saturday = new Date(Jahr,Monat,(Tag-1));
			sunday = today;
			}
		}
		
		
		saturdayDay =fixZero(saturday.getDate());
		sundayDay =fixZero(sunday.getDate());
		heuteDay = fixZero(Tag);
		tommorowDay= fixZero(tomorrow.getDate());
		sevenDay= fixZero(sevenday.getDate());
		saturdayMonth =fixZero(saturday.getMonth()+1);
		sundayMonth =fixZero(sunday.getMonth()+1);
		heuteMonth = fixZero(Monat+1);
		tommorowMonth= fixZero(tomorrow.getMonth()+1);
		sevenMonth= fixZero(sevenday.getMonth()+1);
		
		saturday_STR = saturdayDay+"."+saturdayMonth+"."+fixYear(String(saturday.getYear())); 
		sunday_STR = sundayDay+"."+sundayMonth+"."+fixYear(String(saturday.getYear())); 
		heute_STR= heuteDay+"."+heuteMonth+"."+Jahr;
		morgen_STR= tommorowDay+"."+tommorowMonth+"."+fixYear(String(saturday.getYear()));
		inSiebenTagen_STR = sevenDay+"."+sevenMonth+"."+fixYear(String(saturday.getYear()));
	}
		frm.today.value=heute_STR;
		frm.sa.value=saturday_STR;
		frm.so.value=sunday_STR;
		frm.tomorrow.value=morgen_STR;
		frm.sevenday.value=inSiebenTagen_STR;
	wann = currComboVal("wann");
	if (wann == "0") { 
		frm.events_rhythm.value = heute_STR+","+heute_STR;
	} else if (wann == "1") {
		frm.events_rhythm.value = morgen_STR+","+morgen_STR;
	} else if (wann == "2") {
		frm.events_rhythm.value = frm.sa.value+","+frm.so.value;
	} else if (wann == "3") {
		frm.events_rhythm.value = frm.today.value+","+frm.sevenday.value;
	}
	
		frm.submit();
}

function writeToForm(obj) {
	frm = document.forms["search"];
	for (i in obj) {
 		eval("frm."+i).value=obj[i];
	}
}

function doDetailSubmit(context) {

	frm = document.forms["search"];
	frm.c.value="";
	frm.c.value = context+";!2126273-";
	
	kat=frm.kat.value;
	if (kat) {
		frm.c.value = frm.c.value + ";" + kat;
	}
	
	lk = frm.lk.value;
	ort = frm.ort.value;
	if (lk != "" && ort == "") { 
	  	frm.c.value = frm.c.value + ";" + lk;
	} else if (lk != "" && ort != "") {
		frm.c.value = frm.c.value + ";" + ort;
	}
	// datum zusammenbasteln
	
	
	vv=frm.start.value.split(".");
	bv=frm.ende.value.split(".");
	if (vv[0].length ==1) {vv[0]="0"+vv[0];}
	if (bv[0].length ==1) {bv[0]="0"+bv[0];}
	d_von_val = vv[0] + "." + vv[1] + "." + vv[2];
	d_bis_val = bv[0] + "." + bv[1] + "." + bv[2];
	// durch den datumsvalidater laufen, egal ob input oder nicht
	d_von_mil = validDate(d_von_val);
	d_bis_mil = validDate(d_bis_val);
	if (vv.length==3 && bv.length==3) {
	// wurde das von datum ausgefuellt?
	d_von_set = vv[0].length > 0 && vv[1].length > 0 && vv[2].length > 0;
// wurde das bis datum ausgefuellt?
	d_bis_set = bv[0].length > 0 && bv[1].length > 0 && bv[2].length > 0;
} else {
	if (vv.length!=3 ) {
		d_von_set=true;
	}
	if (bv.length!=3 ) {
		d_bis_set=true;
	}
}
	// eingegebenes startdatum ist falsch
  if (d_von_set && isNaN(d_von_mil)) {
		alert("Kein korrektes Startdatum eingegeben!");
		return;
	}

	// eingegebenes enddatum ist falsch
	if (d_bis_set && isNaN(d_bis_mil)) {
		alert("Kein korrektes Enddatum eingegeben!");
		return;
	} 
	
	// enddatum darf nicht for startdatum liegen
	if (d_von_set && d_bis_set 
			 && d_von_mil > d_bis_mil) {
		alert("Enddatum darf nicht vor Startdatum liegen!");
		return;
	}

	// startdatum an suchparamenter uebergeben
	// und kalender setzen
	if (d_von_set && !isNaN(d_von_mil)) {
		//frm.cal_start.value = d_von_val;
//		frm.cal.value = formatInteger(von_monat) + "." + von_jahr;
		frm.events_rhythm.value = d_von_val;
	}

	// ennddatum ans suchparameter uebergeben
	if (d_bis_set && !isNaN(d_bis_mil)) {
		frm.events_rhythm.value += ","+d_bis_val;
		//frm.cal_end.value = d_bis_val;
	}
	if (d_von_val == d_bis_val) {
		frm.events_rhythm.value = d_bis_val+","+d_bis_val;
		//frm.cal_day.value = d_bis_val;
	}
	frm.submit();
	
}
// alte Funktionen

function currComboVal(name) {
	obj = document.forms["search"].elements[name];
	if (!obj) 
		return;
	return obj.options[obj.selectedIndex].value;
}

function setComboVal(name,pos) {
	obj = document.forms["search"].elements[name];
	if (!obj)
		return;
	obj.options.selectedIndex = pos;
	return;
}

function combo_von_bis_reset() {
	setComboVal("von_tag",0);
	setComboVal("von_monat",0);
	setComboVal("von_jahr",0);
	setComboVal("bis_tag",0);
	setComboVal("bis_monat",0);
	setComboVal("bis_jahr",0);
}

function formatInteger(num) {
	if (num > 9) {
		return num;
	}
	return "0" + num.toString();
}


function alphaOf( s)
{
  var i = s.search( /[^A-Za-zÄÖÜäöüß]/); /* /[^\w]/ */
  if (i < 0)
	{
	  return (s);
	}
  else
	{
	  return (s.substring( 0, i));
	}
}

function digitsOf( s)
{
  var i = s.search( /[^0-9]/);
  if (i < 0)
	{
	  return (s);
	}
  else
	{
	  return (s.substring (0, i));
	}
}

function digitsStripLd0( s)
{
  var i = s.search( /[1-9]|[0]$/);
  if (i < 0)
	{
	  return ("");
	}
  else
	{
	  return (digitsOf( s.substring( i, s.length)));
	}
}

function trimString( s)
{
  var i = 0;
  var l = s.length;
  while
	(
	 i < l
	 &&
	 s.charAt( i) == ' '
	 ||
	 s.charAt( i) == '\n'
	 ||
	 s.charAt( i) == '\r'
	 ||
	 s.charAt( i) == '\t'
	 ||
	 s.charAt( i) == '\f'
	 )
	{
	  i++;
	}
  if (i >= l)
	{
	  return ("");
	}
  do
	{
	  l--;
	}
  while
	  (
	   s.charAt( l) == ' '
	   ||
	   s.charAt( l) == '\n'
	   ||
	   s.charAt( l) == '\r'
	   ||
	   s.charAt( l) == '\t'
	   ||
	   s.charAt( l) == '\f'
	   );
  return (s.substring( i, l + 1));
}

function todayMillis()
{
  var d = new Date();
  d.setHours( 0);
  d.setMinutes( 0);
  d.setSeconds( 0);
  d.setMilliseconds( 0);
  return (d.getTime());
}

function parseMonth( s)
{
  var m = -1;
  var ms = alphaOf( trimString( s)).toLowerCase();
  if (ms.length > 0)
	{
	  if (ms.indexOf( "ja") == 0) { m = 0; }
	  else if (ms.indexOf( "f") == 0) { m = 1;}
	  else if (ms.indexOf( "m") == 0 && (ms.indexOf( "ä") > 0 || ms.indexOf( "r") > 0)) { m = 2; }
	  else if (ms.indexOf( "a") == 0 && (ms.indexOf( "p") > 0 || ms.indexOf( "r") > 0)) { m = 3; }
	  else if (ms.indexOf( "mai") == 0 || ms.indexOf( "may") == 0) { m = 4; }
	  else if (ms.indexOf( "ju") == 0 && ms.indexOf( "n") > 0) { m = 5; }
	  else if (ms.indexOf( "ju") == 0 && ms.indexOf( "l") > 0) { m = 6; }
	  else if (ms.indexOf( "au") == 0) { m = 7; }
	  else if (ms.indexOf( "s") == 0) { m = 8; }
	  else if (ms.indexOf( "o") == 0) { m = 9; }
	  else if (ms.indexOf( "n") == 0) { m = 10; }
	  else if (ms.indexOf( "d") == 0) { m = 11; }
	}
  else
	{
	  ms = digitsOf( trimString( s));
	  if (ms.length > 0)
		m = parseInt( digitsStripLd0( ms));
	}
  return (m);
}

function dateStringToMillis(s, txto)
{
  var val;
  var dmy = new Array(3);
  var i;
  var j;
  var dmys = s.split( /[^0-9]+/);
  var dmysl = dmys.length;
  if (dmysl < 3)
	{
	  if (dmysl == 2)
		{
		  var month = -1;
		  var matches = s.match( /[\s][^0-9]+[\s]/);
		  if (matches != null)
			{
			  month = parseMonth( matches[0]);
			}
		  if (month >= 0)
			{
			  dmys = new Array( dmys[0], "" + (month + 1), dmys[1]);
			  dmysl = 3;
			}
		  else
			{
			  return (Number.NaN);
			}
		}
	  else
		{
		  return (Number.NaN);
		}
	}
  j = 0;
  for (i = 0; i < dmysl; i++)
	{
	  if (dmys[i].length > 0)
		{
		  dmy[j++] = parseInt( digitsStripLd0( dmys[i]));
		  if (j == 3)
			break;
		}
	}
  if (dmy[2] < 25)
	dmy[2] += 2000;
  else if (dmy[2] < 100)
	dmy[2] += 1900;
  if
	(
	 dmy[1] >= 1 && dmy[1] <= 12 && dmy[0] >= 1
	 &&
	 dmy[0] <=
	 (
	  (dmy[1] == 2)
	  ?
	  (((dmy[2] %4 == 0) && ((dmy[2] % 100 != 0) || (dmy[2] % 400 == 0))) ? 29 : 28)
	  :
	  (30 + (((dmy[1] < 8) ? dmy[1] : (dmy[1] + 1)) % 2))
	  )
	 )
	{
	  val = (new Date( dmy[2], dmy[1] - 1, dmy[0])).getTime();
	  if (txto != null)
		txto.value = ((dmy[0] < 10) ? ("0" + dmy[0]) : dmy[0]) + ((dmy[1] < 10) ? ".0" : ".") + dmy[1] + "." + dmy[2];
	}
  else
	{
	  val = Number.NaN;
	}
  return (val);
}

function validDate(date) {
  if (!date.match(/^\d{1,2}\.\d{1,2}.\d{4}$/)) {
		return Number.NaN;
  }
  return dateStringToMillis(date);
}


 
