var fsActivexAdapter = {
    checkActivexExist: function()
    {
        /*add object element if not exist*/
        if(!document.getElementById('Olsax')){
           var elmo = document.createElement('div');

				elmo.innerHTML = '<OBJECT ID="Olsax" WIDTH="0" HEIGHT="0" ' +
                				 'CLASSID="CLSID:' + fsOlsConfig.AXGUID + '" ' +
                				 '></OBJECT>';
            	document.getElementsByTagName('body')[0].appendChild(elmo);

        }
        /* check if activex installed */
        try {
            if (Olsax.IsInstalled()) {
                return true;
            }
        } catch(e) {
            return false;
        }
    },
    installAddon: function()
    {
        var strServerName = fsOlsConfig.SERVERNAME;
        var strTarget = fsOlsConfig.TARGET;
        /*add object element if not exist*/
        if(!document.getElementById('Olsax')){
            var elmo = document.createElement('div');
            elmo.innerHTML = '<OBJECT ID="Olsax" WIDTH="0" HEIGHT="0" ' +
                'CLASSID="CLSID:' + fsOlsConfig.AXGUID + '" ' +
                'CODEBASE="http://'+strServerName+strTarget+'resources/fslauncher.cab#version=1,0,0,1" ' +
                'onError="installFailed();" onReadyStateChange="stateChange();"></OBJECT>';
            document.getElementsByTagName('body')[0].appendChild(elmo);
        }
    },
    sendToAddon: function()
    {
        if (arguments[0] == 'addoncheck') {
            var bExist = fsActivexAdapter.checkActivexExist();
            if (bExist) {
                fsActivexAdapter.sendToPage('addoncheckreply');
            }
        } else if (arguments[0] == 'olsstart') {

            /*
			var server = arguments[1];
	        var target = arguments[2];
	   	    var language = arguments[3];
		    var backweb = arguments[4];
  		    var license = arguments[5];
  		    var statserver = arguments[6];
  		    var submitserver = arguments[7];
			*/
			var target = arguments[1];
	   	    var language = arguments[2];
			var license = arguments[3];

			if (Olsax.Initialize(target, language, license) != 1)
            {
                /* Initialization fail */
                fsActivexAdapter.sendToPage('addonstatuschange', Olsax.getLauncherStatus());
                return;
            }
            if (Olsax.Connect() != 1){
                fsActivexAdapter.sendToPage('addonstatuschange', Olsax.getLauncherStatus());
                return;
            }

            if (Olsax.Download() == 1){// here the start download is success
		        var sIntervalId = 0;
 		        var a = function(){
			        if (Olsax.getLauncherStatus() == 0x01) { // while the files is being downloaded, update %
                        fsActivexAdapter.sendToPage('addondownloadpercentagechange', Olsax.getDownloadProgress());
                    }else {
                        clearInterval(sIntervalId);
                        if (Olsax.getLauncherStatus() == 0x10) {
                            Olsax.RunOls();
                        }

                        fsActivexAdapter.sendToPage('addonstatuschange', Olsax.getLauncherStatus());
                    }
                };
                sIntervalId = setInterval(a, 100);
            } else {
                fsActivexAdapter.sendToPage('addonstatuschange', Olsax.getLauncherStatus());
            }
        }
    }

};

fs.staticExtend(fsAbstractAdapter, fsActivexAdapter);


