if (Prototype.Browser.IE) {
	Prototype.Browser.IEVersion = parseFloat(navigator.appVersion.split(';')[1].strip().split(' ')[1]);
	Prototype.Browser.IE6 = Prototype.Browser.IEVersion == 6;
	Prototype.Browser.IE7 = Prototype.Browser.IEVersion == 7;
}

Element.addMethods({
    setWidth: function(element, width) {
            element = $(element);
            if (typeof width == "number")
                    width = width + "px";
            element.setStyle({width: width});
            return element;
    },
    setHeight: function(element, height) {
            element = $(element);
            if (typeof height == "number")
                    height = height + "px";
            element.setStyle({height: height});
            return element;
    }
});

Object.extend(String.prototype, {
	truncate: function(length, truncation, whitespace) {
		length = length || 30;
		if(this.length <= length) {
			return String(this);
		} else {
			truncation = Object.isUndefined(truncation) ? '...' : truncation;
			if(!Weazel.Tools.Check.isNull(whitespace)) {
				length = this.substring(0, length - truncation.length - 1).lastIndexOf(whitespace);
			}
			return this.slice(0, length) + truncation;
		}
	}
});

Ajax.Updater = Class.create(Ajax.Request, {
  initialize: function($super, container, url, options) {
    this.container = {
      success: (container.success || container),
      failure: (container.failure || (container.success ? null : container))
    };

    options = Object.clone(options);
    var onBeforeComplete = options.onBeforeComplete;
    var onComplete = options.onComplete;
    options.onComplete = (function(response, json) {
	  if (Object.isFunction(onBeforeComplete)) onBeforeComplete(response, json);
      this.updateContent(response.responseText);
      if (Object.isFunction(onComplete)) onComplete(response, json);
    }).bind(this);

    $super(url, options);
  },

  updateContent: function(responseText) {
    var receiver = this.container[this.success() ? 'success' : 'failure'],
        options = this.options;

    if (!options.evalScripts) responseText = responseText.stripScripts();

    if (receiver = $(receiver)) {
      if (options.insertion) {
        if (Object.isString(options.insertion)) {
          var insertion = { }; insertion[options.insertion] = responseText;
          receiver.insert(insertion);
        }
        else options.insertion(receiver, responseText);
      }
      else receiver.update(responseText);
    }
  }
});
