/*\
title: $:/core/modules/savers/nodewebkit.js
type: application/javascript
module-type: saver

Handles saving changes in the NW.js environment. Not required by TiddlyDesktop, which re-uses the TiddlyFox saver, but useful if you're embedding a single TiddlyWiki document into a NW.js app.

\*/
(function(){

/*jslint node: true, browser: true */
/*global $tw: false, netscape: false, Components: false */
"use strict";

var NodeWebKitSaver = function(wiki) {
};

NodeWebKitSaver.prototype.save = function(text,method,callback) {
	// Bail out unless this is a save (rather than a download)
	if(method !== "save") {
		return false;
	}
	// Get the pathname of this document
	var pathname = document.location.pathname;
	// Test for a Windows path of the form /x:/blah/blah
	if(/^\/[A-Z]\:\//i.test(pathname)) {
		// Remove the leading slash
		pathname = pathname.substr(1);
		// Convert slashes to backslashes
		pathname = pathname.replace(/\//g,"\\");
	}
	// Try to save
	var fs = require("fs");
	fs.writeFile(pathname,text,callback);
	return true;
};

/*
Information about this saver
*/
NodeWebKitSaver.prototype.info = {
	name: "nodewebkit",
	priority: 1700
};

/*
Static method that returns true if this saver is capable of working
*/
exports.canSave = function(wiki) {
	// Check if we're running under node-webkit
	return (typeof process == "object");
};

/*
Create an instance of this saver
*/
exports.create = function(wiki) {
	return new NodeWebKitSaver(wiki);
};

})();
