 if (!KDZ) { KDZ = {}; }
 if (!KDZ.Menu) { KDZ.Menu = {}; }

 KDZ.Menu.Item	= function(obj) {

 this.toString	= function() { return "[object KDZ.Menu.Item]"; };

 this.data	= {
		uid		: "",
		text	: "",
		icon	: "",
		link	: "",
		permissions:[]
 };


 if (obj) { this.data = obj; }

 this.style	= "";

 this.defaultstyle = "textblock";

 this.tagName	= "Menu";
 this.className	= "Menu";

 this.saveurl	= "/cgi-bin/savemenu";
 this.getsavevariablestr = function() { 
 	if (OIDAUTH) { this.data.editedby = OIDAUTH.getAuthData("userData_displayName"); }
	var rightnow	= new Date();
//	this.editedon	= rightnow.toString().replace(/ GMT.*$/,"");
	var month	= rightnow.getMonth() + 1;
	var day		= rightnow.getDate();
	var year	= rightnow.getFullYear();
	var hours	= rightnow.getHours();
	var minutes	= rightnow.getMinutes();
	this.data.editedon	= month + "/" + day + "/" + year + " " + hours + ":" + minutes;
	return "userclaim=" + escape(OIDAUTH.authdata.toJSONString());
 };

 this.getIndexHeaders   = function() {
	var retArr  = [
		"Order",
		"Category",
		"Menu"
	];
	return retArr;
 };

 this.getIndexValues	= function() {
	var onclickfunction = function() {
		this.dataobj.toEDIT();
		this.dataobj.targetDiv.style.display	= "";
	}
	var retObj  = {
		onclick : function() {},
		fields  : [
			{
			 "default": "",
			 value: this.data.listidx,
			 onclick: onclickfunction
			},
			{
			 "default": "",
			 value: this.data.category,
			 onclick: onclickfunction
			},
			{
			 "default": "",
			 value: this.data.text,
			 onclick: onclickfunction
			}
		]
	};
	return retObj;
 };

 this.toHTML	= function(targdiv) {
	var contentdiv  = PageData.prepTarg({dataobj:this,style:"view",targdiv:targdiv});
	var titlediv	= document.createElement("DIV");
	var descdiv	= document.createElement("DIV");
	var editeddiv	= document.createElement("DIV");
	var titlespan	= document.createElement("SPAN");
	var dloadspan	= document.createElement("SPAN");
	var dloadlink	= document.createElement("A");
	dloadlink.innerHTML	= "download";
	dloadlink.href	= this.data.file + "&userdata=" + escape(OIDAUTH.authdata.toJSONString());
	dloadlink.className	= "download";
	titlespan.innerHTML	= this.data.title;
	titlespan.className	= "title";
	dloadspan.innerHTML	= "[";
	dloadspan.appendChild(dloadlink);
	dloadspan.innerHTML	+= "]";
	descdiv.innerHTML	= this.data.description;
	descdiv.className	= "description";
	if (this.data.editedby) {
		editeddiv.innerHTML	= "Last edited by: " + this.data.editedby;
		if (this.data.editedon) {
			 editeddiv.innerHTML	+= " on " + this.data.editedon;
		}
	}
	editeddiv.className	= "editedby";
	titlediv.appendChild(titlespan);
	titlediv.appendChild(dloadspan);
	contentdiv.appendChild(titlediv);
	contentdiv.appendChild(descdiv);
	contentdiv.appendChild(editeddiv);
	return this;
 };

 this.toEDIT	= function(targdiv) {
	var contentdiv = PageData.prepTarg({dataobj:this,tagdiv:targdiv,style:"edit"});
	if (!contentdiv) { return 0; }
	// create infodiv
	var infodiv = document.createElement("DIV");
	infodiv.className		= 'info';
	infodiv.id		= 'infodiv' + this.data.uid;
	infodiv.contentdiv	= contentdiv;
	// create privdiv
	var privdiv	= document.createElement("DIV");
	privdiv.className		= 'privilege';
	privdiv.id		= 'privdiv' + this.data.uid;
	privdiv.contentdiv	= contentdiv;
	// load content
	this.updateInfoEDIT(infodiv);
	this.updatePermissionsEDIT(privdiv);
	// put it all together
	contentdiv.appendChild(infodiv);
	contentdiv.appendChild(privdiv);
	return this;
 };

 this.updateInfoEDIT	= function(targdiv) {
	targdiv.innerHTML	= "";
	var datapatharr	= [
		{
		 Path: "text",
		 Label: "Label"
		},
		{
		 Path: "category",
		 Label: "Category"
		},
		{
		 Path: "listidx",
		 Label: "Sort Order"
		},
		{
		 Path: "icon",
		 Label: "Icon"
		},
		{
		 Rows: 3,
		 Path: "description",
		 Label: "Description"
		},
		{
		 Path: "link",
		 Label: "Link"
		}
	];
	targdiv.dataobj	= this;
	var edittable = PageData.createEditTable(this,datapatharr);
	targdiv.appendChild(edittable);
	PageData.applyEditTags(targdiv);
	return edittable;
 };

 this.updatePermissionsEDIT	= function(targdiv) {
	targdiv.innerHTML   = "";
	targdiv.dataobj = this;
	var imageaddimg	 = document.createElement("ADDIMG");
	var imagelabel	  = document.createElement("LABEL");
	imagelabel.className	= "label";
	imagelabel.innerHTML	= "Permissions";
	imageaddimg.src = "/Icons/icon_addprofile_22x16.gif";
	imageaddimg.dataobj = this;
	imageaddimg.targdiv = targdiv;
	imageaddimg.className   = 'clickable';
	imageaddimg.onclick = function() {
		if (!this.dataobj.data.permissions) { this.dataobj.data.permissions = []; }
		var when = new Date();
		when = when.toString();
		this.dataobj.data.permissions.push({"privilege":""});
		this.dataobj.updatePermissionsEDIT(this.targdiv);
	};
	imagelabel.appendChild(imageaddimg);
	targdiv.appendChild(imagelabel);
	if (this.data.permissions.length) {
		var dataarrpath = "permissions";
		var datapatharr = [
			{
			 Path: "privilege",
			 Label: "Privilege Level",
			 Type: "radio",
			 Options: "owner,admin,employee,guest,customer,accountant,all"
			}
		];
		var edittable = PageData.createEditTableHoriz(this,dataarrpath,datapatharr);
		targdiv.appendChild(edittable);
	}
	PageData.applyEditTags(targdiv);
 };

 return this;
 };
