var MerkZettel = Class.create({

initialize: function(name){
	this.name = name;

	this.container = "merkzettel";
	this.messageContainer = "merkzettel_message";
	this.anzalContainer = "anzahl_im_merkzettel";
	this.e = window.event;
	this.idObjekt = 0;
	this.divPrefix = "Obj_";
	this.remoteurl = "/web/skripte/merkzettel_action.cfm/";
	this.querystring = "";
	this.target = null;
	that = null;
},

add: function(idObjekt, event){
		this.idObjekt = idObjekt
		this.e = event;
		that = this;
		new Ajax.Request(this.remoteurl+"action/add/idobjekt/"+this.idObjekt, {   
		onSuccess: that.success,
		onFailure: that.failure
		});
	
		this.cancelBubble();
		this.removeObjektLink(this.idObjekt);
},

remove: function(idObjekt, event){
		this.idObjekt = idObjekt
		this.e = event;
		that = this;
		new Ajax.Request(this.remoteurl+"action/delete/idobjekt/"+this.idObjekt, {   
		onSuccess: this.success,
		onFailure: this.failure
		});

		this.cancelBubble();
		this.addObjektLink(this.idObjekt);
},

removeall: function(){
		that = this;
		new Ajax.Request(this.remoteurl+"action/deleteall", {   
		onSuccess: this.success,
		onFailure: this.failure
		});
},

cancelBubble: function(){
		try{
			this.e.cancelBubble = true;
			if(this.e.stopPropagation)
				this.e.stopPropagation();
		} catch(error){
			alert(error.description);
		}
},

addObjektLink: function(idObjekt){
		this.target = (this.e.srcElement)? this.e.srcElement:this.e.target;
		if(navigator.userAgent.indexOf("Gecko")>-1) 
		    this.target.setAttribute("onclick","merkzettel.add("+this.idObjekt+",event)");  
		else 
			this.target.onclick = function() { merkzettel.add(idObjekt,event) };  
		this.target.className = 'reise_merken';
},

removeObjektLink: function(idObjekt){
		this.target = (this.e.srcElement)? this.e.srcElement:this.e.target;
		if(navigator.userAgent.indexOf("Gecko")>-1) 
		    this.target.setAttribute("onclick","merkzettel.remove("+this.idObjekt+",event)");  
		else 
			this.target.onclick = function() { merkzettel.remove(idObjekt, event) };  
		this.target.className = 'reise_gemerkt';
},

success: function(transport){
	
	var oContainer = $(that.container);
	var oAnzalContainer = $(that.anzalContainer);
	var data = transport.responseText.evalJSON();

	if(parseInt(data.anzahl) < 1) 
		oContainer.hide();
	else if(parseInt(data.anzahl) > 0 && !oContainer.visible())
		oContainer.show();

	oAnzalContainer.update(data.anzahl);

},

failure: function(transport){
	alert(transport.responseText.strip())
}

});

MerkZettel.prototype.scope = this;
