function eventEdit(elm)
{
//TODO Don't clobber the existing event if it's unsaved
var event = {date: dateToStr(new Date)};
if(elm.id)
{
var aMatch = elm.id.match(/^event(\d+)/);
if(aMatch)
{
// Edit event
event = fetchEvent(aMatch[1]);
if(!event)
{
alert("Sorry, event #" + aMatch[1] + " ('" + elm.innerHTML.unescapeHTML() + "') no longer exists.");
new Effect.Fade(elm);
waitForEffectQueue();
elm.parentNode.removeChild(elm);
}
}
else
{
// Add new event
event = {date: elm.id};
}
}
var child = window.open("about:blank", "addEvent", "width=400,height=500,toolbar=no,top=100,left=100");
var doc = child.document.open();
doc.write(calcEventEditHtml());
doc.close();
// Fill in the data
if(event.id)
{
doc.title = "Edit event";
doc.getElementById("eventWindowTitle").innerHTML = "Edit event";
doc.getElementById("eventDeleteLink").style.display="";
doc.getElementById("eventID").value = event.id;
}
else
{
doc.title = "Add new event";
doc.getElementById("eventWindowTitle").innerHTML = "Add new event";
doc.getElementById("eventDeleteLink").style.display="none";
}
if(event.desc)
doc.getElementById("eventDesc").value = event.desc;
if(event.date)
{
var d = strToDate(event.date);
doc.getElementById("eventYear").value = d.getFullYear();
doc.getElementById("eventMonth").value = (d.getMonth() + 1);
doc.getElementById("eventDay").value = d.getDate();
}
if(event.notes)
doc.getElementById("eventNotes").value = event.notes;
doc.getElementById("eventDesc").focus();
}