


var fsFirefoxAdapter = {
	installAddon: function()
    {
        /*get value from custom.xml and browser*/
        var strTarget = fsOlsConfig.TARGET;
        var strHash = fsOlsConfig.FFHASH;
        var strServerName = fsOlsConfig.SERVERNAME;

        /* set add-on param */
		var objInstallParam = {
            'F-Secure Online Scanner': {
                URL: 'http://'+ strServerName + strTarget + 'resources/fsolsaddon.xpi',
                IconURL: 'http://'+ strServerName + strTarget + 'resources/fsecure.png',
                Hash: strHash,
                toString: 'http://'+ strServerName + strTarget + 'resources/fsolsaddon.xpi'
            }
        };
        var fnInstallCallback = function(url, status){
            if (status == 0) {
                installSuccess();
            } else {
                installFailed();
            }

        };

        /* prompt install add-on */
        var result = InstallTrigger.install(objInstallParam, fnInstallCallback);

        if (!result) {
            installFailed();
        }

        /* disable page refresh */
        return false;
    },
    sendToAddon: function()
    {
        window.dump('fsFirefoxAdapter.sendToAddon\n');
        /* set data */
        var elm = document.createElement('elm');
        elm.setAttribute('topic', arguments[0]);
        for (var i =1; i<arguments.length; i++) {
            elm.setAttribute('data' + i, arguments[i]);
        }
        document.documentElement.appendChild(elm);

        /* dispatch event */
        var evt = document.createEvent('Events');
        evt.initEvent('pagetoaddon', true, false);
        elm.dispatchEvent(evt);

        /* remove node */
        elm.parentNode.removeChild(elm);
    }
    ,
    receiveFromAddon: function(e)
    {
        window.dump('fsFirefoxAdapter.receiveFromAddon\n');
        var strTopic = e.target.getAttribute('topic');
        var strData = e.target.getAttribute('data');
        fsFirefoxAdapter.sendToPage(strTopic, strData);
    }
    ,
    toString:function()
    {
        return 'fsFirefoxAdapter';
    }
};

fs.staticExtend(fsAbstractAdapter, fsFirefoxAdapter);

var fnDispatchArgsToFirefox = function(e) {
    fsFirefoxAdapter.receiveFromAddon(e);
};

if (parent.window.addEventListener) {
    window.addEventListener('load', function(){
    parent.window.addEventListener('addontopage', fnDispatchArgsToFirefox, false);
    }, false);
}

if (window.addEventListener) {
    window.addEventListener('unload', function(){
        parent.window.removeEventListener('addontopage', fnDispatchArgsToFirefox, false);
    }, false);
}

