// made by Thomas van den Heuvel aka FangorN - leafblighter[at]gmail[dot]com

var on = new Array();
var ton = new Array();
var off = new Array();
var toff = new Array();
var stack = new Array();

var path = "/afbeeldingen/ubb/";

on['b'] = new Image();
on['b'].src = path+"b_on.gif";

on['i'] = new Image();
on['i'].src = path+"i_on.gif";

on['u'] = new Image();
on['u'].src = path+"u_on.gif";

on['kleur'] = new Image();
on['kleur'].src = path+"kleur_on.gif";

on['quote'] = new Image();
on['quote'].src = path+"quote_on.gif";

on['url'] = new Image();
on['url'].src = path+"url_on.gif";

on['as'] = new Image();
on['as'].src = path+"as_on.gif";

on['php'] = new Image();
on['php'].src = path+"php_on.gif";



ton['b'] = "[b]";
ton['i'] = "[i]";
ton['u'] = "[u]";
ton['kleur'] = "[color=#000000]";
ton['quote'] = "[quote]";
ton['url'] = "[url]";
ton['as'] = "[as]";
ton['php'] = "[php]";


off['b'] = new Image();
off['b'].src = path+"b_off.gif";

off['i'] = new Image();
off['i'].src = path+"i_off.gif";

off['u'] = new Image();
off['u'].src = path+"u_off.gif";

off['kleur'] = new Image();
off['kleur'].src = path+"kleur_off.gif";

off['quote'] = new Image();
off['quote'].src = path+"quote_off.gif";

off['url'] = new Image();
off['url'].src = path+"url_off.gif";

off['as'] = new Image();
off['as'].src = path+"as_off.gif";

off['php'] = new Image();
off['php'].src = path+"php_off.gif";

toff['b'] = "[/b]";
toff['i'] = "[/i]";
toff['u'] = "[/u]";
toff['kleur'] = "[/color]";
toff['quote'] = "[/quote]";
toff['url'] = "[/url]";
toff['as'] = "[/as]";
toff['php'] = "[/php]";


// http://www.quirksmode.org/js/selected.html was helpful
function getSel(form, field, tagopen, tagclose) {
  var changed = false;

  if(window.getSelection) {
    // netscape/mozilla
    var start = document.forms[form].elements[field].selectionStart;
    var end   = document.forms[form].elements[field].selectionEnd;
    if(end - start > 0) {
      // er is tekst geselecteerd
      var oldtext = document.forms[form].elements[field].value;
      var newtext = oldtext.substring(0, start) + tagopen + oldtext.substring(start, end);
      newtext += tagclose + oldtext.substring(end, oldtext.length);

      document.forms[form].elements[field].value = newtext;
//focus houden........................................................................................................
		document.forms[form].elements[field].setSelectionRange( start+tagopen.length, end+tagopen.length);
// end focus..........................................................................................................
		changed = true;
    }
  } else if(document.selection != "") {
    // explorer

    var txt = document.selection.createRange().text;
    if(txt.length > 0) {
      document.selection.createRange().text = tagopen+txt+tagclose;
      changed = true;
    }
  }

  return changed;
}

function klik(item, form, field) {
  // was er tekst geselecteerd ?
  if(!getSel(form, field, ton[item], toff[item])) {
    // geen tekst geselecteerd - open een tag
    if(document.images[item].src == on[item].src) {
      // sluiten
      tagclose(stack, item, form, field, true);
    } else {
      // openen
      tagopen(stack, item, form, field);
    }
  }
}

//smileys
function Sverward(item, form, field) {
	document.forms[form].elements[field].value += ":verward:";
}
function Scrazy(item, form, field) {
	document.forms[form].elements[field].value += ":crazy:";
}
function Sevil(item, form, field) {
	document.forms[form].elements[field].value += ":evil:";
}
function Sermm(item, form, field) {
	document.forms[form].elements[field].value += ":ermm:";
}
function Sblij(item, form, field) {
	document.forms[form].elements[field].value += ":blij:";
}
function Shuh(item, form, field) {
	document.forms[form].elements[field].value += ":huh:";
}
function Sjokkebrok(item, form, field) {
	document.forms[form].elements[field].value += ":jokkebrok:";
}
function Sboos(item, form, field) {
	document.forms[form].elements[field].value += ":boos:";
}
function Stong(item, form, field) {
	document.forms[form].elements[field].value += ":tong:";
}
function Swink(item, form, field) {
	document.forms[form].elements[field].value += ":wink:";
}
function Ssad(item, form, field) {
	document.forms[form].elements[field].value += ":sad:";
}
function SBLIJ(item, form, field) {
	document.forms[form].elements[field].value += ":BLIJ:";
}
function Sbloem(item, form, field) {
	document.forms[form].elements[field].value += ":bloem:";
}
function SduimOp(item, form, field) {
	document.forms[form].elements[field].value += ":duimOp:";
}
function SduimNeer(item, form, field) {
	document.forms[form].elements[field].value += ":duimNeer:";
}

//tutzooi
function plaatshr(item, form, field) {
	document.forms[form].elements[field].value += "[hr]";
}

function plaatsswf(item, form, field) {
	document.forms[form].elements[field].value += "[swf width=? height=?]url=?[/swf]";
}

function plaatsanker(item, form, field) {
	document.forms[form].elements[field].value += "[anker=?]";
}


function tagopen(arr, tagname, form, field) {
  // objecten zijn call by reference
  arr[arr.length] = tagname;

  // openingstag in form zetten
  document.forms[form].elements[field].value += ton[tagname];

  // plaatje aanpassen
  document.images[tagname].src = on[tagname].src;
}

function tagclose(arr, tagname, form, field, space) {
  var removetag;

  // onthoud de code van de te sluiten tag
  removetag = arr[arr.length-1];

  // sluit de buitenste tag
  document.forms[form].elements[field].value += toff[removetag];

  // plaatje (van LAATSTE tag) veranderen
  document.images[removetag].src = off[removetag].src;

  // kort het array in
  arr.length = arr.length - 1;

  // was dit de goede tag ?
  if(removetag != tagname) {
    tagclose(arr, tagname, form, field, space);


  } else {
    // voeg een spatie na de 'laatste' sluitingstag toe, als space true is
    if(space) {
      document.forms[form].elements[field].value += " ";


    }
  }
}

function foc(form, field) {
  document.forms[form].elements[field].focus();
}

// smiley meuk
/*
function smile(text, form, field) {
  document.forms[form].elements[field].value += text+" ";
  foc(form, field);
}

function hideurl() {
	window.status = "";
}

//-->
*/

