I like things being open, so others can view there is nothing harmful, also helps for improvements and any mistakes. So here is the Source code:
Code: Select all
var timeid;
var countdown = 0;
var diceUrl = "";
var whichPage = 1;
var dPic = new Array();
dPic[0] = chrome.extension.getURL("images/d0.png");
dPic[1] = chrome.extension.getURL("images/d1.png");
dPic[2] = chrome.extension.getURL("images/d2.png");
dPic[3] = chrome.extension.getURL("images/d3.png");
dPic[4] = chrome.extension.getURL("images/d4.png");
dPic[5] = chrome.extension.getURL("images/d5.png");
dPic[6] = chrome.extension.getURL("images/d6.png");
///////////////////////////BBCode Parser
function bbcode_parser(str)
{
var url = document.URL;
url = url.replace('/i=(.*?)&/gi', "$1");
var search = new Array
(
/[b](.*?)[/b]/gi,
/[i](.*?)[/i]/gi,
/[u](.*?)[/u]/gi,
/[s](.*?)[/s]/gi,
/[img](.*?)[/img]/gi,
/[url="?(.*?)"?](.*?)[/url]/gi,
/[quote](.*?)[/quote]/gi,
/[list=(.*?)](.*?)[/list]/gi,
/[list]([sS]*?)[/list]/gi,
/[*]s?(.*?)
/gi,
/*(.*?)*/gi,
/[dice]/gi,
/[time=(.*?)](.*?)[/time]/gi,
/[video](.*?)[/video]/gi,
/[audio](.*?)[/audio]/gi,
/[input=(.*?)](.*?)[/input]/gi,
/[get](.*?)[/get]/gi,
/[points=(.*?)](.*?)[/points]/gi,
/[alert=(.*?)](.*?)[/alert]/gi
);
var replace = new Array
(
"<b>$1</b>",
"<i>$1</i>",
"<u>$1</u>",
"<s>$1</s>",
"<img src="$1" alt="">",
"<a href="$1">$2</a>",
"<blockquote>$1</blockquote>",
"<ol>$2</ol>",
"<ul>$1</ul>",
"<li>$1</li>",
"<b><i>$1</i></b>",
"<img id="dice" src="" + dPic[0] + """ alt="dice"/><input type="button" id="roll" value="Roll Dice"/>",
"<b id="timeWT">$1||$2</time>",
"<video width="700" height="540" controls autoplay><source src="$1" type="video/mp4"></video>",
"<audio autoplay><source src="$1" type="audio/mpeg"></audio>",
"<input name="$2" id="savethis" value="$1"/>",
"<span id="getvar">$1</span>",
"<span id="points">$1||$2</span>",
"<span id="alert">$1||$2</span>"
);
for (i = 0; i < search.length; i++)
{
str = str.replace(search[i], replace[i]);
}
return str;
}
///////////////////////////Start count down timer
function startCountDown()
{
document.getElementById("timeWT").innerText = countdown+" Seconds Remaining";
timeid = setInterval(function(){countDown()},1000);
}
///////////////////////////count down
function countDown()
{
countdown--;
document.getElementById("timeWT").innerText = countdown + " Seconds Remaining";
if(countdown==0)
{
clearInterval(timeid);
var du = document.URL;
var resu = du.split("#");
if(resu[1]=='t')
{
du = du.replace(/id=(.*?)&p=(.*?)#t/gi, "id=$1&p=" + whichPage + "#t");
}
else
{
du = du.replace(/id=(.*?)&p=(.*?)&/gi, "id=$1&p=" + whichPage + "&");
}
window.location = du;
}
}
if(document.getElementById('tease_content')) //prevent any js errors
{
var tc = document.getElementById('tease_content');
tc.innerHTML = bbcode_parser(tc.innerHTML);
}
if(document.getElementById('postform')) //prevent any js errors
{
var postform = document.getElementById('postform');
function bbcode(tag)
{
var el = document.getElementsByTagName("textarea")[0];
var selectedText = el.value.substring(el.selectionStart, el.selectionEnd);
var newText = '['+tag+']' + selectedText + '[/'+tag+']';
el.value = el.value.substring(0,el.selectionStart) + newText + el.value.substring(el.selectionEnd, el.value.length);
}
var buttons = '<br/><br/><input id="bold" type="button" value="Bold" /> ';
buttons += '<input id="italic" type="button" value="Italic" /> ';
buttons += '<input id="underlined" type="button" value="Underlined" /> ';
buttons += '<input id="strike" type="button" value="Strike" /> ';
buttons += '<input id="img" type="button" value="Image" /> ';
buttons += '<input id="url" type="button" value="Url" /> ';
buttons += '<input id="quote" type="button" value="Quote" /> ';
buttons += '<input id="dice2roll" type="button" value="Dice" /> <br/><br/>';
buttons += '<input id="time" type="button" value="Timer" /> ';
buttons += '<input id="video" type="button" value="Video" /> ';
buttons += '<input id="audio" type="button" value="Audio" /> ';
buttons += '<input id="alert" type="button" value="Alert" /> ';
buttons += '<input id="input" type="button" value="Input" /> ';
buttons += '<input id="points" type="button" value="Points" /> ';
buttons += '<input id="get" type="button" value="Get Variable" /> ';
postform.insertAdjacentHTML('beforeend',buttons);
///////////////////////////event listeners //////////////////////
/////////////////////insert bold
var bold = document.getElementById("bold");
bold.addEventListener("click", function()
{
bbcode('b');
}, false);
/////////////////////insert italic
var italic = document.getElementById("italic");
italic.addEventListener("click", function()
{
bbcode('i');
}, false);
/////////////////////insert underlined
var underlined = document.getElementById("underlined");
underlined.addEventListener("click", function()
{
bbcode('u');
}, false);
/////////////////////insert strike
var strike = document.getElementById("strike");
strike.addEventListener("click", function()
{
bbcode('s');
}, false);
/////////////////////insert image
var img = document.getElementById("img");
img.addEventListener("click", function()
{
var url = prompt('enter a url', 'http://');
if (url!=null && url!="" && url!="http://")
{
var el = document.getElementsByTagName("textarea")[0];
el.value = el.value + '[img]'+url+'[/img]';
}
}, false);
/////////////////////insert url
var url = document.getElementById("url");
url.addEventListener("click", function()
{
var url = prompt('enter a url', 'http://');
if (url!=null && url!="" && url!="http://")
{
var el = document.getElementsByTagName("textarea")[0];
el.value = el.value + '[url=' + url + ']' + url + '[/url]';
}
}, false);
/////////////////////insert quote
var quote = document.getElementById("quote");
quote.addEventListener("click", function()
{
bbcode('quote');
}, false);
/*
var page = document.getElementById("page");
page.addEventListener("click", function() {
var url = prompt('enter a page number', '');
if (url!=null && url!="")
{
var el = document.getElementsByTagName("textarea")[0];
el.value = el.value + '[page=' + url + ']';
}
}, false);*/
/////////////////////insert dice
var roll = document.getElementById("dice2roll");
roll.addEventListener("click", function()
{
document.getElementsByTagName("textarea")[0].value += '[dice]';
}, false);
/////////////////////insert time
var time = document.getElementById("time");
time.addEventListener("click", function()
{
var tim = prompt('enter a time in seconds', '');
if (tim!=null && tim!="")
{
var page = prompt('enter a page number', '');
if (page!=null && page!="")
{
document.getElementsByTagName("textarea")[0].value += '[time=' + tim + ']' + page + '[/time]';
}
}
}, false);
/////////////////////insert video
var video = document.getElementById("video");
video.addEventListener("click", function()
{
var url = prompt('enter a video url (this must be a direct video url)', 'http://');
if (url!=null && url!="" && url!="http://")
{
var el = document.getElementsByTagName("textarea")[0];
el.value = el.value + '[video]' + url + '[/video]';
}
}, false);
/////////////////////insert audio
var audio = document.getElementById("audio");
audio.addEventListener("click", function()
{
var url = prompt('enter a audio url (this must be a direct audio url)', 'http://');
if (url!=null && url!="" && url!="http://")
{
var el = document.getElementsByTagName("textarea")[0];
el.value = el.value + '[audio]' + url + '[/audio]';
}
}, false);
/////////////////////insert input
var input = document.getElementById("input");
input.addEventListener("click", function()
{
var tim = prompt('enter text you wish to show in the input box (can be left blank)', '');
if (tim!=null && tim!="")
{
var page = prompt('enter your varible name', '');
if (page!=null && page!="")
{
document.getElementsByTagName("textarea")[0].value += '[input=' + tim + ']' + page + '[/input]';
}
}
}, false);
/////////////////////insert Alert
var nalert = document.getElementById("alert");
nalert.addEventListener("click", function()
{
var tim = prompt('enter a time in seconds for the alert to show', '');
if (tim!=null && tim!="")
{
var page = prompt('enter text to show on the alert', '');
if (page!=null && page!="")
{
document.getElementsByTagName("textarea")[0].value += '[alert=' + tim + ']' + page + '[/alert]';
}
}
}, false);
/////////////////////insert get variable
var get = document.getElementById("get");
get.addEventListener("click", function()
{
var url = prompt('enter the variable name you wish to show', '');
if (url!=null && url!="" && url!="http://")
{
var el = document.getElementsByTagName("textarea")[0];
el.value = el.value + '[get]' + url + '[/get]';
}
}, false);
/////////////////////insert Points
var points = document.getElementById("points");
points.addEventListener("click", function()
{
var tim = prompt('enter a variable name to save the points to', '');
if (tim!=null && tim!="")
{
var page = prompt('Enter your chosen Math symbol eg: + - / * if you setting the variable for the first time use = ', '');
if (page!=null && page!="")
{
var poi = prompt('Enter the amount of points', '');
if (page!=null && page!="")
{
document.getElementsByTagName("textarea")[0].value += '[points=' + tim + ']' + page +'||'+poi+ '[/alert]';
}
}
}
}, false);
}
/////////////////////Timer
if(document.getElementById("timeWT"))
{
var getTime = document.getElementById("timeWT").innerText;
var res = getTime.split("||");
countdown = res[0];
whichPage = res[1];
startCountDown();
}
///////////////////// Dice
if(document.getElementById("roll"))
{
var roll = document.getElementById("roll");
roll.addEventListener("click", function() {
document.getElementById('dice').src = dPic[Math.floor(Math.random()*6+1)];
document.getElementById('roll').disabled = true;
}, false);
}
/////////////////////Input saving
if(document.getElementById("savethis"))
{
var savethis = document.getElementById("savethis");
var isthere = localStorage.getItem(savethis.name);
if(isthere!=null&&isthere!="")
{
savethis.value = isthere;
}
savethis.addEventListener("keyup", function()
{
localStorage.setItem(savethis.name, savethis.value);
}, false);
}
/////////////////////Get Variable
if(document.getElementById("getvar"))
{
var getvar = document.getElementById("getvar");
//alert(getvar);
var thevar = localStorage.getItem(getvar.innerText);
getvar.innerText = thevar;
}
/////////////////////Points
if(document.getElementById("points"))
{
var points = document.getElementById("points");
var pres = points.innerText.split("||");
var sumthelot;
if(pres[1]=="=")
{
sumtotal = pres[2];
}
else
{
var last = localStorage.getItem(pres[0]);
if(pres[1]=="+")
{
sumtotal = last + pres[2];
}
if(pres[1]=="-")
{
sumtotal = last - pres[2];
}
if(pres[1]=="*")
{
sumtotal = last * pres[2];
}
if(pres[1]=="/")
{
sumtotal = last / pres[2];
}
}
localStorage.setItem(pres[0], sumtotal);
points.innerText = "";
}
/////////////////////ALERT
if(document.getElementById("alert"))
{
var nalert = document.getElementById("alert");
var ares = nalert.innerText.split("||");
nalert.innerText = '';
var t = setTimeout(function(){ alert(ares[1]+" "); }, ares[0]*1000);
}