function delete_insurance_entry(container) {
	if(confirmation('Soll dieser Versicherungseintrag wirklich gelöscht werden?')) {
		new Ajax.Request(_path + 'api/account/delete_insurance/ajax?id=' + container.split('-')[2], {
			onComplete: function(transport) {
				new Effect.BlindUp($(container));
			}
		});
	}
	return false;
}
/*calculator*/
function toggle_calculator_item(e) {
	if(e.hasClassName('active') && !e.up().hasClassName('big')) return false;
	new Ajax.Request(e.href, {
		method: 'get',
		parameters: {'ajax':1},
		onComplete: function(transport) {
			new Ajax.Request(_path + 'api/calculator/listing', {
				method: 'get',
				onComplete: function(transport) {
					$('dynamic_calculator_content').replace(transport.responseText);
					if(e.hasClassName('active')) {
						 new_link = e.href.replace(/\/delete/gi, '/add');
						 e.removeClassName('active');
					}
					else {
						new_link = e.href.replace(/\/add/gi, '/delete');
						if(!e.up().hasClassName('big')) {
							e.up().descendants().each(function(elm) {
								elm.removeClassName('active');
							});
						}
						e.addClassName('active');
					}
					e.setAttribute('href', new_link);
					e.onclick = function() {
						toggle_calculator_item(e);
						return false;
					}
				}
			});
		}
	});
	return false;
}

//toggle
function toggleArea(id_item, id_list, show) {
	var item = $(id_item);
	var current = item.style.display;
	var cat = $(id_list);
	if(current == 'none' && (show == undefined || show == true)) {
		new Effect.BlindDown(id_item);
		cat.addClassName('open');
		new Ajax.Request(_path + 'api/modules/navi/open/' + id_item, {});
	} else {
		if (show == undefined || show == false) {
			var onFinish = function() {
				arguments.callee.cat.removeClassName('open');
				new Ajax.Request(_path + 'api/modules/navi/close/' + id_item, {});
			}
			onFinish.cat = cat;
			new Effect.BlindUp(id_item, {afterFinish:onFinish});
		}
	}
	return true;
}
//toggle-form-areas
function toggleFormArea(id_area, value) {
	var item = $(id_area);
	var current = item.style.display;
	var toggleItems = $$(" .toggle-required");
	if(current == 'none' && value == 'other') {
		toggleItems.each(function(n) {
			n.addClassName("required");
		});
		//new Effect.BlindDown(id_area);
		$(id_area).toggle();
	}
	if(current != 'none') {
		toggleItems.each(function(n) {
			n.removeClassName("required");
			n.removeClassName("form-error");
		});
		//new Effect.BlindUp(id_area);
		$(id_area).toggle();
	}
	return true;
}

//toggle-form-areas
function toggleInsurance(id_area) {
	var item = $(id_area);
	var current = item.style.display;
	//reset subnavis
	var toggleElements = $$('#'+id_area+' .toggle-required');
	if(current == 'none') {
		toggleElements.each(function(n) {
			n.addClassName("required");
			//alert('1');
		});
		//new Effect.BlindDown(id_area);
		$(id_area).toggle();
		//alert('1');
	} else {
		toggleElements.each(function(n) {
			n.removeClassName("required");
			n.removeClassName("form-error");
		});
		//new Effect.BlindUp(id_area);
		$(id_area).toggle();
	}
	return true;
}

function insuranceMust(parent, child) {
	if($(parent).checked == true) {
		$(child).writeAttribute('checked','checked');
		$(child).writeAttribute('disabled','disabled');
		$('co-payment-1-additional').show();
	} else {
		if($(child).disabled == true) {
			$(child).removeAttribute('disabled');
		}
		$(child).removeAttribute('checked');
		if($(child).checked == false) {
			$('co-payment-1-additional').hide();
		}
	}
}

