// ----------------------------------------------------------------
// checkStartDate( )
//
// This function checks the StartDate and refresh the EndDate
// ----------------------------------------------------------------
function checkStartDate(format, errTextDate) {
	if (isDate(document.frmDate.StartDate.value, format) == false) {
		//document.frmDate.StartDate.focus();
		alert(errTextDate);
	}
	else updateEndDateTime(format);	
	return;
}

// ----------------------------------------------------------------
// checkDate( )
//
// This function checks the Date
// ----------------------------------------------------------------
function checkDate(field, format, errTextDate) {
	if (field.value.length) {
		if (isDate(field.value, format) == false) {		
			alert(errTextDate);
			//field.focus();
		}
	}
	return;
}

// ----------------------------------------------------------------
// updateEndDateTime( format )
//
// This function updates the EndTime for Appointment
// ----------------------------------------------------------------
function updateEndDateTime(format) {
	var startDateTime = document.frmDate.StartDate.value + " " + document.frmDate.StartTimeHour.value + ":" + document.frmDate.StartTimeMinute.value + ":00";
	format = format + " HH:mm:ss";
	var endDateTime=addMinuteToDate(startDateTime, 30, format);
	document.frmDate.EndDate.value = endDateTime.substring(0, 10);
	document.frmDate.EndTimeHour.value = endDateTime.substring(11, 13);
	document.frmDate.EndTimeMinute.value = endDateTime.substring(14, 16);	
	return;
}

// ----------------------------------------------------------------
// changeDateByKey( field, event, format)
//
// This function updates the Date by pressing a Key
// ----------------------------------------------------------------
function changeDateByKey(field, event, format) {
	if (!event) event = window.event;				//IE
	if (event.which) keynum = event.which;			//Netscape, Opera, FireFox
	else if (event.keyCode) keynum = event.keyCode;
	if (keynum==38) {
		addToDate(field, 1, format);		
		if(field.name=='StartDate') updateEndDateTime(format);
	} else if (keynum==40) {
		addToDate(field, -1, format);
		if(field.name=='StartDate') updateEndDateTime(format);
	}
		
	return;	
}

// ----------------------------------------------------------------
// updateDuration(format)
//
// This function updates the Duration of a Appointment
// If Duration negativ then error
// ----------------------------------------------------------------
function updateDuration( format, errText ) {
	format = format + " HH:mm:ss";
	var startDateTime = document.frmDate.StartDate.value + " " + document.frmDate.StartTimeHour.value + ":" + document.frmDate.StartTimeMinute.value + ":00";
	var endDateTime = document.frmDate.EndDate.value + " " + document.frmDate.EndTimeHour.value + ":" + document.frmDate.EndTimeMinute.value + ":00";
	if (compareDates(endDateTime,format,startDateTime,format) < 1) alert(errText);
	return;	
}

// ----------------------------------------------------------------
// allDayEvent( )
//
// This function enables the Hour + Minute Options
// ----------------------------------------------------------------
function allDayEvent() {
	if (document.frmDate.AllDayEvent.checked)
	{
		document.frmDate.StartTimeHour.value = '00';		
		document.frmDate.StartTimeMinute.value = '00';
		document.frmDate.EndTimeHour.value = '00';
		document.frmDate.EndTimeMinute.value = '00';
		document.frmDate.StartTimeHour.disabled = true;
		document.frmDate.StartTimeMinute.disabled = true;
		document.frmDate.EndTimeHour.disabled = true;
		document.frmDate.EndTimeMinute.disabled = true;
	}
	else
	{		
		document.frmDate.StartTimeHour.disabled = false;
		document.frmDate.StartTimeMinute.disabled = false;
		document.frmDate.EndTimeHour.disabled = false;
		document.frmDate.EndTimeMinute.disabled = false;
	}
}

function checkLogin(aForm) {
	var ret = false;
	var id = aForm.id.value;
	var pass = aForm.pass.value;
	if (id.length) {
		if (pass.length) {			
			ret = true;
		}
		else { 
			alert('Bitte geben Sie ein Passwort ein.');
			aForm.pass.focus();
		}
	}
	else {
		alert('Bitte geben Sie einen Loginnamen ein.');
		aForm.id.focus();
	}
	return ret;
}

function PruefeDatum(Datum) {
	var Datum, Tag, Monat, Jahr, Laenge, tageMonat;
	Laenge=Datum.length;

	if (Laenge==10 && Datum.substring(2,3)=="." && Datum.substring(5,6)==".")
	{
		Tag=parseInt(Datum.substring(0,2),10);
		Monat=parseInt(Datum.substring(3,5),10);
		Jahr=parseInt(Datum.substring(6,10),10);
	}
	else
	{
	Fehlermeldung();return false;
	}

	if (Monat==4 || Monat==6 || Monat==9 || Monat==11)
	{
		tageMonat=30;
	}
	else if (Monat==1 || Monat==3 || Monat==5 || Monat==7 || Monat==8 || Monat==10 || Monat==12)
	{
		tageMonat=31;
	}
	else if(Monat==2 && Jahr%4==0 && Jahr%100!=0 || Jahr%400==0)
	{
		tageMonat=29;
	}
	else if(Monat==2 && Jahr%4!=0 || Jahr%100==0 && Jahr%400!=0)
	{
	tageMonat=28;
	}

	if (Tag>=1 && Tag<=tageMonat && Monat>=1 && Monat<=12)
	{
		//alert("Das Datum wurde korrekt eingegeben!");
		return true;
	}
	else
	{
		Fehlermeldung();return false;
	}
}


