CB-10428 Fix syntax error when browserifying inAppBrowser plugin

github close #141
diff --git a/www/inappbrowser.js b/www/inappbrowser.js
index 93eb420..25f6271 100644
--- a/www/inappbrowser.js
+++ b/www/inappbrowser.js
@@ -19,92 +19,93 @@
  *
 */
 
-// special patch to correctly work on Ripple emulator (CB-9760)
-if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021
-    module.exports = window.open.bind(window); // fallback to default window.open behaviour
-    return;
-}
-
-var exec = require('cordova/exec');
-var channel = require('cordova/channel');
-var modulemapper = require('cordova/modulemapper');
-var urlutil = require('cordova/urlutil');
-
-function InAppBrowser() {
-   this.channels = {
-        'loadstart': channel.create('loadstart'),
-        'loadstop' : channel.create('loadstop'),
-        'loaderror' : channel.create('loaderror'),
-        'exit' : channel.create('exit')
-   };
-}
-
-InAppBrowser.prototype = {
-    _eventHandler: function (event) {
-        if (event && (event.type in this.channels)) {
-            this.channels[event.type].fire(event);
-        }
-    },
-    close: function (eventname) {
-        exec(null, null, "InAppBrowser", "close", []);
-    },
-    show: function (eventname) {
-      exec(null, null, "InAppBrowser", "show", []);
-    },
-    addEventListener: function (eventname,f) {
-        if (eventname in this.channels) {
-            this.channels[eventname].subscribe(f);
-        }
-    },
-    removeEventListener: function(eventname, f) {
-        if (eventname in this.channels) {
-            this.channels[eventname].unsubscribe(f);
-        }
-    },
-
-    executeScript: function(injectDetails, cb) {
-        if (injectDetails.code) {
-            exec(cb, null, "InAppBrowser", "injectScriptCode", [injectDetails.code, !!cb]);
-        } else if (injectDetails.file) {
-            exec(cb, null, "InAppBrowser", "injectScriptFile", [injectDetails.file, !!cb]);
-        } else {
-            throw new Error('executeScript requires exactly one of code or file to be specified');
-        }
-    },
-
-    insertCSS: function(injectDetails, cb) {
-        if (injectDetails.code) {
-            exec(cb, null, "InAppBrowser", "injectStyleCode", [injectDetails.code, !!cb]);
-        } else if (injectDetails.file) {
-            exec(cb, null, "InAppBrowser", "injectStyleFile", [injectDetails.file, !!cb]);
-        } else {
-            throw new Error('insertCSS requires exactly one of code or file to be specified');
-        }
-    }
-};
-
-module.exports = function(strUrl, strWindowName, strWindowFeatures, callbacks) {
-    // Don't catch calls that write to existing frames (e.g. named iframes).
-    if (window.frames && window.frames[strWindowName]) {
-        var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open');
-        return origOpenFunc.apply(window, arguments);
+(function() {
+    // special patch to correctly work on Ripple emulator (CB-9760)
+    if (window.parent && !!window.parent.ripple) { // https://gist.github.com/triceam/4658021
+        module.exports = window.open.bind(window); // fallback to default window.open behaviour
+        return;
     }
 
-    strUrl = urlutil.makeAbsolute(strUrl);
-    var iab = new InAppBrowser();
+    var exec = require('cordova/exec');
+    var channel = require('cordova/channel');
+    var modulemapper = require('cordova/modulemapper');
+    var urlutil = require('cordova/urlutil');
 
-    callbacks = callbacks || {};
-    for (var callbackName in callbacks) {
-        iab.addEventListener(callbackName, callbacks[callbackName]);
+    function InAppBrowser() {
+       this.channels = {
+            'loadstart': channel.create('loadstart'),
+            'loadstop' : channel.create('loadstop'),
+            'loaderror' : channel.create('loaderror'),
+            'exit' : channel.create('exit')
+       };
     }
 
-    var cb = function(eventname) {
-       iab._eventHandler(eventname);
+    InAppBrowser.prototype = {
+        _eventHandler: function (event) {
+            if (event && (event.type in this.channels)) {
+                this.channels[event.type].fire(event);
+            }
+        },
+        close: function (eventname) {
+            exec(null, null, "InAppBrowser", "close", []);
+        },
+        show: function (eventname) {
+          exec(null, null, "InAppBrowser", "show", []);
+        },
+        addEventListener: function (eventname,f) {
+            if (eventname in this.channels) {
+                this.channels[eventname].subscribe(f);
+            }
+        },
+        removeEventListener: function(eventname, f) {
+            if (eventname in this.channels) {
+                this.channels[eventname].unsubscribe(f);
+            }
+        },
+
+        executeScript: function(injectDetails, cb) {
+            if (injectDetails.code) {
+                exec(cb, null, "InAppBrowser", "injectScriptCode", [injectDetails.code, !!cb]);
+            } else if (injectDetails.file) {
+                exec(cb, null, "InAppBrowser", "injectScriptFile", [injectDetails.file, !!cb]);
+            } else {
+                throw new Error('executeScript requires exactly one of code or file to be specified');
+            }
+        },
+
+        insertCSS: function(injectDetails, cb) {
+            if (injectDetails.code) {
+                exec(cb, null, "InAppBrowser", "injectStyleCode", [injectDetails.code, !!cb]);
+            } else if (injectDetails.file) {
+                exec(cb, null, "InAppBrowser", "injectStyleFile", [injectDetails.file, !!cb]);
+            } else {
+                throw new Error('insertCSS requires exactly one of code or file to be specified');
+            }
+        }
     };
 
-    strWindowFeatures = strWindowFeatures || "";
+    module.exports = function(strUrl, strWindowName, strWindowFeatures, callbacks) {
+        // Don't catch calls that write to existing frames (e.g. named iframes).
+        if (window.frames && window.frames[strWindowName]) {
+            var origOpenFunc = modulemapper.getOriginalSymbol(window, 'open');
+            return origOpenFunc.apply(window, arguments);
+        }
 
-    exec(cb, cb, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]);
-    return iab;
-};
+        strUrl = urlutil.makeAbsolute(strUrl);
+        var iab = new InAppBrowser();
 
+        callbacks = callbacks || {};
+        for (var callbackName in callbacks) {
+            iab.addEventListener(callbackName, callbacks[callbackName]);
+        }
+
+        var cb = function(eventname) {
+           iab._eventHandler(eventname);
+        };
+
+        strWindowFeatures = strWindowFeatures || "";
+
+        exec(cb, cb, "InAppBrowser", "open", [strUrl, strWindowName, strWindowFeatures]);
+        return iab;
+    };
+})();