// 2006/1/3, Jalen: Properties are initialized when creating a new instance; function "isVirtual()" created to determine virtual pages.
// Last revised on 2005/6/21, Jalen

function jdPage(vsData) {
	this.init = init;
	this.isVisited = isVisited;
	this.isVirtual = isVirtual;
	this.toString = toString;
	this._UnitTestError = _UnitTestError;

	var sDelimiter = "|";

	this.init(vsData);

	function init(vsData) {
		this.ID = "";
		this.Parent = "";				// Parent page ID
		this.SiblingPosition = 1;		// Sequence in its sibling pages (Starting from 1)
		this.FilePath = "";				// Absolute/relative HTML file path
		this.FrameID = "";				// Frame label in the Flash file. This property combined with "FilePath" can determine a unique page within a site.
		this.Title = "";				// Page title that can be shown in a sitemap
		this.VisitedStatus = false;		// Values are: true/1, false/0.
		if (vsData != null && vsData.length > 0) {
			var aData = vsData.split(sDelimiter);
			if (aData.length == 1) {
				this.ID = aData[0];
			} else if (aData.length >= 7) {
				this.ID = aData[0];
				this.Parent = aData[1];
				this.SiblingPosition = aData[2];
				this.FilePath = aData[3];
				this.FrameID = aData[4];
				this.Title = aData[5];
				this.VisitedStatus = aData[6];
			}
		}
	}

	function isVisited() {
		return (this.VisitedStatus == true || this.VisitedStatus == 1);
	}
	
	function isVirtual() {
		return (this.FilePath == null || this.FilePath.length == 0);
	}
	
	function toString() {
		var arr = new Array(this.ID, this.Parent, String(this.SiblingPosition), this.FilePath, this.FrameID, this.Title, this.isVisited() ? "1" : "0");
		return arr.join(sDelimiter);
	}

	function _UnitTestError() {
		var obj = new jdPage("P1");

		if (obj.ID != "P1") return "error 1.1";
		if (obj.Parent != "") return "error 1.2";
		if (obj.SiblingPosition != 1) return "error 1.3";
		
		if (obj.isVisited() != false) return "error 2.1";
		obj.VisitedStatus = true;
		if (obj.isVisited() != true) return "error 2.2";
		
		if (obj.isVirtual() != true) return "error 3";

		if (obj.toString() != "P1||1||||1") return "error 4";

		return false;
	}

}
;
