﻿/* * Copyright © 1995-2005 by 4system Polska Sp. z o.o. * All Rights Reserved. v4 */VersionsItem = function(){	this.name = "";	this.index = 0;};Struct = function(){	this.m_list = new Array();	this.m_root = new Array();	this.firstOffsetPages = 0;	this.lastOffsetPages = 0;	this.countShowPages = 0;		this.versionsItems = new Object();};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.findPageGixByIndex = function(index){	for (var i = 0; i < this.m_list.length; i++) {		if (index == this.m_list[i]["index"]) {			return this.m_list[i]["gix"];		}	}	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.findItemBy = function(value, col){	if (typeof(col) == "undefined" || col == "" || col == null) col = "gix";	for (var i = 0; i < this.m_list.length; i++) {		if (value == this.m_list[i][col]) {			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){	return false;};Struct.prototype.isLastItem = function(gix){	return false;};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.setAllHidden = function(gix){	for (var i = 0; i < this.m_list.length; i++) {		this.m_list[i]["visible"] = 0;	}	return true;};Struct.prototype.setAllVisible = function(gix){	for (var i = 0; i < this.m_list.length; i++) {		this.m_list[i]["visible"] = 1;	};	return true;};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 = (this.countShowPages < indexList.length && this.countShowPages > 0) ? this.countShowPages - 1 : 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.prototype.existsVersionItem = function(vindex){	for (var k in this.versionsItems) {		if (this.versionsItems[k].index == vindex) {			return true;		}	}		return false;};Struct.prototype.addVersionItem = function(vindex, vname){	if (!this.versionsItems["_" + vindex]) {		this.versionsItems["_" + vindex] = new VersionsItem();		this.versionsItems["_" + vindex].index = vindex;		this.versionsItems["_" + vindex].name = vname;	}};Struct.prototype.addVersion = function(index, vindex, s, vname){	for (var i = 0; i < this.m_list.length; i++)	{		if (index == this.m_list[i]["index"])		{			this.m_list[i]["title" + vindex] = s;			this.addVersionItem(vindex, vname);		}	}};Struct.prototype.findItemBy = function(value, col){	if (typeof(col) == "undefined" || col == "" || col == null) col = "gix";	for (var i = 0; i < this.m_list.length; i++) {		if (value == this.m_list[i][col]) {			return this.m_list[i];		}	}	return null;};Struct.prototype.getGIX = function(idx){	var item = this.findItemBy(idx, "index");	if (item) {		return parseInt(item["gix"]);	}	return -1;};Struct.prototype.setNewStatus = function(newStatus){	for (var i = 0; i < this.m_list.length; i++) {		this.m_list[i]["status"] = newStatus;	};	return true;};struct = new Struct();