Version 1.3.0
This commit is contained in:
1 parent
7ef3d1712a
commit
f87d29ba65
290 files changed
+50206
-17930
No files matched your search
+394
-1
@@ -1 +1,394 @@
|
||||
//--------------------------------------------
// Set up our simple tag open values
//--------------------------------------------
var B_open = 0;
var I_open = 0;
var U_open = 0;
var QUOTE_open = 0;
var CODE_open = 0;
var SQL_open = 0;
var HTML_open = 0;
var bbtags = new Array();
// Set the initial radio button status based on cookies
var allcookies = document.cookie;
var pos = allcookies.indexOf("bbmode=");
prep_mode();
function prep_mode()
{
if (pos != 1) {
var cstart = pos + 7;
var cend = allcookies.indexOf(";", cstart);
if (cend == -1) { cend = allcookies.length; }
cvalue = allcookies.substring(cstart, cend);
if (cvalue == 'ezmode') {
document.REPLIER.bbmode[0].checked = true;
} else {
document.REPLIER.bbmode[1].checked = true;
}
} else {
// default to normal mode.
document.REPLIER.bbmode[1].checked = true;
}
}
function setmode(mVal)
{
document.cookie = "bbmode="+mVal+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;";
}
function get_easy_mode_state()
{
// Returns true if we've chosen easy mode
if (document.REPLIER.bbmode[0].checked)
{
return true;
}
else
{
return false;
}
}
//--------------------------------------------
// Set the help bar status
//--------------------------------------------
function hstat(msg)
{
document.REPLIER.helpbox.value = eval( "help_" + msg );
}
// Set the number of tags open box
function cstat()
{
var c = stacksize(bbtags);
if ( (c < 1) || (c == null) )
{
c = 0;
}
if ( ! bbtags[0] )
{
c = 0;
}
document.REPLIER.tagcount.value = c;
}
//--------------------------------------------
// Get stack size
//--------------------------------------------
function stacksize(thearray)
{
for (i = 0 ; i < thearray.length; i++ )
{
if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') )
{
return i;
}
}
return thearray.length;
}
//--------------------------------------------
// Push stack
//--------------------------------------------
function pushstack(thearray, newval)
{
arraysize = stacksize(thearray);
thearray[arraysize] = newval;
}
//--------------------------------------------
// Pop stack
//--------------------------------------------
function popstack(thearray)
{
arraysize = stacksize(thearray);
theval = thearray[arraysize - 1];
delete thearray[arraysize - 1];
return theval;
}
//--------------------------------------------
// Close all tags
//--------------------------------------------
function closeall()
{
if (bbtags[0])
{
while (bbtags[0])
{
tagRemove = popstack(bbtags)
document.REPLIER.Post.value += "[/" + tagRemove + "]";
// Change the button status
eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '");
eval(tagRemove + "_open = 0");
}
}
// Ensure we got them all
document.REPLIER.tagcount.value = 0;
bbtags = new array();
document.REPLIER.Post.focus();
}
//--------------------------------------------
// EMOTICONS
//--------------------------------------------
function emoticon(theSmilie)
{
if (document.REPLIER.Post.caretPos && document.REPLIER.Post.createTextRange)
{
var caretPos = document.REPLIER.Post.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? theSmilie + ' ' : theSmilie;
}
else
{
document.REPLIER.Post.value += ' ' + theSmilie + ' ';
}
document.REPLIER.Post.focus();
}
//--------------------------------------------
// ADD CODE
//--------------------------------------------
function add_code(NewCode)
{
document.REPLIER.Post.value += NewCode;
document.REPLIER.Post.focus();
return;
}
//--------------------------------------------
// ALTER FONT
//--------------------------------------------
function alterfont(theval, thetag)
{
if (theval == 0)
{
return;
}
else
{
document.REPLIER.Post.value += "[" + thetag + "=" + theval + "] [/" + thetag + "]";
}
document.REPLIER.ffont.selectedIndex = 0;
document.REPLIER.fsize.selectedIndex = 0;
document.REPLIER.fcolor.selectedIndex = 0;
document.REPLIER.Post.focus();
}
//--------------------------------------------
// SIMPLE TAGS (such as B, I U, etc)
//--------------------------------------------
function simpletag(thetag)
{
var tagOpen = eval(thetag + "_open");
if ( get_easy_mode_state() )
{
inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]");
if ( (inserttext != null) && (inserttext != "") )
{
document.REPLIER.Post.value += "[" + thetag + "]" + inserttext + "[/" + thetag + "] ";
}
}
else
{
if (tagOpen == 0)
{
document.REPLIER.Post.value += "[" + thetag + "]";
eval(thetag + "_open = 1");
// Change the button status
eval("document.REPLIER." + thetag + ".value += '*'");
pushstack(bbtags, thetag);
cstat();
hstat('click_close');
}
else
{
// Find the last occurance of the opened tag
lastindex = 0;
for (i = 0 ;
Line truncated
|
||||
//--------------------------------------------
|
||||
// Set up our simple tag open values
|
||||
//--------------------------------------------
|
||||
//
|
||||
// Modified by Volker Puttrich to allow IE 4+
|
||||
// on windows to use cursor position for inserting
|
||||
// tags / smilies
|
||||
|
||||
var B_open = 0;
|
||||
var I_open = 0;
|
||||
var U_open = 0;
|
||||
var QUOTE_open = 0;
|
||||
var CODE_open = 0;
|
||||
var SQL_open = 0;
|
||||
var HTML_open = 0;
|
||||
|
||||
var bbtags = new Array();
|
||||
|
||||
// Determine browser type and stuff.
|
||||
// Borrowed from http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
|
||||
|
||||
var myAgent = navigator.userAgent.toLowerCase();
|
||||
var myVersion = parseInt(navigator.appVersion);
|
||||
|
||||
var is_ie = ((myAgent.indexOf("msie") != -1) && (myAgent.indexOf("opera") == -1));
|
||||
var is_nav = ((myAgent.indexOf('mozilla')!=-1) && (myAgent.indexOf('spoofer')==-1)
|
||||
&& (myAgent.indexOf('compatible') == -1) && (myAgent.indexOf('opera')==-1)
|
||||
&& (myAgent.indexOf('webtv') ==-1) && (myAgent.indexOf('hotjava')==-1));
|
||||
|
||||
var is_win = ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));
|
||||
var is_mac = (myAgent.indexOf("mac")!=-1);
|
||||
|
||||
// Set the initial radio button status based on cookies
|
||||
|
||||
var allcookies = document.cookie;
|
||||
var pos = allcookies.indexOf("bbmode=");
|
||||
|
||||
prep_mode();
|
||||
|
||||
function prep_mode()
|
||||
{
|
||||
if (pos != 1) {
|
||||
var cstart = pos + 7;
|
||||
var cend = allcookies.indexOf(";", cstart);
|
||||
if (cend == -1) { cend = allcookies.length; }
|
||||
cvalue = allcookies.substring(cstart, cend);
|
||||
|
||||
if (cvalue == 'ezmode') {
|
||||
document.REPLIER.bbmode[0].checked = true;
|
||||
} else {
|
||||
document.REPLIER.bbmode[1].checked = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// default to normal mode.
|
||||
document.REPLIER.bbmode[1].checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
function setmode(mVal)
|
||||
{
|
||||
document.cookie = "bbmode="+mVal+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;";
|
||||
}
|
||||
|
||||
function get_easy_mode_state()
|
||||
{
|
||||
// Returns true if we've chosen easy mode
|
||||
|
||||
if (document.REPLIER.bbmode[0].checked) {
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// Set the help bar status
|
||||
//--------------------------------------------
|
||||
|
||||
function hstat(msg)
|
||||
{
|
||||
document.REPLIER.helpbox.value = eval( "help_" + msg );
|
||||
}
|
||||
|
||||
// Set the number of tags open box
|
||||
|
||||
function cstat()
|
||||
{
|
||||
var c = stacksize(bbtags);
|
||||
|
||||
if ( (c < 1) || (c == null) ) {
|
||||
c = 0;
|
||||
}
|
||||
|
||||
if ( ! bbtags[0] ) {
|
||||
c = 0;
|
||||
}
|
||||
|
||||
document.REPLIER.tagcount.value = c;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// Get stack size
|
||||
//--------------------------------------------
|
||||
|
||||
function stacksize(thearray)
|
||||
{
|
||||
for (i = 0 ; i < thearray.length; i++ ) {
|
||||
if ( (thearray[i] == "") || (thearray[i] == null) || (thearray == 'undefined') ) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
return thearray.length;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// Push stack
|
||||
//--------------------------------------------
|
||||
|
||||
function pushstack(thearray, newval)
|
||||
{
|
||||
arraysize = stacksize(thearray);
|
||||
thearray[arraysize] = newval;
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// Pop stack
|
||||
//--------------------------------------------
|
||||
|
||||
function popstack(thearray)
|
||||
{
|
||||
arraysize = stacksize(thearray);
|
||||
theval = thearray[arraysize - 1];
|
||||
delete thearray[arraysize - 1];
|
||||
return theval;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
// Close all tags
|
||||
//--------------------------------------------
|
||||
|
||||
function closeall()
|
||||
{
|
||||
if (bbtags[0]) {
|
||||
while (bbtags[0]) {
|
||||
tagRemove = popstack(bbtags)
|
||||
document.REPLIER.Post.value += "[/" + tagRemove + "]";
|
||||
|
||||
// Change the button status
|
||||
// Ensure we're not looking for FONT, SIZE or COLOR as these
|
||||
// buttons don't exist, they are select lists instead.
|
||||
|
||||
if ( (tagRemove != 'FONT') && (tagRemove != 'SIZE') && (tagRemove != 'COLOR') )
|
||||
{
|
||||
eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '");
|
||||
eval(tagRemove + "_open = 0");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ensure we got them all
|
||||
document.REPLIER.tagcount.value = 0;
|
||||
bbtags = new Array();
|
||||
document.REPLIER.Post.focus();
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// EMOTICONS
|
||||
//--------------------------------------------
|
||||
|
||||
function emoticon(theSmilie)
|
||||
{
|
||||
doInsert(" " + theSmilie + " ", "", false);
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// ADD CODE
|
||||
//--------------------------------------------
|
||||
|
||||
function add_code(NewCode)
|
||||
{
|
||||
document.REPLIER.Post.value += NewCode;
|
||||
document.REPLIER.Post.focus();
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// ALTER FONT
|
||||
//--------------------------------------------
|
||||
|
||||
function alterfont(theval, thetag)
|
||||
{
|
||||
if (theval == 0)
|
||||
return;
|
||||
|
||||
if(doInsert("[" + thetag + "=" + theval + "]", "[/" + thetag + "]", true))
|
||||
pushstack(bbtags, thetag);
|
||||
|
||||
document.REPLIER.ffont.selectedIndex = 0;
|
||||
document.REPLIER.fsize.selectedIndex = 0;
|
||||
document.REPLIER.fcolor.selectedIndex = 0;
|
||||
|
||||
cstat();
|
||||
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------
|
||||
// SIMPLE TAGS (such as B, I U, etc)
|
||||
//--------------------------------------------
|
||||
|
||||
function simpletag(thetag)
|
||||
{
|
||||
var tagOpen = eval(thetag + "_open");
|
||||
|
||||
if ( get_easy_mode_state() )
|
||||
{
|
||||
inserttext = prompt(prompt_start + "\n[" + thetag + "]xxx[/" + thetag + "]");
|
||||
if ( (inserttext != null) && (inserttext != "") )
|
||||
{
|
||||
doInsert("[" + thetag + "]" + inserttext + "[/" + thetag + "] ", "", false);
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (tagOpen == 0)
|
||||
{
|
||||
if(doInsert("[" + thetag + "]", "[/" + thetag + "]", true))
|
||||
{
|
||||
eval(thetag + "_open = 1");
|
||||
// Change the button status
|
||||
eval("document.REPLIER." + thetag + ".value += '*'");
|
||||
|
||||
pushstack(bbtags, thetag);
|
||||
cstat();
|
||||
hstat('click_close');
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Find the last occurance of the opened tag
|
||||
lastindex = 0;
|
||||
|
||||
for (i = 0 ; i < bbtags.length; i++ )
|
||||
{
|
||||
if ( bbtags[i] == thetag )
|
||||
{
|
||||
lastindex = i;
|
||||
}
|
||||
}
|
||||
|
||||
// Close all tags opened up to that tag was opened
|
||||
while (bbtags[lastindex])
|
||||
{
|
||||
tagRemove = popstack(bbtags);
|
||||
doInsert("[/" + tagRemove + "]", "", false)
|
||||
|
||||
// Change the button status
|
||||
if ( (tagRemove != 'FONT') && (tagRemove != 'SIZE') && (tagRemove != 'COLOR') )
|
||||
{
|
||||
eval("document.REPLIER." + tagRemove + ".value = ' " + tagRemove + " '");
|
||||
eval(tagRemove + "_open = 0");
|
||||
}
|
||||
}
|
||||
|
||||
cstat();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function tag_list()
|
||||
{
|
||||
var listvalue = "init";
|
||||
var thelist = "";
|
||||
|
||||
while ( (listvalue != "") && (listvalue != null) )
|
||||
{
|
||||
listvalue = prompt(list_prompt, "");
|
||||
if ( (listvalue != "") && (listvalue != null) )
|
||||
{
|
||||
thelist = thelist+"[*]"+listvalue+"\n";
|
||||
}
|
||||
}
|
||||
|
||||
if ( thelist != "" )
|
||||
{
|
||||
doInsert( "[LIST]\n" + thelist + "[/LIST]\n", "", false);
|
||||
}
|
||||
}
|
||||
|
||||
function tag_url()
|
||||
{
|
||||
var FoundErrors = '';
|
||||
var enterURL = prompt(text_enter_url, "http://");
|
||||
var enterTITLE = prompt(text_enter_url_name, "My Webpage");
|
||||
|
||||
if (!enterURL) {
|
||||
FoundErrors += " " + error_no_url;
|
||||
}
|
||||
if (!enterTITLE) {
|
||||
FoundErrors += " " + error_no_title;
|
||||
}
|
||||
|
||||
if (FoundErrors) {
|
||||
alert("Error!"+FoundErrors);
|
||||
return;
|
||||
}
|
||||
|
||||
doInsert("[URL="+enterURL+"]"+enterTITLE+"[/URL]", "", false);
|
||||
}
|
||||
|
||||
function tag_image()
|
||||
{
|
||||
var FoundErrors = '';
|
||||
var enterURL = prompt(text_enter_image, "http://");
|
||||
|
||||
if (!enterURL) {
|
||||
FoundErrors += " " + error_no_url;
|
||||
}
|
||||
|
||||
if (FoundErrors) {
|
||||
alert("Error!"+FoundErrors);
|
||||
return;
|
||||
}
|
||||
|
||||
doInsert("[IMG]"+enterURL+"[/IMG]", "", false);
|
||||
}
|
||||
|
||||
function tag_email()
|
||||
{
|
||||
var emailAddress = prompt(text_enter_email, "");
|
||||
|
||||
if (!emailAddress) {
|
||||
alert(error_no_email);
|
||||
return;
|
||||
}
|
||||
|
||||
doInsert("[EMAIL]"+emailAddress+"[/EMAIL]", "", false);
|
||||
}
|
||||
|
||||
//--------------------------------------------
|
||||
// GENERAL INSERT FUNCTION
|
||||
//--------------------------------------------
|
||||
// ibTag: opening tag
|
||||
// ibClsTag: closing tag, used if we have selected text
|
||||
// isSingle: true if we do not close the tag right now
|
||||
// return value: true if the tag needs to be closed later
|
||||
|
||||
//
|
||||
|
||||
function doInsert(ibTag, ibClsTag, isSingle)
|
||||
{
|
||||
var isClose = false;
|
||||
var obj_ta = document.REPLIER.Post;
|
||||
|
||||
if ( (myVersion >= 4) && is_ie && is_win) // Ensure it works for IE4up / Win only
|
||||
{
|
||||
if(obj_ta.isTextEdit){ // this doesn't work for NS, but it works for IE 4+ and compatible browsers
|
||||
obj_ta.focus();
|
||||
var sel = document.selection;
|
||||
var rng = sel.createRange();
|
||||
rng.colapse;
|
||||
if((sel.type == "Text" || sel.type == "None") && rng != null){
|
||||
if(ibClsTag != "" && rng.text.length > 0)
|
||||
ibTag += rng.text + ibClsTag;
|
||||
else if(isSingle)
|
||||
isClose = true;
|
||||
|
||||
rng.text = ibTag;
|
||||
}
|
||||
}
|
||||
else{
|
||||
if(isSingle)
|
||||
isClose = true;
|
||||
|
||||
obj_ta.value += ibTag;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isSingle)
|
||||
isClose = true;
|
||||
|
||||
obj_ta.value += ibTag;
|
||||
}
|
||||
|
||||
obj_ta.focus();
|
||||
|
||||
// clear multiple blanks
|
||||
// obj_ta.value = obj_ta.value.replace(/ /, " ");
|
||||
|
||||
return isClose;
|
||||
}
|
||||
Reference in new issue
Block a user