/**
 * arena/Favorite.js
 *
 * Dependencies
 * - YUI
 *
 * @author Pradeep Sharma <pradeep.sharma@xoriant.com>
 **/


YAHOO.namespace('gaia.app.Arena');
YAHOO.gaia.app.Arena.Favorite = function() {
    this._settings = null;
    this._ajaxRequest= null;
}

YAHOO.gaia.app.Arena.Favorite.prototype.init = function(settings){

    this._settings = {
        //settings for favorite
        wldiv  : YAHOO.util.Dom.get(settings.wldiv),
        wlimg  : settings.wlimg,
        wlcurstate: settings.wlcurstate || 'unknown',
        wlrm: settings.wlrm,
        wladd: settings.wladd,
        wlerror:  YAHOO.util.Dom.get(settings.wlerrordiv),
        wlsigninerr: settings.wlsigninerr || 'SIGN IN ...',
        wlajaxerr: settings.wlajaxerr || 'AJAX FAILURES ...',
        rmtext : settings.rmText,
        addtext : settings.addText
    };

    this._make_wldiv();
}

YAHOO.gaia.app.Arena.Favorite.prototype._make_wldiv = function() {
  // call this again to switch between add/remove
  this._settings.wldiv.innerHTML = '';
  var a    = document.createElement('a');
  var img_div = document.createElement('div');
if (this._settings.wlimg) {
	if (this._settings.wlcurstate == 'delete') {
		YAHOO.util.Dom.addClass(img_div, 'favImage2');
	}
	else {
		YAHOO.util.Dom.addClass(img_div, 'favImage1');
	}
	a.appendChild(img_div);
}
  
  
  var txt = (this._settings.wlcurstate == 'delete') ? this._settings.rmtext : this._settings.addtext;
  var txtNode = document.createTextNode(txt);
  a.appendChild(txtNode);
  a.href = (this._settings.wlcurstate == 'delete') ? this._settings.wlrm : this._settings.wladd;
  a.alt = txt;
  
  this._settings.wldiv.appendChild(a);
  YAHOO.util.Event.addListener(a, 'click', this._doAjax, this,true);
}

YAHOO.gaia.app.Arena.Favorite.prototype._doAjax = function(e, obj){
  YAHOO.util.Event.preventDefault(e);
  if(this._settings.wlcurstate == 'unknown'){
    this._settings.wlerror.style.display = 'block';
    this._settings.wlerror.innerHTML = this._settings.wlsigninerr;
    return;
  }

  var callback = {
     success: function(o){
      this._settings.wlcurstate = (this._settings.wlcurstate == 'delete') ? 'add' :  'delete';
      this._make_wldiv();
     },
     failure: function(o){
      this._settings.wlerror.style.display = 'block';
      this._settings.wlerror.innerHTML = this._settings.wlajaxerr;
     },
     scope: this
  }
  var ajax_url = (this._settings.wlcurstate == 'delete') ? this._settings.wlrm : this._settings.wladd;
  ajax_url += '?request=ajax';
  this._ajaxRequest =  YAHOO.util.Connect.asyncRequest('GET',ajax_url, callback);
}

function initFavorite(settings) {
    Favorite = new YAHOO.gaia.app.Arena.Favorite();
    Favorite.init(settings);

}
