// before moving stuff from here into production in [Everything2 Ajax] change references to it from E2AJAX to e2.ajax.
E2AJAX = e2.ajax = jQuery.extend(e2.ajax,{
ajaxNode : 1873513,
ajaxUrl :'http://'+window.location.hostname+"/index.pl",
// hostname included for Guest User on non-canonical domain with canonical base element in html head
updateNodelet: function(nodeletName, params, callback) {
var nodeletID = nodeletName.toLowerCase().replace(/\W/g,'');
if (params == null) {params = {};}
e2.ajax.update(nodeletID,'updateNodelet',{ args: nodeletName, query: params }, 1, callback);
},
getLastMessage: function() {
},
privateMessage: function(recipient, msgText) {
e2.ajax.sendMessage("/msg "+recipient+" "+msgText);
},
sendMessage: function(msgText,checkmsg,callback) {
if ((msgText.length ==0)&&(checkmsg == '')) {
e2.ajax.update("chatterbox_chatter", "showchatter", {}, 0);
$('talk_button').replaceWith('<input type="button" value="talk" onclick="updateTalk()">');
}
else {
data = {
node_id: e2.ajax.ajaxNode,
mode: "message",
deletelist: checkmsg,
msgtext: msgText.replace( /[^ -~]/gm , function(x) { return "&#" + x.charCodeAt(0) + ";" ; } )
};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl,{method: 'get', parameters: data, requestHeaders: "Thu, 1 Jan 1970 00:00:00 GMT", onComplete: callback});
}
},
voteNode: function(node_vote, weight) {
data = {node_id:  e2.ajax.ajaxNode,
mode: "vote"
};
data["vote__" + node_vote] = weight;
$("voteinfo_"+node_vote).select(".vote_buttons").first().update("Voting ...");
myAjax = new Ajax.Request(e2.ajax.ajaxUrl,
{
method: 'get', 
parameters: data, 
onSuccess: function() {  e2.ajax.update("voteinfo_"+node_vote, "voteit", node_vote+",2", 0);} } );
},
bookmarkNode: function(node_bookmark) {
data = {
op : "bookmark",
node_id : node_bookmark
};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl, {method: 'get', parameters: data});
},
coolNode: function (node_cool) {
data = {
op : "cool",
cool_id : node_cool
};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl, {method: 'get', parameters: data});
},
createTitle: function(title) {
data = {type : "e2node", 
op : "new",
node : title};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl, {parameters: data, onSuccess: function() {e2.ajax.titleCreated = 1;}});
},
createWriteup: function(parent_e2node, doctext, writeuptype) {
data = {op: "new",
type: "writeup",
writeup_doctext: doctext,
writeup_parent_e2node: parent_e2node,
writeuptype: writeuptype
};
new Ajax.Request(e2.ajax.ajaxUrl, {parameters: data, method: "post"});
},
postWriteup: function(title, doctext, writeuptype) {
e2.ajax.createTitle(title);
Deferrer.defer(function() {e2.ajax.getNodeInfo(title,"e2node","node_id");}, "e2.ajax.titleCreated");
Deferrer.defer(function() {e2.ajax.createWriteup(e2.ajax.parentNode, doctext, writeuptype);}, "e2.ajax.parentNode");
},
getNodeInfo: function(nodeTitle, nodeType, field) {
data = {node_id:  e2.ajax.ajaxNode,
mode: "getNodeInfo",
type: nodeType,
field: field,
title: nodeTitle
};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl,{method: "get", parameters: data, onComplete: function(response) { e2.ajax.parentNode = response.responseText;} });
},
checkCools: function(){
e2.ajax.checkList("coolsJSON", e2.ajax.coolOn, e2.ajax.coolOff, ".cooled", "cooled_");
},
checkMessages: function(){
e2.ajax.checkList("showchatterJSON", e2.ajax.messageOn, e2.ajax.messageOff, ".messaged", "messaged_");
},
messageOn: function(id, content, position) {
content = "<div class='messaged' id='messaged_"+id+"'>"+content+"</div>";
e2.ajax.itemOn(id,'messaged_','chatterbox_chatter',content,'bottom');
},
messageOff: function(messaged_id) {
e2.ajax.itemOff(messaged_id);
},
feedItemOff: function(id) {
e2.ajax.itemOff(id);
},
feedItemOn: function(id, content, position) {
content = "<div class='feeditem' id='feeditem_"+id+"' style='padding: .5em; margin-bottom: .2em'>"+content+"</div>";
e2.ajax.itemOn(id,'feeditem_','feed_list',content,'top');
},
checkFeedItems: function(){
e2.ajax.checkList("userFeedJSON", e2.ajax.feedItemOn, e2.ajax.feedItemOff, ".feeditem", "feeditem_");
},
addFeedItem: function(doctext) {
data = {
type : "feeditem",
node_id : e2.ajax.ajaxNode,
title: "feeditem",
op : "new",
doctext : doctext
};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl, {
parameters: data, 
onSuccess: 
function() {
e2.ajax.checkFeedItems(); $('new_feed_item').value = '';
}
});
},
deleteFeedItem: function(item_id) {
data = {
mode : "deleteFeedItem",
node_id : e2.ajax.ajaxNode,
feeditem_nodeid : item_id
};
myAjax = new Ajax.Request(e2.ajax.ajaxUrl, {
parameters: data, 
onSuccess:
function() {
e2.ajax.checkFeedItems();
}
});
}
});
