/*FORUM*/

function add_post(form_id, topic_id) {

	var form = $(form_id);
	var text = $('text-' + topic_id).value;

	if(!text || text == 'Antwort') return false;

	new Ajax.Request(form.readAttribute('action') + '/?ajax=1&text=' + escape(text),  {
		onSuccess: function(transport) {
			if(transport.responseText == 'error') {
				alert("Systemfehler");
			}
			else {
				new Insertion.Before('new-' + topic_id, transport.responseText);
				$('text-' + topic_id).value = 'Antwort';
				new Effect.BlindUp('area-new-' + topic_id);
			}
		}
	});

	return false;
}

function toggleOtherElement(selected, element) {
	if(selected=='other') {
		$(element).style.display = 'block';
	}
	else $(element).style.display = 'none';
}

function toggleComments(link) {

	var container = $('container-comments');
	var caption = (container.visible()) ? 'Kommentare einblenden' : 'Kommentare ausblenden';

	link.update(caption);
	link.title = caption;

	container.toggle();
	//new Effect.toggle(container, 'blind');
	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;
}

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 = $$('.open')[0];
			var onFinish = function() {
				arguments.callee.o.removeClassName('open');
			}
			onFinish.o = open;
			new Effect.BlindUp(n, {afterFinish: onFinish});
			
		}
	});

	if(current == 'none') {
		new Effect.BlindDown(id_item);
		cat.addClassName('open');
	} else {
		new Effect.BlindUp(id_item);
		//cat.removeClassName('open')
	}
	
	return true;
}

//toggle-form-areas
function toggleFormArea(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;
}

//toggle-form-areas by selected value
function toggleFormAreaOther(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;
}

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