/**
* Funkcia vlozi TAG do textarea
* @see lib/Form_RTB.php
* 
* @param    t     - poradie tagu v poli RTB_tags
* @param    rev   - nic
* @param    id    - ID elementu textarea
* @param    iname - nazov elementu textarea
* @param    formn - nazov formulara
*/
function RTB_Tag(t, rev, id, iname, formn)
{
  if(t > window.RTB_tags.length) return;
  var x = window.RTB_tags[t];
  var elem = document.getElementById(id);
  var textarea = document.forms[formn].elements[iname];

  textarea.focus();

  if( IsIE() && document.selection)
  {
    var theSelection = document.selection.createRange().text;

    if(theSelection)
    {
      document.selection.createRange().text = x[0] + x[1] + theSelection + x[2];
      return false;
    }
  }
  if( !('selectionStart' in elem) )
  {
    if( document.selection )
    {
      var range = document.selection.createRange();
      var range_all = document.body.createTextRange();
      range_all.moveToElementText(elem);

      // calculate selection start point by moving beginning of range_all to beginning of range
      var sel_start;
      for (sel_start = 0; range_all.compareEndPoints('StartToStart', range) < 0; sel_start++)
      {
        range_all.moveStart('character', 1);
      }

      elem.selectionStart = sel_start;
      elem.selectionEnd = sel_start;
    }
    else
    {
      alert('Chyba! Nefunguje to!');
      return false;
    }
  }

  var str = elem.value.substring(elem.selectionStart, elem.selectionEnd);
  var st = elem.selectionStart;
  var en = elem.selectionEnd;
  var str2 = x[0] + x[1] + str + x[2];
  var i = elem.selectionEnd - x[2].length;
  var beg = elem.value.substring(0, elem.selectionStart);
  var mid = str2;
  var end = elem.value.substring(elem.selectionEnd, elem.value.length);
  elem.value = beg + mid + end;
  setCaretPosition(id, beg.length + x[0].length);
  /* Toto neplati pre IE! */
  if(en != 0 && !IsIE())
  {
    elem.selectionStart = parseInt(st + x[0].length + x[1].length);
    elem.selectionEnd = parseInt(en + x[0].length + x[1].length);
  }
  textarea.focus();
  return false;
}
// ~ function RTB_Tag(t, rev, id, iname, formn)

/**
* Vypise Pomocny text do urceneho elementu
* @param    t   - ID v RTB_tags poli
* @param    id  - ID vystupneho elementu
*/
function RTB_Help(t, id)
{
  var el = document.getElementById(id);
  if(t == 0)
  {
    el.innerHTML = 'HELP';
    return false;
  }
  //var selectedText = document.selection.createRange().text;
  if(t > window.RTB_tags.length) alert('WARNING!');
  var x = window.RTB_tags[t];
  el.innerHTML = x[7];
  //document.selection.createRange().text = x[0] + selectedText + x[2];
  return false;
}

function click(th)
{
  alert('CLick!');
  alert(th);

}

function setcursor(id,st,end) {
  if(!end) end = st;
  el = document.getElementById(id);
  if(el.setSelectionRange) {
  el.focus();
  el.setSelectionRange(st,end);
  }
  else {
  if(el.createTextRange) {
  range=el.createTextRange();
  range.collapse(true);
  range.moveEnd('character',end);
  range.moveStart('character',st);
  range.select();
  }
  else
    alert('SetCursor(); Nieco zle!');
}
}

function setCaretPosition(elemId, caretPos) {
    var elem = document.getElementById(elemId);

    if(elem != null) {
        if(elem.createTextRange) {
            var range = elem.createTextRange();
            range.move('character', caretPos);
            range.select();
        }
        else {
            if(elem.selectionStart) {
                elem.focus();
                elem.setSelectionRange(caretPos, caretPos);
            }
            else
                elem.focus();
        }
    }
}

/**
* Vlozit text do elementu
* WARNING: Ak nema selectionStart, vklada to stale na koniec!
* @param    txt     Text
* @param    elem    objekt elementu
*/
function RTB_InsertText(txt, elem)
{
//   alert('Inserting text: ' + txt);
//   alert('Elem ' + elem);
//   alert('Elem selectionStart ' + elem.selectionStart);
//   alert('Elem value ' + elem.value);
  if(elem.selectionStart)
  {
    var beg = elem.value.substring(0, elem.selectionStart);
    var mid = txt;
    var end = elem.value.substring(elem.selectionStart, elem.value.length);
    elem.value = beg + mid + end;
  }
  // Nezname pripady (IE, ...)
  else
  {
    elem.value = elem.value + txt;
  }
  elem.focus();
  return false;
}

/**
* Vlozi RTB tag img do textu
* WARNING: Ak nema selectionStart, vklada to stale na koniec!
* [img id=XX]
* @param    ina     - nazov elementu textarea
* @param    fna     - nazov formulara
* @param    img     - nazov elementu, z ktoreho ma precitat vybrane ID obrazku [select]
**** @param    pref    - prefix pre elementy na formatovanie obrazka (pref_Width, pref_Height, pref_Float)
*/
function RTB_Img(ina, fna, img)
{
  // var textarea = document.forms[formn].elements[iname];
  var elem = document.forms[fna].elements[ina];
  // var elimg = document.getElementById(img);
  var elimg = document.forms[fna].elements[img];
  var txt = "[img id=" + elimg.value + "]";

  // alert("RTB Img, vkladam: " + txt);
  RTB_InsertText(txt, elem);
  
  return false;
}
// ~ function RTB_Img(ina, fna, img)


/**
* Vlozi RTB tag boxtitle do textu
* WARNING: Ak nema selectionStart, vklada to stale na koniec!
* [img id=XX]
* @param    ina     - nazov elementu textarea
* @param    fna     - nazov formulara
* @param    fil     - nazov elementu, z ktoreho ma precitat vybrane ID suboru [select]
* @param    img     - nazov elementu, z ktoreho ma precitat vybrane ID obrazku [select]
* @param    nam     - nazov elementu, z ktoreho ma precitat nazov
* @param    com     - nazov elementu, z ktoreho ma precitat popis, komentar
**** @param    pref    - prefix pre elementy na formatovanie obrazka (pref_Width, pref_Height, pref_Float)
*/
function RTB_BoxTitle(ina, fna, fil, img, meno, com)
{
  // var textarea = document.forms[formn].elements[iname];
  var elem = document.forms[fna].elements[ina];
  // var elimg = document.getElementById(img);
  var elsub = document.forms[fna].elements[fil];
  var elimg = document.forms[fna].elements[img];
  var elnam = document.forms[fna].elements[meno];
  var elcom = document.forms[fna].elements[com];
  var txt = "[boxtitle id=" + elsub.value;
  if(elimg.value)
    txt += " img=" + elimg.value;
  if(elnam.value)
    txt += " name='" + elnam.value + "'";
  if(elcom.value)
    txt += " comm='" + elcom.value + "'";

  txt += "]";

  // alert("RTB Img, vkladam: " + txt);
  RTB_InsertText(txt, elem);
  return false;
}
// ~ function RTB_Img(ina, fna, img)

/* FUNKCIE NA TLACITKA */
function MyButtonDown(el, ie)
{
  el.className = 'RTBbut_on' + ie;
}

function MyButtonUp(el, ie)
{
  el.className = 'RTBbut_act' + ie;
}

function MyButtonOver(el, ie)
{
  el.className = 'RTBbut_act' + ie;
}

function MyButtonOut(el, ie)
{
  el.className = 'RTBbut_off' + ie;
}
