/**
 * arena/submitterList.js
 *
 *
 *
 * Dependencies
 * - YUI
 *
 * @author Fermin <fsimeon@gaiaonline.com>
 **/

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

};


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

    this._settings = {

        //settings for watchlist 
        error_div:  YAHOO.util.Dom.get(settings.error_div),
        ajax_error: settings.ajax_error || 'ajax failures ...',
        signinerr: settings.signinerr || 'please signin to access this feature...',
        fav_div_prefix: settings.fav_div_prefix,
        fav_ids: settings.fav_ids,
        userid: settings.userid || -1, 
        rm_text: settings.rm_text, 
        add_text: settings.add_text, 
        rm_link: settings.rm_link, 
        add_link: settings.add_link,
		is_comment: settings.is_comment || 0,
		fav_ids1: settings.fav_ids1 || null
		
    };
    this._make_fav_divs();
    
};


YAHOO.gaia.app.Arena.MultiFavorite.prototype._make_fav_divs = function() {
	
    for (var i in this._settings.fav_ids) this._make_div( i , this._settings.fav_ids[i] );
}

YAHOO.gaia.app.Arena.MultiFavorite.prototype._make_div = function(divid, href) {
	fav_div =   YAHOO.util.Dom.get(this._settings.fav_div_prefix + divid);
    fav_div.innerHTML = '';
    var a    = document.createElement('a');
    var txt = /delete/.test(href) ? this._settings.rm_text : this._settings.add_text;
	var txtNode = document.createTextNode(txt);
    a.appendChild(txtNode);
    a.href =  href;
    a.alt = txt;
    fav_div.appendChild(a);
    YAHOO.util.Event.addListener(this._settings.fav_div_prefix + divid, 'click', this._doAjax, this,true);

};


YAHOO.gaia.app.Arena.MultiFavorite.prototype._doAjax = function(e, obj){
  YAHOO.util.Event.preventDefault(e);
  var target = e.target || e.srcElement;
  if(this._settings.userid == -1){
    this._settings.error_div.style.display = 'block';  
    this._settings.error_div.innerHTML = this._settings.signinerr;
    return;
  }


  var callback = {
     success: function(o){
       var response =  eval('(' +  o.responseText + ')');
	   var nextAction = /delete/.test(response.actiondone)  ? this._settings.add_link : this._settings.rm_link;
	   if (this._settings.is_comment == 1) {
	   	for (i in this._settings.fav_ids1) {
	   		if (this._settings.fav_ids1[i] == response.id) {
				
				this._make_div(i, nextAction + response.id + '/');
	   		}
	   	}
	   }
	   else {
	   	this._make_div(response.id, nextAction + response.id + '/');
	   }
     },
     failure: function(o){
      this._settings.error_div.style.display = 'block';  
      this._settings.error_div.innerHTML = this._settings.ajax_error;
     },
     scope: this
  }
  var ajax_url = target + '?request=ajax';
  this._ajaxRequest =  YAHOO.util.Connect.asyncRequest('GET',ajax_url, callback);
};

function initMultiFavorite(settings) {
    multiFavorite = new YAHOO.gaia.app.Arena.MultiFavorite();
    multiFavorite.init(settings);

}
