//create by dream www.dream4ever.eu 


	var fenster = new Class({
	 Implements: Options,
		options: {
			width:			300,
			height:			200,
			top:			100,
			left:			100,
			title:			'',
			status:			'',
			closable:		true,
			minimize:		true,
            ajaxfile:      'control.php',
		    action:        '',
            myDIV:         '',
            more:          ''
            

	    	},
            initialize: function(options){
            this.setOptions(options);
    	  if (this.options.myDIV=='')
        this.id = 'fernster_' + new Date().getTime();
         else
           this.id = this.options.myDIV;

        this.el = new Element('div'); 
		this.el.id = this.id;
		this.el.addClass('fenster_win');
        

		this.el.style.zIndex = 999;
		this.el.setStyles({
			width: this.options.width + 'px',
			height:10 + this.options.height + 'px',
			top: this.options.top +'px',
			left: this.options.left +'px'
		});
		
	
		this.innerContent = "<table id='title_" + this.id + "' class='fenster_title'>\
			<tr>\
				<td id='titleText_" + this.id + "'></td>\
			</tr>\
		</table>\
		<table id='middle_" + this.id + "'>\
			<tr>\
				<td>\
				<div  id='content_" + this.id + "'  class='fenster_body'></div>\
				</td>\
			</tr>\
		</table>\
		<table id='status_" + this.id +"' class='fenster_status'>\
			<tr>\
				<td id='statusText_" + this.id + "'></td>\
			</tr>\
		</table>";
		
		this.el.innerHTML = this.innerContent;
		this.el.injectInside(document.body);
         Con_id='content_' + this.id;
		this.titleHeight = $('title_' + this.id).getSize().y;
		this.statusHeight = $('status_' + this.id).getSize().y;
		this.contentHeight = this.options.height - (this.titleHeight + this.statusHeight);
		
		$(Con_id).setStyle('height', this.contentHeight + 'px');
		 $(Con_id).addClass('fenster_body');
		this.dragOptions = {
			handle: $('title_' + this.id),
			onStart: function() {
				this.el.setStyle('opacity', 0.5);
				this.el.style.zIndex = this.getLastZIndex();
			}.bind(this),
			
			onComplete: function() {
				this.el.setStyle('opacity', 1.0);
			}.bind(this)
		};
		this.setTitle(this.options.title);
		this.setStatus(this.options.status);
		
		this.contentDiv = $(Con_id);
		
		if(this.options.closable)
		{
			this.closeButton = new Element('div');
          
           // this.closeButton.setHTML('<b>x</b>');
           this.closeButton.setStyle('left', this.options.width - 25 + 'px');
            this.closeButton.addClass('fenster_close');
			this.closeButton.injectInside(this.el);  
			
		};
		
		if(this.options.minimize)
		{
			this.miniButton = new Element('div');
             this.miniButton.injectInside(this.el);
           	this.miniButton.setStyle('left', this.options.width - 45 + 'px');
            this.miniButton.addClass('fenster_minimize');
            
			
		};
		
	    this.minimized = false;
		this.el.makeDraggable(this.dragOptions);
		this.el.setStyle('display', 'none');
		this.watchEvents();
   	
		},
	
  setContent: function(content) {
  this.setTitle(this.options.title);
  this.setStatus(this.options.status);
   whatCon='content_'+this.id;

AJAXPARAM='';
if (this.options.action=='')
      AJAXPARAM=this.options.more;
  else
       AJAXPARAM='ajaxaction='+this.options.action+'&more='+this.options.more;


  if (AJAXPARAM!=''){
     
new Request.HTML({url:this.options.ajaxfile , method: 'post',data: AJAXPARAM, update: $(whatCon),evalScripts: true,
		onFailure:function(){
		alert('Problem bei Laden');
		},
		onRequest:function(){
			$(whatCon).set('html',content);
		},
		onSuccess:function(){

		}.bind(this)}).send();

    }
      
		$(whatCon).set('html',content);
	},

       getLastZIndex: function() {
		var allFenster = $$('fenster_win');
		var zindexArray = [];
		if(allFenster.length <= 0)
		{
			return 1;
		}
		else
		{
			allFenster.forEach(function(item) {
				zindexArray.push(item.style.zIndex);
			});
			zindexArray.sort(this.sortNumber);
			return zindexArray[zindexArray.length-1].toInt() + 1;
		}
	},
	
	setTitle: function(content) {
    title_id='titleText_' + this.id;
		$(title_id).set('html',content);
	},
	
	setStatus: function(content) {
      status_id='statusText_' + this.id;
		$(status_id).set('html',content);
	},
	
	watchEvents: function()
	{
		if(this.options.closable)
		{
			this.closeButton.onclick = function() { 
				this.close(); 
			}.bind(this);
		}
		
		if(this.options.minimize)
		{
			this.miniButton.onclick = function() {
				this.minimize();
			}.bind(this);
		}
	},
	


	close: function()
	{
         var del = document.getElementById(this.id);
             del.parentNode.removeChild(del);

      
	 },

      

	show: function()
	{
    this.setContent();
	this.el.setStyle('display', 'block');

	},
	
	minimize: function()
	{
		if(!this.minimized)
		{
            this.miniButton.setStyle('background','transparent url(css/window/button-max-focus.gif) no-repeat 0 0');
			this.contentDiv.oldHeight = this.contentDiv.getSize().y;
			this.middleTableOldHeight = $('middle_' + this.id).getSize().y;

			
			this.el.effect('height').start(50);
			$('middle_' + this.id).effect('height').start(0);
            this.contentDiv.effect('height').start(1);
			this.minimized = true;
          
		}
		else
		{  	
           this.contentDiv.effect('height').start(this.contentDiv.oldHeight);
			this.el.effect('height').start(this.options.height+10);
			$('middle_' + this.id).effect('height').start(this.middleTableOldHeight);
            this.miniButton.setStyle('background','transparent url(css/window/button-min-focus.gif) no-repeat 0 0');
		    this.minimized = false;
           
		}
	}

});

