function itemNumberToItemName(itemNumber){
	if(itemNumber>=0&&itemNumber<module.items.length){
		return module.items[itemNumber].name;
	}else{
		return "(none)";
	}
}
function doApplyLock(lock){
	module.dirty=true;
	getEditObject(
		{
			"source":module.locks[lock],
			"fields":[
				{
					"id":"lockName",
					"property":"name",
					"elementProperty":"value"
				},
				{
					"id":"lockDescription",
					"property":"description",
					"elementProperty":"value"
				},
				{
					"id":"lockItem",
					"property":"item",
					"elementProperty":"value",
					"transform":Number
				},
				{
					"id":"lockSingleUse",
					"property":"singleUse",
					"elementProperty":"checked"
				}
			]
		}
	);
	doEditLocks();
}
function doModifyLock(lock,addnew){
	var content = "";
	content += createEditObjectContent(
		{
			"title":"Modify Lock",
			"index":lock,
			"fields":[
				{
					"label":"Name:",
					"id":"lockName",
					"type":"text"
				},
				{
					"label":"Description:",
					"id":"lockDescription",
					"type":"textarea"
				},
				{
					"label":"Item:",
					"id":"lockItem",
					"type":"select",
					"minimumValue":-1,
					"maximumValue":module.items.length-1,
					"transform":itemNumberToItemName
				},
				{
					"label":"Single Use:",
					"id":"lockSingleUse",
					"type":"checkbox"
				}
			],
			"events":{
				"onapply":"doApplyLock",
				"oncancel":(addnew==true)?("doDeleteLock"):("doEditLocks")
			}
		}
	);
	gameContentDiv.innerHTML=content;		
	setEditObject(
		{
			"source":module.locks[lock],
			"fields":[
				{
					"id":"lockName",
					"property":"name",
					"elementProperty":"value"
				},
				{
					"id":"lockDescription",
					"property":"description",
					"elementProperty":"value"
				},
				{
					"id":"lockItem",
					"property":"item",
					"elementProperty":"value"
				},
				{
					"id":"lockSingleUse",
					"property":"singleUse",
					"elementProperty":"checked"
				}
			]
		}
	);
}
function doDeleteLock(){
	module.dirty=true;
		module.locks.pop();
		doEditLocks();
}
function doAddLock(){
	module.locks.push({"name":"new lock","description":"new lock description","item":-1,"singleUse":true});
	doModifyLock(module.locks.length-1,true);
}
function doEditLocks(message){
		var content=createEditObjectListContent(
			{
				"title":"Edit Locks",
				"source":module.locks,
				"fields":[
					{
						"header":"Name",
						"property":"name"
					},
					{
						"header":"Description",
						"property":"description"
					},
					{
						"header":"Item",
						"property":"item",
						"transform":itemNumberToItemName
					},
					{
						"header":"Single Use",
						"property":"singleUse"
					}
				],
				"events":{
					"onmodify":"doModifyLock",
					"ondelete":"doDeleteLock"
				}
			}
		);
		content += "<p><button onclick=\"doAddLock();\">Add</button></p>";
		content += "<p><button onclick=\"doEditMenu();\">Edit Menu</button></p>";
		if(message!=null){
			content += "<p>"+message+"</p>";
		}
		gameContentDiv.innerHTML=content;		
}