/*NACHRICHTEN*/

//toggle&close
function toggleItemInfoMessages(id_item, id_list, toggle, message_id) {
	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 Ajax.Request(_path + 'api/'+_iso+'/modules/loader', {
	    	method: 'get',
	    	parameters: {module: 'get_messages', file:'modules/messages/message.html', foreign:message_id},
	    	onSuccess:function(transport) {
				$('message-status-' + message_id).src = _path + 'app/templates/img/icon.message.read.gif';
				//hier den status gelesen setzen
				$('message-container-' + message_id).update(transport.responseText);

	    	},
	    	onComplete: new Effect.BlindDown(id_item)
	    });
			cat.addClassName('open');
	} else {
		new Effect.BlindUp(id_item);
		//cat.removeClassName('open')
	}





	return true;
}


function markCheckboxBySelector(selector) {
	$$(selector).each(function(e) {
	e.checked = true;
	});
	
	return false;
}

function disableBySelection(selected,value,selector) {
	elmements = $$(selector);
	if(selected==value) {
		elmements.each(function(e) {
			e.disable();
		});
	} else {
		elmements.each(function(e) {
			e.enable();
		});
	}
	return false;
}


function getMessagesToDelete() {

	if(!confirmation(_lang_delete_messages)) {
		return false;
	}

	var ret = '';

	$$('input').each(function(item) {
		if(item.type=='checkbox' && item.checked) {
			ret +=  item.value + ',';
		}
	});

	if(ret == '') {
		alert(_lang_nothing_marked);
		return false;
	}

	new Ajax.Request(_path +'api/'+_iso+'/messages/delete/' + ret,  {
		onSuccess: function(transport) {
			top.location = top.location.href;
		}
	});

	return false;
}



