SocialEngineAPI.Favourites = new Class({
  
  Base: {},
  
  options: {
    'ajaxURL' : 'favourites_ajax.php',
    'addFull' : '130000003',
    'removeFull' : '130000004', 
    'addShort' : '130000005',
    'removeShort' : '130000006'
  },
  
  getFavouritesData: function(objectID, objectType, linkBlockName, strings)
  {
    var bind = this;
    var linkBlock = $(linkBlockName);
    
    var addString = '';
    var removeString = '';
    
    if (strings == 'full')
    {
      addString = this.options.addFull;
      removeString = this.options.removeFull;
    }
    else
    {
      addString = this.options.addShort;
      removeString = this.options.removeShort;    
    }    
    
    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'getfavouritesdata',
        'object_id' : objectID,
        'object_type' : objectType
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result )
        {
          alert(bind.Base.Language.Translate(1500123));
        }
        else
        {
          if (responseObject.result=="success")
          {
            linkBlock.innerHTML = '<a href="javascript:SocialEngine.Favourites.removeFromFavourites('+objectID+', \''+objectType+'\', \''+linkBlockName+'\', \''+strings+'\')">'+bind.Base.Language.Translate(removeString)+'</a>';
          }
          else if (responseObject.result=="failure")
          {
            linkBlock.innerHTML = '<a href="javascript:SocialEngine.Favourites.addToFavourites('+objectID+', \''+objectType+'\', \''+linkBlockName+'\', \''+strings+'\')" class="orange">'+bind.Base.Language.Translate(addString)+'</a>';          
          }
        }
      }    
    });
    
    request.send();      
  },
  
  addToFavourites: function(objectID, objectType, linkBlockName, strings)
  {
    var bind = this;
    var linkBlock = $(linkBlockName);
    
    var addString = '';
    var removeString = '';
    
    if (strings == 'full')
    {
      addString = this.options.addFull;
      removeString = this.options.removeFull;
    }
    else
    {
      addString = this.options.addShort;
      removeString = this.options.removeShort;    
    }

    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'addtofavourites',
        'object_id' : objectID,
        'object_type' : objectType
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
        {
          alert(bind.Base.Language.Translate(1500123));
        }
        else
        {
          if (responseObject.result=="success")
          {
            linkBlock.innerHTML = '<a href="javascript:SocialEngine.Favourites.removeFromFavourites('+objectID+', \''+objectType+'\', \''+linkBlockName+'\', \''+strings+'\')">'+bind.Base.Language.Translate(removeString)+'</a>';
          }
          else if (responseObject.result=="failure")
          {
            linkBlock.innerHTML = '<a href="javascript:SocialEngine.Favourites.addToFavourites('+objectID+', \''+objectType+'\', \''+linkBlockName+'\', \''+strings+'\')" class="orange">'+bind.Base.Language.Translate(addString)+'</a>';          
          }
        }
      }
    });
    
    request.send();
  },
  
  removeFromFavourites: function(objectID, objectType, linkBlockName, strings)
  {
    var bind = this;
    var linkBlock = $(linkBlockName);
    
    var addString = '';
    var removeString = '';
    
    if (strings == 'full')
    {
      addString = this.options.addFull;
      removeString = this.options.removeFull;
    }
    else
    {
      addString = this.options.addShort;
      removeString = this.options.removeShort;    
    }

    var request = new Request.JSON({
      'method' : 'post',
      'url' : this.options.ajaxURL,
      'data' : {
        'task' : 'removefromfavourites',
        'object_id' : objectID,
        'object_type' : objectType
      },
      'onComplete':function(responseObject)
      {
        if( $type(responseObject)!="object" || !responseObject.result || responseObject.result=="failure" )
        {
          alert(bind.Base.Language.Translate(1500123));
        }
        else
        {
          if (responseObject.result=="success")
          {
            linkBlock.innerHTML = '<a href="javascript:SocialEngine.Favourites.addToFavourites('+objectID+', \''+objectType+'\', \''+linkBlockName+'\', \''+strings+'\')" class="orange">'+bind.Base.Language.Translate(addString)+'</a>';
          }
          else if (responseObject.result=="failure")
          {
            linkBlock.innerHTML = '<a href="javascript:SocialEngine.Favourites.removeFromFavourites('+objectID+', \''+objectType+'\', \''+linkBlockName+'\', \''+strings+'\')">'+bind.Base.Language.Translate(removeString)+'</a>';
          }
        }
      }
    });
    
    request.send();
  }
    
});