+function openDialog()
+{
+ callback = function (fname) { retrieveFile(fname); };
+ showLibrary("Open file", callback);
+}
+
+function saveDialog()
+{
+ callback = function (fname) {
+ dialogBox.style.display = "none";
+ saveFile(fname,
+ (locked.innerHTML.html_to_matita()).sescape(),
+ (unlocked.innerHTML.html_to_matita()).sescape(),
+ false,saveDialog);
+ };
+ showLibrary("Save file as", callback);
+}
+
+function newDialog()
+{
+ callback = function (fname) {
+ dialogBox.style.display = "none";
+ saveFile(fname,"","",false,newDialog);
+ retrieveFile(fname);
+ };
+ showLibrary("Create new file", callback);
+}
+
+
+function saveFile(fname,lockedtxt,unlockedtxt,force,reloadDialog)
+{
+ if (!is_defined(fname)) {
+ fname = current_fname;
+ lockedtxt = (locked.innerHTML.html_to_matita()).sescape();
+ unlockedtxt = (unlocked.innerHTML.html_to_matita()).sescape();
+ force = true;
+ // when force is true, reloadDialog is not needed
+ }
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ if (xml.childNodes[0].textContent != "ok") {
+ if (confirm("File already exists. All existing data will be lost.\nDo you want to proceed anyway?")) {
+ saveFile(fname,lockedtxt,unlockedtxt,true);
+ } else {
+ reloadDialog();
+ }
+ } else {
+ current_fname = fname;
+ debug("file saved!");
+ }
+ } else {
+ debug("save file failed");
+ }
+ resume();
+ };
+ if (is_defined(fname)) {
+ pause();
+ callServer("save",processor,"file=" + escape(fname) +
+ "&locked=" + lockedtxt +
+ "&unlocked=" + unlockedtxt +
+ "&force=" + force);
+ }
+ else { debug("no file selected"); }
+}
+
+function commitAll()
+{
+ processor = function(xml) {
+ if (is_defined(xml)) {
+ debug("commit succeeded(?)");
+ } else {
+ debug("commit failed!");
+ }
+ resume();
+ };
+ pause();
+ callServer("commit",processor);
+}
+