var general = new Class({
	Implements: [Options, Events],
	options: {
		params 		: '',
		updateDiv 	: '',
		ajaxDatei   : 'ajax_content.php'
			},

    initialize: function(options){
		this.setOptions(options);
	},
	
	
	checkPath:function(){
		if(window.location.pathname.contains('admin')){
			var datei = 'ajax_content.php';
		}else{
			var datei = 'indexAjax.php';	
		}
		return datei
	},
	
	ajaxAsyncUpdate:function(params,updateDiv){
		if(params.contains('#'))params = params.substring(1);
		var req = new Request({  
	        method: 'get',  
	        url: this.options.ajaxDatei,  
	        async : true,
			data:params,
			evalScripts: true,
			update:updateDiv
	 }).send();  
		req.setHeader('content-type','content="text/html; charset=utf-8"');
		return req.send();
	},
	
	ajaxAsync:function(params,updateDiv){
		if(params.contains('#'))params = params.substring(1);
		var req = new Request({  
	        method: 'get',  
	        url: this.options.ajaxDatei,  
	        async : false,
			data:params
	 }).send();  
		
	req.setHeader('content-type','content="text/html; charset=utf-8"');
		return req.response.text;
	},
	
	ajaxParent:function(params,updateDiv){
		if(params.contains('#'))params = params.substring(1);
		var req = new Request.HTML({  
	        method: 'get',  
	        url: this.options.ajaxDatei,  
			data:params,
	   		headers:{'Content-type':  'content=text/html; charset=utf-8'},
			evalScripts: true,
			update:updateDiv
	    });  
		
		req.setHeader('content-type','content="text/html; charset=utf-8"');
		return req.send();
	},
	
	ajax:function(params,updateDiv){
		var ajaxDatei = this.checkPath();
		if(params.contains('#'))params = params.substring(1);
		var req = new Request.HTML({  
	        method: 'get',  
	        url: ajaxDatei,  
			data:params,
	   		headers:{'Content-type':  'content=text/html; charset=utf-8'},
			evalScripts: true,
			update:updateDiv
	    });  
		
	req.setHeader('content-type','content="text/html; charset=utf-8"');
		return req.send();
	},
	
	ajaxNew:function(params,updateElement){
		if(params.contains('#'))params = params.substring(1);
		var req = new Request.HTML({  
	        method: 'get',  
	        url: this.options.ajaxDatei,  
	        data:params,
	   		headers:{'Content-type':  'content=text/html; charset=utf-8'},
			evalScripts: true,
			update:updateElement
	    });  
		
		req.setHeader('content-type','content="text/html; charset=utf-8"');
		return req.send();
	},
	
	ajaxEffect:function(divID){
	if(!Browser.Engine.trident){
			divID.set('opacity', { duration: 100 }).tween('opacity', 0, 1);
		}else{
			var myFx = new Fx.Tween($(divID),{ duration: '300'});
			myFx.start('opacity',0,1);		
		}				
	},
	
	ajaxEffectParent:function(el){
		if(!Browser.Engine.trident){
			el.set('opacity', { duration: 100 }).tween('opacity', 0, 1);
		}	
	},
	
	boxFadeOut:function(){
		if($defined($('filter'))){
			$('filter').dispose();	
			$$('.myBox').dispose();
		}
	},
	
	send_post:function(wert){
		$(wert).set('send', {
			evalScripts: true
		});
			
		$(wert).send();
		this.boxFadeOut();	
	},
	
	getElement:function(divID){
 		switch($type(divID)){
			case 'string':
				var item = $$('.'+divID);
				if($defined(item[0])){
					updateElement = item[0];	
				}else{
					updateElement = $(divID);
				}
			break;
			case 'element':
				var updateElement = divID;
			break;
		}
		return updateElement;	
 	},
	
	switchCSS: function(el){
		el.addEvent('click', function(e){
			if($chk(el.cssActive)){
				$$('.'+el.cssNormal,'.'+el.cssActive,'.'+el.cssHover).each(function(item){
					item.removeClass('a');
					item.removeClass(el.cssActive);
					item.removeClass(el.cssHover);
					item.addClass(el.cssNormal);
				}.bind(this));
				el.addClass(el.cssActive);
				el.removeClass(el.cssNormal);
			}			
		})
		
		el.addEvent('mouseenter', function(e){
			if(!el.get('class').contains(el.cssActive)){
				el.removeClass(el.cssNormal);
				if($chk(el.cssHover))el.addClass(el.cssHover);
			}
			
		}.bind(this));
		
		el.addEvent('mouseleave', function(e){
			if(!el.get('class').contains(el.cssActive)){
				el.removeClass(el.cssHover);
				el.addClass(el.cssNormal);
			}
		}.bind(this));
	}
// Klassenende
});
Request.HTML.implement({
 	processHTML: function(text){
        var match = text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);
        text = (match) ? match[1] : text;
           
        var container = new Element('div');
           
        return $try(function(){
            var root = '<root>' + text + '</root>', doc;
            if (Browser.Engine.trident){
                doc = new ActiveXObject('Microsoft.XMLDOM');
                doc.async = false;
                doc.loadXML(root);
            } else {
                doc = new DOMParser().parseFromString(root, 'text/html');
            }
            root = doc.getElementsByTagName('root')[0];
            for (var i = 0, k = root.childNodes.length; i < k; i++){
                var child = Element.clone(root.childNodes[i], true, true);
                if (child) container.grab(child);
            }
            return container;
        }) || container.set('html', text);
    }   
});