var ajaxHelper={
	currentCrud: "",
	currentController: "",
	currentInput: null,
	ajaxInterval: null,
	addEntry: function(){
		if(document.getElementById(ajaxHelper.currentInput.id+'['+this.id+']')==null)
			$('#ajaxDiv').append("<p id=\""+this['id']+"\" onClick=\"ajaxHelper.apply(this);\">" + this['title'] + "</p>");
	},
	create: function(){
		var top = window.innerHeight/2;
		var left = window.innerWidth/2;
		$('#ajaxDiv').load('controller/'+ajaxHelper.currentController+'.asp',{ajax: "ajaxCreate",value: ajaxHelper.currentInput.value});
	},
	apply: function(objekt){
		var obj = {
			id: objekt.id,
			value: objekt.firstChild.data
		};
		ajaxHelper.applyObject(obj);
	},
	applyNew: function(jsonObj){
		jsonObj = eval(jsonObj);
		jsonObj = jsonObj[0];
		var obj = {
			id: jsonObj.id,
			value: jsonObj.title
		};
		ajaxHelper.applyObject(obj);
	},
	applyObject: function(obj){
		if($('#'+ajaxHelper.currentController+'List ul').length==0)
			$('#'+ajaxHelper.currentController+'List').prepend('<ul>');
		var newItem = '<li>' + obj.value;
		if(ajaxHelper.currentCrud.indexOf("D")!=-1)
			newItem = newItem + ' <a onclick="top.delete'+ajaxHelper.currentController.substr(0,1).toUpperCase()+ajaxHelper.currentController.substr(1)+'('+obj.id+', this);">l&ouml;schen</a>';
		newItem = newItem + '<input id="'+ajaxHelper.currentInput.id+'['+obj.id+']" name="'+ajaxHelper.currentInput.id+'['+obj.id+']"'+
			' type="hidden" class="ajaxEntry" value="'+ajaxHelper.currentInput.id+'['+obj.id+']" />'+
			'</li>'
		$('#'+ajaxHelper.currentController+'List ul').append(newItem);
		ajaxHelper.reset();
	},
	updateResults: function(data){
		$('#ajaxDiv').append('<input type="button" id="ajaxCloser" style="float:right" value="x" onclick="ajaxHelper.reset()" /> ')
		$.each(data.items,ajaxHelper.addEntry);
		if(ajaxHelper.currentCrud.indexOf("C")!=-1)
			$('#ajaxDiv').append("<p onClick=\"ajaxHelper.create();\">neu anlegen</p>");
		$('#ajaxDiv').css('display','block');
	},
	update: function(self, controller, crud){
		window.clearTimeout(ajaxHelper.ajaxInterval);
		ajaxHelper.currentCrud = crud;
		ajaxHelper.currentController = controller;
		ajaxHelper.currentInput = self;
		ajaxHelper.ajaxInterval = window.setTimeout(ajaxHelper.doUpdate,500);
	},
	doUpdate: function(){
		$('#ajaxDiv').empty();
		if(ajaxHelper.currentInput.value!="")
			$.post('controller/'+ajaxHelper.currentController+'.asp',{ajax: "ajaxList",value: ajaxHelper.currentInput.value},ajaxHelper.updateResults,"json"); 
		else
			ajaxHelper.reset();
	},
	updateSelf: function(){
		$('#ajaxDiv').empty();
		$.post('controller/'+ajaxHelper.currentController+'.asp',{ajax: "ajaxList",value: ajaxHelper.currentInput.value},ajaxHelper.updateResults,"json"); 
	},
	reset: function(){
		$('#ajaxDiv').empty();
		$('#ajaxDiv').css('display','none');
		ajaxHelper.currentInput.value='';
	}
};

