var ajax = new Class({
	Extends : general,
	Implements : [Options , Events],
	options: {
		fixed: false,
		ajaxDatei: 'ajax_content.php?'
	},

	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);
			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);
		element.setStyles({'visibility' : 'hidden','opacity' : 0});
		
		result = this.ajaxNew(params,element);
		result.addEvent('onComplete',function(){
			this.ajaxEffect(element);
			return true;
		}.bind(this));
	}
});
