HandleMeldung = Class.create();
HandleMeldung.prototype =
{

	defaulttext: null,
	
	initialize: function(e)
	{
	},
	
	showMeldung: function(typ,id,element,update)
	{
		if($('meldenDiv').style.display == 'none')
		{
			update = $('meldenDiv');
			element = $(element);
			
			update.style.position = 'absolute';
			var offsets = Position.cumulativeOffset(element);
			update.style.left = (offsets[0] + element.offsetWidth - 308) + 'px';
			update.style.top  = (offsets[1] + element.offsetHeight + 3) + 'px';
	
			var pageUrl = encodeURIComponent(window.location.href);
			var pars = 'action=request&pageURL='+pageUrl+'&meldTyp='+typ+'&meldId='+id;
			new Ajax.Request(
				'/ajax/melden.php',
				{ 
					method: 'post',
					parameters: pars,
					asynchronous:true, 
					onSuccess: this.doShowMeldung.bind(this),
					onFailure: this.handleFailure.bind(this)
				});
		}
		else
		{
			new Effect.Fade('meldenDiv',{duration:0.4});
		}
		return false;
	},
	
	doShowMeldung: function(response)
	{
		$('meldenDiv').innerHTML = response.responseText;
		this.defaulttext = $('meldText').value;
		new Effect.Appear('meldenDiv',{duration:0.4});
	},
	
	newMeldung: function()
	{
		if($('meldText').value == this.defaulttext)
		{
			this.handleFailure('Bitte Grund angeben!');
		}
		else
		{
			$('msgErrorMelden').style.display = 'none';
			$('loadingMelden').className = 'photosLoading';
			var url = encodeURIComponent($('meldUrl').value);
			var text = $('meldText').value;
			var typ = $('meldTyp').value;
			var id = encodeURIComponent($('meldId').value);
			if($('meldUserId').value != '')
			{
				var pars = 'action=save&meldText='+text+'&meldUrl='+url+'&meldTyp='+typ+'&meldId='+id;
			}
			else
			{
				var name = $('meldName').value;
				name = encodeURIComponent(name);
				var email = $('meldEmail').value;
				email = encodeURIComponent(email);
				var pars = 'action=save&meldText='+text+'&meldUrl='+url+'&meldTyp='+typ+'&meldId='+id+'&meldName='+name+'&meldEmail='+email;
			}
			if((typ == 'Userportal-Eintrag') || (typ == 'User')) pars += '&userportalId='+$('userportalId').value
			new Ajax.Request(
				'/ajax/melden.php',
				{ 
					method: 'post',
					parameters: pars,
					asynchronous:true, 
					onSuccess: this.doNewMeldung.bind(this),
					onFailure: this.handleFailure.bind(this)
				});
		}
	},
	
	doNewMeldung: function(response)
	{
		var newResponse = response.responseText.split(",");
		if(newResponse[0] == 0)
		{
			$('msgErrorMelden').innerHTML = newResponse[1];
			$('msgErrorMelden').className = 'msgtyperror';
			new Effect.Appear('msgErrorMelden',{duration : 0.5});
		}
		else if(newResponse[0] == 1)
		{
			$('meldenForm').style.display = 'none';
			$('msgErrorMelden').innerHTML = newResponse[1];
			$('msgErrorMelden').className = 'msgtypok';
			new Effect.Fade('meldenForm',{duration : 0.5});
			new Effect.Appear('msgErrorMelden',{duration : 0.5});
			new Effect.Appear('meldenCloseDiv');
			
		}
		else
		{
			$('msgErrorMelden').innerHTML = 'Unerwarteter Fehler aufgetreten - ' + newResponse[0];
			$('msgErrorMelden').className = 'msgtyperror';
			new Effect.Appear('msgErrorMelden',{duration : 0.5});
		}
		$('loadingMelden').className = '';
	},
	
	handleFailure: function(response)
	{
		$('msgErrorMelden').className = 'msgtyperror';
		$('msgErrorMelden').innerHTML = response;
		new Effect.Appear('msgErrorMelden',{duration : 0.5});
	}
}

var objHandleMeldung = new HandleMeldung();