Struct = function()
{
	this.m_list = new Array();
	this.m_root = new Array();
	this.firstOffsetPages = 0;
	this.lastOffsetPages = 0;
}

Struct.prototype.root = function(data)
{
	this.m_root = data;
}

Struct.prototype.rootItem = function()
{
	return this.m_root;
}

Struct.prototype.add = function(data)
{
	data["status"] = (data["href"] != "") ? "N" : "X";
	this.m_list[this.m_list.length] = data;
}

Struct.prototype.firstItem = function()
{
	return this.m_list[0];
}

Struct.prototype.getNextItem = function(gix)
{
	for (var i = 0; i < this.m_list.length; i++) {
		if (gix == this.m_list[i]["gix"] && i < this.m_list.length) {
			return this.m_list[i + 1];
		}
	}
	return null;
}

Struct.prototype.getPreviousItem = function(gix)
{
	for (var i = 0; i < this.m_list.length; i++) {
		if (gix == this.m_list[i]["gix"] && i > 0) {
			return this.m_list[i - 1];
		}
	}
	return null;
}

Struct.prototype.findItem = function(gix)
{
	for (var i = 0; i < this.m_list.length; i++) {
		if (gix == this.m_list[i]["gix"]) {
			return this.m_list[i];
		}
	}
	return null;
}

Struct.prototype.findItemByParent = function(index)
{
	for (var i = 0; i < this.m_list.length; i++) {
		if (index == this.m_list[i]["index"]) {
			return this.m_list[i];
		}
	}
	return null;
}

Struct.prototype.isFirstItem = function(gix)
{

}

Struct.prototype.isLastItem = function(gix)
{

};

Struct.prototype.item = function(index)
{
	return this.m_list[index];
}

Struct.prototype.length = function(index)
{
	return this.m_list.length;
}

Struct.prototype.getVisibleItemsCount = function()
{
	var count = 0;
	for (var i = 0; i < this.length(); i++) {
		if (this.m_list[i]["visible"] == "1") count++;
	}
	return count;
}

Struct.prototype.getVisibleItemsIndex = function(gix)
{
	var index = 0;
	for (var i = 0; i < this.length(); i++) {
		if (this.m_list[i]["visible"] == "1") index++;
		if (this.m_list[i]["gix"] == gix) return index;
	}
	return index;
}

Struct.prototype.getColToString = function(colName)
{
	var result = new Array();
	for (var i = 0; i < this.m_list.length; i++) {
		result[result.length] = this.m_list[i][colName];
	}
	return result.toString();
}

Struct.prototype.setColFromString = function(colName, v)
{
	var arr = v.split(",");
	for (var i = 0; i < arr.length; i++) {
		this.m_list[i][colName] = arr[i];
	}
}

Struct.prototype.Mixed = function()
{
	var tempList = new Array();
	var indexList = new Array();

	for (var i = this.firstOffsetPages; i < this.m_list.length - this.lastOffsetPages; i++)
	{
		indexList[indexList.length] = i;
	}
	for (var i = 0; i < this.firstOffsetPages; i++) 
	{
		tempList[tempList.length] = this.m_list[i];
	}
	
	var c = indexList.length - 1;
	for(var i = 0; i < c; i++)
	{
		var index = Math.round(Math.random() * (indexList.length - 1));
		tempList[tempList.length] = this.m_list[indexList[index]];
		indexList.splice(index, 1);
	}
	tempList[tempList.length] = this.m_list[indexList[0]];
	
	for (var i = this.m_list.length - this.lastOffsetPages; i < this.m_list.length; i++)
	{
		tempList[tempList.length] = this.m_list[i];
	}
	
	this.m_list = tempList;
}

Struct.prototype.TreeToList = function()
{
	for (var i = 0; i < this.length(); i++)
	{
		this.item(i)["parent"] = 1;
	}
}

struct = new Struct();

