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;
}
