var imgTextarea=null;
var ctrlDown = false;

function insertTags (sTag, eTag)
{
  var input = document.forms['editpageform'].elements['contenttext'];
  input.focus();
  // IE support
  if(typeof document.selection != 'undefined')
  {
    // Invoegen van de tags
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = sTag + insText + eTag;
    // Cursor verplaatsen
    range = document.selection.createRange();
    if (insText.length == 0)
    {
      range.move('character', -eTag.length);
    }
    else
    {
      range.moveStart('character', sTag.length + insText.length + eTag.length);
    }
    range.select();
  }
  // MOZILLA/NETSCAPE support
  else
  if(typeof input.selectionStart != 'undefined')
  {
    // Invoegen van de tags
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + sTag + insText + eTag + input.value.substr(end);
    // Cursor verplaatsen
    var pos;
    if (insText.length == 0)
    {
      pos = start + sTag.length;
    }
    else
    {
      pos = start + sTag.length + insText.length + eTag.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  // Overige browsers
  else
  {
    // Wat is de invoegpositie?
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Invoegen op positie (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length)
    {
      pos = input.value.length;
    }
    // Invoegen van de tags
    var insText = prompt("Geef de tekst in:");
    input.value = input.value.substr(0, pos) + sTag + insText + eTag + input.value.substr(pos);
  }
}

function replaceText ( tekst )
{
  var input = document.forms['editpageform'].elements['contenttext'];
  var range;
  var positie = -1;
  var copyText;
  var tagEnd = tekst.indexOf ( ">" ) + 1;
  input.focus();
  // IE support
  if(typeof document.selection != 'undefined')
  {
    if ( imgTextarea )
    {
      copyText = imgTextarea.replace (/[\n]/g, '');  // Haal de newlines eruit, want die tellen niet voor de move!
      var orgpositie = imgTextarea.indexOf ( "<!--img-->" );
      positie = copyText.indexOf ( "<!--img-->" ) + tagEnd;
      input.value = imgTextarea.replace ( "<!--img-->", tekst );
      imgTextarea = null;
      input.focus();
      range = input.createTextRange();
      range.move ( 'character', -999999999 );  // Zeker naar de eerste positie
      range.move ( 'character', positie );  // En dan weer door naar de oorspronkelijke positie
      range.select()
    }
  }
  // MOZILLA/NETSCAPE support
  else
  if(typeof input.selectionStart != 'undefined')
  {
    // Invoegen van de tags
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + tekst + input.value.substr(end);
    // Cursor verplaatsen
    var pos;
    pos = start + tekst.length;
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
}

function setTeaserImg ( verwijzing )
{
  document.forms['editpageform'].elements['eventteaserimg'].value = verwijzing;
}

function getSelectedText ()
{
  var input = document.forms['editpageform'].elements['contenttext'];
  input.focus();
  // IE support
  if(typeof document.selection != 'undefined')
  {
    // Invoegen van de tags
    var range = document.selection.createRange();
    var insText = range.text;
  }
  // MOZILLA/NETSCAPE support
  else
  if(typeof input.selectionStart != 'undefined')
  {
    // Invoegen van de tags
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
  }
  return insText;
}

function removeHTMLTags()
{
  var input = document.forms['editpageform'].elements['contenttext'];
  input.focus();
  // IE support
  if(typeof document.selection != 'undefined')
  {
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = insText.replace(/<\/?[^>]+(>|$)/g, "");
    range.select();
  }
  // MOZILLA/NETSCAPE support
  else
  if(typeof input.selectionStart != 'undefined')
  {
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
    input.value = input.value.substr(0, start) + insText.replace(/<\/?[^>]+(>|$)/g, "") + input.value.substr(end);
  }
}

function textTo ( opmaak )
{
  switch( opmaak )
  {
  case "bold":
    insertTags ( "<b>", "</b>" );
    break;
  case "italic":
    insertTags ( "<i>", "</i>" );
    break;
  case "underline":
    insertTags ( "<u>", "</u>" );
    break;
  case "strikethrough":
    insertTags ( "<s>", "</s>" );
    break;
  case "header":
    insertTags ( "<h2>", "</h2>" );
    break;
  case "none":
    removeHTMLTags();
    break;
  }
}

function addObj ( soort, pageID )
{
  document.getElementById ( "screenhide" ).style.display = "inline";
  document.getElementById ( "paramform" ).style.display = "inline";
  switch( soort )
  {
  case "link":
    var linkText = encodeURI ( getSelectedText () ).replace ( "&", "%26" );
    var input = document.forms['editpageform'].elements['contenttext'];
    input.focus();
    if(typeof document.selection != 'undefined')
    {
      var orgTextarea = input.value;
      var range = document.selection.createRange();
      range.text = "<!--img-->";
      imgTextarea = input.value;
      input.value=orgTextarea;
    }
    document.getElementById ( "pfcontent" ).innerHTML = '<iframe frameborder="0" name="paramframe" id="paramframe" scrolling="no" src="getlink.php?linktext=' + linkText + '" width="560" height="420"></iframe>';
    alignShadowScreen ()
    break;
  case "img":
    var input = document.forms['editpageform'].elements['contenttext'];
    input.focus();
    if(typeof document.selection != 'undefined')
    {
      var orgTextarea = input.value;
      var range = document.selection.createRange();
      range.text = "<!--img-->";
      imgTextarea = input.value;
      input.value=orgTextarea;
    }
    document.getElementById ( "pfcontent" ).innerHTML = '<iframe frameborder="0" name="paramframe" id="paramframe" scrolling="no" src="getimage.php?pageid=' + pageID + '" width="560" height="420"></iframe>';
    alignShadowScreen ()
    break;
  case "teaserimg":
    document.getElementById ( "pfcontent" ).innerHTML = '<iframe frameborder="0" name="paramframe" id="paramframe" scrolling="no" src="getimage.php?type=teaser&pageid=' + pageID + '" width="560" height="420"></iframe>';
    alignShadowScreen ()
    break;
  case "img100x75":
    document.getElementById ( "pfcontent" ).innerHTML = '<iframe frameborder="0" name="paramframe" id="paramframe" scrolling="no" src="getimage.php?type=100x75&pageid=' + pageID + '" width="560" height="420"></iframe>';
    alignShadowScreen ()
    break;
  case "file":
    document.getElementById ( "pfcontent" ).innerHTML = '<iframe frameborder="0" name="paramframe" id="paramframe" scrolling="no" src="getfile.php?pageid=' + pageID + '" width="560" height="420"></iframe>';
    alignShadowScreen ()
    break;
  }
}

function closeParamForm()
{
  document.getElementById ( "pfcontent" ).innerHTML = "";
  document.getElementById ( "paramform" ).style.display = "none";
  document.getElementById ( "screenhide" ).style.display = "none";
}

function sendPage ()
{
  document.forms[0].submit();
}

function getScrollXY()
{
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}

function alignShadowScreen ()
{
  if ( document.getElementById( "screenhide" ).style.display != "none" )
  {
    var scrollXY = getScrollXY ();
    document.getElementById( "screenhide" ).style.top = scrollXY[1] +"px";
    document.getElementById( "screenhide" ).style.left = scrollXY[0] +"px";
    var afstandTop = scrollXY[1] + 50;
    document.getElementById( "paramform" ).style.top = afstandTop +"px";
    setTimeout( "alignShadowScreen ()", 100 );
  }
}

function check_keyDown (eventobjekt)
{
  var var_key;
  var ev = eventobjekt||window.event;

  if ( window.event ) // IE
  {
    var_key = window.event.keyCode;
  }
  else if(eventobjekt.which) // Netscape/Firefox/Opera
  {
    var_key = eventobjekt.which;
  }
  if (var_key==17)
  {
    ctrlDown = true;
  }
  else if ( ctrlDown )
  {
    if ( var_key==66 )                  // Bold (^B)
    {
      insertTags ( "<b>", "</b>" );
      if(ev.preventDefault)             // non-IE browsers
        ev.preventDefault();
      else  // IE Only
        ev.returnValue = false;         // Block keyboard shortcuts
    }
    else if ( var_key==73 )             // Italics (^I)
    {
      insertTags ( "<i>", "</i>" );
      if(ev.preventDefault)             // non-IE browsers
        ev.preventDefault();
      else  // IE Only
        ev.returnValue = false;         // Block keyboard shortcuts
    }
    else if ( var_key==68 )             // Doorhalen (^D)
    {
      insertTags ( "<s>", "</s>" );
      if(ev.preventDefault)             // non-IE browsers
        ev.preventDefault();
      else  // IE Only
        ev.returnValue = false;         // Block keyboard shortcuts
    }
    else if ( var_key==85 )             // Onderstrepen (^U)
    {
      insertTags ( "<u>", "</u>" );
      if(ev.preventDefault)             // non-IE browsers
        ev.preventDefault();
      else  // IE Only
        ev.returnValue = false;         // Block keyboard shortcuts
    }
    else if ( var_key==72 )             // Header (^H)
    {
      insertTags ( "<h2>", "</h2>" );
      if(ev.preventDefault)             // non-IE browsers
        ev.preventDefault();
      else  // IE Only
        ev.returnValue = false;         // Block keyboard shortcuts
    }
  }
}

function check_keyUp (eventobjekt)
{
  var var_key;

  if ( window.event ) // IE
  {
    var_key = window.event.keyCode;
  }
  else if(eventobjekt.which) // Netscape/Firefox/Opera
  {
    var_key = eventobjekt.which;
  }
  if (var_key==17)
  {
    ctrlDown = false;
  }
}