function addInsurance(current) {
	var html = 	  '<div class="more">'
				+ '	<p class="list-1">&nbsp;</p>'
				+ '	<p class="list-2">'
				+ '		<input class="text moreAddress" type="text" name="insurance_to_more[]" value="" onfocus="addInsurance(this);" onblur="removeInsurance();"  />'
				+ '		<br style="clear:left;" />'
				+ '	</p>'
				+ '	<br style="clear:left;" />'
				+ '</div>'
				+ '<div id="moreInsurances">&nbsp;</div>';
	var mores = $$("#moremoreAddresses .moreAddress");
	var count = 0;
	mores.each(function(n) {
		if(n.getValue() == '') count++;
	});
	//alert(count);
	if(count < 2) {
		$(current).addClassName("required");
		$(current).addClassName("req-mail");
		$('moreInsurances').replace(html);
	}
}

function removeInsurance() {
	var moresDivs = $$("#moremoreAddresses .more");	
	var count = 0;
	moresDivs.each(function(n) {
		//alert(n.down(2).value);
		if(n.down(2).getValue() == '') {
			count++;
			n.down(2).removeClassName("required");
			n.down(2).removeClassName("req-mail");
		}
		if(count>1) {
			n.remove();
		}
	});
}

function setFontSize(updown) {
	new Ajax.Request(_path + 'api/modules/fontsize/' + updown+/ajax/, {
		onComplete: function(transport) {
			$('body').removeClassName('text-medium');
			$('body').removeClassName('text-large');
			$('body').addClassName(transport.responseText);
		}
	});
}

//toggle&close
function toggleItemInfo(id_item, id_list, toggle) {
	var item = $(id_item);
	var current = item.style.display;
	var cat = $(id_list);
	//reset subnavis
	var toggleItems = $$(toggle);
	toggleItems.each(function(n) {
		if(n.style.display != 'none') {
			var open = $$('.show')[0];
			var onFinish = function() {
				arguments.callee.o.removeClassName('show');
			}
			onFinish.o = open;
			new Effect.BlindUp(n, {afterFinish: onFinish});
		}
	});
	if(current == 'none') {
		new Effect.BlindDown(id_item);
		cat.addClassName('show');
	} else {
		new Effect.BlindUp(id_item);
		//cat.removeClassName('open')
	}
	return true;
}

//check form
function checkForm(id_form) {
	var fElms = $(id_form).getElements();
	var errorMessage = '';
	var texterror = false;
	for(i=0; i < fElms.length; i++) {
		if(fElms[i].getAttribute('rel')) {
			var checktype	= fElms[i].getAttribute('rel');
			var checkvalue	= fElms[i].value;
			switch (checktype) {
				case 'integer':
					if(isNaN(checkvalue) || checkvalue == '') {
						if(fElms[i].getAttribute('type')=='hidden') {
							switch (_language) {
								case 'de':
									errorMessage += 'Bitte überprüfen Sie Ihre Eingaben!'+"\n";
								break;
								default:
									errorMessage += 'Please check your inputs!'+"\n";
								break;
							}
						}
					} else {
							if(checkvalue) {
								switch (_language) {
									case 'de':
										errorMessage += '"'+checkvalue+'" ist keine Zahl!'+"\n";
									break;
									default:
										errorMessage += '"'+checkvalue+'" is not a number!'+"\n";
									break;
								}
							}
						}
					break;
				case 'text':
					if((checkvalue=='Name' ||  checkvalue=='Nachricht' || checkvalue=='name' ||  checkvalue=='message') && !texterror ) {
						var texterror = true;
						switch (_language) {
							case 'de':
								errorMessage += 'Bitte füllen Sie alle nötigen Felder aus!'+"\n";
							break;
							default:
								errorMessage += 'Please fill in all required informations!'+"\n";
							break;
						}
					}
					break;
				case 'email':
					var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					if(!filter.test(checkvalue)) {
						switch (_language) {
							case 'de':
								errorMessage += 'Bitte überprüfen Sie Ihre Emailadresse!'+"\n";
							break;
							default:
								errorMessage += 'Please check your email-address!'+"\n";
							break;
						}
					}
					break;
			}
		}
	}
	if(errorMessage!='') {
		alert(errorMessage);
		return false;
	}
	return true;
}

