// copyright 2005 by s /\T vogt dott net
// feel free to contact!

function bbcode_format(v,form,field)
{
if (document.selection) // f�r IE
  {
    var str = document.selection.createRange().text;
    document.forms[form].elements[field].focus();
    var sel = document.selection.createRange();   
	if(v == "ul" || v == "ol")
	{
	  var ol = (v == "ul")? "-" : ""; 
      str = str.replace(/\n/g, "\n  "+ol+" "); 
	  sel.text = "  "+ol+" "+str; 
	  return;
	}

    sel.text = "[" + v + "]" + str + "[/" + v + "]";
    return;
  }
  else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined') // f�r Mozilla
  {
    var txtarea = document.forms[form].elements[field];
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    var oldScrollTop = txtarea.scrollTop;
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd)
    var s3 = (txtarea.value).substring(selEnd, selLength);
    
	if(v == "ul" || v == "ol")
	{
	  var ol = (v == "ul")? "-" : ""; 
      s2 = s2.replace(/\n/g, "\n  "+ol+" "); 
	  txtarea.value = s1+"  "+ol+" "+s2+s3; 
	  return; 
	}

    txtarea.value = s1 + '[' + v + ']' + s2 + '[/' + v + ']' + s3;
    txtarea.selectionStart = s1.length;
    txtarea.selectionEnd = s1.length + 5 + s2.length + v.length * 2;
    txtarea.scrollTop = oldScrollTop;
    txtarea.focus();
    return;
  }
  else bbcode_insert('<' + v + '></' + v + '> ');
 }

function bbcode_link_format(form,field)
{
  var mark_word_first = "Bitte zuerst das Linkwort markieren!";
  var link_target     = "Link-Ziel:\nBeispiel: http://www.google.ch";
  var link_title      = "Beschreibender Titel des Links:";
  var link_self       = "Soll der Link im selben Fenster ge�ffnet werden?";
      link_self      += "\n\t\"OK\" = (Empfohlen!)";
      link_self      += "\n\t\"Abbrechen\" = Neues Fenster";
  var link_title_r    = "Bitte geben Sie einen Titel an!"; 

  if (document.selection) // f�r IE
  {
    var str = document.selection.createRange().text;
    document.forms[form].elements[field].focus();
    var sel = document.selection.createRange();
    if(sel.text=='') alert(mark_word_first);
    else
    {
      var bbcode_insert_link = prompt(link_target, "http://");
      var bbcode_insert_title = prompt(link_title, "");
	  if(bbcode_insert_title == "")
	  {
        bbcode_insert_title = prompt(link_title_r, "");
	  }
	  var self = "target=_blank"; 
	  if(bbcode_insert_title == "")
	  {
        bbcode_insert_title = bbcode_insert_link; 
	  }

      if(bbcode_insert_link)
      {
        sel.text = "[link=" + bbcode_insert_link + " title=" + bbcode_insert_title + " "+self+ "]" + str + "[/link]";
        return;
      }
    }
  }
  else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined') // f�r Mozilla
  {
    var txtarea = document.forms[form].elements[field];
    var selLength = txtarea.textLength;
    var selStart = txtarea.selectionStart;
    var selEnd = txtarea.selectionEnd;
    var oldScrollTop = txtarea.scrollTop;
    var s1 = (txtarea.value).substring(0,selStart);
    var s2 = (txtarea.value).substring(selStart, selEnd);
    var s3 = (txtarea.value).substring(selEnd, selLength);
    if(selEnd-selStart==0) alert(mark_word_first);
    else
    {
      var bbcode_insert_link  = prompt(link_target, "http://");
      var bbcode_insert_title = prompt(link_title);
	  if(bbcode_insert_title == "")
	  {
        bbcode_insert_title = prompt(link_title_r, "");
	  }

	  var self = "target=_blank";
	  if(bbcode_insert_title == "")
	  {
        bbcode_insert_title = bbcode_insert_link; 
	  }

      if(bbcode_insert_link)
      {
		s2 = '[link=' + bbcode_insert_link + ' title=' + bbcode_insert_title +' '+self + ']' + s2 + '[/link]';
        txtarea.value = s1 + s2 + s3;
        txtarea.selectionStart = s1.length;
        txtarea.selectionEnd = s1.length + s2.length;
        txtarea.scrollTop = oldScrollTop;
        txtarea.focus();
        return;
      }
    }
  }
  else bbcode_insert('[link=http://...]Link[/link]',form.field);
}

function bbcode_insert(form,field,what)
 {
  if (document.forms[form].elements[field].createTextRange)
  {
    document.forms[form].elements[field].focus();
    document.selection.createRange().duplicate().text = what;
  }
  else if ((typeof document.forms[form].elements[field].selectionStart) != 'undefined') // f�r Mozilla
  {
    var tarea = document.forms[form].elements[field];
    var selEnd = tarea.selectionEnd;
    var txtLen = tarea.value.length;
    var txtbefore = tarea.value.substring(0,selEnd);
    var txtafter =  tarea.value.substring(selEnd, txtLen);
    var oldScrollTop = tarea.scrollTop;
    tarea.value = txtbefore + what + txtafter;
    tarea.selectionStart = txtbefore.length + what.length;
    tarea.selectionEnd = txtbefore.length + what.length;
    tarea.scrollTop = oldScrollTop;
    tarea.focus();
  }
  else
  {
    document.forms[form].elements[field].value += what;
    document.forms[form].elements[field].focus();
  }
}
