﻿ //<![CDATA[ 

function InsertSmilie(tag, Textbox){
  var $tb = document.getElementById(Textbox);
  $tb.focus();
  if (document.selection){
    var str=document.selection.createRange().text;
    var sel=document.selection.createRange();
    sel.text=":" + tag;
  }else if (typeof $tb.selectionStart != 'undefined'){
    var $before, $after, $selection;
    $before= $tb.value.substring(0, $tb.selectionStart)
    $selection = "";
    $after = $tb.value.substring($tb.selectionEnd, $tb.value.length)
    
    $tb.value= String.concat($before, ":" + tag, $selection, "", $after)
  }
   $tb.focus();
}

function getSelection(ta)
  { var bits = [ta.value,'','','']; 
    if(document.selection)
      { var vs = '#$%^%$#';
        var tr=document.selection.createRange()
        if(tr.parentElement()!=ta) return null;
        bits[2] = tr.text;
        tr.text = vs;
        fb = ta.value.split(vs);
        tr.moveStart('character',-vs.length);
        tr.text = bits[2];
        bits[1] = fb[0];
        bits[3] = fb[1];
      }
    else
      { if(ta.selectionStart == ta.selectionEnd) return null;
        bits=(new RegExp('([\x00-\xff]{'+ta.selectionStart+'})([\x00-\xff]{'+(ta.selectionEnd - ta.selectionStart)+'})([\x00-\xff]*)')).exec(ta.value);
      }
     return bits;
  }

function matchPTags(str)
  { str = ' ' + str + ' ';
    ot = str.split(/\[[B|U|I|Q].*?\]/i);
    ct = str.split(/\[\/[B|U|I|Q].*?\]/i);
    return ot.length==ct.length;
  }

function addPTag(pTag, Textbox)
  { var ta = document.getElementById(Textbox);
    bits = getSelection(ta);
    if(bits)
      { if(!matchPTags(bits[2]))
          { alert('\t\tUgyldig markering\nMarkeringen indeholder ikke-matchene start- eller lukketags.');
            return;
          }
        ta.value = bits[1] + '[' + pTag + ']' + bits[2] + '[/' + pTag + ']' + bits[3];
        ta.focus();
      }
    else
    {
       ta.focus();
       ta.value = ta.value + '[' + pTag + '][/' + pTag + ']';
    }
  }
    
    
    function validateXML(Textbox)
    {
    var text = document.getElementById(Textbox).value;
    
    text = text.replace(/</g, "&lt;");
    text = text.replace(/>/g, "&gt;");
    
    text = text.replace(/\[b\]/g, "<b>");
    text = text.replace(/\[\/b\]/g, "</b>");
    
    text = text.replace(/\[i\]/g, "<i>");
    text = text.replace(/\[\/i\]/g, "</i>");
    
    text = text.replace(/\[u\]/g, "<u>");
    text = text.replace(/\[\/u\]/g, "</u>");
    
    text = text.replace(/\[q\]/g, "<div class='q'>");
    text = text.replace(/\[\/q\]/g, "</div>");
    
    text = text.replace(/\[quote\]/g, "<div class='q'>");
    text = text.replace(/\[\/quote\]/g, "</div>");
    
    text = "<p>" + text + "</p>";
    // code for IE
    if (window.ActiveXObject)
      {
      var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async="false";
      xmlDoc.loadXML(text);

      if(xmlDoc.parseError.errorCode!=0)
        {
        txt="Dine formateringstags i din kommentar er fejlbehæftede\n";
        txt=txt+"Fejlkode: " + xmlDoc.parseError.errorCode + "\n";
        txt=txt+"Årsag: " + xmlDoc.parseError.reason;
        txt=txt+"Fejllinje: " + xmlDoc.parseError.line;
        alert(txt);
        
        return false;
        }
      else
        {
        // Ingen fejl
        }
      }
    // code for Mozilla, Firefox, Opera, etc.
    else if (document.implementation.createDocument)
      {
    var parser=new DOMParser();
    var xmlDoc=parser.parseFromString(text,"text/xml");

      if (xmlDoc.documentElement.nodeName=="parsererror")
        {
        txt="Dine formateringstags i din kommentar er fejlbehæftede\nFejlbeskrivelse:\n";
        txt=txt+xmlDoc.documentElement.childNodes[0].nodeValue;
        alert(txt);
        return false;
        }
      else
        {
        // Ingen fejl
        }
      }
    else
      {
      alert('Din browser kan ikke validere din html-kode - få dig dog en ordentlig browser!\nHent f.eks. Opera på www.opera.com\nDu kan ikke skrive på bittert.net med din browser');
      return false;
      
      }
    }
    
function Quote(Til, Fra)
{
    var TB_Fra = document.getElementById(Fra);
    var TB_Til = document.getElementById(Til);
    
    TB_Til.value += TB_Fra.value;
    
    TB_Til.focus();
    return false;
}
  
  function KodeDivs(){
        var elms = document.getElementsByTagName("div");
        var maxH;
        if (navigator.appName == "Microsoft Internet Explorer"){
            for(i=0;elms.length>i;i++){
                if (elms[i].className == "Kode"){

                    maxH = elms[i].offsetHeight;
                    maxH = maxH + 17;
                    elms[i].style.height=maxH + 'px';
                }
            }
        }
    }
    window.onload = KodeDivs;
    //]]>
