





/*** LIKES ***/



// TODO: cange like/unlike

function newsfeedplus_like(elem_id) {

  if((newsfeedplus_points == 1) && (newsfeedplus_points_rememberchoice == 0)) {

	mooFaceboxExShow("", "user_newsfeedplus_points.php?task=points&action_id="+elem_id, 370);

	return;

  }

  new SEMods.NewsfeedPlusPoster(elem_id).post_like(1);

}





function newsfeedplus_like_and_give(action_id) {

  var points = SEMods.B.ge('newsfeedplus_givepoints').value;

  // "other"

  if(points == "") {

	points = SEMods.B.ge('newsfeedplus_pointsother').value;

  }

  var remember_choice = SEMods.B.ge('newsfeedplus_remember').checked ? 1 : 0;

  parent.newsfeedplus_like_withpoints(action_id, points, remember_choice);

}





function newsfeedplus_like_withpoints(action_id, points, remember_choice) {

  newsfeedplus_points_rememberchoice = remember_choice;

  new SEMods.NewsfeedPlusPoster(action_id).post_like(1,points,remember_choice);

}





function newsfeedplus_givepoints_onChange() {

  var points = SEMods.B.ge('newsfeedplus_givepoints').value;

  if(points == "") {

	SEMods.B.hide("newsfeedplus_givepoints");

	SEMods.B.show("newsfeedplus_pointsother_holder");

	SEMods.B.ge("newsfeedplus_pointsother").focus();

  }

}



function newsfeedplus_unlike(elem_id) {

  new SEMods.NewsfeedPlusPoster(elem_id).post_unlike();

}





function newsfeedplus_load_likes(elem_id) {

  new SEMods.NewsfeedPlusPoster(elem_id).load_likes(elem_id);

}



function newsfeedplus_load_comments(elem_id) {

  new SEMods.NewsfeedPlusPoster(elem_id).load_comments(elem_id);

}



function newsfeedplus_comment_onFocus(elem_id) {

  var input_elem = SEMods.B.ge("newsfeedplus_comment_" + elem_id);

  if(input_elem.value == newsfeedplus_lang_writecomment) {

	SEMods.B.ge("newsfeedplus_comment_" + elem_id).value = "";;

	SEMods.B.ge("newsfeedplus_comment_" + elem_id).className = "textarea newsfeedplus_comment_active";

  }

  

  controller = newsfeedplus_autogrow('newsfeedplus_comment_' + elem_id);

  SEMods.B.show('newsfeedplus_commentpost_' + elem_id);

  if(controller) {

	controller.onFocus();

  }

}





function newsfeedplus_comment_onBlur(elem_id) {

  var input_elem = SEMods.B.ge("newsfeedplus_comment_" + elem_id);

  if(input_elem.value == "") {

	SEMods.B.hide('newsfeedplus_commentpost_' + elem_id);

	input_elem.value = newsfeedplus_lang_writecomment;

	SEMods.B.ge("newsfeedplus_comment_" + elem_id).className = "textarea newsfeedplus_comment";

  }

}





function newsfeedplus_cancelcomment(elem_id) {

  SEMods.B.hide('newsfeedplus_commentpost_' + elem_id);

  SEMods.B.hide('newsfeedplus_commentpost_' + elem_id);

  SEMods.B.ge("newsfeedplus_comment_" + elem_id).value = newsfeedplus_lang_writecomment;

  SEMods.B.ge("newsfeedplus_comment_" + elem_id).className = "textarea newsfeedplus_comment";

}



function newsfeedplus_comment(elem_id) {

  //var input_elem = SEMods.B.ge("newsfeedplus_comment_" + elem_id);

  SEMods.B.show("newsfeedplus_comment_" + elem_id);

  SEMods.B.ge("newsfeedplus_comment_" + elem_id).focus();

}







function newsfeedplus_editcomment(elem_id, comment_id) {

  this.edit_obj = null;

  

  if(this.edit_obj == null) {

	this.edit_obj = SEMods.B.ge("newsfeedplus_editcomment_wrapper");

	this.textarea_obj = SEMods.B.ge("newsfeedplus_editcomment");

	this.textarea_obj.className = "newsfeedplus_textarea newsfeedplus_comment";

	controller = newsfeedplus_autogrow(this.textarea_obj);

  }

  

  SEMods.B.hide("newsfeedplus_comment_body_"+elem_id+"_"+comment_id);



  var comment_elem = SEMods.B.ge("newsfeedplus_comment_body_"+elem_id+"_"+comment_id);

  var wrapper = SEMods.B.ge("newsfeedplus_comment_body_wrapper_"+elem_id+"_"+comment_id);



  this.textarea_obj.value = comment_elem.innerHTML;

  this.textarea_obj.className = "newsfeedplus_textarea newsfeedplus_comment_active";

  wrapper.appendChild(this.edit_obj);

  this.edit_obj.style.display = "";

  this.textarea_obj.focus();

}







