Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Prototype.Browser.IE8 = Prototype.Browser.IE && !Prototype.Browser.IE6 && !Prototype.Browser.IE7;

var IEDropdown = Class.create({
	initialize: function(element) {
		
		this.element = $(element);
		
		if (this.element == null) return; //VA - avoiding error in IE.

		this.originalWidth = this.element.style.width;
		
		this.dontWiden = false;
		Event.observe(this.element, 'mousedown', this.widen.bindAsEventListener(this));
		Event.observe(this.element, 'blur', this.shrink.bindAsEventListener(this));
		Event.observe(this.element, 'change', this.shrink.bindAsEventListener(this));
	},


	widen: function(e) {
		if (this.dontWiden) return;
		if (this.element == null) return;
		var styledWidth = this.element.offsetWidth;
		this.element.style.width = 'auto';
		var desiredWidth = this.element.offsetWidth;
		// If this control needs less than it was styled for, then we don't need to bother with widening it.
		if (desiredWidth < styledWidth) {
			this.dontWiden = true;
			this.element.style.width = this.originalWidth;
			this.element.click(); // Simulate another click, since setting styles has already caused the box to close at this point.
		}
	},

	shrink: function(e) {
		if (this.element == null) return;
		this.element.style.width = this.originalWidth;
	}
});