function check_form(form, check) {
	var failedElements = [];
	check.each(function(n) {
		var parts = n.split("=");
		var elem = form[parts[0]];
		if (parts[1].charAt(parts[1].length - 1) == "*") {
			console.log(n);
			if (parts[1].charAt(parts[1].length - 2) == "@") {
				var defaultValue = parts[1].substr(0, parts[1].length - 2);
				var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if (!filter.test($F(elem))) {
					failedElements.push(elem);
				}
			} else {
				var defaultValue = parts[1].substr(0, parts[1].length - 1);
				if ($F(elem) == "" || $F(elem) == defaultValue) {
					failedElements.push(elem);
				}
			}
		}
	});
	return failedElements;
}

function check_login_form(form) {
	var messages = [];
	var check = "email=E-Mail@*, password=Passwort*".split(", ");
	var failedElements = check_form(form, check);
	form.getElements().each(function(e) {
		e.removeClassName("form-error");
	});
	if (failedElements.length > 0) {
		messages.push("Bitte geben sie eine gültige E-Mail-Adresse und ein Passwort ein!");
		failedElements.each(function(n) {
			n.addClassName("form-error");
		});
		alert(messages.join("\n"));
		return false;
	}
	return true;
}

function check_newsletter_form(form) {
	var messages = [];
	var check = "email=E-Mail@*".split(", ");
	var failedElements = check_form(form, check);
	form.getElements().each(function(e) {
		e.removeClassName("form-error");
	});
	if (failedElements.length > 0) {
		messages.push("Bitte geben sie eine gültige E-Mail-Adresse ein!");
		failedElements.each(function(n) {
			n.addClassName("form-error");
		});
		alert(messages.join("\n"));
		return false;
	}
	return true;
}

function check_contact_form(form) {
	var messages = [];
	var check = "lastname=Name*, firstname=Vorname*, email=E-Mail@*, message=Nachricht*".split(", ");
	var failedElements = check_form(form, check);
	form.getElements().each(function(e) {
		e.removeClassName("form-error");
	});
	if (failedElements.length > 0) {
		messages.push("Bitte füllen Sie das Formular vollständig aus!");
		failedElements.each(function(n) {
			n.addClassName("form-error");
		});
		alert(messages.join("\n"));
		return false;
	}
	return true;
}

function confirmation(text) {
	var yes = confirm(text);
	if (yes) return true;
	return false;
}

function hideElement(id) {
	$(id).hide();
}

//forum
function text_counter(textarea, countdown, maxlimit) {
	area = document.getElementById(textarea);
	if (area.value.length > maxlimit) {
  		area.value = area.value.substring(0, maxlimit);
  		alert("Sie haben die maximal zulässige Anzahl an Zeichen erreicht.\nBitte kürzen Sie entsprechend Ihren Text.");
	} else {
 		document.getElementById(countdown).innerHTML = '('+(maxlimit-area.value.length)+' Zeichen verbleiben)';
	}
}

function add_post(form_id, topic_id) {
	var form = $(form_id);
	var success = check_default_form(form_id);
	if (success) {
		new Ajax.Request(form.readAttribute('action') + '/?ajax=1',  {
			parameters: form.serialize(),
			onSuccess: function(transport) {
				if(transport.responseText == 'error') {
					alert("Systemfehler");
				}
				else {
					//new Effect.toggle('add-post-' + topic_id);
					new Form.reset('add-post-form');
					new Insertion.After('new-post', transport.responseText);
					new Effect.BlindUp('area-post');
				}
			}
		});
	}
	return false;
}

function add_topic(form_id, category_id) {
	var form = $(form_id);
	var success = check_default_form(form_id);
	if (success) {
		new Ajax.Request(form.readAttribute('action') + '/?ajax=1',  {
			parameters: form.serialize(),
			onSuccess: function(transport) {
				if(transport.responseText == 'error') {
					alert("Systemfehler");
				}
				else {
					//new Effect.toggle('add-post-' + topic_id);
					new Form.reset('add-topic-form');
					new Insertion.After('new-theme', transport.responseText);
					new Effect.BlindUp('add-topic-' + category_id);
				}
			}
		});
	}
	return false;
}

function next_date_field(field,next) {
	if(field.value.length==2) next.focus();
}

function check_date_fields(field) {
	if($('date_day').value.length!=2) {
		$('date_day').focus();
	} else if($('date_month').value.length!=2) {
		$('date_month').focus();
	} else if($('date_year').value.length!=4) {
		$('date_year').focus();
	} else return false;
}

