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);return false;");  
		else 
			this.target.onclick = function() { merkzettel.add(idObjekt,event);return false; };  
		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);return false;");  
		else 
			this.target.onclick = function() { merkzettel.remove(idObjekt, event);return false; };  
		this.target.className = 'reise_gemerkt';
},

updateContainer: function() {

	try {
		var oContainer = $(that.container);
		var oAnzalContainer = $(that.anzalContainer);
		var oCookie = this.getCookie("MERKZETTEL");

		if(oCookie != null)
			var cookie_length = oCookie.split(",").length;
		else
			var cookie_length = 0;

		if(cookie_length < 1) 
			oContainer.hide();
		else if(cookie_length > 0 && !oContainer.visible())
			oContainer.show();
		
		oAnzalContainer.update(cookie_length);
	
		} catch(oException) {
			alert("updateContainer: <br>"+oException.message );	
		}

},

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())
},


setCookie: function(name, value, expires) {

	var curCookie = name + "=" + escape(value) +
	((expires) ? "; expires=" + expires.toGMTString() : "") +
	 "; domain=http://reisefalke.cic.local/web/index.cfm" ;
alert(curCookie)
	document.cookie = curCookie
},

getCookie: function(name) {
	var prefix = name + "="
	var cookieStartIndex = document.cookie.indexOf(prefix)
	
	if (cookieStartIndex == -1)
		return null

	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length)
	if (cookieEndIndex == -1)
		cookieEndIndex = document.cookie.length
	
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex))
},

deleteCookie: function(name, path, domain) {
	if (this.getCookie(name)) {
		document.cookie = name + "=" +
		((path) ? "; path=" + path : "") +
		((domain) ? "; domain=" + domain : "") +"; expires=Thu, 01-Jan-70 00:00:01 GMT"
		}
},

fixDate: function(date) {
	var base = new Date(0)
	var skew = base.getTime()
	if (skew > 0)
		date.setTime(date.getTime() - skew)
}

});