var hidesmilietimer;
var fileName = "new.txt";
var changed = false;
if (screen.width == 800) var colls = 45;
else if (screen.width == 1024) var colls = 60;
var smilies = [">\\:\\)", "\\:\\)", "\\:\\?", "\\:\\(", "\\:D", "\\;\\)", "\\:p", "\\I\\:\\-\\(", "9\\:\\|6", "\\:r", "\\;\\(", "\\:O", "\\:\\+", "\\:z", "\\*D", "\\:X", "8\\)"];
var simages = ["devil.gif", "smile.gif", "confused.gif", "frown.gif", "biggrin.gif", "wink.gif", "puh2.gif", "frusty.gif", "worshippy.gif", "pukey.gif", "sadley.gif", "yawnee.gif", "clown.gif", "sleepey.gif", "shiny.gif", "shutup.gif", "cool.gif", "cool.gif"];

var quoteopen = "<blockquote style='margin-top:0; margin-bottom:0; margin-right:0;'><table border=0 cellspacing=0 cellpadding=0 width=0 height=0><tr><td><table border=1 cellpadding=0 cellspacing=0 style=`border-collapse:collapse; border-color='#294881'; background='#E0E9F1'`><tr><td><table border=0 cellpadding=4 cellspacing=0><tr><td><font size=1>quote</font><hr size=1 style=`margin-top:0;`></td></tr><tr><td><blockquote style='margin-left:25; margin-top:0; margin-bottom:0;'>";

var quoteclose = "</blockquote></td></tr><tr><td><hr size=1></td></tr></table></td></tr></table></td><td height=100%><table border=0 cellpadding=0 cellspacing=0 height=100% width=100%><tr height=6><td></td></tr><tr height=100%><td class='shadowcolored shadowright'>&nbsp;</td></tr></table></td></tr><tr><td colspan=2><table border=0 cellpadding=0 cellspacing=0 height=7 width=100%><tr><td width=6></td><td class='shadowcolored shadowbottom'><sup style='font-size:1; font-family:'small fonts'>&nbsp;</sup></td></tr></table></td></tr></table></blockquote>";

function placeEnter()
{
  if (window.event.keyCode == 13 && window.event.ctrlKey) { var range = document.selection.createRange(); range.text = "<br />\n"; }
}

