StaticTextField = function(config){
	/* call parent constructor */
	
	StaticTextField.superclass.constructor.call(this, config);

	/* Variablen */
	this.fieldready = false;
	this.savedvalue = undefined;
	this.events = ['render'];
	
	/* Eventhandlers */
	function onStaticTextFieldRender(container, position)
	{
		/* Field ausbleden */
		this.hide();
		
		/* Platzhalterelemente erstellen */
		var html = '<div></div>';
		var element = this.el.insertSibling({
			html: html
		}, null, true);
		
		/* Platzhalterelemente ermitteln */
		var places = Ext.DomQuery.select('div', element);
		this.statictextfield = places[0];
		this.statictextfield.style.paddingTop = '3px';
		
		//console.dir(this.statictextfield);
		
		/* Feld bereit */
		this.fieldready = true;
		if (typeof this.savedvalue != 'undefined') 
		{
			this.setValue(this.savedvalue);
			this.savedvalue = undefined;
		}
	}
	
	/* Eventhandlers eintragen */
	this.on('render', onStaticTextFieldRender, this);
}

/* extend */
Ext.extend(StaticTextField, Ext.form.Field, {
	setValue: function(value)
	{
		
		
		// Feld bereit? 
		if (this.fieldready) 
		{
			// Handelt es sich um ein Datum? 
			if (isNaN(Date.parse(value))) 
			{
				// Handelt es sich um einen "Doppelwert" (Femdschluessel)? 
				var normalvalue = 1;
				if (typeof value == 'string') 
				{
					var aParts = value.split('|');
					if (aParts.length == 2) 
					{
						this.superclass.setValue.call(this, aParts[0]);
						this.statictextfield.innerHTML = aParts[1];
						normalvalue = 0;
					}
				}
				
				if (normalvalue) 
				{
					this.statictextfield.innerHTML = value;
					StaticTextField.superclass.setValue.call(this, value);
				}
			}
			else 
			{
				var datetime = new Date(value);
				this.statictextfield.innerHTML = formatDateTime(datetime);
				Ext.sfui.StaticTextField.superclass.setValue.call(this, value);
			}
			
			
		}
		else
		{
			// Wert sichern 
			this.savedvalue = value;
		}
		
	}
});

/* WM 23.11.08 Für Bilder Gallerien */

/* Component for calling functions after all specified Ajax-Request have finished */
Ext.namespace('Ext.ux');

Ext.ux.wait4ajax = Ext.extend(Ext.Component, {
    // Prototype Defaults
    /* List of Eventname to call after Ajax is ready */
	myEvents: [],
	/* List of started Ajax-Requests */
	myStartedAjax: [],

	initComponent : function(){
        Ext.ux.wait4ajax.superclass.initComponent.call(this);		
    },	

    // public
	/* remember started ajax requests */
	addAjaxStarted: function(fnname){		
		this.myStartedAjax.push(fnname);
	},
	
    addAjaxReady: function(fnname,fn){
		/* if function is passed: add function to listeners and save Eventname*/	
		if(typeof fn != 'undefined'){
			this.addListener(fnname,fn,this,0,true);
			/* */
			this.addMyEvents(fnname);
		}		
				
		this.removeAjaxStarted(fnname);
		
		this.checkWaitingAjax();
	}, 	

	// private
	
	addMyEvents : function(fnname){		
		this.myEvents.push(fnname);
    },
	
	/* remove Entry from started Ajax Requests */
	removeAjaxStarted: function(fnname){		
		var nLen = this.myStartedAjax.length;
		var tmpArr = new Array();
		for (i = 0; i < nLen; i++) {
			if(this.myStartedAjax[i] != fnname){
				tmpArr.push(this.myStartedAjax[i]);
			}				
		}
		this.myStartedAjax = tmpArr;
	},	
	
	/* check if there are still unfinished ajax request*/
	checkWaitingAjax : function(){		
		if(this.myStartedAjax.length == 0){
			this.onReady();
		}
    },
	
	/* fire all saved Events*/
	onReady : function(){
		var nLen = this.myEvents.length;
		for(i=0;i<nLen; i++){
			this.fireEvent(this.myEvents[i]);
			//this.removeListener(this.myEvents[nLen]);
		}
    },
	
	onRender : function(ct, position){
	
	},

	
    afterRender : function(){
		Ext.ux.wait4ajax.superclass.afterRender.call(this);
    }


});

/* CE / nbsp GmbH / 22-11-2008 / Fading Funktion, welche Ein- und Ausblendeffekt fuer Container ermoeglicht */

Ext.Fx.fade = function(query)
{
    Ext.select(query).each(function(el)
    {
        if (el.getStyle('display') == 'block') {
            el.fadeOut({
                useDisplay: true
            });
        } else {
            el.fadeIn();
        }
    });
}