var ajax = new Class({
	Extends : general,
	Implements : [Options , Events],
	options: {
		fixed: false,
		ajaxDatei: 'ajaxContent.php?',
        modulesPath: false
         
	},

	initialize: function(elements, options){
		this.setOptions(options);
		$$(elements).each(function(item){
			if(!item.get('class').contains('isDom')){
				this.build(item);
			}
			
		}.bind(this));
	},
	checkParams:function(){
		
	},
	build: function(el){
		el.addClass('isDom');
		if(el.get('href') == null){
			el.ajaxParams = this.options.ajaxDatei+el.get('lang');
			el.arr = el.get('dir');
			el.divID 			= el.arr.split(':')[0]
			el.history 			= el.arr.split(':')[1];
				
			var cssArr = el.get('class').split(' ');
			var cssFilter = cssArr.filter(function(item, index){
   		 		if(item != 'ajax' && item != 'isDom'){
   		 			return item;
   		 		}
			});
			if($type(cssFilter) == 'array'){
				el.cssNormal 		= 	cssFilter[0];
				el.cssHover	 		=	el.cssNormal+'Hover';
				el.cssActive		=	el.cssNormal+'Active';
				el.firstActive		= 	el.arr.split(':')[2];
			}else{
				el.cssNormal 		= el.arr.split(':')[2];
				el.cssHover 		= el.arr.split(':')[3];
				el.cssActive		= el.arr.split(':')[4];
				el.firstActive		= el.arr.split(':')[5];
				el.addClass(el.cssNormal);
			}
			
		}else{
			el.ajaxParams = el.get('href');	
			el.divID 			= el.name.split(':')[0];
			el.history 			= el.name.split(':')[1];
			var cssArr = el.get('class').split(' ');
			var cssFilter = cssArr.filter(function(item, index){
   		 		if(item != 'ajax' && item != 'isDom'){
   		 			return item;
   		 		}
			});
			if($type(cssFilter) == 'array'){
				el.cssNormal = cssFilter[0];
				el.cssHover	 =	el.cssNormal+'Hover';
				el.cssActive	 =	el.cssNormal+'Active';
				el.firstActive		= el.name.split(':')[2];
			}else{
				el.cssNormal 		= el.name.split(':')[2];
				el.cssHover 		= el.name.split(':')[3];
				el.cssActive		= el.name.split(':')[4];
				el.firstActive		= el.name.split(':')[5];
				el.addClass(el.cssNormal);
			}
		}	
		
		el.ajaxParams = el.ajaxParams.replace(/,/g, "&");
		if(el.ajaxParams.test('^\/')){
			el.ajaxParams = el.ajaxParams.substring(1);
		}
	
		if(el.firstActive == 'true'){
  	el.addClass(el.cssActive);
           	 el.removeClass(el.cssNormal);
			this.submitAjax(el);
				if(el.get('href') == null){
					var typeElement = 'dir';
				}else{
					var typeElement = 'name';
				}
			var stringlen = el.get(typeElement).length - 5 ;
			var newParams = el.get(typeElement).substring(0,stringlen);
			el.set(typeElement,newParams);
		}
		
		el.isDOM = true;

		this.switchCSS(el);
			
		el.addEvent('click', function(e){
			if($defined($$('.fc-tbx'))) $$('.fc-tbx').dispose();
			el.blur();
			if(el.get('target') == '_blank'){
					e = new Event(e).stop();
					window.open(el.get('href'),'_blank');
			}else{
				if(el.ajaxParams.contains('reloadBrowser')){
					el.ajaxParams = el.ajaxParams.replace(/&reloadBrowser=([^\&]*)/g, "");
				}
			
			e = new Event(e).stop();
			if($defined($('modulMenuList'))){
				$('modulMenuList').dispose();
			}
		
			if(el.history == 'true'){
                el.params =   el.ajaxParams.split('?')[1];
				
				if(!el.params.test("divID")){
					el.params = el.params +'&divID='+el.divID;
				}
				
				if(window.location.hash == "#"+el.params){
					this.submitAjax(el);
				}else{
					window.location.hash = el.params;
					if(Browser.Engine.trident){
						myhistory.options.idtag = el.divID;
						myhistory.historyLoad(el.params);
					}
				}
			}else{
				this.submitAjax(el);
			}
			}
	
			
		}.bind(this));
		
	

	},
 	
	submitAjax:function(el){
        params =   	el.ajaxParams.split('?')[1];
		var element = this.getElement(el.divID);
       
        var req = new Request.HTML({  
	        method: 'get',  
	        url: this.options.modulesPath+this.options.ajaxDatei,  
			data:params,
	   		headers:{'Content-type':  'content=text/html; charset=utf-8'},
            onRequest: function() { 
                 element.empty();
                new Element('img', {
                    'src': this.options.modulesPath+'ajax-loader.gif',
                    'style': 'padding-top:200px;padding-left:90px;'
                }).inject(element);
            }.bind(this),
			evalScripts: true,
            update:element,
		
            noCache:false
	    }).send();  
	}
});