//check_form.js
var check_types = ["req-int", "req-mail", "req-noint", "req-float", "req-date", "req-minlen"];
function form_get_failed(formID) {
	var failed = [];
	var form = $(formID);
	var reqs = $$("#" + formID + " .required");
	reqs.each(function(e) {
		var req_type = get_req_type(e);
		var valid;
		switch (req_type) {
			case "req-int":
				valid = check_form_int(e);
				break;
			case "req-minlen":
				valid = check_form_minlen(e);
				break;
			case "req-mail":
				valid = check_form_mail(e);
				break;
			case "req-noint":
				valid = check_form_noint(e);
				break;
			case "req-float":
				valid = check_form_float(e);
				break;
			case "req-date":
				valid = check_form_date(e);
				break;
			default:
				valid = check_form_notempty(e);
				break;
		}
		if (!valid) {
			failed.push(e);
		}
	});
	return failed;
}

function is_adult(datestr) {
	var regex = /^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4}$/
	if (!regex.test(datestr)) {
		return false;
	}
	var parts = datestr.split(".");
	var d = new Date(parts[2], parts[1] - 1, parts[0]);
	var now = new Date();
	d.setYear(d.getFullYear() + 18);
	if (d.getTime() < now.getTime()) {
		return true;
	} else {
		return false;
	}
}

function form_check(formID) {
	var failed = form_get_failed(formID);
	$$("#" + formID + " .required").each(function(e) {
		if(e.hasClassName('check')) {
			e.up().removeClassName("form-error");
		} else e.removeClassName("form-error");
	});
	$(failed).each(function(e) {
		if(e.hasClassName('check')) {
			e.up().addClassName("form-error");
		} else e.addClassName("form-error");
	});
	return failed.length == 0;
	//return false;
}

function check_form_int(e) {
	var regex = /^\d+$/;
	return check_element_generic(e, regex);
}

function check_form_minlen(e) {
	if(e.value.length < 8) {
		return false;
	} else {
		var regex = /^\d+$/;
		return check_element_generic(e, regex);
	}
}

function check_form_mail(e) {
	var regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return check_element_generic(e, regex);
}

function check_form_notempty(e) {
	var regex = /[^\s]+/;
	return check_element_generic(e, regex);
}

function check_form_noint(e) {
	var regex = /^([a-zA-ZäüöÄÜÖ_\.\-])+$/;
	return check_element_generic(e, regex);
}

function check_form_date(e) {
	var regex = /^[0-3]?\d\.[01]?\d\.[12]\d{3}$/;
	return check_element_generic(e, regex);
}

function check_form_float(e) {
	var regex = /^([0-9\.\,])+$/;
	return check_element_generic(e, regex);
}

function check_element_generic(e, regex) {
	if (trim_string($F(e)) == $(e).readAttribute("title") || 
		!regex.test(trim_string($F(e)))) {
		return false;
	}
	return true;
}

function get_req_type(elem) {
	var classnames = $w(elem.className);
	for (var n = 0; n < classnames.length; n++) {
		for (var t = 0; t < check_types.length; t++) {
			if (classnames[n] == check_types[t]) {
				return check_types[t];
			}
		}
	}
	return "req-notempty";
}

trim_string = function(s) {
	if (s == null) return "";
	var r = s.replace(/^\s+/, '');
	r = r.replace(/\s+$/, '');
	return r;
};

function form_init() {
	$$("input.default, textarea.default").each(function(e) {
		if ($F(e) == "") {
			e.value = e.readAttribute("title");
		}
		e.observe("focus", function(event) {
			var def = $(event.target).readAttribute("title");
			if ($F(event.target) == def) {
				$(event.target).value = "";
			}
		});
		e.observe("blur", function(event) {
			var def = $(event.target).readAttribute("title");
			if ($F(event.target) == "") {
				$(event.target).value = def;
			}
		});
	});
	$$("input.default-pass").each(function(e) {
		if ($F(e) == "") {
			e.value = e.readAttribute("title");
		}
		e.observe("focus", function(event) {
			var def = $(event.target).readAttribute("title");
			if ($F(event.target) == def) {
				$(event.target).value = "";
				$(event.target).type = "password";
			}
		});
		e.observe("blur", function(event) {
			var def = $(event.target).readAttribute("title");
			if ($F(event.target) == "") {
				$(event.target).type = "text";
				$(event.target).value = def;
			}
		});
	});
}