/*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(_lang_system_error);
			}
			else {

				new Insertion.Before('new-' + topic_id, transport.responseText);
				$('text-' + topic_id).value = _lang_answer;
				new Effect.BlindUp('area-new-' + topic_id);

			}
		}
	});

	return false;
}

function forum_edit_get_post(id, elm) {

	var element = $(elm).up(1);
	new Ajax.Request(_path + 'api/'+_iso+'/forum/get_edit_post/'+id,  {
		onComplete: function(transport) {
			if(transport.responseText == 'error') {
				alert(_lang_system_error);
			}
			else {

				$(element).replace(transport.responseText);

			}
		}
	});
}

function forum_edit_save_post(id, elm) {

	var element = $(elm).up(1);
	var text = $(elm).previous(1).value;

	new Ajax.Request(_path + 'api/'+_iso+'/forum/edit_post/'+id,  {
		method: 'post',
		parameters: {text: text},
		onComplete: function(transport) {
			if(transport.responseText == 'error') {
				alert(_lang_system_error);
			}
			else {
				$(element).replace(transport.responseText);

			}
		}
	});
}

function forum_delete_post(id, elm) {

	if(!confirmation(_lang_confirm_delete)) {
		return false;
	}

	var element = $(elm).up(1);

	new Ajax.Request(_path + 'api/'+_iso+'/forum/delete_post/'+id,  {
		onComplete: function(transport) {
			if(transport.responseText == 'error') {
				alert(_lang_system_error);
			}
			else {
				$(element).replace();
			}
		}
	});
}

function forum_delete_topic(id, elm) {

	if(!confirmation(_lang_confirm_delete)) {
		return false;
	}

	var element = $(elm).up(1);

	new Ajax.Request(_path + 'api/'+_iso+'/forum/delete_topic/'+id,  {
		onComplete: function(transport) {
			if(transport.responseText == 'error') {
				alert(_lang_system_error);
			}
			else {
				alert(_lang_topic_deleted);
			}
		}
	});
}

function forum_block_topic(id, elm) {

	if(!confirmation(_lang_confirm_block)) {
		return false;
	}

	var element = $(elm).up(1);

	new Ajax.Request(_path + 'api/'+_iso+'/forum/block_topic/'+id,  {
		onComplete: function(transport) {
			if(transport.responseText == 'error') {
				alert(_lang_system_error);
			}
			else {
				alert(_lang_topic_blocked);
			}
		}
	});
}

function forum_unblock_topic(id, elm) {

	if(!confirmation(_lang_confirm_unlock)) {
		return false;
	}

	var element = $(elm).up(1);

	new Ajax.Request(_path + 'api/'+_iso+'/forum/unblock_topic/'+id,  {
		onComplete: function(transport) {
			if(transport.responseText == 'error') {
				alert(_lang_system_error);
			}
			else {
				alert(_lang_topic_unlocked);
			}
		}
	});
}

function load_calendar(date) {
	template_loader('calendar', 'components/teasers/calendar.html', date, 'calendarcontent');
}

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()) ? _lang_show_comments  : _lang_hide_comments;

	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');
	} else {
		if (show == undefined || show == false) {
			var onFinish = function() {
				arguments.callee.cat.removeClassName('open');
			}

			onFinish.cat = cat;

			new Effect.BlindUp(id_item, {afterFinish:onFinish});

		}
	}
	return true;
}


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



//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') {

							errorMessage += _lang_form_check_inputs +"\n";
						}

						} else {

							if(checkvalue) {

								errorMessage += '"'+checkvalue+'" '+_lang_form_notanumber+"\n";
							}
						}

					break;

				case 'text':
					if((checkvalue== _lang_form_defaultname ||  checkvalue==_lang_form_defaultmessage) && !texterror ) {
						var texterror = true;

						errorMessage += _lang_form_fillall+"\n";

					}

					break;

				case 'email':
					var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					if(!filter.test(checkvalue)) {

						errorMessage += _lang_form_checkemail+"\n";

					}

					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="+_lang_form_defaultmail+"*, password="+_lang_form_defaultpass+"*".split(", ");

	var failedElements = check_form(form, check);

	form.getElements().each(function(e) {
		e.removeClassName("form-error");
	});

	if (failedElements.length > 0) {
		messages.push(_lang_form_check_inputs);

		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="+_lang_form_defaultmail+"*".split(", ");
	var failedElements = check_form(form, check);

	form.getElements().each(function(e) {
		e.removeClassName("form-error");
	});

	if (failedElements.length > 0) {
		messages.push(_lang_form_checkemail);

		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="+_lang_form_defaultname+"*, firstname="+_lang_form_defaultfirstname+"*, email="+_lang_form_defaultmail+"*, message="+_lang_form_defaultmessage+"*".split(", ");

	var failedElements = check_form(form, check);

	form.getElements().each(function(e) {
		e.removeClassName("form-error");
	});

	if (failedElements.length > 0) {
		messages.push(_lang_form_fillall);

		failedElements.each(function(n) {
			n.addClassName("form-error");
		});

		alert(messages.join("\n"));

		return false;
	}

	return true;
}

function setTeamRanking(params,  round) {
	new Ajax.Request(_path + 'api/'+_iso+'/team/set_ranking/' + round,  {
		parameters: params,
		onComplete: function(transport) {
			new Insertion.Before('set-ranking', transport.responseText);
		}
	});
	return false;
}

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


function buildDivisions(country_id, selected) {
	new Ajax.Request(_path + 'api/'+_iso+'/account/get_division_select/' + country_id + '/' + selected,  {
		onComplete: function(transport) {
			$('select_division').replace(transport.responseText);
		}
	});
	return false;
}


function template_loader(module, file, foreign, update_element) {
    new Ajax.Request(_path + 'api/'+_iso+'/modules/loader', {
    	method: 'get',
    	parameters: {module: module, file:file, foreign:foreign},
    	onSuccess:function(transport) {
    		if($(update_element)) {
    			$(update_element).update(transport.responseText);
    		}
    	}
    });
    return false;
}
