
$.fn.extend({
  sortOptions: function(fnSortCallback){
    var oJqSelect = this;
    var oSelect = this[0];
    var oFirstOption = $('#'+oSelect.id+' option:first');

    var fSaveFirstOption = (oFirstOption.text().indexOf('Bitte w')>=0);
    
    var stOption;

    if(fSaveFirstOption){
      stOption = 'option:not(:first)';
    } else {
      stOption = 'option';
    }

    var rgSorted = $.makeArray($('#'+oSelect.id+' '+stOption)).sort(fnSortCallback);

    if(fSaveFirstOption){
      oJqSelect.html(rgSorted).prepend(oFirstOption);
      oFirstOption.attr("selected", true).siblings("option").removeAttr("selected");
    } else {
      oJqSelect.html(rgSorted);
    }

    return true;
  },
  sortOptionsByText: function(stOrder){
    if(typeof stOrder == 'undefined' || stOrder == '') stOrder = 'asc';
    var fnSortCallback;

    switch(stOrder){
      default:
      case 'asc':
        fnSortCallback = function(x, y){

          var stXText = jQuery(x).text().toUpperCase();
          var stYText = jQuery(y).text().toUpperCase();

          return (stXText < stYText) ? -1 : (stXText > stYText) ? 1 : 0;
        };
        break;
      case 'desc':
        fnSortCallback = function(x, y){

          var stXText = jQuery(x).text().toUpperCase();
          var stYText = jQuery(y).text().toUpperCase();

          return (stXText > stYText) ? -1 : (stXText < stYText) ? 1 : 0;
        };
        break;
    }

    return this.sortOptions(fnSortCallback);
  },
  sortOptionsByValue: function(stOrder){
    if(typeof stOrder == 'undefined' || stOrder == '') stOrder = 'asc';

    var fnSortCallback;
    switch(stOrder){
      default:
      case 'asc':
        fnSortCallback = function(x, y){

          var stXVal = jQuery(x).val();
          var stYVal = jQuery(y).val();

          return (stXVal < stYVal) ? -1 : (stXVal > stYVal) ? 1 : 0;
        };
        break;
      case 'desc':
        fnSortCallback = function(x, y){

          var stXVal = jQuery(x).val();
          var stYVal = jQuery(y).val();

          return (stXVal > stYVal) ? -1 : (stXVal < stYVal) ? 1 : 0;
        };
        break;
    }

    return this.sortOptions(fnSortCallback);
  }

});

if($.browser.msie){
  
  jQuery.extend({

    // Overrides built-in functionality
    httpData: function( xhr, type, s ) {
      var ct = (typeof xhr.getResponseHeader == 'function')?xhr.getResponseHeader("content-type"):"",
      xml = type === "xml" || !type && ct.indexOf("xml") >= 0,
      data = xml ? xhr.responseXML : xhr.responseText;

      if ( xml && data.documentElement.nodeName === "parsererror" ) {
        jQuery.error( "parsererror" );
      }

      // Allow a pre-filtering function to sanitize the response
      // s is checked to keep backwards compatibility
      if ( s && s.dataFilter ) {
        data = s.dataFilter( data, type );
      }

      // The filter can actually parse the response
      if ( typeof data === "string" ) {
        // Get the JavaScript object, if JSON is used.
        if ( type === "json" || !type && ct.indexOf("json") >= 0 ) {
          data = jQuery.parseJSON( data );

        // If the type is "script", eval it in global context
        } else if ( type === "script" || !type && ct.indexOf("javascript") >= 0 ) {
          jQuery.globalEval( data );
        }
      }

      return data;
    }
  });
}


$(document).ready(function() {
  $('div.applet_panel applet').each(function() {
    $(this).closest('.applet_panel').find('.content_layer').each(function() {
      if (typeof this.bosShow != 'function') return;
      this.bosShow();
    });
  });
});
