﻿Type.registerNamespace("AjaxControlToolkit");
AjaxControlToolkit.AutoCompleteBehavior = function(d) {
	var c = false, b = null, a = this;
	AjaxControlToolkit.AutoCompleteBehavior.initializeBase(a, [d]);
	a._servicePath = b;
	a._serviceMethod = b;
	a._contextKey = b;
	a._useContextKey = c;
	a._minimumPrefixLength = 3;
	a._completionSetCount = 10;
	a._completionInterval = 1e3;
	a._completionListElementID = b;
	a._completionListElement = b;
	a._textColor = "windowtext";
	a._textBackground = "window";
	a._popupBehavior = b;
	a._popupBehaviorHiddenHandler = b;
	a._onShowJson = b;
	a._onHideJson = b;
	a._timer = b;
	a._cache = b;
	a._currentPrefix = b;
	a._selectIndex = -1;
	a._focusHandler = b;
	a._blurHandler = b;
	a._bodyClickHandler = b;
	a._completionListBlurHandler = b;
	a._keyDownHandler = b;
	a._mouseDownHandler = b;
	a._mouseUpHandler = b;
	a._mouseOverHandler = b;
	a._tickHandler = b;
	a._enableCaching = true;
	a._flyoutHasFocus = c;
	a._textBoxHasFocus = c;
	a._completionListCssClass = b;
	a._completionListItemCssClass = b;
	a._highlightedItemCssClass = b;
	a._delimiterCharacters = b;
	a._firstRowSelected = c;
	a._showOnlyCurrentWordInCompletionListItem = c;
	a._webRequest = b
};
AjaxControlToolkit.AutoCompleteBehavior.prototype = {
	initialize: function() {
		var b = null, a = this;
		AjaxControlToolkit.AutoCompleteBehavior.callBaseMethod(a, "initialize");
		$common.prepareHiddenElementForATDeviceUpdate();
		a._popupBehaviorHiddenHandler = Function.createDelegate(a, a._popupHidden);
		a._tickHandler = Function.createDelegate(a, a._onTimerTick);
		a._focusHandler = Function.createDelegate(a, a._onGotFocus);
		a._blurHandler = Function.createDelegate(a, a._onLostFocus);
		a._keyDownHandler = Function.createDelegate(a, a._onKeyDown);
		a._mouseDownHandler = Function.createDelegate(a, a._onListMouseDown);
		a._mouseUpHandler = Function.createDelegate(a, a._onListMouseUp);
		a._mouseOverHandler = Function.createDelegate(a, a._onListMouseOver);
		a._completionListBlurHandler = Function.createDelegate(a, a._onCompletionListBlur);
		a._bodyClickHandler = Function.createDelegate(a, a._onCompletionListBlur);
		a._timer = new Sys.Timer;
		a.initializeTimer(a._timer);
		var c = a.get_element();
		a.initializeTextBox(c);
		
		//BETTY: HACK - onkeydown doesn't seem to work if item already has focus
		c.blur();                
		
		if (a._completionListElementID !== b) a._completionListElement = $get(a._completionListElementID);
		if (a._completionListElement == b) {
			a._completionListElement = document.createElement("ul");
			a._completionListElement.id = a.get_id() + "_completionListElem";
			if (Sys.Browser.agent === Sys.Browser.Safari) document.body.appendChild(a._completionListElement);
			else c.parentNode.insertBefore(a._completionListElement, c.nextSibling)
		}
		a.initializeCompletionList(a._completionListElement);
		a._popupBehavior = $create(AjaxControlToolkit.PopupBehavior, {
			id: a.get_id() + "PopupBehavior", parentElement: c, positioningMode: AjaxControlToolkit.PositioningMode.BottomLeft
		}
      , b, b, a._completionListElement);
		a._popupBehavior.add_hidden(a._popupBehaviorHiddenHandler);
		if (a._onShowJson) a._popupBehavior.set_onShow(a._onShowJson);
		if (a._onHideJson) a._popupBehavior.set_onHide(a._onHideJson)
	}
   , dispose: function() {
   	var b = null, a = this;
   	a._onShowJson = b;
   	a._onHideJson = b;
   	if (a._popupBehavior) {
   		if (a._popupBehaviorHiddenHandler) a._popupBehavior.remove_hidden(a._popupBehaviorHiddenHandler);
   		a._popupBehavior.dispose();
   		a._popupBehavior = b
   	}
   	if (a._timer) {
   		a._timer.dispose();
   		a._timer = b
   	}
   	var c = a.get_element();
   	if (c) {
   		$removeHandler(c, "focus", a._focusHandler);
   		$removeHandler(c, "blur", a._blurHandler);
   		$removeHandler(c, "keydown", a._keyDownHandler);
   		$removeHandler(a._completionListElement, "blur", a._completionListBlurHandler);
   		$removeHandler(a._completionListElement, "mousedown", a._mouseDownHandler);
   		$removeHandler(a._completionListElement, "mouseup", a._mouseUpHandler);
   		$removeHandler(a._completionListElement, "mouseover", a._mouseOverHandler)
   	}
   	if (a._bodyClickHandler) {
   		$removeHandler(document.body, "click", a._bodyClickHandler);
   		a._bodyClickHandler = b
   	}
   	a._popupBehaviorHiddenHandler = b;
   	a._tickHandler = b;
   	a._focusHandler = b;
   	a._blurHandler = b;
   	a._keyDownHandler = b;
   	a._completionListBlurHandler = b;
   	a._mouseDownHandler = b;
   	a._mouseUpHandler = b;
   	a._mouseOverHandler = b;
   	AjaxControlToolkit.AutoCompleteBehavior.callBaseMethod(a, "dispose")
   }
   , initializeTimer: function(a) {
   	a.set_interval(this._completionInterval);
   	a.add_tick(this._tickHandler)
   }
   , initializeTextBox: function(a) {
   	a.autocomplete = "off";
   	$addHandler(a, "focus", this._focusHandler);
   	$addHandler(a, "blur", this._blurHandler);
   	$addHandler(a, "keydown", this._keyDownHandler)
   }
   , initializeCompletionList: function(c) {
   	var b = this;
   	if (b._completionListCssClass) Sys.UI.DomElement.addCssClass(c, b._completionListCssClass);
   	else {
   		var a = c.style;
   		a.textAlign = "left";
   		a.visibility = "hidden";
   		a.cursor = "default";
   		a.listStyle = "none";
   		a.padding = "0px";
   		a.margin = "0px! important";
   		if (Sys.Browser.agent === Sys.Browser.Safari) {
   			a.border = "solid 1px gray";
   			a.backgroundColor = "white";
   			a.color = "black"
   		}
   		else {
   			a.border = "solid 1px buttonshadow";
   			a.backgroundColor = b._textBackground;
   			a.color = b._textColor
   		}
   	}
   	$addHandler(c, "mousedown", b._mouseDownHandler);
   	$addHandler(c, "mouseup", b._mouseUpHandler);
   	$addHandler(c, "mouseover", b._mouseOverHandler);
   	$addHandler(c, "blur", b._completionListBlurHandler);
   	$addHandler(document.body, "click", b._bodyClickHandler)
   }
   , _currentCompletionWord: function() {
   	var b = this, f = b.get_element(), c = f.value, d = c;
   	if (b.get_isMultiWord()) {
   		var a = b._getCurrentWordStartIndex(), e = b._getCurrentWordEndIndex(a);
   		if (e <= a) d = c.substring(a);
   		else d = c.substring(a, e)
   	}
   	return d
   }
   , _getCursorIndex: function() {
   	return this.get_element().selectionStart
   }
   , _getCurrentWordStartIndex: function() {
   	var a = this, g = a.get_element(), f = g.value.substring(0, a._getCursorIndex()), b = 0, c = -1;
   	for (var d = 0; d < a._delimiterCharacters.length; ++d) {
   		var e = f.lastIndexOf(a._delimiterCharacters.charAt(d));
   		if (e > c) c = e
   	}
   	b = c;
   	if (b >= a._getCursorIndex()) b = 0;
   	return b < 0 ? 0 : b + 1
   }
   , _getCurrentWordEndIndex: function(d) {
   	var e = this.get_element(), f = e.value.substring(d), a = 0;
   	for (var c = 0; c < this._delimiterCharacters.length; ++c) {
   		var b = f.indexOf(this._delimiterCharacters.charAt(c));
   		if (b > 0 && (b < a || a == 0)) a = b
   	}
   	return a <= 0 ? e.value.length : a + d
   }
   , get_isMultiWord: function() {
   	return this._delimiterCharacters != null && this._delimiterCharacters != ""
   }
   , _getTextWithInsertedWord: function(d) {
   	var b = this, h = d, j = 0, i = b.get_element(), c = i.value;
   	if (b.get_isMultiWord()) {
   		var a = b._getCurrentWordStartIndex(), e = b._getCurrentWordEndIndex(a), f = "", g = "";
   		if (a > 0) f = c.substring(0, a);
   		if (e > a) g = c.substring(e);
   		h = f + d + g
   	}
   	return h
   }
   , _hideCompletionList: function() {
   	var a = new Sys.CancelEventArgs;
   	this.raiseHiding(a);
   	if (a.get_cancel()) return;
   	this.hidePopup()
   }
   , showPopup: function() {
   	this._popupBehavior.show();
   	this.raiseShown(Sys.EventArgs.Empty)
   }
   , hidePopup: function() {
   	if (this._popupBehavior) this._popupBehavior.hide();
   	else this._popupHidden()
   }
   , _popupHidden: function() {
   	var a = this;
   	a._completionListElement.innerHTML = "";
   	a._selectIndex = -1;
   	a._flyoutHasFocus = false;
   	a.raiseHidden(Sys.EventArgs.Empty)
   }
   , _highlightItem: function(c) {
   	var a = this, e = a._completionListElement.childNodes;
   	for (var d = 0; d < e.length; d++) {
   		var b = e[d];
   		if (b._highlighted) {
   			if (a._completionListItemCssClass) {
   				Sys.UI.DomElement.removeCssClass(b, a._highlightedItemCssClass);
   				Sys.UI.DomElement.addCssClass(b, a._completionListItemCssClass)
   			}
   			else if (Sys.Browser.agent === Sys.Browser.Safari) {
   				b.style.backgroundColor = "white";
   				b.style.color = "black"
   			}
   			else {
   				b.style.backgroundColor = a._textBackground;
   				b.style.color = a._textColor
   			}
   			a.raiseItemOut(new AjaxControlToolkit.AutoCompleteItemEventArgs(b, b.firstChild.nodeValue, b._value))
   		}
   	}
   	if (a._highlightedItemCssClass) {
   		Sys.UI.DomElement.removeCssClass(c, a._completionListItemCssClass);
   		Sys.UI.DomElement.addCssClass(c, a._highlightedItemCssClass)
   	}
   	else if (Sys.Browser.agent === Sys.Browser.Safari) c.style.backgroundColor = "lemonchiffon";
   	else {
   		c.style.backgroundColor = "highlight";
   		c.style.color = "highlighttext"
   	}
   	c._highlighted = true;
   	a.raiseItemOver(new AjaxControlToolkit.AutoCompleteItemEventArgs(c, c.firstChild.nodeValue, c._value))
   }
   , _onCompletionListBlur: function() {
   	this._hideCompletionList()
   }
   , _onListMouseDown: function(b) {
   	var a = this;
   	if (b.target !== a._completionListElement) {
   		a._setText(b.target);
   		a._flyoutHasFocus = false
   	}
   	else a._flyoutHasFocus = true
   }
   , _onListMouseUp: function() {
   	try {
   		this.get_element().focus()
   	}
   	catch (a) {
   	}
   }
   , _onListMouseOver: function(e) {
   	var a = this, c = e.target;
   	if (c !== a._completionListElement) {
   		var d = a._completionListElement.childNodes;
   		for (var b = 0; b < d.length; ++b) if (c === d[b]) {
   			a._highlightItem(c);
   			a._selectIndex = b;
   			break
   		}
   	}
   }
   , _onGotFocus: function() {
   	var a = this;
   	a._textBoxHasFocus = true;
   	if (a._flyoutHasFocus) a._hideCompletionList();
   	if (a._minimumPrefixLength == 0 && !a.get_element().value) a._timer.set_enabled(true)
   }
   , _onKeyDown: function(b) {
   	var a = this;
   	a._textBoxHasFocus = true;
   	a._timer.set_enabled(false);
   	var c = b.keyCode ? b.keyCode : b.rawEvent.keyCode;
   	if (c === Sys.UI.Key.esc) {
   		a._hideCompletionList();
   		b.preventDefault()
   	}
   	else if (c === Sys.UI.Key.up) {
   		if (a._selectIndex > 0) {
   			a._selectIndex--;
   			a._handleScroll(a._completionListElement.childNodes[a._selectIndex], a._selectIndex);
   			a._highlightItem(a._completionListElement.childNodes[a._selectIndex]);
   			b.stopPropagation();
   			b.preventDefault()
   		}
   	}
   	else if (c === Sys.UI.Key.down) {
   		if (a._selectIndex < a._completionListElement.childNodes.length - 1) {
   			a._selectIndex++;
   			a._handleScroll(a._completionListElement.childNodes[a._selectIndex], a._selectIndex);
   			a._highlightItem(a._completionListElement.childNodes[a._selectIndex]);
   			b.stopPropagation();
   			b.preventDefault()
   		}
   	}
   	else if (c === Sys.UI.Key.enter) if (a._selectIndex !== -1) {
   		a._setText(a._completionListElement.childNodes[a._selectIndex]);
   		b.preventDefault()
   	}
   	else a.hidePopup();
   	else if (c === Sys.UI.Key.tab) {
   		if (a._selectIndex !== -1) a._setText(a._completionListElement.childNodes[a._selectIndex])
   	}
   	else a._timer.set_enabled(true)
   }
   , _handleScroll: function(e, c) {
   	var a = this._completionListElement, b = $common.getBounds(e), d = this._completionListElement.childNodes.length;
   	if (b.height * c - (a.clientHeight + a.scrollTop) >= 0) a.scrollTop += b.height * c - (a.clientHeight + a.scrollTop) + b.height;
   	if (b.height * (d - (c + 1)) - (a.scrollHeight - a.scrollTop) >= 0) a.scrollTop -= b.height * (d - (c + 1)) - (a.scrollHeight - a.scrollTop) + b.height;
   	if (a.scrollTop % b.height !== 0) if (b.height * (c + 1) - (a.clientHeight + a.scrollTop) >= 0) a.scrollTop -= a.scrollTop % b.height;
   	else a.scrollTop += b.height - a.scrollTop % b.height
   }
   , _handleFlyoutFocus: function() {
   	var a = this;
   	if (!a._textBoxHasFocus) if (!a._flyoutHasFocus) {
   		if (a._webRequest) {
   			a._webRequest.get_executor().abort();
   			a._webRequest = null
   		}
   		a._hideCompletionList()
   	}
   }
   , _onLostFocus: function() {
   	var a = this;
   	a._textBoxHasFocus = false;
   	a._timer.set_enabled(false);
   	window.setTimeout(Function.createDelegate(a, a._handleFlyoutFocus), 500)
   }
   , _onMethodComplete: function(b, a) {
   	this._webRequest = null;
   	this._update(a, b, true)
   }
   , _onMethodFailed: function() {
   	this._webRequest = null
   }
   , _onTimerTick: function(f, d) {
   	var c = false, a = this;
   	a._timer.set_enabled(c);
   	if (a._servicePath && a._serviceMethod) {
   		var b = a._currentCompletionWord();
   		if (b.trim().length < a._minimumPrefixLength) {
   			a._currentPrefix = null;
   			a._update("", null, c);
   			return
   		}
   		if (a._currentPrefix !== b || b == "" && a._minimumPrefixLength == 0) {
   			a._currentPrefix = b;
   			if (b != "" && a._cache && a._cache[b]) {
   				a._update(b, a._cache[b], c);
   				return
   			}
   			var d = new Sys.CancelEventArgs;
   			a.raisePopulating(d);
   			if (d.get_cancel()) return;
   			var e = {
   				prefixText: a._currentPrefix, count: a._completionSetCount
   			};
   			if (a._useContextKey) e.contextKey = a._contextKey;
   			if (a._webRequest) {
   				a._webRequest.get_executor().abort();
   				a._webRequest = null
   			}
   			a._webRequest = Sys.Net.WebServiceProxy.invoke(a.get_servicePath(), a.get_serviceMethod(), c, e, Function.createDelegate(a, a._onMethodComplete), Function.createDelegate(a, a._onMethodFailed), b);
   			$common.updateFormToRefreshATDeviceBuffer()
   		}
   	}
   }
   , _setText: function(b) {
   	var a = this, e = b && b.firstChild ? b.firstChild.nodeValue : null;
   	a._timer.set_enabled(false);
   	var d = a.get_element(), c = d.control, f = a._showOnlyCurrentWordInCompletionListItem ? a._getTextWithInsertedWord(e) : e;
   	if (c && c.set_text) c.set_text(f);
   	else d.value = f;
   	$common.tryFireEvent(d, "change");
   	a.raiseItemSelected(new AjaxControlToolkit.AutoCompleteItemEventArgs(b, e, b ? b._value : null));
   	a._currentPrefix = a._currentCompletionWord();
   	a._hideCompletionList()
   }
   , _update: function(k, c, n) {
   	var e = null, a = this;
   	if (n && a.get_enableCaching()) {
   		if (!a._cache) a._cache = {
   	};
   	a._cache[k] = c
   }
   if (!a._textBoxHasFocus || k != a._currentCompletionWord()) {
   	a._hideCompletionList();
   	return
   }
   if (c && c.length) {
   	a._completionListElement.innerHTML = "";
   	a._selectIndex = -1;
   	var h = e, f = e, i = e;
   	for (var g = 0; g < c.length; g++) {
   		var b = e;
   		if (a._completionListElementID) b = document.createElement("div");
   		else b = document.createElement("li");
   		if (h == e) h = b;
   		try {
   			var j = Sys.Serialization.JavaScriptSerializer.deserialize("(" + c[g] + ")");
   			if (j && j.First) {
   				f = j.First;
   				i = j.Second
   			}
   			else {
   				f = c[g];
   				i = f
   			}
   		}
   		catch (p) {
   			f = c[g];
   			i = c[g]
   		}
   		var o = a._showOnlyCurrentWordInCompletionListItem ? f : a._getTextWithInsertedWord(f);
   		b.appendChild(document.createTextNode(o));
   		b._value = i;
   		b.__item = "";
   		if (a._completionListItemCssClass) Sys.UI.DomElement.addCssClass(b, a._completionListItemCssClass);
   		else {
   			var d = b.style;
   			d.padding = "0px";
   			d.textAlign = "left";
   			d.textOverflow = "ellipsis";
   			if (Sys.Browser.agent === Sys.Browser.Safari) {
   				d.backgroundColor = "white";
   				d.color = "black"
   			}
   			else {
   				d.backgroundColor = a._textBackground;
   				d.color = a._textColor
   			}
   		}
   		a._completionListElement.appendChild(b)
   	}
   	var m = $common.getBounds(a.get_element());
   	a._completionListElement.style.width = Math.max(1, m.width - 2) + "px";
   	a._completionListElement.scrollTop = 0;
   	a.raisePopulated(Sys.EventArgs.Empty);
   	var l = new Sys.CancelEventArgs;
   	a.raiseShowing(l);
   	if (!l.get_cancel()) {
   		a.showPopup();
   		if (a._firstRowSelected && h != e) {
   			a._highlightItem(h);
   			a._selectIndex = 0
   		}
   	}
   }
   else a._hideCompletionList()
  }
   , get_onShow: function() {
   	return this._popupBehavior ? this._popupBehavior.get_onShow() : this._onShowJson
   }
   , set_onShow: function(b) {
   	var a = this;
   	if (a._popupBehavior) a._popupBehavior.set_onShow(b);
   	else a._onShowJson = b;
   	a.raisePropertyChanged("onShow")
   }
   , get_onShowBehavior: function() {
   	return this._popupBehavior ? this._popupBehavior.get_onShowBehavior() : null
   }
   , onShow: function() {
   	if (this._popupBehavior) this._popupBehavior.onShow()
   }
   , get_onHide: function() {
   	return this._popupBehavior ? this._popupBehavior.get_onHide() : this._onHideJson
   }
   , set_onHide: function(b) {
   	var a = this;
   	if (a._popupBehavior) a._popupBehavior.set_onHide(b);
   	else a._onHideJson = b;
   	a.raisePropertyChanged("onHide")
   }
   , get_onHideBehavior: function() {
   	return this._popupBehavior ? this._popupBehavior.get_onHideBehavior() : null
   }
   , onHide: function() {
   	if (this._popupBehavior) this._popupBehavior.onHide()
   }
   , get_completionInterval: function() {
   	return this._completionInterval
   }
   , set_completionInterval: function(a) {
   	if (this._completionInterval != a) {
   		this._completionInterval = a;
   		this.raisePropertyChanged("completionInterval")
   	}
   }
   , get_completionList: function() {
   	return this._completionListElement
   }
   , set_completionList: function(a) {
   	if (this._completionListElement != a) {
   		this._completionListElement = a;
   		this.raisePropertyChanged("completionList")
   	}
   }
   , get_completionSetCount: function() {
   	return this._completionSetCount
   }
   , set_completionSetCount: function(a) {
   	if (this._completionSetCount != a) {
   		this._completionSetCount = a;
   		this.raisePropertyChanged("completionSetCount")
   	}
   }
   , get_minimumPrefixLength: function() {
   	return this._minimumPrefixLength
   }
   , set_minimumPrefixLength: function(a) {
   	if (this._minimumPrefixLength != a) {
   		this._minimumPrefixLength = a;
   		this.raisePropertyChanged("minimumPrefixLength")
   	}
   }
   , get_serviceMethod: function() {
   	return this._serviceMethod
   }
   , set_serviceMethod: function(a) {
   	if (this._serviceMethod != a) {
   		this._serviceMethod = a;
   		this.raisePropertyChanged("serviceMethod")
   	}
   }
   , get_servicePath: function() {
   	return this._servicePath
   }
   , set_servicePath: function(a) {
   	if (this._servicePath != a) {
   		this._servicePath = a;
   		this.raisePropertyChanged("servicePath")
   	}
   }
   , get_contextKey: function() {
   	return this._contextKey
   }
   , set_contextKey: function(b) {
   	var a = this;
   	if (a._contextKey != b) {
   		a._contextKey = b;
   		a.set_useContextKey(true);
   		a.raisePropertyChanged("contextKey")
   	}
   }
   , get_useContextKey: function() {
   	return this._useContextKey
   }
   , set_useContextKey: function(a) {
   	if (this._useContextKey != a) {
   		this._useContextKey = a;
   		this.raisePropertyChanged("useContextKey")
   	}
   }
   , get_enableCaching: function() {
   	return this._enableCaching
   }
   , set_enableCaching: function(a) {
   	if (this._enableCaching != a) {
   		this._enableCaching = a;
   		this.raisePropertyChanged("enableCaching")
   	}
   }
   , get_completionListElementID: function() {
   	return this._completionListElementID
   }
   , set_completionListElementID: function(a) {
   	if (this._completionListElementID != a) {
   		this._completionListElementID = a;
   		this.raisePropertyChanged("completionListElementID")
   	}
   }
   , get_completionListCssClass: function() {
   	return this._completionListCssClass
   }
   , set_completionListCssClass: function(a) {
   	if (this._completionListCssClass != a) {
   		this._completionListCssClass = a;
   		this.raisePropertyChanged("completionListCssClass")
   	}
   }
   , get_completionListItemCssClass: function() {
   	return this._completionListItemCssClass
   }
   , set_completionListItemCssClass: function(a) {
   	if (this._completionListItemCssClass != a) {
   		this._completionListItemCssClass = a;
   		this.raisePropertyChanged("completionListItemCssClass")
   	}
   }
   , get_highlightedItemCssClass: function() {
   	return this._highlightedItemCssClass
   }
   , set_highlightedItemCssClass: function(a) {
   	if (this._highlightedItemCssClass != a) {
   		this._highlightedItemCssClass = a;
   		this.raisePropertyChanged("highlightedItemCssClass")
   	}
   }
   , get_delimiterCharacters: function() {
   	return this._delimiterCharacters
   }
   , set_delimiterCharacters: function(a) {
   	if (this._delimiterCharacters != a) {
   		this._delimiterCharacters = a;
   		this.raisePropertyChanged("delimiterCharacters")
   	}
   }
   , get_firstRowSelected: function() {
   	return this._firstRowSelected
   }
   , set_firstRowSelected: function(a) {
   	if (this._firstRowSelected != a) {
   		this._firstRowSelected = a;
   		this.raisePropertyChanged("firstRowSelected")
   	}
   }
   , get_showOnlyCurrentWordInCompletionListItem: function() {
   	return this._showOnlyCurrentWordInCompletionListItem
   }
   , set_showOnlyCurrentWordInCompletionListItem: function(a) {
   	if (this._showOnlyCurrentWordInCompletionListItem != a) {
   		this._showOnlyCurrentWordInCompletionListItem = a;
   		this.raisePropertyChanged("showOnlyCurrentWordInCompletionListItem")
   	}
   }
   , add_populating: function(a) {
   	this.get_events().addHandler("populating", a)
   }
   , remove_populating: function(a) {
   	this.get_events().removeHandler("populating", a)
   }
   , raisePopulating: function(b) {
   	var a = this.get_events().getHandler("populating");
   	if (a) a(this, b)
   }
   , add_populated: function(a) {
   	this.get_events().addHandler("populated", a)
   }
   , remove_populated: function(a) {
   	this.get_events().removeHandler("populated", a)
   }
   , raisePopulated: function(b) {
   	var a = this.get_events().getHandler("populated");
   	if (a) a(this, b)
   }
   , add_showing: function(a) {
   	this.get_events().addHandler("showing", a)
   }
   , remove_showing: function(a) {
   	this.get_events().removeHandler("showing", a)
   }
   , raiseShowing: function(b) {
   	var a = this.get_events().getHandler("showing");
   	if (a) a(this, b)
   }
   , add_shown: function(a) {
   	this.get_events().addHandler("shown", a)
   }
   , remove_shown: function(a) {
   	this.get_events().removeHandler("shown", a)
   }
   , raiseShown: function(b) {
   	var a = this.get_events().getHandler("shown");
   	if (a) a(this, b)
   }
   , add_hiding: function(a) {
   	this.get_events().addHandler("hiding", a)
   }
   , remove_hiding: function(a) {
   	this.get_events().removeHandler("hiding", a)
   }
   , raiseHiding: function(b) {
   	var a = this.get_events().getHandler("hiding");
   	if (a) a(this, b)
   }
   , add_hidden: function(a) {
   	this.get_events().addHandler("hidden", a)
   }
   , remove_hidden: function(a) {
   	this.get_events().removeHandler("hidden", a)
   }
   , raiseHidden: function(b) {
   	var a = this.get_events().getHandler("hidden");
   	if (a) a(this, b)
   }
   , add_itemSelected: function(a) {
   	this.get_events().addHandler("itemSelected", a)
   }
   , remove_itemSelected: function(a) {
   	this.get_events().removeHandler("itemSelected", a)
   }
   , raiseItemSelected: function(b) {
   	var a = this.get_events().getHandler("itemSelected");
   	if (a) a(this, b)
   }
   , add_itemOver: function(a) {
   	this.get_events().addHandler("itemOver", a)
   }
   , remove_itemOver: function(a) {
   	this.get_events().removeHandler("itemOver", a)
   }
   , raiseItemOver: function(b) {
   	var a = this.get_events().getHandler("itemOver");
   	if (a) a(this, b)
   }
   , add_itemOut: function(a) {
   	this.get_events().addHandler("itemOut", a)
   }
   , remove_itemOut: function(a) {
   	this.get_events().removeHandler("itemOut", a)
   }
   , raiseItemOut: function(b) {
   	var a = this.get_events().getHandler("itemOut");
   	if (a) a(this, b)
   }
};
AjaxControlToolkit.AutoCompleteBehavior.registerClass("AjaxControlToolkit.AutoCompleteBehavior", AjaxControlToolkit.BehaviorBase);
AjaxControlToolkit.AutoCompleteBehavior.descriptor = {
	properties: [{
		name: "completionInterval", type: Number
	}
   , {
   	name: "completionList", isDomElement: true
   }
   , {
   	name: "completionListElementID", type: String
   }
   , {
   	name: "completionSetCount", type: Number
   }
   , {
   	name: "minimumPrefixLength", type: Number
   }
   , {
   	name: "serviceMethod", type: String
   }
   , {
   	name: "servicePath", type: String
   }
   , {
   	name: "enableCaching", type: Boolean
   }
   , {
   	name: "showOnlyCurrentWordInCompletionListItem", type: Boolean
   }
   ]
};
AjaxControlToolkit.AutoCompleteItemEventArgs = function(c, d, b) {
	var a = this;
	AjaxControlToolkit.AutoCompleteItemEventArgs.initializeBase(a);
	a._item = c;
	a._text = d;
	a._value = b !== undefined ? b : null
};
AjaxControlToolkit.AutoCompleteItemEventArgs.prototype = {
	get_item: function() {
		return this._item
	}
   , set_item: function(a) {
   	this._item = a
   }
   , get_text: function() {
   	return this._text
   }
   , set_text: function(a) {
   	this._text = a
   }
   , get_value: function() {
   	return this._value
   }
   , set_value: function(a) {
   	this._value = a
   }
};
AjaxControlToolkit.AutoCompleteItemEventArgs.registerClass("AjaxControlToolkit.AutoCompleteItemEventArgs", Sys.EventArgs); 
if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();