var Gallery = Class.create(Component, {
	getClass: function() {
		return "Gallery";
	},

	initialize: function($super, name, owner, editMode){
		$super(name, owner, editMode);

		this.btnSelect = new Image;
		this.btnSelected = new Image;
	},

	initialiseSelection: function(selectItem, selectedItem){
		this.btnSelect.src = selectItem;
		this.btnSelected.src = selectedItem;

		return true;
	},

	selectItem: function(itemId){
		if ($("selectItemBtn" + itemId).src == this.btnSelect.src)
		{
			$("selectItemBtn" + itemId).src = this.btnSelected.src;
			this.sendEvent("addSelection", 1);
		}
		else
		{
			$("selectItemBtn" + itemId).src = this.btnSelect.src;
			this.sendEvent("addSelection", -1);
		}

		return xajax.request({xjxfun: this.name + "AxSelectItem"}, {parameters: [itemId]});
	},

	clearSelection: function(){
		var count = 0;
		var btns = document.getElementsByName("selectItemBtn");

		for (i = 0; i < btns.length; i++)
		{
			if (btns[i].src == this.btnSelected.src)
			{
				btns[i].src = (this.btnSelect.src);
				count--;
			}
		}

		this.sendEvent("addSelection", count);
		return xajax.request({xjxfun: this.name + "AxClearSelection"});
	},

	selectAll: function(){
		var count = 0;
		var btns = document.getElementsByName("selectItemBtn");

		for (i = 0; i < btns.length; i++)
		{
			if (btns[i].src == this.btnSelect.src)
			{
				btns[i].src = (this.btnSelected.src);
				count++;
			}
		}

		this.sendEvent("addSelection", count);
		return xajax.request({xjxfun:this.name + "AxSelectAll"});
	},

	invertSelection: function(){
		var count = 0;
		var btns = document.getElementsByName("selectItemBtn");

		for (i = 0; i < btns.length; i++)
		{
			if (btns[i].src == this.btnSelect.src)
			{
				btns[i].src = (this.btnSelected.src);
				count++;
			}
			else
			{
				btns[i].src = (this.btnSelect.src);
				count--;
			}
		}

		this.sendEvent("addSelection", count);
		return xajax.request({xjxfun:this.name + "AxInvertSelection"});
	}
});

