$.extend($s,{
  comet:{
    MAX_POLL_TIME: 15000,
    MIN_POLL_TIME: 100,
    NEXT_POLL_TIME: 100,
    cometId: null,
    callbacks: {},
    messages: {},
    
    setCometId: function(newId) {
      this.cometId = newId;
    },
    
    getCometId: function() {
      return this.cometId;
    },
    
    checkIfDone: function(transactionId) {
      if(this.callbacks.hasOwnProperty(transactionId) && 
         this.messages.hasOwnProperty(transactionId)) {
      
        var callback = this.callbacks[transactionId];
        delete this.callbacks[transactionId];
        
        var message = this.messages[transactionId];
        delete this.messages[transactionId];
        
        callback(message, transactionId);
      }else if(this.messages.hasOwnProperty(transactionId) && 
               this.messages[transactionId].hasOwnProperty('onLoad')) {
        var message = this.messages[transactionId];
        delete this.messages[transactionId];
        message['onLoad'](message, transactionId);  
      }
    },
    
    getErrors: function(data) {
      if(data.hasOwnProperty('errors')) {
        return data['errors'];
      }
      
      return null;
    },
    
    addMessage: function(transactionId, message) {
      this.messages[transactionId] = message;    
      this.checkIfDone(transactionId);
    },
    
    addCallback: function(transactionId, callback) {
      this.callbacks[transactionId] = callback;
      this.checkIfDone(transactionId);
    },
  
    //init the object
    init: function() {
    }

  }
});