function refreshtext(tarea, key)
{
  var tmp = '';
  var unallowedkeys = ", 18, 17, 33, 34, 35, 36, 37, 38, 39, 40, 45";
  if (unallowedkeys.indexOf(", " + key) > 0 ) { return false; }
  var text = tarea.innerText;
    text = text.replace(/\x0D\x0A/gi, "__enter__");
  if (document.getElementById("UBB").checked)
  {
    for (x=0;x<smilies.length;x++)
    {
      text = text.replace(new RegExp(smilies[x], "gi"), "<img src='smilies/" + simages[x] + "'>");
    }
    text = text.replace(/\[b\](.*?)\[\/b\]/gi, "<strong>$1</strong>");
    text = text.replace(/\[i\](.*?)\[\/i\]/gi, "<em>$1</em>");
    text = text.replace(/\[s\](.*?)\[\/s\]/gi, "<s>$1</s>");
    text = text.replace(/\[u\](.*?)\[\/u\]/gi, "<u>$1</u>");
    text = text.replace(/\[sup\](.*?)\[\/sup\]/gi, "<sup>$1</sup>");
    text = text.replace(/\[sub\](.*?)\[\/sub\]/gi, "<sub>$1</sub>");
    text = text.replace(/\[quote\](.*?)\[\/quote\]/gi, quoteopen + "$1" + quoteclose);
    text = text.replace(/\[img\](.*?)\[\/img\]/gi, "<img style=\"border:0px;\" src=\"$1\" />");
    text = text.replace(/__enter__/gi, '<br />');
    tmp = '<link rel="stylesheet" type="text/css" href="style.css">';
  }
  text = text.replace(/<script.*?\/script>/gi, "");
  text = text.replace(/__enter__/gi, "\n");
  text = text.replace(/[\s\n\"\']on[a-z]*=\'[^\']*\'/gi, "");
  text = text.replace(/[\s\n\"\']on[a-z]*=\"[^\"]*\"/gi, "");
  document.frames("textframe").document.open('text/html', 'replace');
  if (text.toLowerCase(text).match(/<body.*bgcolor=.{6,9}>/gi) == null) tmp += '<body style="background-color:#CAD5DD;">';
  document.frames("textframe").document.write(tmp + text);
  document.frames("textframe").document.close();
  text = text.replace(/</gi, "&lt;");
  text = text.replace(/>/gi, "&gt;");
  document.frames("codeframe").document.open('text/html', 'replace');
  document.frames("codeframe").document.write('<body style="background-color:#CAD5DD;">' + text);
  document.frames("codeframe").document.close();
  changed = true;
}

function showsmilies()
{
  document.getElementById("smilylist").style.posTop = 325;
  document.getElementById("smilylist").style.posLeft = document.body.offsetWidth - 240;
  document.getElementById("smilylist").style.visibility = 'visible';
}

function hidesmilies()
{
  document.getElementById("smilyTD").style.background=""; 
  document.getElementById("smilylist").style.visibility = 'hidden';
  clearInterval(hidesmilietimer);
}

function clicktag(text, tag)
{
  if (select = document.selection.createRange().text == '')
  {
    tmp = prompt(text,'');
    if ( tmp != null ) { document.getElementById("textveld").innerHTML += '[' + tag + ']' + tmp + '[/' + tag + ']'; }
    refreshtext(document.getElementById("textveld"), -1);
  } else 
  {
    switch (tag)
    {
      case 'b' : { style = 'bold'; break; }
      case 'i' : { style = 'italic'; break; }
      case 'u' : { style = 'underline'; break; }
      case 's' : { style = 'line'; break; }
      case 'quote' : { style = 'quote'; break; }
      case 'img' : { style = 'img'; break; }
            case 'anchor' : { style = 'anchor'; break; }
      case 'sup' : { style = 'sup'; break; }
      case 'sub' : { style = 'sub'; break; }
    }
    setstyle(style, true);
  }
}
function overtag(tr)
{
  hidesmilies();
  tr.style.cursor="hand"; 
  tr.style.background="#D3DFED";
}

function outsmily(index)
{
  tr = smilytable.cells["smily" + index];
  tr.style.cursor="default"; 
  tr.style.background="";
  tr = smilytable.cells["smilypic" + index];
  tr.style.cursor="default"; 
  tr.style.background="";
}

function oversmily(index)
{
  tr = smilytable.cells["smily" + index];
  tr.style.cursor="hand"; 
  tr.style.background="#E1EBF4";
  tr = smilytable.cells["smilypic" + index];
  tr.style.cursor="hand"; 
  tr.style.background="#E1EBF4";
}

function setstyle(style, UBB)
{
  document.getElementById("textveld").focus();
  var tag = '';
  var closetag = '';
  var range = document.selection.createRange();
  if (!UBB)
  {
    switch (style)
    {
      case 'bold' : { tag += '<b>'; closetag += '</b>'; break; }
      case 'italic' : { tag += '<i>'; closetag += '</i>'; break; }
      case 'underline' : { tag += '<u>'; closetag += '</u>'; break; }
      case 'sup' : { tag += '<sup>'; closetag += '</sup>'; break; }
      case 'sub' : { tag = '<sub>'; closetag = '</sub>'; break; }
      case 'img' : { tag = '<img src="'; closetag = '">'; break; }
            case 'anchor' : { tag = '<a href="'; closetag = '"></a>'; break; }
      case 'line' : { tag = '<s>'; closetag = '</s>'; break; }
    }
  } else
  {
    switch (style)
    {
      case 'bold' : { tag += '[b]'; closetag += '[/b]'; break; }
      case 'italic' : { tag += '[i]'; closetag += '[/i]'; break; }
      case 'underline' : { tag += '[u]'; closetag += '[/u]'; break; }
      case 'sup' : { tag += '[sup]'; closetag += '[/sup]'; break; }
      case 'sub' : { tag = '[sub]'; closetag = '[/sub]'; break; }
      case 'img' : { tag = '[img]'; closetag = '[/img]'; break; }
      case 'quote' : { tag += '[quote]'; closetag += '[/quote]'; break; }
      case 'line' : { tag = '[s]'; closetag = '[/s]'; break; }
    }
  }
  if (range.text.substring(0, tag.length) != tag) { range.text = tag + range.text + closetag; }
  else 
  { 
    texttoselect = range.text = range.text.replace(new RegExp('^' + tag.replace(/\[(.*)\]/gi, '\\[$1\\]') + '(.*)' + closetag.replace(/\[\/(.*)\]/gi, '\\[/$1\\]') + '$', 'i'), '$1'); 
  }
  refreshtext(document.getElementById("textveld"), -1);
  range.execCommand('BackColor', false, 'navy');
}

function addsmily(index)
{
  smilie = smilytable.cells["smily" + index].innerHTML;
  smilie = smilie.replace(/&gt;/gi, ">");
  document.getElementById("textveld").innerText += smilie + ' ';
  refreshtext(document.getElementById("textveld"), -1);
  document.getElementById("textveld").focus();
}

function clearit(force, cancel)
{
  if ((!force) && (changed) && (document.getElementById("textveld").innerHTML != ''))
  {
    value = window.showModalDialog("new.php?cancel=" + cancel, "new", "dialogWidth:232px; dialogHeight:100px; toolbar:no; status:no; location:no; scroll:no; resize:no;");
    if (value == 3) return false;
    if (value == 1) saveDocument();
  }
  document.getElementById("textveld").innerHTML = "";
  refreshtext(document.getElementById("textveld"), -1);
  changed = false;
  return true;
}

function saveDocument() 
{
  wah = window.open("", "", "top=0, left=0, height=1, width=1, toolbar=no, status=no, location=no, scrolling=no");
  wah.document.open("text/html","replace");
  wah.document.write(document.getElementById("textveld").innerText.replace(/\n/gi, "<br>"));
  wah.document.close();
  result = wah.document.execCommand("SaveAs", true, fileName);
  wah.close();
  changed = false;
}

function dockeypress(ctrl, key)
{
  if ((ctrl == true) && (key == 83)) saveDocument();
  if ((ctrl == true) && (key == 78)) clearit(false, true);
  key = 0;
}

function hideHTMLCode()
{
  document.getElementById("htmlCode").style.display = "none";
    document.getElementById("htmlCodeKop").style.display = "none";
  document.getElementById("ubbtagtable").style.visibility = "hidden";
}

function showHTMLCode()
{
  document.getElementById("htmlCode").style.display = "block";
    document.getElementById("htmlCodeKop").style.display = "block";
  document.getElementById("ubbtagtable").style.visibility = "visible"; 
}

function mainCleanUp()
{
  var value = window.showModalDialog("cleanup.php", "cleanup", "dialogWidth:200px; dialogHeight:110px; toolbar:no; status:no; location:no; scroll:no; resize:no;");
  if (!value) return false;
  if (value.indexOf("indent") >= 0) var doIndent = true; else var doIndent = false;
  if (value.indexOf("tags") >= 0) var doTags = true; else var doTags = false;
  _cleanUp(document.getElementById("textveld"), doIndent, doTags);
  return true;
}
