function CSortBar(cparent, items)
{
	if (typeof(cparent) == "string")
	{
		cparent = document.getElementById(cparent);
	}

	this.cparent_id = cparent.id;
	this.items = items;

	cparent.ctl_sort_bar = this;

	// create fields
	for (var i = 0, n = items.length; i < n; i++)
	{
		var it = items[i];
		var ctl;

		ctl = document.createElement("a");
		
		//ctl.value = it.caption;
		//ctl.href = "#";
		ctl.innerHTML = it.caption;
		ctl.name = i;
		ctl.className = "bt_sort_button";

		ctl.onclick = CSortBar.setCurrentField;

		cparent.appendChild(ctl);
	}

	this.dir = 0;
	this.field = 0;

	CSortBar.setCurrentField(null, cparent.childNodes[0]);
}


CSortBar.setCurrentField = function(ev, btn)
{
	var newbtn = btn || this;
	var cparent = newbtn.parentNode;
	var sb = cparent.ctl_sort_bar;
	var oldbtn = cparent.childNodes[sb.field]; 

	if (newbtn == oldbtn)
	{
		sb.dir = sb.dir == 0 ? 1 : 0;
	}
	else
	{
		oldbtn.style.backgroundImage = "";
		oldbtn.className = "bt_sort_button";
		sb.field = newbtn.name;
		sb.dir = 1;
	}

	newbtn.style.backgroundImage = sb.dir == 0 ? "url(components/com_bt/img/sort0.gif)" : "url(components/com_bt/img/sort1.gif)";
	newbtn.className = "bt_sort_button_sel";

	if (sb.onSort)
	{
		sb.onSort(sb.items[sb.field].field, sb.dir == 0 ? "ASC" : "DESC");
	}

}


CSortBar.prototype.getSortField = function()
{
	return this.items[this.field].field;
}


CSortBar.prototype.getSortDir = function()
{
	return this.dir == 0 ? "ASC" : "DESC";
}


CSortBar.prototype.hide = function()
{
	document.getElementById(this.cparent_id).style.display = "none";
}

CSortBar.prototype.show = function()
{
	document.getElementById(this.cparent_id).style.display = "";
}


CSortBar.create = function(cparent, items)
{
	var c = new CSortBar(cparent, items);

	return c;
}




