if(typeof(Controls) == 'undefined')
	var Controls = {};
if(typeof(Controls.UI) == 'undefined')
	Controls.UI = {};
if(typeof(Controls.UI.ListView) == 'undefined'){
	Controls.UI.ListView = {};
	Controls.UI.ListView.ColumnHeaderSortType = {
		None: "", 
		Ascending: "ASC", 
		Descending: "DESC"
	};
	Controls.UI.ListView.ScrollDirection = {
		None: 0, 
		Up: 1, 
		Down: 2
	};
	Controls.UI.ListView.ItemTextState = {
		Hidden: 0, 
		Visible: 1
	};
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.Initialize = function(Div){
		Div.List_Scroll = Controls.UI.ListView.List_Scroll;
		Div.ResizeMarker_MouseDown = Controls.UI.ListView.ResizeMarker_MouseDown;
		Div.CreateResizeLine = Controls.UI.ListView.CreateResizeLine;
		Div.Body_MouseUp = Controls.UI.ListView.Body_MouseUp;
		Div.ResizeElement = Controls.UI.ListView.ResizeElement;
		Div.ColumnHeader_Click = Controls.UI.ListView.ColumnHeader_Click;
		Div.ColumnHeader_MouseOver = Controls.UI.ListView.ColumnHeader_MouseOver;
		Div.ColumnHeader_MouseOut = Controls.UI.ListView.ColumnHeader_MouseOut;
		Div.SortHeader = Controls.UI.ListView.SortHeader;
		Div.GetHeaderSortType = Controls.UI.ListView.GetHeaderSortType;
		Div.GetCurrentSortString = Controls.UI.ListView.GetCurrentSortString;
		Div.Refresh = Controls.UI.ListView.Refresh;
		Div.ColumnHeader_MouseUp = Controls.UI.ListView.ColumnHeader_MouseUp;
		Div.List_MouseDown = Controls.UI.ListView.List_MouseDown;
		Div.List_MouseOver = Controls.UI.ListView.List_MouseOver;
		Div.List_MouseOut = Controls.UI.ListView.List_MouseOut;
		Div.List_KeyDown = Controls.UI.ListView.List_KeyDown;
		Div.List_KeyUp = Controls.UI.ListView.List_KeyUp;
		Div.List_DoubleClick = Controls.UI.ListView.List_DoubleClick;
		Div.SelectItem = Controls.UI.ListView.SelectItem;
		Div.ScrollItem = Controls.UI.ListView.ScrollItem;
		Div.GetValue = Controls.UI.ListView.GetValue;
		Div.GoToFirstPage = Controls.UI.ListView.GoToFirstPage;
		Div.GoToLastPage = Controls.UI.ListView.GoToLastPage;
		Div.GoToPage = Controls.UI.ListView.GoToPage;
		Div.OnItemSelected = Controls.UI.ListView.OnItemSelected;
		Div.OnItemKeyUp = Controls.UI.ListView.OnItemKeyUp;
		Div.OnItemDoubleClick = Controls.UI.ListView.OnItemDoubleClick;
		Div.OnListRefresh = Controls.UI.ListView.OnListRefresh;
		Div.ResizeHeaderScrollContainer = Controls.UI.ListView.ResizeHeaderScrollContainer;
		Div.ShowTexts = Controls.UI.ListView.ShowTexts;
		Div.HideTexts = Controls.UI.ListView.HideTexts;
		Div.SetHeight = Controls.UI.ListView.SetHeight;
		Div.GetHeight = Controls.UI.ListView.GetHeight;
		Div.Window_Resize = Controls.UI.ListView.Window_Resize;
		Div.TextsState = Controls.UI.ListView.ItemTextState.Visible;
		Div.CreateLoadingBody = Controls.UI.ListView.CreateLoadingBody;
		Div.ResizeHeader = Controls.UI.ListView.ResizeHeader;
		
		Div._mouseMoveDelegate = Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.Body_MouseMove);
		Div._mouseUpDelegate = Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.Body_MouseUp);
		Div._resizeLine = null;
		Div._resizeLineStartX = 0;
		Div._mouseStartX = 0;
		Div._currentResizedHeader = null;
		Div._currentSortedHeader = null;
		Div._requestInProgress = false;
		Div._resizeInProgress = false;
		Div._loadingBody = null;
		Div.SelectedItem = null;
		Div.DefaultSortDirections = new Array();
		Div._lastRequest = null;
		Div.SettingsKey = "ListView";
		//Div.GluedHeader = null;
		
		var scrollContainer = document.getElementById(Div.id +"_RowsScrollContainer");
		Controls.EventHelper.RegisterEventHandler(scrollContainer, "onscroll", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_Scroll));
		
		//Controls.EventHelper.RegisterEventHandler(document.getElementsByTagName("html")[0], "onmouseup", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.Body_MouseUp));
		//Controls.EventHelper.RegisterEventHandler(document.documentElement, "onmouseup", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.Body_MouseUp));
		Controls.EventHelper.RegisterEventHandler(Div, "onresize", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.Window_Resize));
		//alert(window.onresize);
		
		Div.ResizeHeaderScrollContainer();

		var rowsContainer = document.getElementById(Div.id +"_RowsContainer");
		Controls.EventHelper.RegisterEventHandler(rowsContainer, "onmouseover", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_MouseOver));
		Controls.EventHelper.RegisterEventHandler(rowsContainer, "onmouseout", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_MouseOut));
		Controls.EventHelper.RegisterEventHandler(rowsContainer, "onmousedown", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_MouseDown));
		Controls.EventHelper.RegisterEventHandler(rowsContainer, "onkeydown", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_KeyDown));
		Controls.EventHelper.RegisterEventHandler(rowsContainer, "onkeyup", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_KeyUp));
		Controls.EventHelper.RegisterEventHandler(rowsContainer, "ondblclick", Controls.Delegates.CreateDelegate(Div, Controls.UI.ListView.List_DoubleClick));
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.Window_Resize = function(e){
		this.ResizeHeaderScrollContainer();
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.GetHeight = function(){
		return this.Height;
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.SetHeight = function(height){
		var rowsScrollContainer = document.getElementById(this.id +"_RowsScrollContainer");
		this.Height = height;
		this.style.height = height + "px";
		//this.style.backgroundColor = "blue";
		rowsScrollContainer.style.height = (height - this.PagerHeight) + "px";
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ShowTexts = function(){
		var rowsContainer = document.getElementById(this.id +"_RowsContainer");
		for(var i = 0; i < rowsContainer.rows.length; i++){
			if(rowsContainer.rows[i].id == "TextRow"){
				rowsContainer.rows[i].style.display = "";
				this.TextsState = Controls.UI.ListView.ItemTextState.Visible;
			}
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.HideTexts = function(){
		var rowsContainer = document.getElementById(this.id +"_RowsContainer");
		for(var i = 0; i < rowsContainer.rows.length; i++){
			if(rowsContainer.rows[i].id == "TextRow"){
				rowsContainer.rows[i].style.display = "none";
				this.TextsState = Controls.UI.ListView.ItemTextState.Hidden;
			}
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ResizeHeaderScrollContainer = function(){
		if(this.parentNode == null){
			// DETACHED
			alert(this.id);
			return;
		}
		var scrollContainer = document.getElementById(this.id +"_RowsScrollContainer");
		var headersSrcollContainer = document.getElementById(this.id +"_HeadersScrollContainer");
		
		headersSrcollContainer.style.width = scrollContainer.clientWidth +"px";
		if(this.GluedHeader != ''){
			var headerContainer = document.getElementById(this.id +"_HeadersContainer");
			if(headerContainer.offsetWidth != scrollContainer.clientWidth){
				this.ResizeHeader(headerContainer.rows[0].cells[this.GluedHeader],  scrollContainer.clientWidth - headerContainer.offsetWidth - 1);
			}
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.OnListRefresh = function(e){
		var handler = this.ListRefresh;
		if(handler)
			handler(this, e);
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.OnItemSelected = function(e){
		var handler = this.ItemSelected;
		if(handler)
			handler(this, e);
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.OnItemDoubleClick = function(e){
		var handler = this.ItemDoubleClick;
		if(handler)
			handler(this, e);
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.OnItemKeyUp = function(e){
		var handler = this.ItemKeyUp;
		if(handler)
			handler(this, e);
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.GoToPage = function(page){
		this.CurrentPage = page;
		this.Refresh();
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.GetValue = function(item){
		var parts = item.id.split('_');
		return parts[parts.length - 1];
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_MouseOver = function(e){
		
		var srcElement = Controls.EventHelper.GetSourceElement(e);
		if(srcElement == null)
			alert("srcElement is null");

		var row = (srcElement.tagName != "TR") ? Controls.DOMHelper.GetParentTag(srcElement, 'TR') : srcElement;
		var rowsContainer = document.getElementById(this.id +"_RowsContainer");
		if(!Controls.DOMHelper.IsParentOf(rowsContainer, row))
			return;
		if(row.id == "TextRow")
			row = row.previousSibling;
		
		if(row != this.SelectedItem){
			row.originalBackgroundColor = row.style.backgroundColor;
			row.style.backgroundColor = this.ItemMouseOverBackgoundColor;

			if(row.nextSibling != null && row.nextSibling.id == "TextRow")
				row.nextSibling.style.backgroundColor = this.ItemMouseOverBackgoundColor;
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_MouseOut = function(e){
		
		var srcElement = Controls.EventHelper.GetSourceElement(e);
		var row = Controls.DOMHelper.GetParentTag(srcElement, 'TR');
		if(row.id == "TextRow")
			row = row.previousSibling;
			
		if(row != this.SelectedItem){
			row.style.backgroundColor = row.originalBackgroundColor;
			
			if(row.nextSibling != null && row.nextSibling.id == "TextRow")
				row.nextSibling.style.backgroundColor = row.style.originalBackgroundColor;
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_MouseDown = function(e){
		var srcElement = Controls.EventHelper.GetSourceElement(e);
		var row = Controls.DOMHelper.GetParentTag(srcElement, 'TR');
		if(row.id == "TextRow")
			row = row.previousSibling;
		this.SelectItem(row);
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.SelectItem = function(item){
		if(item.id == "LoadingRow")
			return;
		if(this.SelectedItem != null){
			this.SelectedItem.style.backgroundColor = this.SelectedItem.normalBackgroundColor;
			if(this.SelectedItem.nextSibling != null && this.SelectedItem.nextSibling.id == "TextRow"){
				this.SelectedItem.nextSibling.style.color = this.SelectedItem.nextSibling.normalColor;
			}
		}
		item.normalBackgroundColor = item.originalBackgroundColor;
		item.style.backgroundColor = this.ItemSelectedBackgroundColor;
		//item.style.color = "white";
		if(item.nextSibling != null && item.nextSibling.id == "TextRow"){
			//item.nextSibling.style.backgroundColor = "#C6CDF2";
			item.nextSibling.normalBackgroundColor = item.nextSibling.originalBackgroundColor;
			item.nextSibling.style.backgroundColor = this.ItemSelectedBackgroundColor;
			//item.nextSibling.style.normalColor = item.nextSibling.style.color;
			//item.nextSibling.style.color = "#E6E6E6";
		}
		this.SelectedItem = item;
		this.OnItemSelected({Item:this.SelectedItem});
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_DoubleClick = function(e){
		var srcElement = Controls.EventHelper.GetSourceElement(e);
		var row = Controls.DOMHelper.GetParentTag(srcElement, 'TR');
		if(row.id == "TextRow")
			row = row.previousSibling;
		this.OnItemDoubleClick({Item:row});
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_KeyUp = function(e){
		var srcElement = Controls.EventHelper.GetSourceElement(e);
		var row = Controls.DOMHelper.GetParentTag(srcElement, 'TR');
		if(row.id == "LoadingRow")
			return;
		if(row.id == "TextRow")
			row = row.previousSibling;

		this.OnItemKeyUp({Item:row, KeyCode:e.keyCode});
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_KeyDown = function(e){
		switch(e.keyCode){
			case 40: // DOWN
				if(this.SelectedItem != null && this.SelectedItem.nextSibling != null){
					if(this.SelectedItem.nextSibling.id == "TextRow" && this.SelectedItem.nextSibling.nextSibling != null){
						this.SelectItem(this.SelectedItem.nextSibling.nextSibling);
					}else if(this.SelectedItem.nextSibling.id != "TextRow"){
						this.SelectItem(this.SelectedItem.nextSibling);
					}
				}
				this.ScrollItem(this.SelectedItem, Controls.UI.ListView.ScrollDirection.Down);
				break;
			case 38: // UP
				if(this.SelectedItem != null && this.SelectedItem.previousSibling != null){
					if(this.SelectedItem.previousSibling.id == "TextRow" && this.SelectedItem.previousSibling.previousSibling != null){
						this.SelectItem(this.SelectedItem.previousSibling.previousSibling);
					}else if(this.SelectedItem.previousSibling.id != "TextRow"){
						this.SelectItem(this.SelectedItem.previousSibling);
					}
				}
				this.ScrollItem(this.SelectedItem, Controls.UI.ListView.ScrollDirection.Up);
				break;
		}
		Controls.EventHelper.CancelBubble(e);
		return false;
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ScrollItem = function(item, scrollDirection){
		if(item == null)
			return;
		if(scrollDirection == Controls.UI.ListView.ScrollDirection.None)
			return;
		var scrollContainer = document.getElementById(this.id +"_RowsScrollContainer");
		if(scrollDirection == Controls.UI.ListView.ScrollDirection.Down){
			//alert(item.offsetParent.offsetTop);
			var itemEdge = item.offsetTop + item.offsetHeight + 1;
			if(document.all)
				itemEdge += item.offsetParent.offsetTop;
			if(item.nextSibling != null && item.nextSibling.id == "TextRow")
				itemEdge += item.nextSibling.offsetHeight;
			var clientEdge = scrollContainer.clientHeight + scrollContainer.scrollTop;
			//alert(itemEdge +" -> "+ clientEdge);
			if(itemEdge > clientEdge)
				scrollContainer.scrollTop += (itemEdge - clientEdge);
		}else if(scrollDirection == Controls.UI.ListView.ScrollDirection.Up){
			var itemEdge = item.offsetTop - 1;
			if(!document.all)
				itemEdge -= parseInt(item.offsetParent.style.marginTop);
			var clientEdge = scrollContainer.scrollTop;
			//alert(itemEdge +" -> "+ clientEdge);
			if(itemEdge < clientEdge)
				scrollContainer.scrollTop = itemEdge;
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ColumnHeader_Click = function(e){
		if(!this._requestInProgress && (this._resizeLine == null  || this._resizeLine.style.display == "none")){
			var srcElement = Controls.EventHelper.GetSourceElement(e);
			var header = (srcElement.tagName != "TD") ? Controls.DOMHelper.GetParentTag(srcElement, "TD") : srcElement;
			this.SortHeader(header);
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ColumnHeader_MouseOver = function(e){
		var header = Controls.EventHelper.GetSourceElement(e);
		if(header.tagName == "TD"){
			return;
		}
		header = Controls.DOMHelper.GetParentTag(header, 'TD');
		if(header == null || header.style.backgroundImage.indexOf("2.jpg") != -1)
			return;
		//alert(header.outerHTML);
		header.style.backgroundImage = header.style.backgroundImage.replace('.jpg', '2.jpg');
		//alert(header.style.backgroundImage);
		var resizeMarker = document.getElementById(header.id +"_ResizeMarker");
		if(resizeMarker != null && resizeMarker.src.indexOf("2.jpg") == -1){
			resizeMarker.src = resizeMarker.src.replace(".jpg", "2.jpg");
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ColumnHeader_MouseOut = function(e){
		var header = Controls.EventHelper.GetSourceElement(e);
		if(header.tagName == "TD")
			return;
		header = Controls.DOMHelper.GetParentTag(header, 'TD');
		if(header == null)
			return;
		header.style.backgroundImage = header.style.backgroundImage.replace('2.jpg', '.jpg');
		var resizeMarker = document.getElementById(header.id +"_ResizeMarker");
		if(resizeMarker != null)
			resizeMarker.src = resizeMarker.src.replace("2.jpg", ".jpg");
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ColumnHeader_MouseUp = function(e){
		
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.SortHeader = function(header){
		var textContainer = header.childNodes[0];
		if(this._currentSortedHeader != header){
			if(this._currentSortedHeader != null){
				this._currentSortedHeader.firstChild.style.backgroundImage = "";
			}
			var defaultSortDirection = (this.DefaultSortDirections[header.id] == "desc") ? Controls.UI.ListView.ColumnHeaderSortType.Descending : Controls.UI.ListView.ColumnHeaderSortType.Ascending;
			
			if(defaultSortDirection == Controls.UI.ListView.ColumnHeaderSortType.Descending){
				textContainer.style.backgroundImage = "url("+ this.HeaderSortedImageBaseName +"Down.gif)";
				textContainer.title = textContainer.title.replace("низходящо", "възходящо");
			}else{
				textContainer.style.backgroundImage = "url("+ this.HeaderSortedImageBaseName +"Up.gif)";
				textContainer.title = textContainer.title.replace("възходящо", "низходящо");
			}
		}else{
			if(this.GetHeaderSortType(this._currentSortedHeader) == Controls.UI.ListView.ColumnHeaderSortType.Ascending){
				textContainer.style.backgroundImage = "url("+ this.HeaderSortedImageBaseName +"Down.gif)";
				textContainer.title = textContainer.title.replace("низходящо", "възходящо");
			}else{
				textContainer.style.backgroundImage = "url("+ this.HeaderSortedImageBaseName +"Up.gif)";
				textContainer.title = textContainer.title.replace("възходящо", "низходящо");
			}
		}
		this._currentSortedHeader = header;
		this.Refresh();
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.GetHeaderSortType = function(header){
		var textContainer = header.childNodes[0];
		if(textContainer.style.backgroundImage == "url("+ this.HeaderSortedImageBaseName +"Up.gif)"){	
			return Controls.UI.ListView.ColumnHeaderSortType.Ascending;
		}else if(textContainer.style.backgroundImage == "url("+ this.HeaderSortedImageBaseName +"Down.gif)"){
			return Controls.UI.ListView.ColumnHeaderSortType.Descending;
		}else{
			return Controls.UI.ListView.ColumnHeaderSortType.None;
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.GetCurrentSortString = function(){
		var headersContainer = document.getElementById(this.id +"_HeadersContainer");
		var sortArray = new Array();
		var headersCount = headersContainer.rows[0].cells.length;
		for(var i = 0; i < headersCount; i++){
			var header = headersContainer.rows[0].cells[i];
			var sortType = this.GetHeaderSortType(header);
			if(sortType != Controls.UI.ListView.ColumnHeaderSortType.None){
				sortArray.push(header.id + " "+ sortType);
			}
		}
		return sortArray.join(", ");
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.CreateLoadingBody = function(text){
		if(this._loadingBody == null){
			var headersContainer = document.getElementById(this.id +"_HeadersContainer");
			this._loadingBody = document.createElement("TBODY");
			
			var tr = document.createElement("TR");
			tr.id = "LoadingRow";
			this._loadingBody.appendChild(tr);
			var td = document.createElement("TD");
			tr.appendChild(td);
			td.colSpan = headersContainer.rows[0].cells.length + 1;
			td.style.height = "30px";
			td.style.padding = "1px 3px";
			td.style.verticalAlign = "middle";
			td.style.textAlign = "center";
			td.style.backgroundColor = this.LoadingBackgroundColor;
			td.innerHTML = text;
			return true;
		}else{
			this._loadingBody.rows[0].cells[0].innerHTML = text;
			return false;
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.Refresh = function(){
		if(this._lastRequest != null)
			this._lastRequest.Abort();
		var httpRequest = new CHttpRequest();
		this._lastRequest = httpRequest;
		httpRequest.QueryString = "AjaxType=XML&RequestFile="+ this.TemplateName +"&MethodName=XHandleItemRequest";
		httpRequest.AssyncCall = true;
		httpRequest.AddProperty("Arguments[FilterString]", this.StaticFilter);
		httpRequest.AddProperty("Arguments[Page]", this.CurrentPage);
		httpRequest.AddProperty("Arguments[SortString]", this.GetCurrentSortString());
		httpRequest.AddProperty("Arguments[PageContext]", this.PageContext);
		httpRequest.AddProperty("Arguments[TextsState]", this.TextsState);
		var headersContainer = document.getElementById(this.id +"_HeadersContainer");
		var headers = headersContainer.rows[0].cells;
		var headersCount = headers.length;
		
		for(var i = 0; i < headersCount; i++){
			httpRequest.AddProperty("Arguments[HeadersWidths]["+ headers[i].id +"]", parseInt(headers[i].style.width));
		}
		
		httpRequest.OnResponse = Controls.Delegates.CreateDelegate(this, Controls.UI.ListView.Refresh_Callback);
		httpRequest.Send();
		var rowsContainer = document.getElementById(this.id +"_RowsContainer");
		
		if(this.CreateLoadingBody("Зарежда се...")){
			rowsContainer.replaceChild(this._loadingBody, rowsContainer.tBodies[0]);
		}
		var pagerContainer = document.getElementById(this.id +"_PagerContainer");
		pagerContainer.innerHTML = "";
		
		this._requestInProgress = true;
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.Refresh_Callback = function(httpRequest, AdditionalData){
		this._requestInProgress = false;
		this._lastRequest = null
		var pagerCode = "";
		var itemsCode = "";
		var itemsCount = "";
		if(!document.all){
			itemsCode = httpRequest.responseXML.getElementsByTagName("items")[0].childNodes[0].nodeValue;
			pagerCode = httpRequest.responseXML.getElementsByTagName("pager")[0].childNodes[0].nodeValue;
			itemsCount = httpRequest.responseXML.getElementsByTagName("itemsCount")[0].childNodes[0].nodeValue;
		}else{
			//alert(httpRequest.responseXML.selectSingleNode("response"));
			itemsCode = httpRequest.responseXML.selectSingleNode("response/items").childNodes[0].text;
			pagerCode = httpRequest.responseXML.selectSingleNode("response/pager").childNodes[0].text;
			itemsCount = httpRequest.responseXML.selectSingleNode("response/itemsCount").childNodes[0].text;
		}
		
		if(itemsCount > 0){
			var ajaxResultContainer = document.getElementById(this.id +"_AjaxResultContainer");
			if(ajaxResultContainer == null)
				return true;
				
			ajaxResultContainer.innerHTML = "<table>"+ itemsCode +"</table>";
			
			var rowsContainer = document.getElementById(this.id +"_RowsContainer");
			var body = ajaxResultContainer.childNodes[0].removeChild(ajaxResultContainer.childNodes[0].childNodes[0]);
			rowsContainer.replaceChild(body, rowsContainer.tBodies[0]);
			this._loadingBody = null;
			ajaxResultContainer.innerHTML = "";
		}else{
			this.CreateLoadingBody(this.NoItemsInfoMessage);
		}
		
		var pagerContainer = document.getElementById(this.id +"_PagerContainer");
		pagerContainer.innerHTML = pagerCode;
		
		this.OnListRefresh({});
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.List_Scroll = function(e){
		var container = Controls.EventHelper.GetSourceElement(e);
		var headersScrollContainer = document.getElementById(this.id +"_HeadersScrollContainer");
		headersScrollContainer.scrollLeft = container.scrollLeft;
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ResizeMarker_MouseDown = function(e){
		var marker = Controls.EventHelper.GetSourceElement(e);
		var header = marker.parentNode;
		Controls.EventHelper.RegisterEventHandler(document.documentElement, "onmousemove", this._mouseMoveDelegate);
		Controls.EventHelper.RegisterEventHandler(document.documentElement, "onmouseup", this._mouseUpDelegate);
		this._currentResizedHeader = header;
		this.CreateResizeLine(header);
		this._mouseStartX = e.clientX;
		this._resizeLineStartX = parseInt(this._resizeLine.style.left);
		this._resizeInProgress = true;
		Controls.EventHelper.CancelBubble(e);
		e.returnValue = false;
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.Body_MouseUp = function(e){
		if(this._resizeLine != null && this._resizeLine.style.display != "none"){
			this._resizeInProgress = false;
			this._resizeLine.style.display = "none";
			Controls.EventHelper.UnRegisterEventHandler(document.documentElement, "onmousemove", this._mouseMoveDelegate);
			Controls.EventHelper.UnRegisterEventHandler(document.documentElement, "onmouseup", this._mouseUpDelegate);
			var mouseDelta = e.clientX - this._mouseStartX;
			
			this.ResizeHeader(this._currentResizedHeader, mouseDelta);
			
			Controls.EventHelper.CancelBubble(e);
			e.returnValue = false;
			var col = document.getElementById(this._currentResizedHeader.id + "_Col");
			if(!document.all)
				this.ResizeHeaderScrollContainer();
			SettingsManager.SaveSetting(this.SettingsKey +".ColumnWidths."+ this._currentResizedHeader.id, parseInt(col.style.width));
			//this._currentResizedHeader.style.width = (parseInt(this._currentResizedHeader.style.width) + mouseDelta) + "px";
			//this._currentResizedHeader.childNodes[0].style.width = (parseInt(this._currentResizedHeader.childNodes[0].style.width) + mouseDelta) + "px";
			//var table = document.getElementById(this.id +"_HeadersScrollContainer");
			
			//col.style.width = (parseInt(col.style.width) + mouseDelta) + "px";
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.Body_MouseMove = function(e){
		var mouseDelta = e.clientX - this._mouseStartX;
		this._resizeLine.style.left = (this._resizeLineStartX + mouseDelta - 3) +"px";
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ResizeHeader = function(header, delta){
		var col = document.getElementById(header.id + "_Col");
		this.ResizeElement(header, delta);
		this.ResizeElement(Controls.DOMHelper.GetParentTag(header, 'TABLE'), delta);
		this.ResizeElement(header.childNodes[0], delta);
		this.ResizeElement(col, delta);
		this.ResizeElement(Controls.DOMHelper.GetParentTag(col, 'TABLE'), delta);
		
		var rowsContainer = document.getElementById(this.id +"_RowsContainer");
		for(var i = 0; i < rowsContainer.rows.length; i++){
			if(rowsContainer.rows[i].id == "TextRow" || rowsContainer.rows[i].id == "LoadingRow")
				continue;
			var div = rowsContainer.rows[i].cells[header.id].childNodes[0];
			if(div && div.tagName == "DIV"){
				this.ResizeElement(div, delta);
			}
		}
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.ResizeElement = function(element, delta){
		element.style.width = (parseInt(element.style.width) + delta) + "px";
	}
	//-------------------------------------------------------------------------------------------------------------
	Controls.UI.ListView.CreateResizeLine = function(header){
		if(this._resizeLine == null){
			this._resizeLine = document.body.appendChild(document.createElement("DIV"));
			this._resizeLine.style.display = "none";
			this._resizeLine.style.position = "absolute";
			this._resizeLine.style.width = "3px";
			this._resizeLine.style.zIndex = "100";
			this._resizeLine.style.backgroundColor = "black";
			this._resizeLine.style.cursor = "w-resize";
			this._resizeLine.onmousedown = new Function("return false");
			this._resizeLine.ondragstart = new Function("event.returnValue = false; return false;");
			Controls.UI.Effects.SetOpacity(this._resizeLine, 10);
			//this._resizeLine.style.width = "2px";
		}
		var rowsScrollContainer = document.getElementById(this.id +"_RowsScrollContainer");
		var coords = Controls.DOMHelper.GetCoordinates(header);
		this._resizeLine.style.left = (coords[0] + header.offsetWidth - 1 - rowsScrollContainer.scrollLeft) +'px';
		this._resizeLine.style.top = coords[1] +'px';
		this._resizeLine.style.height = rowsScrollContainer.clientHeight +'px';
		this._resizeLine.style.display = "block";
		//alert(this._resizeLine.outerHTML);
		
	}
}