promptMessages = ["Введите полный адрес (URL)", 
                  "Введите название ссылки"]

var boldImages = new Array;
boldImages[0] = new Image;
boldImages[0].src = "/images/iface/editor/bold.gif";
boldImages[1] = new Image;
boldImages[1].src = "/images/iface/editor/bold_h.gif";
boldImages[2] = new Image;
boldImages[2].src = "/images/iface/editor/bold_f.gif";
boldImages[3] = new Image;
boldImages[3].src = "/images/iface/editor/bold_f_h.gif";

var italicImages = new Array;
italicImages[0] = new Image;
italicImages[0].src = "/images/iface/editor/italic.gif";
italicImages[1] = new Image;
italicImages[1].src = "/images/iface/editor/italic_h.gif";
italicImages[2] = new Image;
italicImages[2].src = "/images/iface/editor/italic_f.gif";
italicImages[3] = new Image;
italicImages[3].src = "/images/iface/editor/italic_f_h.gif";

var throughImages = new Array;
throughImages[0] = new Image;
throughImages[0].src = "/images/iface/editor/through.gif";
throughImages[1] = new Image;
throughImages[1].src = "/images/iface/editor/through_h.gif";
throughImages[2] = new Image;
throughImages[2].src = "/images/iface/editor/through_f.gif";
throughImages[3] = new Image;
throughImages[3].src = "/images/iface/editor/through_f_h.gif";

var anchorImages = new Array;
anchorImages[0] = new Image;
anchorImages[0].src = "/images/iface/editor/anchor.gif";
anchorImages[1] = new Image;
anchorImages[1].src = "/images/iface/editor/anchor_h.gif"; 


var boldF = 0;
var italicF = 0;
var throughF = 0;
var paragraphF = 0;
var quoteF = 0;
var anchorF = 0;



function highlight(bName, hlF)
{
  var bF = eval(bName + "F");
  var bObj = window.document.getElementById(bName + "B");

  if (!hlF || (hlF == 0))
    {
      if (bF == 0)
        {
          bObj.src = eval(bName + "Images[1].src");
        }
      else if (bF == 1)
        {
          bObj.src = eval(bName + "Images[3].src");
        }
    }
  else if (hlF == 1)
    {
      if (bF == 0)
        {
          bObj.src = eval(bName + "Images[0].src");
        }
      else if (bF == 1)
        {
          bObj.src = eval(bName + "Images[2].src");
        }
    }
}



function bold(bObj)
{
  var edObj = window.document.getElementById('edArea');

  if (boldF == 0)
    {
      insertText(edObj, "[B]"); 
      bObj.src = boldImages[3].src;
      boldF = 1;
    }
  else if (boldF == 1)
    {
      insertText(edObj, "[/B]"); 
      bObj.src = boldImages[1].src;
      boldF = 0;
    }
}



function italic(bObj)
{
  var edObj = window.document.getElementById('edArea');

  if (italicF == 0)
    {
      insertText(edObj, "[I]"); 
      bObj.src = italicImages[3].src;
      italicF = 1;
    }
  else if (italicF == 1)
    {
      insertText(edObj, "[/I]"); 
      bObj.src = italicImages[1].src;
      italicF = 0;
    }
}



function through(bObj)
{
  var edObj = window.document.getElementById('edArea');

  if (throughF == 0)
    {
      insertText(edObj, "[T]"); 
      bObj.src = throughImages[3].src;
      throughF = 1;
    }
  else if (throughF == 1)
    {
      insertText(edObj, "[/T]"); 
      bObj.src = throughImages[1].src;
      throughF = 0;
    }
}



function anchor()
{
  var edObj = window.document.getElementById('edArea');

  var url = window.prompt(promptMessages[0], "http://");
  var anchor = "[URL=" + url + "]";
  var str = window.prompt(promptMessages[1]);
  var anchor = anchor + str + "[/URL]";
  insertText(edObj, anchor); 
}



function paragraph(bObj)
{
  var edObj = window.document.getElementById('edArea');

  if (paragraphF == 0)
    {
      insertText(edObj, "[P]"); 
      bObj.src = paragraphImages[3].src;
      paragraphF = 1;
    }
  else if (paragraphF == 1)
    {
      insertText(edObj, "[/P]"); 
      bObj.src = paragraphImages[1].src;
      paragraphF = 0;
    }
}



function quote(bObj)
{
  var edObj = window.document.getElementById('edArea');

  if (quoteF == 0)
    {
      insertText(edObj, "[Q]"); 
      bObj.src = quoteImages[3].src;
      quoteF = 1;
    }
  else if (quoteF == 1)
    {
      insertText(edObj, "[/Q]"); 
      bObj.src = quoteImages[1].src;
      quoteF = 0;
    }
}



function quote(commentId, evt)
{
  
  var event = evt ? evt : window.event;
  disableDefaultAction(event);
  var edObj = window.document.getElementById('edArea');
  insertText(edObj, "[Q=" + commentId + "]");
  window.location.hash = "#addcomment";
}



function insertText(obj, iText)
{
  obj.focus(); 
  if (document.selection) //For IE, Opera
    {
      range = document.selection.createRange();
      range.text += iText;
    }
  else if (window.getSelection()) //Mozilla, Firefox
    {
      var cursorPos = obj.selectionStart;
      var strFirst = obj.value.substr(0, cursorPos);
      var strEnd   = obj.value.substr(cursorPos, obj.value.length);
      obj.value = strFirst + iText + strEnd;
      obj.selectionStart = cursorPos + iText.length;
      obj.selectionEnd = cursorPos + iText.length;
    }
}



function addComment(formObj, lastPage, evt)
{
  var event = evt ? evt : window.event;
  disableDefaultAction(event);

  sendRequest("commentEditor", 
              "POST", 
              "/cgi-bin/comment_editor.pl", 
              {"a": 1, 
               "r": window.document.getElementById("h2").value,
               "n": window.document.getElementById("h3").value,
               "comment": window.document.getElementById("edArea").value,
               "security_word": window.document.getElementById("t1").value,
               "hash": window.document.getElementById("h1").value},
              addCommentReqChange,
              true,
              {"formObj": formObj, "lastPage": lastPage}); 
}



function addCommentReqChange(requestObj, parentObj, opt)
{
  if (requestObj.readyState == 4)
    {
      var data;
      if (requestObj.status == 200)
        {
          data = requestObj.responseText;
        }
      else
        {
          data = requestObj.statusText;
        }
      if (data == "ok")
        {
          parentObj.removeChild(window.document.getElementById("loadStatus"));
          
          if (window.location.pathname.match(/page[0-9]+/))
            {
              path = window.location.pathname.replace(/page[0-9]+\/?/, "page" + opt.lastPage + "/");
            }
          else
            {
              path = window.location.pathname + "page" + opt.lastPage + "/";
            }  
          opt.formObj.action = "http://" + window.location.host + path + "#lastcomment";
          opt.formObj.submit();
        }  
      else
        {
          parentObj.innerHTML = data;
        }
    }
}

