diff --git a/php-webkit/main.js b/php-webkit/main.js
index 277a2ac..4c41d7e 100644
--- a/php-webkit/main.js
+++ b/php-webkit/main.js
@@ -1,83 +1,105 @@
-var gui = require('nw.gui');
-var win = gui.Window.get();
-var http = require('http');
-var fs = require('fs');
-var php = require('../lib/bridge');
-var express = require('express');
-var app = express();
-var os = require('os');
-var os = os.platform();
+var phpwebkit = {
-process.on('uncaughtException', function(err){
- changeState(''+err+'', '#CD0000');
-});
+ runApp: function(){
-win.title = gui.App.manifest.name;
+ var gui = require('nw.gui');
+ var win = gui.Window.get();
+ var os = require('os');
+ var os = os.platform();
+ var pw = this;
-var bin = gui.App.manifest.phpwebkit.bin;
-if(bin === undefined || bin == "") {
- if(os == 'win32' || os == 'win64') {
- bin = './bin/php/php-cgi.exe';
- } else if(os == 'darwin') {
- bin = './bin/php/php-cgi';
- } else if(os == 'linux') {
- bin = './bin/php/php-cgi';
- } else {
- bin = 'php-cgi';
+ process.on('uncaughtException', function(err){
+ pw.changeState(''+err+'', '#CD0000');
+ });
+
+ win.title = gui.App.manifest.name;
+
+ var bin = gui.App.manifest.phpwebkit.bin;
+ if(bin === undefined || bin == "") {
+ if(os == 'win32' || os == 'win64') {
+ bin = './bin/php/php-cgi.exe';
+ } else if(os == 'darwin') {
+ bin = './bin/php/php-cgi';
+ } else if(os == 'linux') {
+ bin = './bin/php/php-cgi';
+ } else {
+ bin = 'php-cgi';
+ }
+ }
+
+ this.fileExists(bin, function(result){
+ if(result === false) {
+ return 'php-cgi';
+ }
+ });
+
+ var path = gui.App.manifest.phpwebkit.path;
+ if(path === undefined || path == "") {
+ path = './application';
+ }
+
+ var host = gui.App.manifest.phpwebkit.host;
+ if(host === undefined || host == "") {
+ host = '127.0.0.1';
+ }
+
+ var port = gui.App.manifest.phpwebkit.port;
+ if(port === undefined || port == "") {
+ port = 0;
+ }
+
+ var config = {
+ "path": path,
+ "bin": bin,
+ "host": host,
+ "port": port,
+ "arguments": gui.App.argv,
+ "manifest": gui.App.manifest
+ }
+
+ this.startServer(config);
+ },
+
+ startServer: function(config, callback){
+
+ var http = require('http');
+ var php = require('../lib/bridge');
+ var express = require('express');
+ var app = express();
+ var host = config.host;
+ var port = config.port;
+ var pw = this;
+
+ var server = http.createServer(app);
+
+ app.use('/', php.cgi(config));
+
+ server.listen(port, host, function(){
+ pw.changeState('Starting application...', '#00CD00');
+ window.location = 'http://'+host+':'+server.address().port +'/';
+ }).on('error', function(err) {
+ pw.changeState('Error: '+server.err+'', '#CD0000');
+ });
+ },
+
+ changeState: function(msg, color){
+
+ $('body').css('background-color', color);
+ $('#loading p').html(msg);
+ },
+
+ fileExists: function(file, callback){
+
+ var fs = require('fs');
+ fs.stat(file, function(err, stats) {
+ if(!err && stats.isFile()) {
+ return true;
+ } else {
+ return false;
+ }
+ });
}
-}
-binExists(bin, function(filename){
- bin = filename;
-});
-
-var path = gui.App.manifest.phpwebkit.path;
-if(path === undefined || path == "") {
- path = './application';
-}
-
-var host = gui.App.manifest.phpwebkit.host;
-if(host === undefined || host == "") {
- host = '127.0.0.1';
-}
-
-var port = gui.App.manifest.phpwebkit.port;
-if(port === undefined || port == "") {
- port = 0;
-}
-
-var phpinfo = {
- "path": path,
- "bin": bin,
- "host": host,
- "port": port,
- "arguments": gui.App.argv,
- "manifest": gui.App.manifest
};
-var server = http.createServer(app);
-
-app.use('/', php.cgi(phpinfo));
-
-server.listen(port, host, function(){
- var url = 'http://'+host+':'+server.address().port+'/';
- changeState('Starting application...', '#00CD00');
- window.location = url;
-}).on('error', function(e) {
- changeState('Error: '+e.message+'', '#CD0000');
-});
-
-function changeState(msg, color){
- $('body').css('background-color', color);
- $('#loading p').html(msg);
-}
-
-function binExists(file, callback){
- fs.stat(bin, function(err, stats) {
- if(!err && stats.isFile()) {
- return stats.filename;
- } else {
- return 'php-cgi';
- }
- });
-}
\ No newline at end of file
+phpwebkit.runApp();
\ No newline at end of file