function FormSubmit(formName) {
	document.forms[formName].submit();
}
function confirmedSubmit(formName) {
	document.forms[formName].submit();
}
function FormSubmitWithAlert(formName, message) {
	if (confirm(message)) {
		document.forms[formName].submit();
		return false;
	} else {
		return false;
	}
}
function FormSubmitWithAlertAndCheckbox(formName, message, elemCheckBox,messageIfElemNotValid) {
	$(document).ready(function() {
		if ($("#" + elemCheckBox).is(':checked')) {
			return FormSubmitWithAlert(formName, message);
		} else {
			alert(messageIfElemNotValid);
			return false;
		}
	});	
}
function toggleTwoElements(elem1, elem2) {

	if (document.getElementById) {
		var div1 = document.getElementById(elem1);
		var div2 = document.getElementById(elem2);

		if (div1.style.display == 'block' || div1.style.display == null
				|| div1.style.display == '') {
			div1.style.display = 'none';
			div2.style.display = 'block';
		} else {
			div1.style.display = 'block';
			div2.style.display = 'none';

		}
	}
}
function toggleElement(elem1) {
	if (document.getElementById) {
		var div1 = document.getElementById(elem1);
		if (div1.style.display == 'block' || div1.style.display == ''
				|| div1.style.display == null) {
			div1.style.display = 'none';
		} else {
			div1.style.display = 'block';
		}
	}
}
function positionElementToElement(elemToSetPosition, elemToGetPosition,
		offset_x, offset_y) {
	if (document.getElementById) {
		var elem1 = document.getElementById(elemToSetPosition);
		var elem2 = document.getElementById(elemToGetPosition);
		var x = absLeft(elem2) + offset_x;
		var y = absTop(elem2) + offset_y;
		elem1.style.top = y.toString() + "px";
		elem1.style.left = x.toString() + "px";
	}
}

function toggleElementFirstClosed(elem1) {
	if (document.getElementById) {
		var div1 = document.getElementById(elem1);
		if (div1.style.display == 'none' || div1.style.display == ''
				|| div1.style.display == null) {
			div1.style.display = 'block';
		} else {
			div1.style.display = 'none';
		}
	}
}

function toggleArrowRightDown(elemImgID, elemID) {
	if (document.getElementById) {
		var div1 = document.getElementById(elemImgID);
		var div2 = document.getElementById(elemID);
		if (div2.style.display == 'block') {
			div1.src = '../img/asc.gif';
		} else {
			div1.src = '../img/right.gif';
		}
	}
}

function explodeLinienArray() {
	var delimiter = '';
	var method = 0;
	var result = '';
	var Count = 0;
	var tempString = document.forms['edit_wandbetreuer'].Linien.value;
	tempString = tempString.replace(/\s/g, '');
	if (tempString.indexOf(',') > 0) {
		delimiter = ',';
		method = 1;
	} else if (tempString.indexOf('-') > 0) {
		delimiter = '-';
		method = 2;
	}

	var arrayLinien = tempString.split(delimiter);
	if (method == 1) {
		result = tempString;
	} else if (method == 2) {
		var x = arrayLinien[0];
		var y = arrayLinien[1];

		for ( var i = 0 + x; i <= y; i++) {
			if (i < arrayLinien[1]) {
				result += i + ",";
			} else {
				result += "" + i + "";
			}
		}
	} else {
		result = tempString;
	}

	var bisher = document.getElementById("wandbetreuer_linien").innerHTML;
	if (document.getElementById("wandbetreuer_linien").innerHTML.length > 0) {
		result = bisher + "," + result;
	}
	document.getElementById("wandbetreuer_linien").innerHTML = result;
	document.forms['edit_wandbetreuer'].linien_array.value = result;
	document.forms['edit_wandbetreuer'].Linien.value = '';
}

function deleteLinienArray() {
	document.getElementById("wandbetreuer_linien").innerHTML = '';
	document.forms['edit_wandbetreuer'].linien_array.value = '';
}