Event.observe(window, "load", form_init);

//check_form_real.js
function check_register_form(formID) {
	var form = $(formID);
	var messages = [];
	var success = form_check(formID);
	if (success) {
		if ($F("passw1") != $F("passw2")) {
			messages.push("Bitte geben Sie zweimal das gleiche Passwort ein!");
			success = false;
		}
		if(!$F("seller_yes") && !$F("seller_no")) {
			messages.push("Bitte teilen Sie uns mit ob Sie entgeltlich Versicherungsvermittlung betreiben!");
			success = false;
		}
		if(!$F("profession_type_3") && !$F("profession_type_2") && !$F("profession_type_1")) {
			messages.push("Bitte teilen Sie uns Ihr Arbeitsverhältnis mit!");
			success = false;
		}
	} else {
		messages.push("Bitte füllen Sie das Formular vollständig aus!");
	}
	if (!success) {
		messages = messages.join("\n");
		alert(messages);
	}
	return success;
}

function check_update_form(formID) {
	var form = $(formID);
	var messages = [];
	var success = form_check(formID);
	if (success) {
	} else {
		messages.push("Bitte füllen Sie das Formular vollständig aus!");
	}
	if (!success) {
		messages = messages.join("\n");
		alert(messages);
	}
	return success;
}

function check_default_form(formID) {
	var success = form_check(formID);
	if (!success) {
		messages = "Bitte füllen Sie das Formular vollständig aus!";
		alert(messages);
	}
	return success;
}

//datepicker.js
var datePickerDivID = "datepicker";
var iFrameDivID = "datepickeriframe";
var dayArrayShort = new Array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
var dayArrayMed = new Array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
var dayArrayLong = new Array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'DOnnerstag', 'Freitag', 'Samstag');
var monthArrayShort = new Array('Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez');
var monthArrayMed = new Array('Jan', 'Feb', 'Mar', 'Apr', 'Mai', 'Juni', 'Juli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dez');
var monthArrayLong = new Array('Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember');
var defaultDateSeparator = "/";        // common values would be "/" or "."
var defaultDateFormat = "mdy"    // valid values are "mdy", "dmy", and "ymd"
var dateSeparator = defaultDateSeparator;
var dateFormat = defaultDateFormat;

function displayDatePicker(dateFieldName, displayBelowThisObject, dtFormat, dtSep)
{
  var targetDateField = document.getElementsByName (dateFieldName).item(0);
  if (!displayBelowThisObject)
    displayBelowThisObject = targetDateField;
  if (dtSep)
    dateSeparator = dtSep;
  else
    dateSeparator = defaultDateSeparator;
  if (dtFormat)
    dateFormat = dtFormat;
  else
    dateFormat = defaultDateFormat;
  var x = displayBelowThisObject.offsetLeft + displayBelowThisObject.offsetHeight;
  var y = displayBelowThisObject.offsetTop + 2;
  var parent = displayBelowThisObject;
  while (parent.offsetParent) {
    parent = parent.offsetParent;
    x += parent.offsetLeft;
    y += parent.offsetTop ;
  }
  drawDatePicker(targetDateField, x, y);
}

function drawDatePicker(targetDateField, x, y)
{
  var dt = getFieldDate(targetDateField.value );
  if (!document.getElementById(datePickerDivID)) {
    var newNode = document.createElement("div");
    newNode.setAttribute("id", datePickerDivID);
    newNode.setAttribute("class", "dpDiv");
    newNode.setAttribute("style", "visibility: hidden;");
    document.body.appendChild(newNode);
  }
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.position = "absolute";
  pickerDiv.style.left = x + "px";
  pickerDiv.style.top = y + "px";
  pickerDiv.style.visibility = (pickerDiv.style.visibility == "visible" ? "hidden" : "visible");
  pickerDiv.style.display = (pickerDiv.style.display == "block" ? "none" : "block");
  pickerDiv.style.zIndex = 10000;
  refreshDatePicker(targetDateField.name, dt.getFullYear(), dt.getMonth(), dt.getDate());
}

