function AssArray(){
	this.objects=new Array();
}

AssArray.prototype.put=function(key,value){
	var drin=false;
	for (var i=0;i<this.objects.length;i++){
		if (this.objects[i].key==key){
			this.objects[i].value=value;
			drin=true;
		}
	}
	if (!drin){
		var o=new Object();
		o.key=key;
		o.value=value;
		this.objects.push(o);
	}
}

AssArray.prototype.get=function(key){
	for (var i=0;i<this.objects.length;i++){
		if (this.objects[i].key==key){
			return this.objects[i].value
		}
	}
	return null;
}

function UserHandler(){
	this.sessionAttributes=new AssArray();
	
}

UserHandler.JSON_CMD_GET_SESSION_ATTRIBUTE=1;
UserHandler.JSON_CMD_SET_SESSION_ATTRIBUTE=2;

UserHandler.prototype.setSessionAttribute=function(key,value){
	this.sessionAttributes.put(key,value);
	WebsiteContent.showAjaxLoading();
	AJAX_LINK = HOST + "/index.php?type=18&cmd="+UserHandler.JSON_CMD_SET_SESSION_ATTRIBUTE+"&key="+encodeURIComponent(key)+"&value="+encodeURIComponent(value)+"&rnd="+Math.random();
	var that=this;
	var rw=false;
	WebsiteContent.echoAjaxError();
	$.getJSON(AJAX_LINK ,function(data) {
			if (!data){	/*alert("Ajax Error at UserHandler.setSessionAttribute");*/}
			WebsiteContent.hideAjaxLoading();
		}
	);
}

//key, callbackfunktionsnamen-
UserHandler.prototype.getSessionAttribute=function(key,callbackfunc,callbackparams){
	var v=this.sessionAttributes.get(key);
	if (v){return callbackfunc(v,callbackparams);}
	WebsiteContent.showAjaxLoading();
	AJAX_LINK = HOST + "/index.php?type=18&cmd="+UserHandler.JSON_CMD_GET_SESSION_ATTRIBUTE+"&key="+encodeURIComponent(key)+"&rnd="+Math.random();
	var that=this;
	var rw=null;
	WebsiteContent.echoAjaxError();
	$.getJSON(AJAX_LINK ,function(data) {
			if (data) {
				that.sessionAttributes.put(key,data);callbackfunc(data,callbackparams);
			}
			WebsiteContent.hideAjaxLoading();
		}
	);
}



UserHandler.prototype.saveLayerPosition=function(objectName){
	var value="["+$("#"+objectName).position().left +","+$("#"+objectName).position().top +"]";
	this.setSessionAttribute(objectName+"Position",value);
}
UserHandler.prototype.restoreLayerPosition=function(objectName,skipShow){
	user.getSessionAttribute(objectName+"Position",this.restoreLayerPositionCallback,{"objectName":objectName,"skipShow":skipShow});
}

UserHandler.prototype.restoreLayerPositionCallback = function(o,params) {
	objectName=params.objectName;
	if (!o) {if (!params.skipShow)$("#"+objectName).show();return;}
	else {o=eval(o);if (isNaN(o[0])||isNaN(o[1])) {if (!params.skipShow)$("#"+objectName).show();return;}}
	$("#"+objectName).css({'top': o[1]+'px','left': o[0]+'px'});
	if (!params.skipShow)$("#"+objectName).show();
}



var user=null;
$(document).ready(function() { 
	user=new UserHandler();
});