function checkAllBoxesInForm2(formName, fieldName, switcherField, reverseSwitch) {
	switcher = document.forms[formName].elements[switcherField].checked;
	for ( var i = 0; i < document.forms[formName].elements.length; i++) {
		if (document.forms[formName].elements[i].name == fieldName) {
			if (switcher) {
				if (reverseSwitch == '1') {
					document.forms[formName].elements[i].checked = false;
				} else {
					document.forms[formName].elements[i].checked = true;
				}
			} else {
				if (reverseSwitch == '1') {
					document.forms[formName].elements[i].checked = true;
				} else {
					document.forms[formName].elements[i].checked = false;
				}
			}
		}
	}
}
function checkAllBoxesInForm(formName, fieldName) {
	switcher = document.forms[formName].elements[fieldName][0].checked;
	for ( var i = 0; i < document.forms[formName].elements.length; i++) {
		if (document.forms[formName].elements[i].name == fieldName) {
			if (switcher) {
				document.forms[formName].elements[i].checked = true;
			} else {
				document.forms[formName].elements[i].checked = false;
			}
		}
	}
}
function checkCheckbox(varFormName, varFieldName, bChecked) {
	document.forms[varFormName][varFieldName].checked = bChecked;
}

function showClock(elemIDForClock) {
	elemClock = document.getElementById(elemIDForClock);
	datNow = new Date();
	hours = datNow.getHours();
	minutes = datNow.getMinutes();
	minutes = Math.round(minutes, 2);
	if (minutes.toString().length == 1) {
		minutes = '0' + minutes;
	}

	ID = window.setTimeout("showClock('" + elemIDForClock + "');", 2000);
	elemClock.innerHTML = hours.toString() + ":" + minutes.toString();

}

function showOneHideMany(elemIDToShow, arrElemIDsToHide) {
	for (i = 0; i < arrElemIDsToHide.length; i++) {
		elemToHide = document
				.getElementById('bereich_content_' + arrElemIDsToHide[i]);
		elemToHide.style.display = 'none';
		var menuElemToHide = document
				.getElementById('bereich_menu_' + arrElemIDsToHide[i]);
		menuElemToHide.style.fontWeight = 'normal';
	}
	var elemToShow = document.getElementById('bereich_content_' + elemIDToShow);
	var menuElemToShow = document
			.getElementById('bereich_menu_' + elemIDToShow);
	elemToShow.style.display = 'block';
	menuElemToShow.style.fontWeight = 'bold';
}

function changeClassForElement(elemID, strClass) {
	var elemToChange = document.getElementById(elemID);
	elemToChange.className = strClass;
}
function changeHiddenInputFieldValue(elemName, strNewValue) {
	var elemsToChange = document.getElementsByName(elemName);
	if (elemsToChange.length > 0) {
		for ($i = 0; $i < elemsToChange.length; $i++) {
			elemsToChange[$i].value = strNewValue;
		}
	}
}
function changeInnerHTML(elemName, strNewValue) {
	var elemsToChange = document.getElementsByName(elemName);
	if (elemsToChange.length > 0) {
		for ($i = 0; $i < elemsToChange.length; $i++) {
			elemsToChange[$i].innerHTML = strNewValue;
		}
	}
}
function absLeft(el) {
	return (el.offsetParent) ? el.offsetLeft + absLeft(el.offsetParent)
			: el.offsetLeft;
}

function absTop(el) {
	return (el.offsetParent) ? el.offsetTop + absTop(el.offsetParent)
			: el.offsetTop;
}

function countAndShowFormElementLength(idFormElem, idElemToShowIn) {
	idFormElem = document.getElementById(idFormElem);
	elemToShowIn = document.getElementById(idElemToShowIn);
	actualSize = idFormElem.value.length;
	elemToShowIn.innerHTML = actualSize.toString();
}

function toggleField(varFormName, varFieldName, varLock) {
	document.forms[varFormName][varFieldName].disabled = varLock;
}
function handleKeyPressedInForm(formName, elemID) {
	elemToAdd = document.getElementById(elemID);
	elemToAdd.onkeydown = function(Ereignis) {
		Tastencode = Ereignis.keyCode;
		if (Tastencode == '13') {
			document.forms[formName].submit();
		}
	};
}
function getMCEPlaintext(fieldName) {
	var editor = tinyMCE.activeEditor;
	var root = editor.dom.getRoot();
	editor.selection.select(root);
	var content = editor.selection.getContent( {
		format : 'text'
	});
	changeHiddenInputFieldValue(fieldName, content);
}

/* DHTML SUITE */
var myCalendarModel = new DHTMLSuite.calendarModel( {});
myCalendarModel.setLanguageCode('ge');

