function request(name, url, success, failure)
{
	var element = $('#'+name);
	//Hide any error message
	element.find('div.error').hide();
	//Read all formvalues
	var values = readFormData(element);
	//Submit request
	$.ajax({
		url: url,
		type: "POST",
		data: values,
		dataType: "json",
		success: function(data, textStatus) { requestSuccess(element, data, success, failure); },
		error: function(XMLHttpRequest, textStatus, errorThrown) { requestError(element, textStatus); }
	});
}

jQuery.fn.toggleTD = function() {
	return this.each(function(){
		var vis = $('<td></td>').css('display');
		if($(this).css('display') == 'none') { $(this).css('display', vis); }
		else { $(this).css('display', 'none'); }
	});
};

function footer()
{
	$(document).ready(function(){
		$('#sbNav5').mouseover(function() { $('#sbNav5').attr({src: "/img/ico_sb_mrwong_active.gif"}); });
		$('#sbNav5').mouseout(function() { $('#sbNav5').attr({src: "/img/ico_sb_mrwong.gif"}); });
		$('#sbNav6').mouseover(function() { $('#sbNav6').attr({src: "/img/ico_sb_facebook_active.gif"}); });
		$('#sbNav6').mouseout(function() { $('#sbNav6').attr({src: "/img/ico_sb_facebook.gif"}); });
		$('#sbNav7').mouseover(function() { $('#sbNav7').attr({src: "/img/ico_sb_myspace_active.gif"}); });
		$('#sbNav7').mouseout(function() { $('#sbNav7').attr({src: "/img/ico_sb_myspace.gif"}); });
		$('#sbNav8').mouseover(function() { $('#sbNav8').attr({src: "/img/ico_sb_delicious_active.gif"}); });
		$('#sbNav8').mouseout(function() { $('#sbNav8').attr({src: "/img/ico_sb_delicious.gif"}); });
	});
}

function InitTinyMCE()
{
	tinyMCE.init({
		theme : "advanced",
		mode : "textareas",
		plugins : "fullpage",
		language : "de",
		theme : "advanced",
		skin : "o2k7",
		plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
		theme_advanced_buttons1 : "undo,redo,|,bold,italic,underline,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,outdent,indent,|,sub,sup,|,fontsizeselect,forecolor,|,removeformat,|,link,unlink,image,table,|,hr",
		theme_advanced_buttons2 : "",
		theme_advanced_buttons3 : "",
		theme_advanced_toolbar_location : "top",
		theme_advanced_toolbar_align : "left",				
		content_css : "/css/screen.css",
		relative_urls : false,
		convert_urls : false,
		accessibility_warnings : false
	});
}

function readFormData(element)
{
	//Set default value
	var values = '';
	//Get all input values
	element.find('input[type=\'text\'], input[type=\'hidden\'], input[type=\'password\'], textarea:visible, select, input:checked').each(function()
	{ values += '&'+ $(this).attr('name') +'='+ saveEscape($(this).val()); });
	//Loop all hidden textareas
	element.find('textarea:hidden').each(function()
	{ 
		//Get name for element
		var name = $(this).attr('name');
		//Get editor instance by name
		var editor = tinymce.EditorManager.get(name);
		//Skip if missing
		if(editor == null) { return; }
		//Add values of ck editor instance
		values += '&'+ name +'='+ saveEscape(editor.getContent()); 
	});
	//Return complete values
	return values;
}

function saveEscape(value)
{
	value = escape(value);
	value = value.replace(/\+/g, "%2B");
	return value;
}

function requestSuccess(element, data, success, failure)
{
	if(data.error == 0) { success(data); return; }
	//Error handler
	var err = element.find('div.error');
	//Exit on missing node
	if(err == null) { return; }
	//Set message for element
	err.html(data.errorMsg);
	//Display element
	err.slideDown(300);
	//Check for special error function
	if(failure != null){ failure(data); }
}

function requestError(element, textStatus)
{
	//Error handler
	var err = element.find('div.error');
	//Exit on missing node
	if(err == null) { return; }
	//Set message for element
	err.html(textStatus);
	//Display element
	err.slideDown(300);
}

function toggleTimer(name)
{
	$(name).animate({height:'toggle'}, 500);
	window.setTimeout("$('"+ name +"').animate({height:'toggle'}, 500);", 5000);
}
