var SignOnServiceClient = {

  sigon: " ",
  signoff: " ",
  internal: "",
  vendor: "",

  init: function(domain) {
    SignOnServiceClient.setLanguage(domain);
    SignOnServiceClient.setSignOnInfo();
  },

  setSignOnInfo: function() {
    SignOnService.getSignOnInfo({
      callback:function(response) {
        SignOnServiceClient._setProperties(response);
      },
      errorHandler:function(errorString, exception) {
        SignOnServiceClient.errorHandler(errorString, exception);
      }
    });
  },

  _setProperties: function(response) {
    this.internal = response.isInternal;
    this.vendor = response.isVendor;

    $('ajaxSignOn').innerHTML = " ";
    $('ajaxSignOn').setAttribute((document.all ? "className" : "class"), " ");

    if(response.isSignedOn){
      SignOnServiceClient.surferIsSignedOn();
    } else {
      SignOnServiceClient.surferIsSignedOff();
    }
  },

  errorHandler: function(errorString, exception) {},

  setLanguage: function(domain) {
    switch(domain) {
      case "en":
      this.signoff = "sign off";
      this.signon  = "sign on";
      break;

      case "es":
      this.signoff = "Cerrar Sesi&oacute;n";
      this.signon  = "Iniciar Sesi&oacute;n";
      break;

      case "fr":
      this.signoff = "Fin de session";
      this.signon  = "Ouvrir une session";
      break;

      case "de":
      this.signoff = "Logout";
      this.signon  = "Login";
      break;

      case "it":
      this.signoff = "Logout";
      this.signon  = "Login";
      break;
    }
  },

  surferIsSignedOn: function() {
    $('ajaxSignOn').innerHTML = this.signoff
    $('ajaxSignOn').setAttribute((document.all ? "className" : "class"), "signOff");
  },

  surferIsSignedOff: function() {
    $('ajaxSignOn').innerHTML = this.signon
    $('ajaxSignOn').setAttribute((document.all ? "className" : "class"), "signOn");
  },

  isInternal: function() {
    return this.internal;
  },

  isVendor: function() {
    return this.vendor;
  }
}