function refreshDatePicker(dateFieldName, year, month, day)
{
  var thisDay = new Date();
 
  if ((month >= 0) && (year > 0)) {
    thisDay = new Date(year, month, 1);
  } else {
    day = thisDay.getDate();
    thisDay.setDate(1);
  }
  var crlf = "\r\n";
  var TABLE = "<table cols=7 class='dpTable'>" + crlf;
  var xTABLE = "</table>" + crlf;
  var TR = "<tr class='dpTR'>";
  var TR_title = "<tr class='dpTitleTR'>";
  var TR_days = "<tr class='dpDayTR'>";
  var TR_todaybutton = "<tr class='dpTodayButtonTR'>";
  var xTR = "</tr>" + crlf;
  var TD = "<td class='dpTD' onMouseOut='this.className=\"dpTD\";' onMouseOver=' this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
  var TD_title = "<td colspan=5 class='dpTitleTD'>";
  var TD_buttons = "<td class='dpButtonTD'>";
  var TD_todaybutton = "<td colspan=7 class='dpTodayButtonTD'>";
  var TD_days = "<td class='dpDayTD'>";
  var TD_selected = "<td class='dpDayHighlightTD' onMouseOut='this.className=\"dpDayHighlightTD\";' onMouseOver='this.className=\"dpTDHover\";' ";    // leave this tag open, because we'll be adding an onClick event
  var xTD = "</td>" + crlf;
  var DIV_title = "<div class='dpTitleText'>";
  var DIV_selected = "<div class='dpDayHighlight'>";
  var xDIV = "</div>";
  var html = TABLE;
  html += TR_title;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, -1, "&lt;") + xTD;
  html += TD_title + DIV_title + monthArrayLong[ thisDay.getMonth()] + " " + thisDay.getFullYear() + xDIV + xTD;
  html += TD_buttons + getButtonCode(dateFieldName, thisDay, 1, "&gt;") + xTD;
  html += xTR;
  html += TR_days;
  for(i = 0; i < dayArrayShort.length; i++)
    html += TD_days + dayArrayShort[i] + xTD;
  html += xTR;
  html += TR;
  for (i = 0; i < thisDay.getDay(); i++)
    html += TD + "&nbsp;" + xTD;
  do {
    dayNum = thisDay.getDate();
    TD_onclick = " onclick=\"updateDateField('" + dateFieldName + "', '" + getDateString(thisDay) + "');\">";
    if (dayNum == day)
      html += TD_selected + TD_onclick + DIV_selected + dayNum + xDIV + xTD;
    else
      html += TD + TD_onclick + dayNum + xTD;
    if (thisDay.getDay() == 6)
      html += xTR + TR;
    thisDay.setDate(thisDay.getDate() + 1);
  } while (thisDay.getDate() > 1)
  if (thisDay.getDay() > 0) {
    for (i = 6; i > thisDay.getDay(); i--)
      html += TD + "&nbsp;" + xTD;
  }
  html += xTR;
  var today = new Date();
  var todayString = "Today is " + dayArrayMed[today.getDay()] + ", " + monthArrayMed[ today.getMonth()] + " " + today.getDate();
  html += TR_todaybutton + TD_todaybutton;
  html += "<button class='dpTodayButton' onClick='updateDateField(\"" + dateFieldName + "\");'> SCHLIESSEN </button>";
  html += xTD + xTR;
  html += xTABLE;
  document.getElementById(datePickerDivID).innerHTML = html;
  adjustiFrame();
}

function getButtonCode(dateFieldName, dateVal, adjust, label)
{
  var newMonth = (dateVal.getMonth () + adjust) % 12;
  var newYear = dateVal.getFullYear() + parseInt((dateVal.getMonth() + adjust) / 12);
  if (newMonth < 0) {
    newMonth += 12;
    newYear += -1;
  }
  return "<button class='dpButton' onClick='refreshDatePicker(\"" + dateFieldName + "\", " + newYear + ", " + newMonth + ");'>" + label + "</button>";
}

