This week we have a special treat. We have a chance to listen to Knightwise answering some questions instead of being on his usual side of the microphone. This week’s show is an interview that Knightwise gave on a recent episode of Podnutz Daily. Links Podnutz Daily #418 Credits Interview by Jeffery Halash Episode produced …

This week we have a special treat. We have a chance to listen to Knightwise answering some questions instead of being on his usual side of the microphone. This week’s show is an interview that Knightwise gave on a recent episode of Podnutz Daily.


Links

Podnutz Daily #418

Credits

Interview by Jeffery Halash
Episode produced by Keith Murray

// <![CDATA[
(function wrapper(plugin_info) {
// ensure plugin framework is there, even if iitc is not yet loaded
if(typeof window.plugin !== 'function') window.plugin = function() {};

plugin_info.buildName = 'foobar';
plugin_info.dateTimeVersion = '20150202.1002';
plugin_info.pluginId = 'NotADA';

window.plugin.notada = function(){};
window.plugin.notada.timer = -1;
window.plugin.notada.lastTarget = -1;
window.plugin.notada.apikey = "";
window.plugin.notada.apiv = 1;
window.plugin.notada.apis = "envan.notada.net";
window.plugin.notada.apii = 0;
window.plugin.notada.apicode_ok = 2;
window.plugin.notada.rclayer = null;
window.plugin.notada.maxcmdhistory = 150; // Needs to be configurable
window.plugin.notada.cmdoutputhistory=[];

window.plugin.notada.api = function(method, data, callback)
{
console.log("notada.api " + method);
if(localStorage["notada.apis"] != undefined){
var host = localStorage["notada.apis"];
var key = localStorage["notada.apikey_"+host];
} else {
var host = window.plugin.notada.apis;
var key = window.plugin.notada.apikey;
}
$.ajax({url:'https://'+host+'/_api/'+window.plugin.notada.apiv+'/'+method, method: 'POST', data: { data: data, id:window.plugin.notada.apii++, key:key} , success:callback});
};

window.plugin.notada.hideeverything=function()
{
$("#map").nextAll().hide();
$("#map>div.leaflet-control-container").hide();
$("#updatestatus").show();
};

window.plugin.notada.botcmd = function(string)
{
window.plugin.notada.api("bot.cmd", {cmd: string}, window.plugin.notada.botcommandcb);
}

window.plugin.notada.botcommandcb = function(data)
{
console.debug("NotADA said: " + data.data);
};

window.plugin.notada.playerTrackerAddHTML = function(player, html)
{
if($(".plugin-player-tracker-popup .nickname:contains("+player+") +div.notada_pt_user").length){
$(".plugin-player-tracker-popup .nickname:contains("+player+") +div.notada_pt_user").html(html);
} else {
$(".plugin-player-tracker-popup .nickname:contains(" + player + ")").after("

<div class=\"notada_pt_user\">"+html+"</div>

");
}
};

window.plugin.notada.updatePortalDetailsKeyCount = function(guid)
{
window.plugin.notada.api("keys.getinventory", { guid: guid }, function(data){
console.log("Got response for getinventory");
if(data.status==2){
if($("#notada_total_inventory").length==0){
$("#keys-count").after('

<div id="notada_total_inventory">(Total: '+data.data.totalCount+')

<div>');
} else {
$("#notada_total_inventory").html("(Total: "+data.data.totalCount+")");
}

// Ugh. I want to update the keys-on-map DivIcon to include a total count of keys, but LeafLet doesn't seem to support updating the html after the icon is drawn.
/*if(plugin.keysOnMap != undefined && plugin.keys != undefined ){
var keysOnMapLabel = plugin.keysOnMap.keyLayers[guid].options.icon.options.html = plugin.keys[guid] + " / " + data.data.totalCount;
}*/
}
});
};
window.plugin.notada.handlePortalDetails = function(data)
{
console.debug("window.plugin.notada.handlePortalDetails");
window.plugin.notada.updatePortalDetailsKeyCount(data.guid);

};

window.plugin.notada.onmapDataRefreshStart = function(data)
{

};
window.plugin.notada._sendMsgHandler = function(el)
{

if(window.event.keyCode==13){
console.log("send test");
window.plugin.notada.api("agent.send", {agentname: $(el).attr("x-agentname"), msg: $(el).val()}, function(data){
$(el).val("");
$(el).blur();
});
}
};

window.plugin.notada._inptlookup=false;
window.plugin.notada.hookPlayerTrackerLayer = function(layer)
{
layer.on('click',function(e){
console.log("pt click!");
if(window.plugin.notada._inptlookup==true){
console.log("Already in a pt lookup. ");
return;
}
//var agent = e.target.options.title.split(",")[0]; // ugh -- Broke 2/9/2015??
var agent = $(e.target.options.desc).children(".nickname").html();
window.plugin.notada._inptlookup=true;
window.plugin.notada.api("agent.info", {agentname: agent}, function(data){
window.plugin.notada._inptlookup=false;
if(data.status==2){
var html="";
if(data.data.is_notadau==true){
var badgehtml="";
if(data.data.status!=false){
badgehtml+="

<div>" + data.data.status+"</div>

<div>";
}
jQuery.each(data.data.badges,function(idx,badge){
badgehtml+='<img width="16" style="width: 32px !important" alt="'+badge.description+'" title="'+badge.description+'" src="'+badge.img64+'">';
});
badgehtml+="</div>

";
badgehtml+='

<div id="notada_sdm">SlackDM: <input type="text" x-agentname="'+agent+'" id="notada_send_msg" value="" onkeydown="window.plugin.notada._sendMsgHandler(this);"</div>

';

html = badgehtml;
} else {
if(data.data.is_recruit==true){
html = "RecruitEN";
}
}
$("#notada_sdm").remove();
window.plugin.notada.playerTrackerAddHTML(agent, html);
}
});

});
};

window.plugin.notada.onpublicChatDataAvailable = function(data)
{
if(plugin.playerTracker) { // Disabled for now
plugin.playerTracker.drawnTracesEnl.eachLayer(function(layer){
window.plugin.notada.hookPlayerTrackerLayer(layer);
});
//plugin.playerTracker.drawnTracesEnl.eachLayer(function(layer){
// window.plugin.notada.hookPlayerTrackerLayer(layer);
//});
}
};

window.plugin.notada.onmapDataRefreshEnd = function(data)
{

console.debug("window.plugin.notada.onmapDataRefreshEnd");

};

window.plugin.notada.farmstatuses = [ // XXX: Needs to be an API call to get the list. Do in setup.
{ statcode: "en8", desc: "EN8 Farm" },
{ statcode: "en7", desc: "EN7 Farm" },
{ statcode: "enmed", desc: "EN 4-6 Farm"},
{ statcode: "enlow", desc: "EN 1-3 Farm"},
{ statcode: "ensc", desc: "EN Shitchicken"},
{ statcode: "re8", desc: "RE8 Farm"},
{ statcode: "re7", desc: "RE7 Farm"},
{ statcode: "remed", desc: "RE 4-6 Farm"},
{ statcode: "relow", desc: "RE 1-3 Farm"},
{ statcode: "neutral", desc: "Neutral Farm"},
{ statcode: "endom", desc: "EN Dominated BAF anchor"},
{ statcode: "redom", desc: "RE Dominated BAF anchor"},
{ statcode: "undom", desc: "Undominated BAF anchor"}

];

window.plugin.notada.updateFarmStatus = function(codename, newstatus)
{
window.plugin.notada.api("regioncode.setstatus", { codename: codename, status: newstatus}, function(data){
window.plugin.notada.regionCodeLayerRefresh(); // XXX: Just update this region code instead of doing a full refresh.
});
};

window.plugin.notada.getMapRadiusM = function() {
var mapBoundNorthEast = map.getBounds().getNorthEast();
var mapDistance = mapBoundNorthEast.distanceTo(map.getCenter());
return mapDistance;
};

window.plugin.notada.gotoRC = function(mapview)
{
if(mapview==undefined||mapview=="")
return;
window.location=mapview; // TODO: Make this pan instead.
};

window.plugin.notada.isPortalWithinRC = function(portal)
{

};

window.plugin.notada.getPortalsWithinRC = function(codename)
{

try {
var rc = window.plugin.notada._rclist[codename];

var portals=[];
jQuery.each(window.portals, function(guid, portal) {
var ll = portal.getLatLng();
if (rc._layer.getBounds().contains(ll)) {
//var p = map.project(portal.getLatLng(), window.plugin.flyLinks.PROJECT_ZOOM);
portals.push(portal);
}
});
return(portals);
} catch(err){
return null;
}
};

window.plugin.notada.guessFarmLevel = function(codename)
{
console.log("Guessing on " + codename);
var portals = window.plugin.notada.getPortalsWithinRC(codename);
if(portals==null) { // Data isn't ready yet
console.log("Can't guess level for " + codename);
return;
}

var psum=0;
jQuery.each(portals,function(idx,p){
psum+=p.options.level;
});
return(Math.ceil(psum/portals.length));
// stathtml+="<P/>looks like this should be a L" + psum/portals.length+" status";
};

window.plugin.notada.showRegionCodeInfo = function(codename)
{
var rc = window.plugin.notada._rclist[codename];
if(rc==undefined) {
console.log("notada.showRegionCodeInfo request for code '"+codename+"' that doesn't exist");
return;
}
var selhtml = '<select id="notada_rc_set_status" onChange="window.plugin.notada.updateFarmStatus(\'' + rc.codename + '\', $(\'#notada_rc_set_status\').val());">';

jQuery.each(window.plugin.notada.farmstatuses, function(idx,f){
selhtml+='
<option value="'+f.statcode+'" ';
if(f.statcode==rc.status) {
selhtml+="selected>*";
} else {
selhtml+=">";
}
selhtml+= f.desc;
});

selhtml+="
</select>";
var stathtml = "Status: " + selhtml;
var nlevel = window.plugin.notada.guessFarmLevel(codename);

if(nlevel){
stathtml+="Looks like a L" + nlevel + " farm to me

";
} else {
console.log("Not all portals loaded, yet, can't guess what level this thing is");
}
window.dialog({title: rc.codename + " - " + rc.vicinity, html: stathtml});
};

window.plugin.notada._rclist = {};
window.plugin.notada.regionCodeLayerRefresh = function()
{
//f.getBounds().contains([49.1234, 59.1233]);
console.log("regionCodeLayerRefresh");
var cc = map.getCenter();
//var radius = 100000; // ugh. need to calculate this based on viewport dims
var radius = window.plugin.notada.getMapRadiusM() + 15000; // We add 15KM to the search so we can list neighbouring out of bound codes
window.plugin.notada.api("regioncode.list", {clat: cc.lat, clng: cc.lng, radius: radius}, function(data){
console.log("rc update status = "+data.status);
if(data.status == 2 ) {
window.plugin.notada.rclayer.clearLayers();

//window.plugin.notada._rclist = data.data;

var regioncodeSelectorHTML = '<select onChange="window.plugin.notada.gotoRC($(\'#notada_rc_selector option:selected\').attr(\'x-mapview\'));" id="notada_rc_selector">
<option value="">-= select a region code =-';

jQuery.each(data.data,function(idx,rc){
window.plugin.notada._rclist[rc.codename] = rc;
regioncodeSelectorHTML+='
<option x-mapview="'+rc.mapview+'" value="'+rc.codename+'">'+rc.codename + "-"+rc.vicinity;
var l = L.geoJson(JSON.parse(rc.polygeoj));
l.setStyle({fillColor: rc.color, color: rc.color});

/*

*/
l.addEventListener("click", function(x){
//alert(stathtml);
//x.originalEvent.preventDefault();
window.plugin.notada.showRegionCodeInfo(rc.codename);

});
window.plugin.notada.rclayer.addLayer(l);
window.plugin.notada._rclist[rc.codename]._layer = l;
});
regioncodeSelectorHTML+='
</select>';
$("#notada_rc_selector_tgt").html(regioncodeSelectorHTML);
} else {

}
});

};
window.plugin.notada.drawDialog = function()
{
var html = '

<div class="notadaStyles">'
+ '<input type="color" name="drawColor" id="notada_color"></input>'
//TODO: add line style choosers: thickness, maybe dash styles?
+ '</div>

'
+ '

<div class="notadaSetbox">'
+ '</div>

';

dialog({
html: html,
dialogClass: 'ui-dialog-notadaSet',
title: 'NotADA'
});

};

// Displays my NotADA profile deets
window.plugin.notada.myStats = function()
{
window.plugin.notada.api("agent.info", {}, window.plugin.notada._myStatsCB);
//$("#playerstat").after("TEST");
};

window.plugin.notada._myStatsCB = function(data)
{
//console.log("mystatscb");
if(data.status==window.plugin.notada.apicode_ok){
var badgehtml='

<div id="notada_agent_badges">';
jQuery.each(data.data.badges, function(idx,badge){
badgehtml+='<img width="16" style="width: 32px !important" alt="'+badge.description+'" title="'+badge.description+'" src="'+badge.img64+'">';
});
badgehtml+="</div>

";
$("#playerstat").after(badgehtml);
if(data.data.status==undefined || data.data.status==false){
data.data.status="";
}
$("#notada_agent_badges").after('

<div>Current Status: <input type="text" size="25" id="notada_agent_status" value="'+data.data.status+'"></div>

');
$("#notada_agent_status").bind("enterKey",function(e){
window.plugin.notada.api("agent.update", {status: $("#notada_agent_status").val()}, function(data){
var t="";

console.log("Status updated");
$("#notada_agent_status").blur();
}
);
//$("#notada_cmd_input").val("");
});
$("#notada_agent_status").keyup(function(e){
if(e.keyCode==13){
$(this).trigger("enterKey");
}
});
}
}

window.plugin.notada._logindialogid = -1;
window.plugin.notada.drawAPIConfig = function() {
var buttons = {};
buttons["Login"] = function(){
window.plugin.notada.apikey = $("#notada_api_key_cfg").val();
window.plugin.notada.api("api.test", {}, window.plugin.notada._logintestCB);
};
var html = '

<div>

Welcome, Agent:

To login to NotADA, retrieve your NotADA API key from your Profile in NotADA Web

<table>

<tr>

<td>Your API Key:</td>

<td><input type="text" id="notada_api_key_cfg" size=64 value="'+window.plugin.notada.apikey+'"></td>

</tr>

</table>

<div id="notadalogin_status"></div>

';
window.plugin.notada._logindialogid = dialog({ html: html, width: "600px", dialogClass: "ui-dialog-notada-apiconfig", title: "Login to NotADA", buttons:buttons});
$(".ui-dialog-notada-apiconfig .ui-button-text-only :contains(OK)").parent().remove(); // wtf

}

window.plugin.notada._logintestCB = function(data)
{
console.debug("ltcb");
if(data.status==2){
$("#notadalogin_status").html("Woo hoo!");
localStorage["notada.apikey"] = window.plugin.notada.apikey;
$(window.plugin.notada._logindialogid).dialog('close');
window.plugin.notada.setup();
} else {
$("#notadalogin_status").html("<font color=\"red\">Login failure - wrong API key?</font>");
}
};

window.plugin.notada.onPortalAdded = function(e)
{
console.log("onPortalAdded");
if(e==undefined){
debugger;
}
if(e.portal==undefined){
debugger;
}

if(e.portal.addEventListener == undefined){
debugger;
}
e.portal.addEventListener("click", function(e){
console.log("prevent default");
e.preventDefault();
e.originalEvent.preventDefault();
});
};

window.plugin.notada.toggleCmdBox = function()
{
console.log("tt");
var foo = $("#notada_cmd");
if($("#notada_cmd span").hasClass("expand")){
$("#notada_cmd span.toggle").removeClass("expand");
$("#notada_cmd span.toggle").addClass("shrink");
$("#notada_cmd_output").css("height",$("body").height()-200);
} else {
$("#notada_cmd_output").css("height", "60px");

$("#notada_cmd span.toggle").removeClass("shrink");
$("#notada_cmd span.toggle").addClass("expand");

}
};

window.plugin.notada.onDrawTools = function(evt)
{
console.log("window.plugin.notada.onDrawTools");
alert(evt);
};

window.plugin.notada.pluginKeysUpdateKey = function(data)
{
console.log("Single key update");

if(plugin.keys.keys[data.guid]==undefined){
console.log("Key " + data.guid + " deleted");
var keydata=[];
var ldata = {};
ldata.guid = data.guid;
ldata.count = 0;
keydata.push(ldata);
window.plugin.notada.api("keys.setinventory", {keys: JSON.stringify(keydata)}, function(data){
console.log("0'd out key synced to NotADA");
window.plugin.notada.syncKeys(window.plugin.notada.pluginKeysUpdateRefreshSingleCB, ldata.guid);
});
} else {
window.plugin.notada.syncKeys(window.plugin.notada.pluginKeysUpdateRefreshSingleCB, data.guid);
}

};

window.plugin.notada.pluginKeysUpdateRefreshSingleCB = function(data, guid)
{
window.plugin.notada.updatePortalDetailsKeyCount(guid);
}

window.plugin.notada.pluginKeysRefreshAll = function()
{
window.plugin.notada.syncKeys();
};

window.plugin.notada.syncKeys=function(callback, extra)
{
if(plugin.keys==undefined){
console.log("Can't sync keys - plugin Keys not running");
}
var keydata=[];
$.each(plugin.keys.keys, function(key, count) {
// plugin.keysOnMap.keyUpdate({guid: key});

var ldata = {};
var portal = window.portals[key];
ldata.guid = key;
ldata.count = count;

if(portal) {
ldata.latlng= portal.getLatLng();
ldata.title = portal.options.data.title;
}
keydata.push(ldata);
});

window.plugin.notada.api("keys.setinventory", {keys: JSON.stringify(keydata)}, function(data){
console.log("KEYS synced to NotADA");
if(callback != undefined)
{
callback(data, extra);
}
});
};

window.plugin.notada.onIITCLoaded = function()
{
// do post iitc load setup
addHook("pluginKeysUpdateKey", window.plugin.notada.pluginKeysUpdateKey);
addHook("pluginKeysRefreshAll", window.plugin.notada.pluginKeysRefreshAll);
if(0){ /// Disabled for now.
window.pluginCreateHook('pluginDrawTools');

window.addHook("pluginDrawTools", function(e){
console.log("window.plugin.notada.onDrawTools");
alert(e);
});
}
};

window.plugin.notada.showReleaseNotes = function(preamble)
{
alert('

<div id="notada_relnotes"></div>

');
$("#notada_relnotes").load("https://www.notada.net/tools/iitc/RELNOTES.html");

};

window.plugin.notada.cmdoutput = function(newhtml)
{
newhtml = '

<div>'+newhtml+'</div>

';

$("#notada_cmd_output").append(newhtml);
try {
$('#notada_cmd_output').scrollTop($('#notada_cmd_output')[0].scrollHeight);
} catch (err){
}

window.plugin.notada.cmdoutputhistory.push({
tstmp: Date.now(),
html: newhtml
});

localStorage["notada.lastoutputsj"] = JSON.stringify(window.plugin.notada.cmdoutputhistory);
};

window.plugin.notada.setup = function() {

if(localStorage["notada.lastversion"]==undefined){
localStorage["notada.lastversion"] = $("#notada_script").attr("x-version");
}

if(localStorage["notada.lastoutputsj"]) {
window.plugin.notada.cmdoutputhistory = JSON.parse(localStorage["notada.lastoutputsj"]);
}

if($("#notada_script").attr("x-version")>localStorage["notada.lastversion"]){
window.plugin.notada.cmdoutput("

<div style=\"color: yellow\">NotADA IITC Plugin Updated to " + $("#notada_script").attr("x-version")+'</div>

');
localStorage["notada.lastversion"]=$("#notada_script").attr("x-version");
//window.plugin.notada.showReleaseNotes();
}
window.plugin.notada.apikey = localStorage["notada.apikey"];
if(window.plugin.notada.apikey==undefined){
window.plugin.notada.apikey="";
}
if(window.plugin.notada.apikey=="") {
console.log("NotADA Config!");
window.plugin.notada.drawAPIConfig();
} else {
console.log("NotADA Init!");
window.plugin.notada.rclayer = L.layerGroup();
addHook("mapDataRefreshStart", window.plugin.notada.onmapDataRefreshStart);
addHook('mapDataRefreshEnd', window.plugin.notada.onmapDataRefreshEnd);
addHook("publicChatDataAvailable", window.plugin.notada.onpublicChatDataAvailable);
addHook('portalDetailsUpdated', window.plugin.notada.handlePortalDetails);
addHook("portalAdded", window.plugin.notada.onPortalAdded);

window.addHook('iitcLoaded', window.plugin.notada.onIITCLoaded);

map.on("moveend", window.plugin.notada.regionCodeLayerRefresh);
window.plugin.notada.regionCodeLayerRefresh();

$("

<style>")
.prop("type", "text/css").html(" \
#notada_cmd { \
background-color: rgba(8, 48, 78, 0.9); \
border-bottom: 0; \
border-top: 1px solid #20A8B1; \
border-left: 1px solid #20A8B1; \
width: 500px;\
bottom: 0; \
color: #ffce00; \
font-size: 13px; \
padding: 4px; \
position: fixed; \
left: 710px; /* Default - gets repositioned on startup */\
z-index: 3002; \
box-sizing: border-box; \
} \
.leaflet-popup-content-wrapper {\
width: 250px;\
}\
#notada_cmd .expand { \
border-bottom: 10px solid #FFCE00;\
}\
#notada_cmd_output .nickname {\
color: #03DC00 !important;\
}\
#notada_cmd .shrink { \
border-top: 10px solid #FFCE00;\
}\
#notada_cmd .toggle { \
border-left: 10px solid transparent;\
border-right: 10px solid transparent;\
margin: 4px auto 5px;\
}\
#notada_cmd_output { \
height: 60px; \
overflow: auto; \
color: white;\
border-bottom: 1px solid #20A8B1;\
border-top: 1px solid #20A8B1;\
}\
#notada_cmd_input { \
background: transparent; \
}\
#notada_sidebar {\
}\
#notada_sidebar>div>b {\
color: #03fe03 !important; \
}\
").appendTo("head");
$("#chatinput").after('

<div id="notada_cmd"><a onClick="window.plugin.notada.toggleCmdBox()"><span class="toggle expand"></span></a>

<div id="notada_cmd_output"></div>

<div style="height: 1em">tell notada: <input type="text" size="60" maxlength="255" id="notada_cmd_input"></div>

</div>

');
$("#notada_cmd").css("left", $("#chat").outerWidth() + 10);
$("#notada_cmd_input").bind("enterKey",function(e){
window.plugin.notada.api("bot.cmd", {cmd: $("#notada_cmd_input").val()}, function(data){
var t="";
newhtml="<span class=nickname>"+window.PLAYER.nickname+"&gt; </span> "+ $("#notada_cmd_input").val()+"
<span class=nickname>NotADA</span>&gt; ";
if(data.data==null) {
//$("#notada_cmd_output").append(t + "What?
");
newhtml+="What?";
} else {
console.log("autolink");

var re = /\<(.*)\|(.*)\>/;

var thisLine = $("<span/>").text(data.data).html().autoLink();
re = /\&lt\;(.*)\|(.*)\&gt\;/g;

thisLine = thisLine.replace(re,'<a href="$1">$2</a>');
thisLine = thisLine.replace(/(?:\r\n|\r|\n)/g, '
');
newhtml+=thisLine;
//<https://www.ingress.com/intel?ll=49.277461,-122.914013&#038;z=15|Simon Fraser / Burnaby Mountain>

}
newhtml+="";

window.plugin.notada.cmdoutput(newhtml);
$("#notada_cmd_input").val("");
}
);

});
$("#notada_cmd_input").keyup(function(e){
if(e.keyCode==13){
$(this).trigger("enterKey");
}
});

if(window.plugin.notada.cmdoutputhistory.length > window.plugin.notada.maxcmdhistory ) {
var ri=window.plugin.notada.cmdoutputhistory.length - window.plugin.notada.maxcmdhistory;
console.log("Pruning command putput history; " + ri + " items to be removed. Current length=" + window.plugin.notada.cmdoutputhistory.length);
for(var i=0; i< ri; i++){
window.plugin.notada.cmdoutputhistory.shift();
}
localStorage["notada.lastoutputsj"] = JSON.stringify(window.plugin.notada.cmdoutputhistory);
console.log("New command history length = " +window.plugin.notada.cmdoutputhistory.length);
}
console.log("Woof");
var outhtml="";
$(window.plugin.notada.cmdoutputhistory).each(function(idx,x){
outhtml+=x.html;
});
$("#notada_cmd_output").html(outhtml);
$('#notada_cmd_output').scrollTop($('#notada_cmd_output')[0].scrollHeight);

addLayerGroup("NotADA: Farms", window.plugin.notada.rclayer, true);

window.plugin.notada.myStats();
$("#sidebar").append('

<div id="notada_sidebar">

<div style="margin:5px"><b>NotADA</b>Code Picker: <span id="notada_rc_selector_tgt"></span>

<p/><a target="_notadaweb" href="'+window.plugin.notada.apis+'">NotADA Web</a> &middot; <a onClick="window.plugin.notada.showReleaseNotes();">Release Notes</a> &middot; <a onClick="window.plugin.notada.hideeverything()">Hide All Controls</a>

</div>

</div>

');

}

};

var setup = plugin.notada.setup;

// PLUGIN END //////////////////////////////////////////////////////////

setup.info = plugin_info; //add the script info data to the function as a property
if(!window.bootPlugins) window.bootPlugins = [];
window.bootPlugins.push(setup);
// if IITC has already booted, immediately run the 'setup' function
if(window.iitcLoaded && typeof setup === 'function') setup();
})({"script":{"version":"0.1.8","name":"notada","description":""}});
// ]]&gt;