function Ajax_Class() 
{
	this.requestArgs = null;
	
	this.toString = function() { return "Ajax"; }
	
	this.makeRequest = function(_method, _url, _callbackMethod)
	{
		this.request = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("MSXML2.XMLHTTP");
		this.request.onreadystatechange = _callbackMethod;
		this.request.open(_method, _url, true);
		this.request.send(_url);
	}
	
	this.checkReadyState = function(_id)
	{
		switch(this.request.readyState)
		{
			case 1:
			case 2:
			case 3:
				/*if (_id)
				{
					document.getElementById(_id).innerHTML = '<span/>';
				}*/
				break;
			case 4:
				return this.request.status;
		}
	}
}
var Ajax = new Ajax_Class();

var mySelectionCountLabelId = '';
function MySelectionChanged() {
	if (Ajax.checkReadyState('')) {
		var ids = new Array();
		ids = Ajax.request.responseText.split(',');
		
		var linkTags = document.getElementsByTagName('a');
		for (var i=0; i<linkTags.length; i++) {
			if (linkTags[i].getAttribute('AddMySelectionId')) {
				linkTags[i].className = "";
				linkTags[i].previousSibling.className = "hiddenElement";
				for (var p=0; p<ids.length; p++) {
					if (ids[p] == linkTags[i].getAttribute('AddMySelectionId')) {
						linkTags[i].className = "hiddenElement";
						linkTags[i].previousSibling.className = "";
						break;
					}
				}
			}
			else if (linkTags[i].getAttribute('RemoveMySelectionId')) {
				linkTags[i].className = "hiddenElement";
				for (var p=0; p<ids.length; p++) {
					if (ids[p] == linkTags[i].getAttribute('RemoveMySelectionId')) {
						linkTags[i].className = "";
						break;
					}
				}
			}
		}
		
		if ('' != mySelectionCountLabelId) {
			var countPropertiesSelectedElement = document.getElementById(mySelectionCountLabelId);
			if (countPropertiesSelectedElement) {
				countPropertiesSelectedElement.innerHTML = ids.length.toString();
			}
		}
		
		var noPropertiesSelectedElement = document.getElementById('MySelectionPanel_NoPropertiesSelected');
		var hasPropertiesSelectedElement = document.getElementById('MySelectionPanel_HasPropertiesSelected');
		
		if (0 == ids.length) {
			if (noPropertiesSelectedElement) {
				noPropertiesSelectedElement.className = "";
			}
			if (hasPropertiesSelectedElement) {
				hasPropertiesSelectedElement.className = "hiddenElement";
			}
		}
		else {
			if (noPropertiesSelectedElement) {
				noPropertiesSelectedElement.className = "hiddenElement";
			}
			if (hasPropertiesSelectedElement) {
				hasPropertiesSelectedElement.className = "";
			}
		}
	}
}

function AddToMySelection(id) {
	Ajax.makeRequest("POST", basehref + "/UpdateMySelection.aspx?Add=" + id, MySelectionChanged);
}

function RemoveFromMySelection(id) {
	Ajax.makeRequest("POST", basehref + "/UpdateMySelection.aspx?Remove=" + id, MySelectionChanged);
}