function CheckLength(obj, maxChar) {
	if (obj.value.length > maxChar)
	{
		alert('Sie können nicht mehr als ' + maxChar + ' Zeichen eingegeben!');
		return false;
	}
}

function SetFocus( elementname ) {
	if (elementname != '') document.getElementById(elementname).focus();
}

function swap_content( span ) { 
	displayType = ( document.getElementById( span ).style.display == 'none' ) ? 'block' : 'none'; 
	document.getElementById( span ).style.display = displayType; 
} 

function show(elementname){
	document.getElementById(elementname).style.display='block';
}

function hide(elementname) {
	document.getElementById(elementname).style.display='none';
}

function ShowNav(elementShow, reiterShow) {
	obj = document.getElementById('NavContent');	
	for (i=0;i<obj.childNodes.length;i++) {
		if (typeof obj.childNodes[i].id == 'string') obj.childNodes[i].style.display='none';
	}
	document.getElementById(elementShow).style.display='block';
	// Reiter
	obj = document.getElementById('Reiter');
	for (i=0;i<obj.childNodes.length; i++) {
		if (typeof obj.childNodes[i].id == 'string') obj.childNodes[i].className='';		
	}
	document.getElementById(reiterShow).className='on';
}

function zeig(elementParent, elementShow) {
	// Reiter
	obj = document.getElementById(elementParent);
	for (i=0;i<obj.childNodes.length; i++) {
		if (typeof obj.childNodes[i].id == 'string') {
			obj.childNodes[i].className='';
		}	
	}
	document.getElementById(elementShow).className='on';
}

function SetFocusForm() {
	if (document.forms.length>0) {
		if (document.forms[0].name == "frmSearch" && document.forms.length>1) i=1;
		else i=0;
		var field = document.forms[i];
		for (i=0;i<field.length; i++) {
			if ((field.elements[i].type == "text") || (field.elements[i].type == "textarea")) {
				try {
					field.elements[i].focus();
					break;
				}
				catch(e) {
				}
			}
		}
	}
}

function checkAllCheckbox(form) {
	for (i=0;i<form.length;i++) {
		if ((form.elements[i].type == "checkbox") & (form.elements[i].name.search(/Sel/) != -1)) 
		 form.elements[i].checked = form.CheckboxAll.checked;
	}
	return;
}

// AddressPopup
function showAddressPopup(URL, anchorname) {
	var win = new PopupWindow();
	win.autoHide();
	win.setSize(530,420);
	win.offsetX = 30;
	win.offsetY = -150;
	win.setUrl(URL);
	win.showPopup(anchorname);
}

function showAddressPopup2(URL, anchorname) {
	var win = new PopupWindow();
	win.autoHide();
	win.setSize(310,420);
	win.offsetX = -330;
	win.offsetY = -200;	
	win.setUrl(URL);
	win.showPopup(anchorname);
}

function showSelect(URL, anchorname) {
	var win = new PopupWindow();
	win.autoHide();
	win.setSize(750,450);
	win.offsetX = 20;
	win.offsetY = -150;
	win.setWindowProperties("toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable,alwaysRaised,dependent,titlebar=no");
	win.setUrl(URL);
	win.showPopup(anchorname);
}

function showNumber(URL, anchorname) {
	var win = new PopupWindow();
	win.autoHide();
	win.setSize(300,250);
	win.offsetX = -100;
	win.offsetY = -80;
	win.setWindowProperties("toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable,alwaysRaised,dependent,titlebar=no");
	win.setUrl(URL);
	win.showPopup(anchorname);
}

// AJAX
var req;
//window.onload=setTimeout("beginRefresh();", 600000);

function loadXMLDoc(url)
{
	// branch for native XMLHttpRequest object
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest();
		req.onreadystatechange = processReqChange;
		req.open("GET", url, true);
		req.send(null);
	// branch for IE/Windows ActiveX version
	} else if (window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
		if (req) {
			req.onreadystatechange = processReqChange;
			req.open("GET", url, true);
			req.send();
		}
	}
	window.setTimeout("loadXMLDoc('" + url + "')", 600000);
}

function processReqChange()
{
	// only if req shows "complete"
	if (req.readyState == 4) {
		// only if "OK"
		if (req.status == 200) {
			// ...processing statements go here...
			//response  = req.responseXML.documentElement;
			//keepAlive    = response.getElementsByTagName('keepAlive')[0].firstChild.data;
			//alert(keepAlive);
			//eval(method + '(\'\', result)');
		} else {
			alert("There was a problem retrieving the XML data:\n" + req.statusText);
		}
	}
}

function beginRefresh(url){
	window.setTimeout("loadXMLDoc('" + url + "')", 10000);
}

function encode_utf8(rohtext) {
	rohtext = rohtext.replace(/\r\n/g,"\n");
	var utftext = "";
	for (var n=0; n<rohtext.length; n++)
	{
		var c=rohtext.charCodeAt(n);
		if (c<128)
			utftext += String.fromCharCode(c);
		else if((c>127) && (c<2048)) {
			utftext += String.fromCharCode((c>>6)|192);
			utftext += String.fromCharCode((c&63)|128);
		}
		else {
			utftext += String.fromCharCode((c>>12)|224);
			utftext += String.fromCharCode(((c>>6)&63)|128);
			utftext += String.fromCharCode((c&63)|128);
		}
	}
	return utftext;
}

function confirmMessage(sURL, Text) {
	if (confirm(Text)) location.href = sURL;
}
