﻿function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

// erweitere Funktionen für das Milonic-Menü
// sind notwendig für das Mouse-Over mit den Imagemaps
// (c) agindo

function warten () {
	aktiv = setTimeout("MM_swapImgRestore()", 500);	
}

function ende () {
   clearTimeout(aktiv);
}

aktiv = setTimeout("MM_swapImgRestore()", 500);


// Funktionen für die Suchmaske
// agindo mh 20060105
function dateChanged(fieldtype, formname, dayValue, monthValue, yearValue, tsfield, identifier, diffToOtherBox) {	
	tagfeld = document.forms[formname].elements[fieldtype + "tag"];
	monatsfeld = document.forms[formname].elements[fieldtype + "monat"];
	
	tagfeld.selectedIndex = dayValue - 1;
	var foundIndex = false;
	for (i = 0; i < monatsfeld.options.length; i++) {
		var vergleich = monthValue + "." + yearValue;
		if (monthValue < 10)
			vergleich = "0" + vergleich;
			
  	if (monatsfeld.options[i].value == vergleich) {
			monatsfeld.selectedIndex = i;
			
			foundIndex = true;
			break;
		} 
	}
	
	if (!foundIndex) {
		return false;
	} else {
		//updateTimestamp(identifier, tsfield, diffToOtherBox, true);
		return true;
	}
}

function updateTimestamp(identifier, tsfield, diffDays, skiprecursion) {
  // not needed anymore
  return;
}

