// form set focus to the first field and clear already invalid marked fields
	Ext.Window.prototype.onRender = Ext.Window.prototype.onRender.createSequence(function() {
	  var forms = this.findByType("form");
	  if (!forms.length) return;
		var form = forms[0];
		var field = form.get(0);
		var init = false;
		field.addListener("blur", function () {
		  if (!init) {
		  	init = true;
		    form.getForm().clearInvalid();
		  	field.focus(true, true);
		  }
		});
		this.addListener("afterLayout", function () {
		  field.focus(true, true);
		});
	});

// date numbers seperated by points without zeros and/or uncomplete (autocompletion when bluring the filed)
  //Ext.form.DateField.prototype.altFormats = Ext.form.DateField.prototype.altFormats + "|" + "m.d.Y|n.j.Y|n.j.y|m.j.y|n.d.y|m.j.Y|n.d.Y|d.m|d.n|j.m|j.n|j" + "|d.m.Y|d.n.Y|d.m.y|d.n.y|j.m.Y|j.n.Y|j.m.y|j.n.y";
  Ext.form.DateField.prototype.altFormats = "|d.m.Y|d.n.Y|d.m.y|d.n.y|j.m.Y|j.n.Y|j.m.y|j.n.y" + "|" + "m.d.Y|n.j.Y|n.j.y|m.j.y|n.d.y|m.j.Y|n.d.Y|d.m|d.n|j.m|j.n|j";
  
// fits Ext.TabPanels to a container (for example their parent element)
  Ext.TabPanel.prototype.onRender = Ext.TabPanel.prototype.onRender.createSequence(function() {
    if (this.initialConfig.cwxSizeTo) {
      var tempTabPanel = this;
      var tempParent = this.initialConfig.cwxSizeTo;
      var tempDistance = !isNaN(this.initialConfig.cwxSizeToMargin) ? this.initialConfig.cwxSizeToMargin : 20;
      if (tempParent == document.body || tempParent == window) {
        tempDistance = this.initialConfig.cwxSizeToMargin || tempTabPanel.getEl().getLeft();
        jQuery(window).resize(function(){
          tempTabPanel.setSize(jQuery(window).width() - (2 * tempDistance), jQuery(window).height() - tempTabPanel.getEl().getTop() - tempDistance);
        });
        jQuery(window).trigger('resize');
      } else if (tempParent.getXType && tempParent.getXType() == "window") {
        tempParent.addListener("bodyresize", function () {
          tempTabPanel.setSize(1, 1);
          tempTabPanel.setSize(this.getInnerWidth() - tempDistance, this.getInnerHeight() - tempDistance);
        });
        tempParent.fireEvent("bodyresize");
      }
    }
  });

/* EXTEND COMBOBOX */
  Ext.form.ComboBox.prototype.getSelectedIndex = function () {
    return this.getStore().find(this.valueField, this.getValue());
  };

  Ext.form.ComboBox.prototype.getSelectedRecord = function () {
    return this.getStore().getAt(this.getSelectedIndex());
  };
  
  Ext.form.ComboBox.prototype.getSelectedText = function () {
    return this.getSelectedRecord().get(this.displayField);
  };