var calendarObjForFormDate = new DHTMLSuite.calendar( {
	callbackFunctionOnDayClick : 'getDateFromCalendar',
	isDragable : true,
	displayTimeBar : false
});
calendarObjForFormDate.setCalendarModelReference(myCalendarModel);

var calendarObjForFormDateAndTime = new DHTMLSuite.calendar( {
	minuteDropDownInterval : 5,
	numberOfRowsInMinuteDropDown : 14,
	numberOfRowsInHourDropDown : 15,
	hourDropDownOffsetInHour : 5,
	callbackFunctionOnDayClick : 'getDateAndTimeFromCalendar',
	isDragable : true,
	displayTimeBar : true
});
calendarObjForFormDateAndTime.setCalendarModelReference(myCalendarModel);

function pickDate(buttonObj, inputObject) {
	// TODO: if fixed css, then top anders
	calendarObjForFormDate.setCalendarPositionByHTMLElement(inputObject, 0,
			inputObject.offsetHeight + 2); // Position the calendar right below
											// the form input
	calendarObjForFormDate.setInitialDateFromInput(inputObject, 'dd.mm.yyyy'); // Specify
																				// that
																				// the
																				// calendar
																				// should
																				// set
																				// it's
																				// initial
																				// date
																				// from
																				// the
																				// value
																				// of
																				// the
																				// input
																				// field.
	calendarObjForFormDate.addHtmlElementReference('myDate', inputObject); // Adding
																			// a
																			// reference
																			// to
																			// this
																			// element
																			// so
																			// that
																			// I
																			// can
																			// pick
																			// it
																			// up
																			// in
																			// the
																			// getDateFromCalendar
																			// below(myInput
																			// is a
																			// unique
																			// key)
	if (calendarObjForFormDate.isVisible()) {
		calendarObjForFormDate.hide();
	} else {
		calendarObjForFormDate.resetViewDisplayedMonth(); // This line resets
															// the view back to
															// the inital
															// display, i.e. it
															// displays the
															// inital month and
															// not the month it
															// displayed the
															// last time it was
															// open.
		calendarObjForFormDate.display();
		$("div.DHTMLSuite_calendar").css( {
			"top" : 7 + $(inputObject).offset().top + $(inputObject).height()
		});
	}
}
function pickDateAndTime(buttonObj, inputObject) {
	calendarObjForFormDateAndTime.setCalendarPositionByHTMLElement(inputObject,
			0, inputObject.offsetHeight + 2); // Position the calendar right
												// below the form input
	calendarObjForFormDateAndTime.setInitialDateFromInput(inputObject,
			'dd.mm.yyyy hh:ii'); // Specify that the calendar should set it's
									// initial date from the value of the input
									// field.
	calendarObjForFormDateAndTime
			.addHtmlElementReference('myDate', inputObject); // Adding a
																// reference to
																// this element
																// so that I can
																// pick it up in
																// the
																// getDateFromCalendar
																// below(myInput
																// is a unique
																// key)
	if (calendarObjForFormDateAndTime.isVisible()) {
		calendarObjForFormDateAndTime.hide();
	} else {
		calendarObjForFormDateAndTime.resetViewDisplayedMonth(); // This line
																	// resets
																	// the view
																	// back to
																	// the
																	// inital
																	// display,
																	// i.e. it
																	// displays
																	// the
																	// inital
																	// month and
																	// not the
																	// month it
																	// displayed
																	// the last
																	// time it
																	// was open.
		calendarObjForFormDateAndTime.display();
		$("div.DHTMLSuite_calendar").css( {
			"top" : 7 + $(inputObject).offset().top + $(inputObject).height()
		});
	}
}

function getDateFromCalendar(inputArray) {
	var references = calendarObjForFormDate.getHtmlElementReferences(); // Get
																		// back
																		// reference
																		// to
																		// form
																		// field.
	references.myDate.value = inputArray.day + '.' + inputArray.month + '.'
			+ inputArray.year;
	calendarObjForFormDate.hide();

}
function getDateAndTimeFromCalendar(inputArray) {
	var references = calendarObjForFormDateAndTime.getHtmlElementReferences(); // Get
																				// back
																				// reference
																				// to
																				// form
																				// field.
	references.myDate.value = inputArray.day + '.' + inputArray.month + '.'
			+ inputArray.year + ' ' + inputArray.hour + ':' + inputArray.minute;
	calendarObjForFormDateAndTime.hide();

}