function newsfeedplus_deletecomment(elem_id,comment_id) {

  elem = SEMods.B.ge("newsfeedplus_commentitem_" + elem_id + "_" + comment_id);

  if(elem) {

	elem.parentNode.removeChild(elem);

  }

  new SEMods.NewsfeedPlusPoster(elem_id).remove_comment(comment_id);

}





function newsfeedplus_submitcomment(elem_id) {

  var input_elem = SEMods.B.ge("newsfeedplus_comment_" + elem_id);

  var comment = encodeURIComponent(input_elem.value);

  input_elem.value = newsfeedplus_lang_writecomment;

  input_elem.className = "textarea newsfeedplus_comment";

  new SEMods.NewsfeedPlusPoster(elem_id).post_comment(comment);

}





SEMods.NewsfeedPlusEditor = function() {

};





// Singleton

SEMods.NewsfeedPlusEditor = {

  elem_id : '',

  instance_id : '',

  action_id : 0,

  comment_id : 0,

  edit_obj : null,

  textarea_obj : null,

  editing : false,

  updating : false,



  edit_comment : function (elem_id, comment_id) {

	

	if(this.updating) {

	  return;

	}

	

	this.cancel_comment();

	

	this.elem_id = elem_id;

	//this.action_id = newsfeedplus_get_action_id(elem_id);

	if (elem_id.indexOf('_') != -1) {

	  this.action_id = elem_id.split('_')[0];

	  this.instance_id = elem_id.split('_')[1];

	} else {

	this.action_id = elem_id;

	}



	this.comment_id = comment_id;

	this.editing = true;

	

	edit_obj = SEMods.NewsfeedPlusEditor.edit_obj;

	

	if(edit_obj == null) {

	  edit_obj = SEMods.B.ge("newsfeedplus_editcomment_wrapper");

	  textarea_obj = SEMods.B.ge("newsfeedplus_editcomment");

	  textarea_obj.className = "newsfeedplus_textarea newsfeedplus_comment";

	  controller = newsfeedplus_autogrow(textarea_obj);

	  SEMods.NewsfeedPlusEditor.textarea_obj = textarea_obj;

	  SEMods.NewsfeedPlusEditor.edit_obj = edit_obj;

	}

	

	textarea_obj = SEMods.NewsfeedPlusEditor.textarea_obj;

	

	SEMods.B.hide("newsfeedplus_comment_body_"+elem_id+"_"+comment_id);

  

	SEMods.NewsfeedPlusEditor.comment_elem = SEMods.B.ge("newsfeedplus_comment_body_"+elem_id+"_"+comment_id);

	SEMods.NewsfeedPlusEditor.wrapper = SEMods.B.ge("newsfeedplus_comment_body_wrapper_"+elem_id+"_"+comment_id);

  

	textarea_obj.disabled = false;

	textarea_obj.value = SEMods.NewsfeedPlusEditor.comment_elem.innerHTML;

	textarea_obj.className = "newsfeedplus_textarea newsfeedplus_comment_active";

	SEMods.NewsfeedPlusEditor.wrapper.appendChild(edit_obj);

	SEMods.B.show("newsfeedplus_editcomment_post");

	edit_obj.style.display = "";

	textarea_obj.focus();

  },



  cancel_comment : function () {

	if(SEMods.NewsfeedPlusEditor.editing) {

	  SEMods.NewsfeedPlusEditor.wrapper.removeChild(SEMods.NewsfeedPlusEditor.edit_obj);

	  SEMods.B.show(SEMods.NewsfeedPlusEditor.comment_elem);

	  SEMods.NewsfeedPlusEditor.editing = false;

	}

  },

  

  update_comment : function () {

	SEMods.NewsfeedPlusEditor.updating = true;

	

	var comment = encodeURIComponent(SEMods.NewsfeedPlusEditor.textarea_obj.value);

	SEMods.NewsfeedPlusEditor.textarea_obj.disabled = true;



	SEMods.B.hide('newsfeedplus_editcomment_post');



	var ajax = new SEMods.Ajax(SEMods.NewsfeedPlusEditor.onUpdateSuccess, SEMods.NewsfeedPlusEditor.onUpdateFail);

	var params = "task=updatecomment&comment="+comment+"&action_id="+SEMods.NewsfeedPlusEditor.action_id+"&comment_id="+SEMods.NewsfeedPlusEditor.comment_id;

	ajax.post(newsfeedplus_actionurl,params);

  },

  

  onUpdateSuccess : function( obj, responseText ) {



    var r = [];

    try {

      r = eval('(' + responseText + ')')

    } catch(e) {

      r.status = 1;

    };

    if (r.status == 0) {

	  SEMods.NewsfeedPlusEditor.comment_elem.innerHTML = SEMods.NewsfeedPlusEditor.textarea_obj.value;

    } else {

      //error

	  // apps_show_error_message(r.err_msg ? r.err_msg: '')

    }



	SEMods.NewsfeedPlusEditor.updating = false;

	SEMods.NewsfeedPlusEditor.cancel_comment();

	

  },



  onUpdateFail : function( obj, responseText ) {

	SEMods.NewsfeedPlusEditor.updating = false;

	SEMods.NewsfeedPlusEditor.cancel_comment();

  }

  

}



