var sxipperExtension = {
  triggerEvent: function(type, param1, param2) {
  	if (!this._isSxipperEnabled()) {
  		alert('Enable Sxipper to use this link\n\nGo to: Tools  / Add-ons /  Sxipper\nand click link again');
  	} else if (!this.isFirefoxBrowser()) {
  		//alert('TODO copy: not firefox browser');
  	} else {
  		this._triggerEvent(type, param1, param2); 
  	}
  },

  _triggerEvent: function(type, param1, param2) {
    var element = document.createElement("smSxipperEventDataElement");
    element.setAttribute("eventType", type);
    if (typeof param1 != 'undefined') {
        element.setAttribute("eventParam1", param1);
    }
    if (typeof param2 != 'undefined') {
        element.setAttribute("eventParam2", param2);
    }
    document.documentElement.appendChild(element);

    var evt = document.createEvent("Events");
    evt.initEvent("sxipperWebSiteEvent", true, false);
    element.removeAttribute('returnValue');
    element.dispatchEvent(evt);
    var returnValue = element.getAttribute('returnValue');
    return returnValue;
  },
    
  _isSxipperEnabled: function() {
    return this._triggerEvent('queryEnabled')=='true';
  },
  
  isFirefoxBrowser: function() {
  	//TODO
    return true;
  },
  
  openPreferences: function() {
    this.triggerEvent('preferences');
  },

  openPasswords: function() {
    this.triggerEvent('preferences','passwords');
  },

  openOpenID: function() {
    this.triggerEvent('preferences','openid');
  },

  openProfile: function() {
    this.triggerEvent('preferences','profile');
  },
  
  openPersonas: function() {
    this.triggerEvent('personas');
  },
  
  openBluecon: function() {
    this.triggerEvent('bluecon');
  },
  
  openFeedback: function() {
    this.triggerEvent('feedback');
  },
  
  getUsername: function() {
    return this._triggerEvent('queryUsername');
  },
  
  getBlueconURL: function() {
    return this._triggerEvent('queryBlueconURL');
  },

  getUsageReport: function() {
    return this._triggerEvent('queryUsageReport')=='true';
  },

  setUsageReport: function(isEnabled) {
    this.triggerEvent('setUsageReport', isEnabled);
  }
};