function calendarSync(maskName, dayDiff, rangeTo) {

	var dayFrom		= document.getElementById("day_id" + maskName + "_termin"),
		monthFrom	= document.getElementById("month_id" + maskName + "_termin"),
		dayTo		= document.getElementById("day_id" + maskName + "_ruecktermin"),
		monthTo		= document.getElementById("month_id" + maskName + "_ruecktermin"),
		triggerFrom	= document.getElementById("btncalendar1_" + maskName),
		triggerTo	= document.getElementById("btncalendar2_" + maskName),
		tsFrom		= document.getElementById("ts_id" + maskName + "_termin"),
		tsTo		= document.getElementById("ts_id" + maskName + "_ruecktermin"),
		now			= new Date();

	var syncTo = function() {

		var fromMonthYear	= monthFrom.value.split("-"),
			toMonthYear		= monthTo.value.split("-"),
			toMaxMonthYear,
			from, to, toMax;

		from	= new Date(+fromMonthYear[1], +fromMonthYear[0] - 1, dayFrom.value);
		to		= new Date(+toMonthYear[1], +toMonthYear[0] - 1, dayTo.value);

		// correct invalid date values

		dayFrom.value	= from.getDate();
		monthFrom.value	= ("0" + (from.getMonth() + 1)).slice(-2) + "-" + from.getFullYear();

		if(from < now) {

			// correct day/month to now, if month select was changed 

			if(this == monthFrom) {
				from = now;
				dayFrom.value = from.getDate();
			}

			// correct month/keep day, if day select was changed

			else {
				from = new Date(now.getFullYear(), now.getMonth() + 1, from.getDate());
			}

			monthFrom.value	= ("0" + (from.getMonth() + 1)).slice(-2) + "-" + from.getFullYear();
		}

		if(tsFrom) {
			tsFrom.value = from.getDate() + "." + ("0" + (from.getMonth() + 1)).slice(-2) + "." + from.getFullYear();
		}

		if(to > from) {
			return;
		}

		toMaxMonthYear	= monthTo.options[monthTo.options.length - 1].value.split("-");
		toMax			= new Date(+toMaxMonthYear[1], +toMaxMonthYear[0], 0);
		to				= new Date(from.getFullYear(), from.getMonth(), from.getDate() + dayDiff);		 // Parameter hier integrieren

		if(to > toMax) {
			to = toMax;
		}

		dayTo.value		= to.getDate();
		monthTo.value	= ("0" + (to.getMonth() + 1)).slice(-2) + "-" + to.getFullYear();

		if(tsTo) {
			tsTo.value = to.getDate() + "." + ("0" + (to.getMonth() + 1)).slice(-2) + "." + to.getFullYear();
		}
	};

	var syncFrom = function() {
		var fromMonthYear	= monthFrom.value.split("-"),
			toMonthYear		= monthTo.value.split("-"),
			from, to;

		from	= new Date(+fromMonthYear[1], +fromMonthYear[0] - 1, dayFrom.value);
		to		= new Date(+toMonthYear[1], +toMonthYear[0] - 1, dayTo.value);

		// correct invalid date values

		dayTo.value		= to.getDate();
		monthTo.value	= ("0" + (to.getMonth() + 1)).slice(-2) + "-" + to.getFullYear();

		if(to < now) {

			// correct month/keep day, if day select was changed

			if(this == monthTo) {
				to = now;
				dayTo.value = to.getDate();
			}

			// correct month/keep day, if day select was changed

			else {
				to = new Date(now.getFullYear(), now.getMonth() + 1, to.getDate());
			}

			monthTo.value = ("0" + (to.getMonth() + 1)).slice(-2) + "-" + to.getFullYear();
		}

		if(tsTo) {
			tsTo.value = to.getDate() + "." + ("0" + (to.getMonth() + 1)).slice(-2) + "." + to.getFullYear();
		}

		if(from < to) {
			return;
		}

		from			= new Date(to.getFullYear(), to.getMonth(), to.getDate() - 1);

		if(from < now) {
			from = now;
		}

		dayFrom.value	= from.getDate();
		monthFrom.value	= ("0" + (from.getMonth() + 1)).slice(-2) + "-" + from.getFullYear();
		if(tsFrom) {
			tsFrom.value	= from.getDate() + "." + ("0" + (from.getMonth() + 1)).slice(-2) + "." + from.getFullYear();
		}
	};

	var calendarFrom = vxJS.widget.calendar(
		tsFrom,
		{
			trigger: triggerFrom,
			noPast: true,
		//	noFuture: new Date(2011, 9, 1),												// Parameter hier integrieren
			noFuture: rangeTo,
			noYearInput: true,
			alignTo: triggerFrom,
			skinClass: "calendarSkin"
		}
	);
	var calendarTo = vxJS.widget.calendar(
		tsTo,
		{
			trigger: triggerTo,
			noPast: true,
		//	noFuture: new Date(2011, 9, 1),												// Parameter hier integrieren
			noFuture: rangeTo,
			noYearInput: true,
			alignTo: triggerTo,
			skinClass: "calendarSkin"
		}
	);

	vxJS.event.addListener(calendarFrom, "show", function() {
		var monthYear = monthFrom.value.split("-");
		this.setDate(new Date(+monthYear[1], +monthYear[0] - 1, dayFrom.value));
	});
	vxJS.event.addListener(calendarTo, "show", function() {
		var monthYear = monthTo.value.split("-");
		this.setDate(new Date(+monthYear[1], +monthYear[0] - 1, dayTo.value));
	});
	vxJS.event.addListener(calendarFrom, "datePick", function() {
		var picked = this.getDate();
		monthFrom.value = ("0" + (picked.getMonth() + 1)).slice(-2) + "-" + picked.getFullYear();
		dayFrom.value = picked.getDate();
		syncTo();
	});
	vxJS.event.addListener(calendarTo, "datePick", function() {
		var picked = this.getDate();
		monthTo.value = ("0" + (picked.getMonth() + 1)).slice(-2) + "-" + picked.getFullYear();
		dayTo.value = picked.getDate();
		syncFrom();
	});

	vxJS.event.addListener(dayTo,		"change", syncFrom);
	vxJS.event.addListener(monthTo,		"change", syncFrom);
	vxJS.event.addListener(dayFrom,		"change", syncTo);
	vxJS.event.addListener(monthFrom,	"change", syncTo);
}