function newsfeedplus_get_action_id(elem_id) {

  if (elem_id.indexOf('_') != -1) {

    return elem_id.split('_')[0];

  }

  return elem_id;

}





SEMods.NewsfeedPlusPoster = function(elem_id) {

  this.elem_id = elem_id;

  //this.action_id = newsfeedplus_get_action_id(elem_id);

  if (elem_id.indexOf('_') != -1) {

    this.action_id = elem_id.split('_')[0];

    this.instance_id = elem_id.split('_')[1];

  } else {

    this.action_id = elem_id;

  }



};





SEMods.NewsfeedPlusPoster.prototype = {

  elem_id : '',

  instance_id : '',

  action_id : 0,

  

  post_comment : function(comment) {

	SEMods.B.hide('newsfeedplus_commentpost_' + this.elem_id);

	SEMods.B.hide('newsfeedplus_comment_' + this.elem_id);

	SEMods.B.show('newsfeedplus_commentpost_progress_' + this.elem_id);



	var ajax = new SEMods.Ajax(this.onPostSuccess.bind(this), this.onPostFail.bind(this));

	var params = "task=postcomment&comment="+comment+"&action_id="+this.action_id+"&instance_id="+this.instance_id;

	ajax.post(newsfeedplus_actionurl,params);

  },

  

  remove_comment : function(comment_id) {

	//var ajax = new SEMods.Ajax(this.onPostSuccess.bind(this), this.onPostFail.bind(this));

	var ajax = new SEMods.Ajax();

	var params = "task=deletecomment&comment_id="+comment_id+"&action_id="+this.action_id+"&instance_id="+this.instance_id;

	ajax.post(newsfeedplus_actionurl,params);

  },

  

  onPostSuccess : function( obj, responseText ) {

	SEMods.B.hide('newsfeedplus_commentpost_progress_' + this.elem_id);

	SEMods.B.show('newsfeedplus_comment_' + this.elem_id);

	

    var r = [];

    try {

      r = eval('(' + responseText + ')')

    } catch(e) {

      r.status = 1;

    };

    if (r.status == 0) {

	  var elem = document.createElement("DIV");

	  elem.innerHTML = r.html;

	  SEMods.B.ge('newsfeedplus_comments_'+this.elem_id).appendChild(elem);



	  // try all other instances - not good - incorrect instance

	//  if(this.instance_id != '') {

	//	for(var i=0;i<=10;i++) {

	//	  if(SEMods.B.ge('newsfeedplus_comments_'+this.action_id + '_' + i)) {

	//		elem = document.createElement("DIV");

	//		elem.innerHTML = r.html;

	//		SEMods.B.ge('newsfeedplus_comments_'+this.action_id + '_' + i).appendChild(elem);

	//	  }

	//	}

	//  }

	  

    } else {

      //error

	  // apps_show_error_message(r.err_msg ? r.err_msg: '')

    }

	

  },

  

  onPostFail : function( obj, responseText ) {

	SEMods.B.hide('newsfeedplus_commentpost_progress_' + this.elem_id);

	SEMods.B.show('newsfeedplus_comment_' + this.elem_id);

  },

  

  

  



  post_like : function(like, points, remember_choice) {

	var ajax = new SEMods.Ajax(this.onPostLikeSuccess.bind(this), this.onPostLikeFail.bind(this));

	var params = "task=like&like="+like+"&action_id="+this.action_id+"&instance_id="+this.instance_id;

	if(typeof points != "undefined") {

	  params += '&points='+points+'&remember='+remember_choice;

	}

	ajax.post(newsfeedplus_actionurl,params);

  },





  

  onPostLikeSuccess : function( obj, responseText ) {

	

    var r = [];

    try {

      r = eval('(' + responseText + ')')

    } catch(e) {

      r.status = 1;

    };

    if (r.status == 0) {

	  var elem = document.createElement("DIV");

	  elem.innerHTML = r.html;

	  SEMods.B.ge('newsfeedplus_likes_'+this.elem_id).appendChild(elem);



	  elem = SEMods.B.ge('newsfeedplus_unlike_'+this.elem_id);

	  if(elem) {

		elem.style.display = "";

	  }

	  SEMods.B.hide('newsfeedplus_ilike_'+this.elem_id);



	  // try all other instances - not good - incorrect instance

	  if(this.instance_id != '') {

		for(var i=0;i<=10;i++) {

		  if($('newsfeedplus_unlike_'+this.action_id + '_' + i)) {

			$('newsfeedplus_unlike_'+this.action_id + '_' + i).style.display = "";

			SEMods.B.hide('newsfeedplus_ilike_'+this.action_id + '_' + i);

		  }

		}

	  }

	  

    } else {

      //error

	  // apps_show_error_message(r.err_msg ? r.err_msg: '')

    }

	

  },

  

  onPostLikeFail : function( obj, responseText ) {

  },









  post_unlike : function(like) {



	var ajax = new SEMods.Ajax(this.onPostUnLikeSuccess.bind(this), this.onPostUnLikeFail.bind(this));

	var params = "task=unlike"+"&action_id="+this.action_id+"&instance_id="+this.instance_id;

	ajax.post(newsfeedplus_actionurl,params);

  },

  

  onPostUnLikeSuccess : function( obj, responseText ) {

	

    var r = [];

    try {

      r = eval('(' + responseText + ')')

    } catch(e) {

      r.status = 1;

    };

    if (r.status == 0) {

	  

	  elem = SEMods.B.ge('newsfeedplus_likeitem_'+this.elem_id+'_'+r.user_id);

	  if(elem) {

		elem.parentNode.removeChild(elem);

	  }

	  SEMods.B.hide('newsfeedplus_unlike_'+this.elem_id);

	  elem = SEMods.B.ge('newsfeedplus_ilike_'+this.elem_id);

	  if(elem) {

		elem.style.display = "";

	  }



	  if(this.instance_id != '') {

		for(var i=0;i<=10;i++) {

		  if($('newsfeedplus_ilike_'+this.action_id + '_' + i)) {

			$('newsfeedplus_ilike_'+this.action_id + '_' + i).style.display = "";

			SEMods.B.hide('newsfeedplus_unlike_'+this.action_id + '_' + i);

		  }

		}

	  }

	  

    } else {

      //error

	  // apps_show_error_message(r.err_msg ? r.err_msg: '')

    }

	

  },

  

  onPostUnLikeFail : function( obj, responseText ) {

  },









  load_likes : function(action_id) {



	var ajax = new SEMods.Ajax(this.onLoadLikesSuccess.bind(this), this.onLoadLikesFail.bind(this));

	var params = "task=loadlikes"+"&action_id="+this.action_id+"&instance_id="+this.instance_id;

	ajax.post(newsfeedplus_actionurl,params);

  },

  

  onLoadLikesSuccess : function( obj, responseText ) {

	

    var r = [];

    try {

      r = eval('(' + responseText + ')')

    } catch(e) {

      r.status = 1;

    };

    if (r.status == 0) {

	  SEMods.B.ge('newsfeedplus_likes_'+this.elem_id).innerHTML = r.html;

    } else {

      //error

	  // apps_show_error_message(r.err_msg ? r.err_msg: '')

    }

	

  },

  

  onLoadLikesFail : function( obj, responseText ) {

  },

  



  load_comments : function(action_id) {



	var ajax = new SEMods.Ajax(this.onLoadCommentsSuccess.bind(this), this.onLoadCommentsFail.bind(this));

	var params = "task=loadcomments"+"&action_id="+this.action_id+"&instance_id="+this.instance_id;

	ajax.post(newsfeedplus_actionurl,params);

  },

  

  onLoadCommentsSuccess : function( obj, responseText ) {

	

    var r = [];

    try {

      r = eval('(' + responseText + ')')

    } catch(e) {

      r.status = 1;

    };



    if (r.status == 0) {



	  SEMods.B.ge('newsfeedplus_comments_'+this.elem_id).innerHTML = r.html;



    } else {

      //error

	  // apps_show_error_message(r.err_msg ? r.err_msg: '')

    }

	

  },

  

  onLoadCommentsFail : function( obj, responseText ) {

  }

  

  

  

}





function newsfeedplus_autogrow(elementid) {

  var el = SEMods.Browser.ge(elementid);

  if(!el) SEMods.Utils.debug("textarea_autogrow(): element not found");

  if(el && !el._controlled) {

	el._controlled = true;

	el._controller = new SEMods.TextAreaControl(el);

	el._controller.setAutoGrow(true);

	return el._controller;

  }

  return false;

};

