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); } } });