function getDateString(dateVal)
{
  var dayString = "00" + dateVal.getDate();
  var monthString = "00" + (dateVal.getMonth()+1);
  dayString = dayString.substring(dayString.length - 2);
  monthString = monthString.substring(monthString.length - 2);
 
  switch (dateFormat) {
    case "dmy" :
      return dayString + dateSeparator + monthString + dateSeparator + dateVal.getFullYear();
    case "ymd" :
      return dateVal.getFullYear() + dateSeparator + monthString + dateSeparator + dayString;
    case "mdy" :
    default :
      return monthString + dateSeparator + dayString + dateSeparator + dateVal.getFullYear();
  }
}

function getFieldDate(dateString)
{
  var dateVal;
  var dArray;
  var d, m, y;
  try {
    dArray = splitDateString(dateString);
    if (dArray) {
      switch (dateFormat) {
        case "dmy" :
          d = parseInt(dArray[0], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
        case "ymd" :
          d = parseInt(dArray[2], 10);
          m = parseInt(dArray[1], 10) - 1;
          y = parseInt(dArray[0], 10);
          break;
        case "mdy" :
        default :
          d = parseInt(dArray[1], 10);
          m = parseInt(dArray[0], 10) - 1;
          y = parseInt(dArray[2], 10);
          break;
      }
      dateVal = new Date(y, m, d);
    } else if (dateString) {
      dateVal = new Date(dateString);
    } else {
      dateVal = new Date();
    }
  } catch(e) {
    dateVal = new Date();
  }
  return dateVal;
}

function splitDateString(dateString)
{
  var dArray;
  if (dateString.indexOf("/") >= 0)
    dArray = dateString.split("/");
  else if (dateString.indexOf(".") >= 0)
    dArray = dateString.split(".");
  else if (dateString.indexOf("-") >= 0)
    dArray = dateString.split("-");
  else if (dateString.indexOf("\\") >= 0)
    dArray = dateString.split("\\");
  else
    dArray = false;
  return dArray;
}

function updateDateField(dateFieldName, dateString)
{
  var targetDateField = document.getElementsByName (dateFieldName).item(0);
  if (dateString)
    targetDateField.value = dateString;
 
  var pickerDiv = document.getElementById(datePickerDivID);
  pickerDiv.style.visibility = "hidden";
  pickerDiv.style.display = "none";
 
  adjustiFrame();
  targetDateField.focus();
 
  if ((dateString) && (typeof(datePickerClosed) == "function"))
    datePickerClosed(targetDateField);
}

function adjustiFrame(pickerDiv, iFrameDiv)
{
  var is_opera = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
  if (is_opera)
    return;
  try {
    if (!document.getElementById(iFrameDivID)) {
      var newNode = document.createElement("iFrame");
      newNode.setAttribute("id", iFrameDivID);
      newNode.setAttribute("src", "javascript:false;");
      newNode.setAttribute("scrolling", "no");
      newNode.setAttribute ("frameborder", "0");
      document.body.appendChild(newNode);
    }
    if (!pickerDiv)
      pickerDiv = document.getElementById(datePickerDivID);
    if (!iFrameDiv)
      iFrameDiv = document.getElementById(iFrameDivID);
    try {
      iFrameDiv.style.position = "absolute";
      iFrameDiv.style.width = pickerDiv.offsetWidth;
      iFrameDiv.style.height = pickerDiv.offsetHeight ;
      iFrameDiv.style.top = pickerDiv.style.top;
      iFrameDiv.style.left = pickerDiv.style.left;
      iFrameDiv.style.zIndex = pickerDiv.style.zIndex - 1;
      iFrameDiv.style.visibility = pickerDiv.style.visibility ;
      iFrameDiv.style.display = pickerDiv.style.display;
    } catch(e) {
    }
  } catch (ee) {
  }
}

//tooltip.js

function show_tooltip(id, text) {
	var element = $(id);
	var offset = element.cumulativeOffset();
	var windowOffset = document.viewport.getHeight();
	var hint = '<div class="h" style="top:-800px;left:' + (offset[0] - 17) + 'px"><div class="head">&nbsp;</div><div class="body">' + text + '</div><div class="foot">&nbsp;</div></div>';
	new Insertion.Bottom('body', hint)
	var new_height = $$('div.h')[0].getHeight() - 2;
	$$('.h')[0].setStyle({
		'top':  offset[1] - (new_height) + 'px'
	});
}

function hide_tooltip() {
	$$('div.h')[0].remove();
}