var
  loading = false,
  editing = false;
  clientX = 0;
  clientY = 0;
  lMenuY_Base = 197;
  lMenuX_Base = 30;
  keywordsCount = 0;
  PARAGRAPH_TAG = '<BR/>';
  PARAGRAPH_TAG_IE = '<BR>';
  wasSearch = false;
  lastRewriteId = '';
  folderPath = "/";
  normalMenuSize = 0;
  categoryList = new Array();
  articleList = new Array();
  menuSizeChanged = false;
  lastMenuSize = false;
  newLine = "\r\n";
  synonymsMenuShowed = false;
  dontHide=false;

  fileMenu=' ';
  fileMenuX=0;
  fileMenuY=0;

  dirMenu=' ';
  dirMenuX=0;
  dirMenuY=0;

  tempMenu=' ';
  tempMenuX=0;
  tempMenuY=0;

  enteredWords = new Array();

  synonymsTable = new Array();
  originalsTable = new Array();
  synonymsTableUserID = new Array();
  synonymsTableSynID = new Array();

  generatorWords = new Array();
  generatorKeys = new Array();
  generatorHash = new Array();

  lastTextBeforeAdjust = '';
  manualChanges = 0;
  parsedAuto = 0;

  DEFAULT_DENS_VALUE = 1000;
  ARTICLE_NAME_EDITOR_HTML_BEGIN = "<input id='newArticleName' class='ArticleNameText' name='newArticleName' value='";
  ARTICLE_NAME_EDITOR_HTML_END = "'>";

//  ARTICLE_NAME_EDITOR_HTML_BEGIN = "<table width=100% cellpadding=0 cellcpacing=0><tr>"+
//     "<td><input id='newArticleName' class='ArticleNameText' name='newArticleName' value='";

//  ARTICLE_NAME_EDITOR_HTML_END = "'></td></tr></table>";


  hints = Array(
    "Create new article to work with it\'s content.", //0
    "Create new folder to group your articles. <a target=_blank href=/help/videos/folders/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //1
    "Replace one keyword with another <a target=_blank href=http://www.secretarticleconverter.com/help/videos/replace/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a></a>", //2
    "Determine your keyword", //3
    "Format your article. <a target=_blank href=/help/videos/adjust_length/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //4
    "Keep your keyword phrases from being changed.", //5
    "Conversion density is a mark of synonyms analyzer density..", //6
    "Add common phrases to your article. <a target=_blank href=/help/videos/common_phrase/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //7
    "Hyper Link keywords to websites. <a target=_blank href=/help/videos/wordlinker/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //8
    "Add your own info to articles. <a target=_blank href=/help/videos/custom_info/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //9
    "Add your recourse boxes to articles. <a target=_blank href=/help/videos/author_bio/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>",//10
    "This will insert STOP tag, after which all words will be ignored",//11
    "Bold your main keyword <a target=_blank href=/help/videos/bold/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //12
    "Click on article name to change it's name", //13
    "Add words to the list, enter any word from loaded article and click \'Go!\'", //14
    "Search articles. <a target=_blank href=/help/videos/search/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //15
    "Upload articles from your computer. <a target=_blank href=/help/videos/upload_articles/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //16
    'Add beginning content to your article. <a target=_blank href=/help/videos/beginnings/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>', //17
    'Add ending content to your article. <a target=_blank href=/help/videos/endings/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>', //18
    'Add quotes to your articles. <a target=_blank href=/help/videos/quotes/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>', //19
    'Export currently loaded article to your computer in these formats.', //20
    'Add transitions to your article. <a target=_blank href=/help/videos/transitions/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>', //21
    'Manually convert words one by one by choosing synonyms from the list. <a target=_blank href=/help/videos/one_at_a_time/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>', //22
    'Automatically convert all words with random synonyms. <a target=_blank href=/help/videos/convert_all/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>', //23
    "Use this timer to count how much time you\'ve spent converting article. Button functions are: start, stop, reset. <a target=_blank href=/help/videos/timer/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>", //24
    "Last change density shows percentage of changes you have made to the article.", //25
    'Word count shows count of all words, longer than 3 letters.', //26
    'Use this menu to create and browse folders, load and download articles. <a target=_blank href=/help/videos/folders/><nobr><img src=/images/icon_view_video.gif /> Click this link to watch demo movie</nobr></a>',//27
    'Advanced editing. Use this box to make your article 100% unique and ready to submit to directories'//28
  );

  var
    hours = 0, minutes = 0, seconds = 0;
    paused = false;

  var detect = navigator.userAgent.toLowerCase();
  var OS,browser,version,total,thestring;
//  alert(detect);


isNS4 = (document.layers) ? true : false;
isIE4 = (document.all && !document.getElementById) ? true : false;
isIE5 = (document.all && document.getElementById) ? true : false;
isNS6 = (!document.all && document.getElementById) ? true : false;


function getelementbyid2(myid) {
   if (isNS4){
        objElement = document.layers[myid];
     }else if (isIE4) {
        objElement = document.all[myid];
     }else if (isIE5 || isNS6) {
             objElement = document.getElementById(myid);
     }
return(objElement);
}


  if (checkIt('konqueror'))
  {
  browser = "Konqueror";
  OS = "Linux";
  }
  else if (checkIt('safari')) browser = "Safari"
  else if (checkIt('omniweb')) browser = "OmniWeb"
  else if (checkIt('opera')) browser = "Opera"
  else if (checkIt('firefox')) browser = "FireFox"
  else if (checkIt('webtv')) browser = "WebTV";
  else if (checkIt('icab')) browser = "iCab"
  else if (checkIt('msie')) browser = "Internet Explorer"
  else if (!checkIt('compatible'))
  {
  browser = "Netscape Navigator"
  version = detect.charAt(8);
  }
  else browser = "An unknown browser";

  if (!version) version = detect.charAt(place + thestring.length);

  if (!OS)
  {
  if (checkIt('linux')) OS = "Linux";
  else if (checkIt('x11')) OS = "Unix";
  else if (checkIt('mac')) OS = "Mac"
  else if (checkIt('win')) OS = "Windows"
  else OS = "an unknown operating system";
  }

  if (browser=='FireFox')
  {
    newLine = '\n';
    PARAGRAPH_TAG = '<br>';
  }

  function checkIt(string)
  {
  place = detect.indexOf(string) + 1;
  thestring = string;
  return place;
  }

function addText(myFieldName, myValue)
{
  myField = document.getElementById(myFieldName);
  myField.value += myValue;
}

function insertAtCursor(myFieldName, myValue)
{
  myField = document.getElementById(myFieldName);
  //IE support

  if (document.selection)
  {
    myField.focus(myField);
//    alert(document.dummy.EditArticle.value);
    sel = document.selection.createRange();
    sel.text = myValue;
    sel.collapse(true);
    sel.select();
  }
  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == 0)
  {
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    var scrollTop = myField.scrollTop;
//    alert (scrollTop);
    myField.value = myField.value.substring(0, startPos)
    + myValue
    + myField.value.substring(endPos, myField.value.length);
    myField.focus();
    myField.selectionStart = startPos + myValue.length;
    myField.selectionEnd = startPos + myValue.length;
    myField.scrollTop = scrollTop;
  }
  else
  {
    myField.value += myValue;
    myField.focus();
  }
}

function checkForUniquness()
{
    open_window('CheckForUniquness', '../checkforunique/uniq.php','790','550');
}

function insertAtBegin(myFieldName, myValue)
{
  myField = document.getElementById(myFieldName);
  //IE support

  if (document.selection)
  {
    myField.focus(myField);
//    alert(document.dummy.EditArticle.value);
    myField.value = trim(myValue+"\n" + myField.value);
  }
  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == 0)
  {
    myField.value = myValue+"\n" + myField.value ;
    myField.focus()
  }
  else
  {
    myField.value =  myValue+"\n"+myField.value ;
    myField.focus();
  }
}

function insertAtEnd(myFieldName, myValue)
{
  myField = document.getElementById(myFieldName);
  //IE support

  if (document.selection)
  {
    myField.focus(myField);
//    alert(document.dummy.EditArticle.value);
    myField.value = trim(myField.value+"\n" + myValue);
  }
  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == 0)
  {
    myField.value = myField.value + "\n"+myValue;
    myField.focus()
  }
  else
  {
    myField.value = myField.value + "\n" + myValue ;
    myField.focus();
  }
}

function showLayer(id)
{
  var elm;
  elm = document.getElementById(id);

  if (elm)
  {
    elm.style.display = "";
  }
}
function hideLayer(id)
{
  var elm;
  elm = document.getElementById(id);
  if (elm)
  {
    elm.style.display = "none";
  }
  if (id=='SynonymsMenu')
  {
//    document.getElementById('DivShim').style.display = "none";

  }
}

function setContent(id,content)
{
  var elm;
  elm = document.getElementById(id);
  if (elm)
  {
    elm.innerHTML = content;
  }
}

function getContent(id)
{
  var elm;
  elm = document.getElementById(id);
  if ((id=='ArticleText')&&(editing))
  {
//    alert('OK');
    saveArticleText();
  }
  if (elm)
  {
    return elm.innerHTML;
  }
}

function getFrameContent(elm)
{
  return elm.document.body.innerHTML;
}

function setFrameContent(elm, content)
{

  elm.document.open();
  elm.document.write(content);
  elm.document.close();
//  elm.document.body.innerHTML = content;
}

function getValue(id)
{
  var elm;
  elm = document.getElementById(id);
  if (elm)
  {
    return elm.value;
  }
}

function URLEncode(sStr)
{
   return escape(sStr).
            replace(/\+/g, '%2B').
              replace(/\"/g,'%22').
                replace(/\'/g, '%27').
                  replace(/\&/g, '%26').
                    replace(/\?/g, '%3F').
                      replace(/\//g,'%2F');
}

function startRequest(side)
{
  document.getElementById("image-"+side).className = 'image-picked';
  makeRequest(document.getElementById('id-left').value,document.getElementById('id-right').value,side);
}


// AJAX to the rescue!!
function makeRequest(url,params, func)
{
  http_request = false;
  //alert('makeRequest');

  if (window.XMLHttpRequest) // Mozilla, Safari,...
  {
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
    {
       http_request.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject)
  { // IE
     try
     {
       http_request = new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e)
     {
      try
      {
         http_request = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
      }
     }
  }
  if (!http_request)
  {
    alert('Cannot create XMLHTTP instance');
    return false;
  }
  http_request.onreadystatechange = func;
  //http_request.Cache.GetNoCache;

  http_request.open('POST', url);

  http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  http_request.send(params);
//http_request.clear_cache()
}

function makeRequestEx(url,params, func)
{
  http_requestEx = false;
//  alert('makeRequestEx');

  if (window.XMLHttpRequest) // Mozilla, Safari,...
  {
    http_requestEx = new XMLHttpRequest();
    if (http_requestEx.overrideMimeType)
    {
       http_requestEx.overrideMimeType('text/xml');
    }
  }
  else if (window.ActiveXObject)
  { // IE
     try
     {
       http_requestEx = new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e)
     {
      try
      {
         http_requestEx = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (e)
      {
      }
     }
  }
  if (!http_requestEx)
  {
    alert('Cannot create XMLHTTP instance');
    return false;
  }
  http_requestEx.onreadystatechange = func;
  //http_request.Cache.GetNoCache;

  http_requestEx.open('POST', url);

  http_requestEx.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

  http_requestEx.send(params);
//http_request.clear_cache()
}

function alertContents()
{
//  var IfrRef = document.getElementById('DivShim');
  var DivRef = document.getElementById('SynonymsMenu');

  if (http_request.readyState == 4)
  {
    setLoading(false);

    setCoords();
    if (http_request.status == 200)
    {
      result = http_request.responseText;
//      alert(result);
      setContent('SynonymsMenu', http_request.responseText);
      var key = document.getElementById('requestWord').value;
//      alert(key);
//      alert(enteredWords[key]);

      if (enteredWords[document.getElementById('requestWord').value]!=undefined)
      {
        document.getElementById('ownWord').value = enteredWords[document.getElementById('requestWord').value];
      }
//      result_array = result.split("|");
      if (browser=='Internet Explorer')
      {
        /*
        IfrRef.style.width = DivRef.offsetWidth;
        IfrRef.style.height = DivRef.offsetHeight;
        IfrRef.style.top = DivRef.style.top;
        IfrRef.style.left = DivRef.style.left;
        IfrRef.style.zIndex = DivRef.style.zIndex - 1;
        IfrRef.style.display = "block";
        */
      }

    }
  }
}

function alertSaveArticle()
{

  if (http_request.readyState == 4)
  {
    setLoadingAlone(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
      alert('The article has been successfully saved!');
      reloadArticles(-2);
//      setContent('SynonymsMenu', result);
//      result_array = result.split("|");
    }
  }
}

function alertRemoveTemplate()
{

  if (http_request.readyState == 4)
  {
    setLoadingAlone(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
          addTemplateToList(document.getElementById('active_template_id').value, '', true, false);
      alert('The template has been successfully removed!');
    }
  }
}

function alertSetActiveTemplate()
{

  if (http_request.readyState == 4)
  {
    setLoadingAlone(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
      alert('The template has been successfully set as active!');
    }
  }
}

function alertAddSynonym()
{

  if (http_request.readyState == 4)
  {
    setLoadingAlone(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
//      alert(result);
    }
  }
}

function alertRewriteRules()
{

  if (http_requestEx.readyState == 4)
  {
    setLoadingAlone(false);
    if (http_requestEx.status == 200)
    {
      result = http_requestEx.responseText;
     // alert(result);
      if (lastRewriteId)
      {
        setContent(lastRewriteId, result);
      }
//      alert('OK!');
      if (!document.getElementById('FolderId'))
      {
        window.close();
      }
//      result_array = result.split("|");
    }
  }
}

function alertGenerator()
{

  if (http_requestEx.readyState == 4)
  {
    setLoadingAlone(false);
    if (http_requestEx.status == 200)
    {
      result = http_requestEx.responseText;
//      alert(result);
      reloadArticles(-2);
//      result_array = result.split("|");
    }
  }
}

function alertSpelling()
{

  if (http_request.readyState == 4)
  {
    setLoadingAlone(false);
    showLayer('SpellingMenu');

    setCoordsEx('SpellingMenu');
    if (http_request.status == 200)
    {
      result = http_request.responseText;
//      alert(result);
      setContent('SpellingMenu', result);
//      result_array = result.split("|");
    }
  }
}

function alertSearch()
{

  if (http_request.readyState == 4)
  {
    setLoadingAlone(false);
    showLayer('SearchMenu');

    setCoordsEx('SearchMenu');
    if (http_request.status == 200)
    {
      result = http_request.responseText;
      wasSearch = true;
      document.getElementById('searchResultsImg').src = "/images/new/icon_search_collapse.gif";
//      alert(result);
      setContent('SearchMenu', result);
//      result_array = result.split("|");
    }
  }
}

function parseContents()
{

  if (http_request.readyState == 4)
  {
//    alert(http_request.status);
    setLoadingAloneEx(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
//      alert(result);
      results = result.match(/<script>(.*)<\/script>/igm)
      if (results)
      {
//        alert(results.length);
        for(var i=0; i < results.length; i++)
        {
  //         if (!results[i].match(/script/))
           results[i] = results[i].replace(/<script>/igm, "");
           results[i] = results[i].replace(/<\/script>/igm, "");
  //         alert(results[i]);
           eval(results[i]);

        }
      }

      result = result.replace(/<script>(.*)<\/script>/igm, '');


//      alert(result);
      setContent('ArticleText', result);
//      result_array = result.split("|");
    }
  }
}

function parseFolders()
{

  if (http_request.readyState == 4)
  {
    if (http_request.status == 200)
    {
      setLoadingAloneEx(false);
      setLoadingAlone(false);
      categoryList.length = 0;
      articleList.length = 0;

      result = http_request.responseText;

      results = result.match(/<script>(.*)<\/script>/igm)
      if (results)
      {
        for(var i=0; i < results.length; i++)
        {
  //         if (!results[i].match(/script/))
           results[i] = results[i].replace(/<script>/igm, "");
           results[i] = results[i].replace(/<\/script>/igm, "");
           eval(results[i]);

        }
      }

      setContent('Folders', result);
      if (lastMenuSize)
      {
        changeMenuSize(lastMenuSize);
      }

    }
  }
}

function parseFoldersEx()
{

  if (http_request.readyState == 4)
  {
    if (http_request.status == 200)
    {
      result = http_request.responseText;
      setLoadingAlone(false);
      setLoadingAloneEx(false);
      categoryList.length = 0;
      articleList.length = 0;

//      myRE = new RegExp(//, "i")
      results = result.match(/<script>(.*)<\/script>/igm)
      if (results)
      {
        for(var i=0; i < results.length; i++)
        {
  //         if (!results[i].match(/script/))
           results[i] = results[i].replace(/<script>/igm, "");
           results[i] = results[i].replace(/<\/script>/igm, "");
           eval(results[i]);

        }
      }
      setContent('Folders', result);
      if (lastMenuSize)
      {
        changeMenuSize(lastMenuSize);
      }
//      idElm = document.getElementById('FolderId');
//      if (idElm)
//      ToggleNode(document.getElementById('f'+idElm));
    }
  }
}

function alertArticle()
{

  if (http_request.readyState == 4)
  {
    setLoadingAloneEx(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
//      alert(result);
      result = stripTags(result);

      setContent('WordsCount', wordsCount(result, 'Lorem####', 2));
      result = result.replace(/\r\n/gm, PARAGRAPH_TAG);
      result = result.replace(/\n/gm, PARAGRAPH_TAG);

      setContent('ArticleText', result);
      showLayer('ArticleButtons');
      showLayer('downloadLinks');
//      boldWords();
//      processLinks();

    }
  }
}


function alertArticleOriginal()
{

  if (http_request.readyState == 4)
  {
    setLoadingAloneEx(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
//      alert(result);
      result = stripTags(result);

//      setContent('WordsCount', wordsCount(result, 'Lorem####', 2));
      result = result.replace(/\r\n/gm, PARAGRAPH_TAG);
      result = result.replace(/\n/gm, PARAGRAPH_TAG);

      setContent('ArticleOriginal', result);
 //     showLayer('ArticleButtons');
//    showLayer('downloadLinks');
//      boldWords();
//      processLinks();

    }
  }
}


function setLoadingAlone(visible)
{
//  alert('OK');
  if (visible)
  {
    showLayer('loading');
    loading = true;
  }
  else
  {
    hideLayer('loading');
    loading = false;
  }

}

function setLoadingAloneEx(visible)
{
//  alert(document.documentElement.scrollHeight);
  if (visible)
  {
    var IfrRef = document.getElementById('DivShim');
    var DivRef = document.getElementById('loadingEx');

    document.getElementById('loadingEx').style.height = document.documentElement.scrollHeight+'px';
    showLayer('loadingEx');

    IfrRef.style.width = DivRef.offsetWidth;
    IfrRef.style.height = DivRef.offsetHeight;
    IfrRef.style.top = DivRef.style.top;
    IfrRef.style.left = DivRef.style.left;
    IfrRef.style.zIndex = 1;
    if (browser=='Internet Explorer')
    {
      IfrRef.style.display = "block";
    }

    loading = true;
  }
  else
  {
    hideLayer('loadingEx');
    document.getElementById('DivShim').style.display = "none";
    loading = false;
  }

}

function setLoading(visible)
{
  if (visible)
  {
    showLayer('loading');
    hideLayer('SynonymsMenu');
    loading = true;
  }
  else
  {
    hideLayer('loading');
    showLayer('SynonymsMenu');
    loading = false;
  }

}

function setLoadingEx(visible)
{

  if (visible)
  {
    showLayer('loadingEx');
    document.getElementById('loadingEx').style.height = document.documentElement.scrollHeight+'px';
    hideLayer('SynonymsMenu');
    loading = true;
  }
  else
  {
    hideLayer('loadingEx');
    showLayer('SynonymsMenu');
    loading = false;
  }

}

function toggleLoading()
{
  if (!loading)
  {
    showLayer('loading');
    hideLayer('SynonymsMenu');
    hideLayer('SpellingMenu');
    loading = true;
  }
  else
  {
    hideLayer('loading');
    showLayer('SynonymsMenu');
    loading = false;
  }
}

function enableDesignMode(elm)
{
  elm.document.designMode='on';
  editing = true;
}

function disableDesignMode(elm)
{

  if (editing)
  {
    editing = false;
    tmp = getFrameContent(elm);
    elm.document.designMode='off';
    setFrameContent(elm, tmp);
  }
}


function toggleEditMode(elm)
{
  if (!editing)
  {
    enableDesignMode(elm);

  }
  else
  {
    disableDesignMode(elm);

  }
}

function rememberCheckedWord(chkBox, origWord, synonymWord)
{
  //alert(origWord+' '+synonymWord);
  if (chkBox.checked)
  {
//    generatorWords.length++;
//    generatorKeys.length++;

    generatorWords[generatorWords.length] = synonymWord;
    generatorKeys[generatorKeys.length] = origWord;
    generatorHash[origWord+'#'+synonymWord] = generatorKeys.length;
  }
  else
  {
    generatorHash[origWord+'#'+synonymWord] = 0;
//    generatorKeys.splice(ind-1, 1);
//    generatorWords.splice(ind-1, 1);
//    alert(ind+ " "+ generatorKeys.length);
//    generatorWords.splice()
  }
}

function getSynonyms(aWord, anId, userId, evt)
{
//  s = URLEncode(getFrameContent(ArticleText));
//  setLoading(true);
  synonymsMenuShowed = false;
  glEvent = evt;
  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
    clientX = evt.clientX;
    clientY = evt.clientY;

  }
  clientY += 10;
  //makeRequest('/get_synonyms/','word='+aWord+"&id="+anId, alertContents);

  var DivRef = document.getElementById('SynonymsMenu');
  showLayer('SynonymsMenu');

  var menuBody = '';
  var table= "<table border=\"0\" width=\"109\" style=\"border: 1px solid #673E19; padding: 0px; margin: 0px;\" cellpadding=0 cellspacing=0 border=\"0\">";

  var headerTemplate = table +
       "<tr class=\"WordListItem\">"+
       "<td class=\"SynonymInMenu\" onclick=\"javascript: return replaceWord('%WORD%', '%ID%')\">"+
         "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">"+
           "<tr>"+
             "<td width=\"5\"><img src=\"/images/new/ok.gif\" style=\"margin-right: 16px; margin-left: 5px; margin-top: 1px;\" width=\"17\" height=\"17\"></td>"+
             "<td>%WORD%</td>"+
           "</tr>"+
         "</table>"+
       "</td>"+
     "</tr>";
  headerTemplate = headerTemplate.replace(/\%ID\%/gm, anId);
  headerTemplate = headerTemplate.replace(/%WORD%/gm, aWord);

  var footerTemplate = "<tr class=\"WordListItem\" onmouseover=\"javascript: toggleBgColor(this, '#E2C096')\" onmouseout=\"javascript: toggleBgColor(this, '#FAF2E3')\">"+
    "<td style=\"vertical-align: middle; color: #000000; cursor: hand;cursor:pointer; height: 20px;\">"+
      "<div>"+
      "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">"+
        "<tr>"+
          "<td width=\"5\"><img src=\"/images/new/dot.gif\" style=\"margin-right: 9px; margin-left: 9px;\" width=\"5\" height=\"5\"></td>"+
          "<td>"+
            "<table cellspacing=0 cellpadding=0>"+
              "<tr valign=\"midle\">"+
                "<td>"+
                  "<input id=\"ownWord\" class=\"text\"/>"+
                  "<input id=\"requestWord\" class=\"text\" value=\"%WORD%\" type=\"hidden\"/>"+
                "</td>"+
                "<td>"+
                  "<a onclick=\"javascript: return replaceWord(document.getElementById('ownWord').value, '%ID%'); return hideSynonymsMenu();\"><img border=0 src=\"/images/icon_folders_size.gif\" /></a>"+
                "</td>"+
              "</tr>"+
            "</table>"+
          "</td>"+
        "</tr>"+
      "</table>"+
      "</div>"+
    "</td>"+
  "</tr>"+
  "<tr id=\"test\" class=\"WordListItem\">"+
    "<td class=\"CancelMenuItem\" onclick=\"javascript: return hideSynonymsMenu();\">"+
      "<span><img src=\"/images/new/btn_close.gif\" width=\"67\" height=\"18\"></span>"+
    "</td>"+
  "</tr>"+
  "</table>";

  footerTemplate = footerTemplate.replace(/\%ID\%/gm, anId);
  footerTemplate = footerTemplate.replace(/%WORD%/gm, aWord);

  var genEnabled = document.getElementById('enableGenerator').checked;

  if (genEnabled)
  {
    var bodyTemplate = "<tr class=\"WordListItem\" onmouseover=\"javascript: toggleBgColor(this, '#E2C096')\" onmouseout=\"javascript: toggleBgColor(this, '#FAF2E3')\">"+
      "<td style=\"vertical-align: middle; color: #000000; cursor: hand;cursor:pointer; height: 20px;\">"+
        "<div>"+
        "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">"+
          "<tr>"+
            "<td width=\"5\"><input type=checkbox"+
            " %CHECKED% "+
            "onclick=\"javascript: rememberCheckedWord(this, '%WORD%','%NEW_WORD%');\"/>"+
            "</td>"+
            "<td onclick=\"javascript: return replaceWord('%NEW_WORD%', '%ID%'); \">"+
            "<span>&nbsp;%NEW_WORD%</span></td>"+
          "</tr>"+
        "</table>"+
        "</div>"+
      "</td>"+
    "</tr>";

    menuBody += headerTemplate;

    bodyTemplate = bodyTemplate.replace(/\%ID\%/gm, anId);
    bodyTemplate = bodyTemplate.replace(/\%WORD\%/gm, aWord);

    if (synonymsTable[anId])
    {
      for (var i=0;i<synonymsTable[anId].length;i++)
      {
        tmp = bodyTemplate.replace(/\%NEW_WORD\%/gm, synonymsTable[anId][i]);
        tmp = tmp.replace(/\%CHECKED\%/gm, (generatorHash[aWord+'#'+synonymsTable[anId][i]])?"checked":"");
        menuBody+=tmp;
      }
    }
  }
  else
  {
    var bodyTemplate = "<tr class=\"WordListItem\" onmouseover=\"javascript: toggleBgColor(this, '#E2C096')\" onmouseout=\"javascript: toggleBgColor(this, '#FAF2E3')\">"+
      "<td style=\"vertical-align: middle; color: #000000; cursor: hand;cursor:pointer; height: 20px;\">"+
        "<div>"+
        "<table width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">"+
          "<tr>"+
            "<td width=\"5\"><img src=\"/images/new/dot.gif\" style=\"margin-right: 9px; margin-left: 9px;\" width=\"5\" height=\"5\"></td>"+
            "<td onclick=\"javascript: return replaceWord('%NEW_WORD%', '%ID%'); \">%NEW_WORD%</td>"+
                        "<td align=\"right\" onclick=\"javascript: return deleteSynonym('%SYN_ID%', '%ID%','%SEQ%'); \">%DELETE%</td>"+
          "</tr>"+
        "</table>"+
        "</div>"+
      "</td>"+
    "</tr>";

    menuBody += headerTemplate;

    bodyTemplate = bodyTemplate.replace(/\%ID\%/gm, anId);
    bodyTemplate = bodyTemplate.replace(/\%WORD\%/gm, aWord);

    if (synonymsTable[anId])
    {
      for (var i=0;i<synonymsTable[anId].length;i++)
      {
        tmp = bodyTemplate.replace(/\%NEW_WORD\%/gm, synonymsTable[anId][i]);
        tmp = tmp.replace(/\%CHECKED\%/gm, (generatorHash[aWord+'#'+synonymsTable[anId][i]])?"checked":"");
                if(synonymsTableUserID[anId][i]==userId)
                 {
                tmp = tmp.replace(/\%SYN_ID\%/gm, synonymsTableSynID[anId][i]);
//        tmp = tmp.replace(/\%USER\%/gm, synonymsTableUserID[anId][i]);
                 tmp = tmp.replace(/\%SEQ\%/gm, i);
                tmp = tmp.replace(/\%DELETE\%/gm, "<img src=\"/images/new/delete.gif\" hspace=\"10\">");
                }
                else
                {
                tmp = tmp.replace(/\%SYN_ID\%/gm, "");
        //tmp = tmp.replace(/\%USER\%/gm, "");
                tmp = tmp.replace(/\%SEQ\%/gm, "");
                tmp = tmp.replace(/\%DELETE\%/gm, "");
                }
            menuBody+=tmp;
      }
    }

  }
  setCoords();
//  alert(anId);

//  if (enteredWords[document.getElementById('requestWord').value]!=undefined)
//  {
//     document.getElementById('ownWord').value = enteredWords[document.getElementById('requestWord').value];
//  }

  menuBody += footerTemplate;

  setContent('SynonymsMenu', menuBody);
  setTimeout('synonymsMenuShowed = true', 100);

  return false;
}

function deleteSynonym(syn, word, seq)
{
        if(syn)
        {
        hideSynonymsMenu();
        synonymsTable[word].splice(seq, 1);
        synonymsTableUserID[word].splice(seq, 1);
        synonymsTableSynID[word].splice(seq, 1);
        setLoadingAlone(false);
        makeRequest('/delete_synonyms/',"synonym="+syn, alertDeleteSynonym);
        }
  return false;
}
function alertDeleteSynonym()
{
//        alert('Synonym has been deleted');
  return false;
}

function getSearch(evt)
{
  setLoading(true);

  glEvent = evt;
  clientX = -1;
  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
    clientX = evt.clientX;
    clientY = evt.clientY;

  }
  clientY-=8;
  clientX-=20;
  aWord = document.getElementById('searchKeyword').value;
  aFlag = document.getElementById('FullTextSearch');
  fulltext = aFlag.value;
  makeRequest('/search/','keyword='+aWord+"&fulltext="+fulltext, alertSearch);
  showLayer('ExpandSearch');
  return false;
}

function getSpelling(aWord, anId, evt)
{
//  s = URLEncode(getFrameContent(ArticleText));
  setLoading(true);
  glEvent = evt;
  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
    clientX = evt.clientX;
    clientY = evt.clientY;
  }
  makeRequest('/get_spelling/','word='+aWord+"&id="+anId, alertSpelling);
  return false;
}

function addNewSynonym(aWord, aSynonym)
{
  //alert(aWord+' '+aSynonym);
  setLoadingAlone(true);
  makeRequest('/get_synonyms/','word='+URLEncode(aWord)+"&synonym="+URLEncode(aSynonym), alertAddSynonym);
  return false;
}

function responsePublishArticle()
{

  if (http_request.readyState == 4)
  {
//    alert(http_request.status);
    setLoadingAloneEx(false);
    if (http_request.status == 200)
    {
      result = http_request.responseText;
      alert(result);
    }
  }
}


function publishArticle(layerId)
{
    saveArticleText();
    s = URLEncode(' '+stripSpans(getContent(layerId))+' ');
    article_id = document.getElementById('ArticleId').value;
    if(!article_id)
    {
        alert('Article is not loaded!');

    }else
    {
        title = URLEncode(document.getElementById('article_name').value);
        category_id = document.getElementById('article_category_id').value;
//        var cc = document.getElementById('category_all');
        var categories_all='';
//        if(cc.checked) categories_all='all';
        setLoadingAloneEx(true);
        makeRequest('/publish_article/savearticle.php','action=publish&article='+s+'&title='+title+'&category_id='+category_id+'&article_id='+article_id+'&categories_all='+categories_all, responsePublishArticle);
    }
}

function parseArticle(layerId)
{
  saveArticleText();
  generatorWords = new Array();
  generatorKeys = new Array();
  generatorHash = new Array();

  synonymsTable = new Array();
  originalsTable = new Array();
  s = URLEncode(' '+stripSpans(getContent(layerId))+' ');
//  disableDesignMode(elm);
  setLoadingAloneEx(true);

  densValue = DEFAULT_DENS_VALUE;
  makeRequest('/parse_article/','article='+s+"&auto=0&density="+densValue, parseContents);
  return false;
}

function parseArticleAuto(layerId, densValue)
{
        hideLayer('DensityMenu');
  saveArticleText();
  generatorWords = new Array();
  generatorKeys = new Array();
  generatorHash = new Array();

  synonymsTable = new Array();
  originalsTable = new Array();
  s = URLEncode(' '+stripSpans(getContent(layerId))+' ');
  setLoadingAloneEx(true);
 // densValue = 50;
  parsedAuto = 1;

  makeRequest('/parse_article/','article='+s+"&auto=1&density="+densValue, parseContents);
  return false;
}

function checkSpelling(layerId)
{
  s = URLEncode(' '+getContent(layerId)+' ');

  setLoadingAloneEx(true);
  makeRequest('/check_spelling/','article='+s, parseContents);
  return false;
}

String.prototype.ucFirst = function () {
// var firstLetter = this.substr(0,1).toUpperCase()
 return this.substr(0,1).toUpperCase() + this.substr(1,this.length);
}
function replaceWord(aWord, anId)
{
//  alert(synonymsTable[anId][0]);
  hideSynonymsMenu();

//  alert(document.getElementById(anId).innerHTML+'-'+aWord+':'+ originalsTable[anId]);

  oldWord = document.getElementById('requestWord').value;
  // sneg, fixed for right density calculation
  oldWord = document.getElementById(anId).innerHTML;

  document.getElementById(anId).innerHTML = aWord;
  elm = document.getElementById('ownWord').value;

/*
  if (oldWord != ucfirst(oldWord)){
   alert(oldWord);
  }
*/

/*  sneg, ilab. Сейчас здесь нормальный алгоритм, как и должно быть */
    if (!parsedAuto)
    {
        if(originalsTable[anId] == oldWord)
        {
            // оригинал совпадает с текущим словом
            // значит инкремент только в случае реальной замены
            if (oldWord!=aWord)
            {
                manualChanges++;
                setManualDensity();
            }
        }else
        {
            if(aWord == originalsTable[anId])
            {
                // то есть возврат к начальному варианту
                // откат изменений
                manualChanges--;
                if(manualChanges<0)  manualChanges = 0;
                setManualDensity();
            }
        }
    }

/*  Sneg, ilab.
    нда, мля, за такой код надо руки отрывать
    еще этому шизу надо ногти выдернуть на ногах за сплитинг статьи на слова на лету.
    Сразу во время парсинга нельзя сосчитать что-ли, идиот !!!!!!!!!
  if (oldWord!=aWord)
  {
    if (!parsedAuto)
    {
        manualChanges++;
    }
    setManualDensity();
  }
*/


  if (elm)
  {
//    alert(aWord);

   enteredWords[aWord] = elm;
   addSynonymsToTable(anId, elm, 0);
   addNewSynonym(oldWord, elm);

//    alert(enteredWords[aWord]);
  }

  hideLayer('SpellingMenu');
//  findDensityByVal(aWord);
}

function correctSpelling(aWord, anId, origWord, origId)
{
  //document.getElementById(anId).innerHTML = aWord;
  var str = getContent('ArticleText');

  //, '"+origId+"', event)\" class='MissSpelled'>"+origWord+"</SPAN>
//  alert(str);
   var rs = "<span id=\""+anId+"\" onclick=\"javascript: window.parent.getSpelling('"+origWord+"', '"+origId+"', event)\" class=\"MissSpelled\">"+origWord+"</span>";
//   alert(rs);
  t = str.replace(rs, aWord);
  t = t.replace("<SPAN class=MissSpelled id="+anId+" onclick=\"javascript: window.parent.getSpelling('"+origWord+"', '"+origId+"', event)\">"+origWord+"</SPAN>", aWord);
//  alert("<SPAN class=MissSpelled id="+anId+" onclick=\"javascript: window.parent.getSpelling('"+origWord+"', '"+origId+"', event)\">"+origWord+"</SPAN>");
//  alert(t);
  setContent('ArticleText', t);
  hideLayer('SynonymsMenu');
  hideLayer('SpellingMenu');
}

function getScrollCoords ()
{
  if (typeof window.pageXOffset != 'undefined')
    return {x: window.pageXOffset, y: window.pageYOffset};
  else if ((!document.compatMode || document.compatMode == 'BackCompat') &&
    document.body && typeof document.body.scrollLeft != 'undefined')
  {
    return {x: document.body.scrollLeft, y: document.body.scrollTop};
  }
  else if (document.compatMode == 'CSS1Compat' &&
           document.documentElement && typeof document.documentElement.scrollLeft != 'undefined')
  {
    return {x: document.documentElement.scrollLeft, y:document.documentElement.scrollTop};
  }
  else
    return null;
}

function moveLayer (layerId)
{
  if (document.layers)
  {
    document.layers[layerId].moveTo(clientX, clientY);
  }
  else
  {
    var scrollCoords = getScrollCoords();

    var layer;

    if (document.all)
      layer = document.all[layerId];
    else if (document.getElementById)
      layer = document.getElementById(layerId);
      /*
    if (window.opera && layer)
    {
      layer.style.left = clientX + 'px';
      layer.style.top = clientY + 'px';
    }
    else
    */
    if (layer && scrollCoords)
    {
      if (clientX!=-1)
      {
        layer.style.left = scrollCoords.x + clientX + 'px';
      }
      else
      {
        layer.style.right = 3;
      }
      layer.style.top = scrollCoords.y +clientY + 'px';
    }
  }
}

function hardmoveLayer (layerId)
{
  if (document.layers)
  {
    document.layers[layerId].moveTo(clientX, clientY);
  }
  else
  {
    var layer;
     if (document.all)
      layer = document.all[layerId];
    else if (document.getElementById)
      layer = document.getElementById(layerId);

      if(navigator.appName == "Netscape"){
        clientY+=1;
        clientX+=1;
      }

      if (clientX!=-1)
      {
        layer.style.left = clientX + 'px';
      }
      else
      {
        layer.style.right = 3;
      }
      layer.style.top = clientY + 'px';

  }
}

function setCoordsEx(layerId)
{
  moveLayer(layerId)
}

function setCoords()
{
  moveLayer('SynonymsMenu')
}

//Popup Menus
function toggleBgColor(elm, bgColor)
{
  elm.style.backgroundColor = bgColor;
}

function hideSynonymsMenu()
{
  synonymsMenuShowed = false;
//  alert('oops');
  hideLayer('SynonymsMenu');
}

function hideSearchMenu()
{
  hideLayer('SearchMenu');
}

function hideSizeMenu()
{
  hideLayer('SizeMenu');
}

function hideNewPanel(idname, panelname)
{
  //alert(idname);
  hideLayer(idname);
  document.getElementById(panelname).style.background='';
}

function hideLayerRight(mnodeId)
{
    node = document.getElementById(mnodeId);
    img = document.getElementById(mnodeId+"Img");
    if (node)
    {
        node.style.display = 'none';
        img.src="/images/new/arrow_down.gif";
    }

}

function hideAllRightMenu()
{
  hideLayerRight('advancedButtons');
  hideLayerRight('protectedForm');
  hideLayerRight('bioForm');
  hideLayerRight('customForm');
  hideLayerRight('linkerForm');
  hideLayerRight('endingsForm');
  hideLayerRight('beginningsForm');
  hideLayerRight('transitionsForm');
  hideLayerRight('commonForm');
  hideLayerRight('quotesForm');
  hideLayerRight('adjustForm');
  hideLayerRight('keywordForm');
  hideLayerRight('boldForm');
  hideLayerRight('replaceForm');
  hideLayerRight('generatorForm');
  hideLayerRight('templateForm');
}


function hideAllNewPanel()
{
  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  hideNewPanel('MenuAuthor', 'APanel');
}

function changeMenuSize(AWidth)
{
  //alert(length([%articles.name%]));

 // alert(document.getElementById('LeftMenuColumn').style.width);
  if (AWidth==-1)
  {
    AWidth = '199';
  }
//  alert(document.getElementById('LeftMenuColumn').style.width);
  document.getElementById('LeftMenuColumn').style.width = AWidth;
  document.getElementById('LeftMenuColumn2').style.width = AWidth+59;
  document.getElementById('LeftMenuColumn5').style.width = AWidth+59;
   document.getElementById('LeftMenuColumn6').style.width = AWidth+59;
   document.getElementById('LeftMenuColumn7').style.width = AWidth+59;
//  document.getElementById('LogoutTable').style.width = AWidth+77;
    document.getElementById('TopBaner').style.width = AWidth+583;
//  alert(AWidth);
  document.getElementById('folderNameDiv').style.width = AWidth;
//  document.getElementById('LeftMenuColumn3').style.width = AWidth;
//  document.getElementById('LeftMenuColumn4').style.width = AWidth;
//  document.getElementById('LeftMenuColumn6').style.width = AWidth;
  //  document.getElementById('LeftMenuColumn').style.width = normalMenuSize;
  //document.getElementById('fullNameArticle').innerHTML = "<nobr><a style=\"margin-left:4px\" href=\"#\" onclick=\"javascript: setFolderName(0, 'ROOT', '[%articles.internal_name%]');loadArticle([%articles.id%]);return false;\"> [%articles.name%] </a></nobr>";
  for(i=0;i<document.all.length;i++)
  {
    if ((document.all[i].name=="articleDiv")||(document.all[i].name=="folderDiv"))
    {
      document.all[i].style.width = Math.ceil(AWidth-30);
    }
    if ((document.all[i].name=="searchDiv"))
    {
      document.all[i].style.width = Math.ceil(AWidth);
    }
  }
  lastMenuSize = AWidth;
  hideSizeMenu();
}

function showSizeMenu(evt)
{
  showLayer('SizeMenu');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
    clientX = evt.clientX;
    clientY = evt.clientY;

  }
//  clientX-=80;
  setCoordsEx('SizeMenu');

}
function intWidthLayer(widthlayer){
  var str;
  var intwidth;
  str=widthlayer.substr(0, 3);
  intwidth=parseInt(str);
  return(intwidth);
}

function getPos(el,sProp) {
        var iPos = 0;
        while (el!=null) {
                iPos+=el["offset" + sProp]
                el = el.offsetParent
        }
        return iPos

}

function showNewCPanel(evt)
{
  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  hideNewPanel('MenuAuthor', 'APanel');
  showLayer('MenuCommon');
  glEvent = evt;
  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY =  lMenuY_Base;

  }

//  alert('clientX='+clientX+', pos='+pp);
//  clientX = pp+;
// alert(lMenuY_Base);
  hardmoveLayer('MenuCommon');
}

function showNewTPanel(evt)
{
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  hideNewPanel('MenuAuthor', 'APanel');
  showLayer('MenuTransitions');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY = (lMenuY_Base+28);
  }
  hardmoveLayer('MenuTransitions');
}

function showNewBPanel(evt)
{
  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  hideNewPanel('MenuAuthor', 'APanel');
  showLayer('MenuBegin');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY = (lMenuY_Base+28*2);
  }
  hardmoveLayer('MenuBegin');
}

function showNewEPanel(evt)
{
  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  hideNewPanel('MenuAuthor', 'APanel');
  showLayer('MenuEnding');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY = (lMenuY_Base+28*3);
  }
  hardmoveLayer('MenuEnding');
}

function showNewQPanel(evt)
{

  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  hideNewPanel('MenuAuthor', 'APanel');
  showLayer('MenuQuotes');
  glEvent = evt;

if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY = (lMenuY_Base+28*4);
  }
  hardmoveLayer('MenuQuotes');

}

function showNewAPanel(evt)
{
  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuInfo', 'IPanel');
  showLayer('MenuAuthor');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY = (lMenuY_Base+28*5);
  }
  hardmoveLayer('MenuAuthor');
}

function showNewIPanel(evt)
{
  hideNewPanel('MenuTransitions', 'TPanel');
  hideNewPanel('MenuBegin', 'BPanel');
  hideNewPanel('MenuCommon', 'CPanel');
  hideNewPanel('MenuEnding', 'EPanel');
  hideNewPanel('MenuQuotes', 'QPanel');
  hideNewPanel('MenuAuthor', 'APanel');
  showLayer('MenuInfo');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
   var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
   clientX = pp+lMenuX_Base;
   clientY = (lMenuY_Base+28*6);
  }
  hardmoveLayer('MenuInfo');
}

function showSearchMenu()
{
  if (wasSearch)
  {
    showLayer('SearchMenu');
  }
  else
  {
    alert('Please, make at least one search request to see results.');
  }
}

function showSearchOptions(evt)
{
  showLayer('SearchOptions');

  glEvent = evt;
  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
    var pp;
   var el = getelementbyid2('CPanel');
   pp = getPos(el,"Left");
    clientX = pp+lMenuX_Base;
    clientY = evt.clientY;

  }
  clientX-=80;
  setCoordsEx('SearchOptions');
}

function hideSearchOptions()
{
  hideLayer('SearchOptions');
}

function hideSpellingMenu()
{
  hideLayer('SpellingMenu');
}

//Tree View routines
function ToggleNode(node)
{
  if (node.style.display == 'none')
  {
    node.style.display = 'block';
  }
  else
  {
    node.style.display = 'none';
  }

}


function ToggleOriginal()
{
//  if (browser!='FireFox')
  {

    orig = document.getElementById('original');

    if (orig)
    {
      if (orig.style.display == 'none')
      {
                setContent('origButton', 'Hide original');
                   orig.style.display = 'block';
                  Id=document.getElementById('ArticleId').value;
                  makeRequest('/get_article/','id='+Id, alertArticleOriginal);
				lMenuY_Base = 574;				
//                HideLayer('ArticleText');
      }
      else
      {
                setContent('origButton', 'Show original');
                   orig.style.display = 'none';
				   lMenuY_Base = 197;
                //HideLayer('ArticleOriginal');
      }
    }
  }
  return false;
}


function ToggleNodeById(nodeId)
{
//  if (browser!='FireFox')
  {
    node = document.getElementById(nodeId);
    img = document.getElementById(nodeId+"Img");
    if (node)
    {
      if (node.style.display == 'none')
      {
        node.style.display = 'block';
        img.src="/images/new/arrow_up.gif";
      }
      else
      {
        node.style.display = 'none';
        img.src="/images/new/arrow_down.gif";
      }
    }
  }
}

function stripAllTags(html)
{
  return html.replace(/(<([^>]+)>)/ig,"");
}
/*
function chr(CharCode)
{
  return String.fromCharCode(CharCode);
}
*/

//find and replace
    /*
    for (var i = 0; i < Expression.length; i++)
    {
      if (Expression.charAt(i)==rs.charAt(0))
      {
//        alert('Found: '+rs.charAt(0));
        temp += rr.charAt(0);
      }
      else if (Expression.charAt(i)==rs.charAt(1))
      {
//        alert('Found: '+rs.charAt(1));
        temp += rr.charAt(1);
      }
      else if (Expression.charAt(i)==rs.charAt(2))
      {
//        alert('Found: '+rs.charAt(0));
        temp += rr.charAt(2);
     }
      else
      {
        temp += Expression.charAt(i);
      }
    }
    */

function Replace(Expression, Find, Replace)
{
  var temp = Expression;
  var a = 0;

  for (var i = 0; i < Expression.length; i++)
  {
    a = temp.indexOf(Find);
    if (a == -1)
      break
    else
      temp = temp.substring(0, a) + Replace + temp.substring((a + Find.length));
  }

  return temp;
}

function stripTags(html)
{
//  return html.replace(/(<([^>]+)>)/ig,"");
//  alert('stripTags()');
  var res = html.replace(/<\/?(?:(?:[bB][a-zA-Z])|(?:[c-zC-Z!]))[^>]*>/g,"");
  var rs = "????";
  var rr = "'\"\"*";

//  var re = new RegExp(String.fromCharCode(92), "g");
//  for(i=0;i<rs.length;i++)
  {
//    res = Replace(res, rs.charAt(i), rr.charAt(i));
  }
  return res;
}

function stripSpans(html)
{
  html = html.replace(/(<span([^>]+)>)/ig,"");
  html = html.replace(/<\/span>/ig,"");
  return html;
}

function findAndReplace()
{

  var s = getContent('ArticleText');

  var f = document.getElementById('farFind').value;

  var ra = document.getElementById('farMatchWord').checked;
  var cs = document.getElementById('farCaseSensitive').checked;

  var r = document.getElementById('farReplace').value;


  end_sp = (ra)?"(\\b)":"";
  beg_sp = (ra)?"(\\b)":"";
  end_sm = (ra)?"$2":"";
  beg_sm = (ra)?"$1":"";

  var re = new RegExp(beg_sp+f+end_sp, (cs)?"gm":"gmi");
  s = s.replace(re, beg_sm+r+end_sm);
  /*
  if (ra)
  {
    re = new RegExp("(^)"+f+end_sp, (cs)?"gm":"gmi");
    s = s.replace(re, beg_sm+r+end_sm);
  }
  */
  setContent('ArticleText', s);

  return false;
}

function boldWords()
{

  var s = getContent('ArticleText');

  var f = trim(document.getElementById('boldWord').value);

  var ra = document.getElementById('boldAll').checked;
//  alert(s);

  end_sp = "([\\s\\.,\\\"\\?]+)";
  beg_sp = "([\\s\\.,\\\"\\?]*)";
//  beg_sp = "([^\\B]+)";
//  end_sp = "([^\\B]+)";
  beg_sm = "$1<b>";
  end_sm = "</b>$3";

//  alert(beg_sp+f+end_sp);
  var re = new RegExp("([^b][>]+)("+f+")([<]+)", (ra)?"gmi":"mi");
  s = s.replace(re, beg_sm+"$2"+end_sm);

//  alert("([>]+)("+f+")([<]+)");
  var re1 = new RegExp(beg_sp+"("+f+")"+end_sp, (ra)?"gmi":"mi");

  setContent('ArticleText', s.replace(re1, beg_sm+"$2"+end_sm));

  return false;
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g,"");
}

function wordsCount(y, kw, minLength)
{

  var r = 0;
  y = stripAllTags(y);
  a = y.replace('\n\r',' ');
  a = a.replace(newLine,' ');
  a = a.replace('\n',' ');

  a = a.split(' ');
  keywordsCount = 0;
  for (z=0; z<a.length; z++)
  {
    if (a[z].length > minLength) r++;
//    alert(a[z]);
    stripped = stripAllTags(a[z]);
//    alert(stripped);
    if (stripped.toUpperCase()==kw.toUpperCase())
    {
      keywordsCount++;
    }
  }
  return r;
}

function findDensity()
{
//   alert('ok');
   var s = trim(stripAllTags(getContent('ArticleText')));

   kw = trim(document.getElementById('keyword').value);
   var re = new RegExp("([\\s]+)", "g");
   kw = kw.replace(re, " ") 
//   alert(kw);
   var re = new RegExp(kw,"img");
   s = s.replace(re, "#KEYWORD#");
   kw = "#KEYWORD#";
   if (kw.length>0)
   {
     wc = wordsCount(s, kw, 2);
//     alert(wc);
     dens = Math.floor(10000*keywordsCount/wc)/100;
//     alert(dens);
     if (dens>1)
     {
       setContent('density', dens+'%');
     }
     else
     {
       setContent('density', '<1%');
     }
   }
   else
   {
     alert('Enter keyword!');
   }
   kw = document.getElementById('keyword').value;
}

function setManualDensity()
{
  if (!parsedAuto)
  {
    var s = trim(stripAllTags(getContent('ArticleText')));
    var wc = wordsCount(s, 'Lorem####', 0);
  //  alert(wc);
    dens = Math.floor(10000*manualChanges/wc)/100;
    if (dens>100)
    {
      dens = 100;
    }
    if (dens>1)
    {
      setContent('panelDensity', dens+'%');
    }
    else
    {
      setContent('panelDensity', '<1%');
    }
  }
}

function findDensityByVal(kw)
{
//   alert('ok');
   var s = trim(stripAllTags(getContent('ArticleText')));

//   kw = document.getElementById('keyword').value;
//   if (kw.length>0)
   {
     wc = wordsCount(s, kw, 0);
//     alert(wc);
     dens = Math.floor(10000*keywordsCount/wc)/100;
//     alert(dens);
     if (dens>1)
     {
       setContent('panelDensity', dens+'%');
     }
     else
     {
       setContent('panelDensity', '<1%');
     }
   }
}

function setParseDensity(dens)
{
  if (dens>1)
  {
    setContent('panelDensity', dens+'%');
  }
  else
  {
    setContent('panelDensity', '<1%');
  }
}

function trimParagraphs(s)
{
  s = s.replace(/\<br\s*\/\>/gmi,'');
  s = s.replace(/\<br\>/gmi,'');
  s = s.replace(/\<p\>/gmi,'');
  s = s.replace(/\<\/p\>/gmi,'');
  return s;
}

function isSpace(ch)
{
  //dumb!
  var t = ch.replace(/([\s])+/,'');
  return t!=ch;
}

function adjustLength2()
{
  if (!lastTextBeforeAdjust)
  {
    var s = trim(getContent('ArticleText'));
    lastTextBeforeAdjust = s;
  }
  else
  {
    var s = lastTextBeforeAdjust;
  }

  ln = document.getElementById('adjustLength').value;
  if (ln.length>0)
  {
//    s = trimParagraphs(s);
    s = s.replace('\n\r',' ');
    s = s.replace(newLine,' ');
    s = s.replace('\n',' ');
    charCnt = 0;
    insideTag = false;
    result = '';
    lastWasSpace = false;
    canAdd = true;
    tag = '';
//    dbg = getContent('debug');
    dbg = '';


    for(i=0;i<s.length;i++)
    {
//      alert(s.substring(i,i+1));
      curChar = s.substring(i,i+1);
      canAdd = true;
      switch(curChar)
      {
        case '<':
        {
          insideTag = true;
          tag = '<';
//          canAdd = false;
          break;
        }
        case '>':
        {
    //      if (s.substring(i-1,i)!='\\')
          {
            insideTag = false;
//            document.write("Tag: "+tag.replace(/</, "&lt;"));
            tag += '>';
//            alert(tag);
            if ((tag==PARAGRAPH_TAG_IE)||(tag==PARAGRAPH_TAG))
            {
//              alert("--"+tag+""+PARAGRAPH_TAG_IE+ ""+PARAGRAPH_TAG);
              tag = '';
              charCnt = 0;
//              dbg += "reseting counter <br />";
            }
          }
          break;
        }
        default:
        {
          //canAdd = false;
          if (!insideTag)
          {
            if (isSpace(curChar))
            {
              canAdd = !lastWasSpace;
              charCnt++;
              lastWasSpace = true;
            }
            else
            {
              lastWasSpace = false;

//              canAdd = false;
            }
          }
          else
          {
            tag += curChar;
      //      canAdd = false;
          }
          break;
        }
      }
      if (canAdd)
      {
        result = result+curChar;
//        dbg+="add "+curChar.replace(/</, "&lt;")+"<br />";
//        dbg += curChar+" "+isSpace(curChar)+ " <br /";
        if ((charCnt>ln)&&(isSpace(curChar))&&(!insideTag))
        {
//          dbg += "adding para<br />";
          result=trim(result)+PARAGRAPH_TAG;

          charCnt = 0;
        }

      }

      if (!insideTag)
      {
        charCnt++;
      }
  //    dbg += charCnt+' '+ln+'<br />';


    }
//    alert(result);
    setContent('ArticleText', result);
  }
  else
  {
    alert('Enter the length!');
  }
//  setContent('debug', dbg);
}



function adjustLength()
{
  if (!lastTextBeforeAdjust)
  {
    var s = trim(getContent('ArticleText'));
    lastTextBeforeAdjust = s;
  }
  else
  {
    var s = lastTextBeforeAdjust;
  }

  ln = document.getElementById('adjustLength').value;
  ln = parseInt(ln);
  if (ln>0)
  {
//    s = trimParagraphs(s);
    s = s.replace('\n\r',' ');
    s = s.replace(newLine,' ');
    s = s.replace('\n',' ');
    var charCnt = 0;
    var insideTag = false;
    var result = '';
    lastWasSpace = false;
    canAdd = true;
    var tag = '';
//    dbg = getContent('debug');
    dbg = '';

    var curWord = "";
    var curLine = "";
    var breakLine = false;
    var curChar = '';

    for(i=0;i<s.length;i++)
    {
//      alert(s.substring(i,i+1));
      breakLine = false;
      curChar = s.substring(i,i+1);
      if(curChar==' ' && !insideTag)
      {
            if((curLine.length + curWord.length + 1) > ln)
            {
                result += curLine+PARAGRAPH_TAG;
                curLine = curWord;
                curWord='';

                continue;
            }else
            {
                curLine += ' ' + curWord;
                curWord='';
                continue;
            }
      }
      if(insideTag) tag += curChar;
      if(curChar=="<")
        {
                insideTag = true;
            tag = "<";
        }
      if(insideTag && curChar==">")
        {
            insideTag = false;
            if ((tag==PARAGRAPH_TAG_IE)||(tag==PARAGRAPH_TAG))
            {
                breakLine = true;
            }
        }
      curWord += curChar;
      if(breakLine)
        {
            if((curLine.length + curWord.length + 1) > ln)
            {
                result += curLine + PARAGRAPH_TAG;
                curLine = curWord;
                curWord='';

            }else
            {
                result += curLine + ' ' + curWord;
                curLine = '';
                curWord='';
            }
        }
    }
//    alert(result);
    setContent('ArticleText', result);
  }
  else
  {
    alert('Enter the length!');
  }
//  setContent('debug', dbg);
}


function createURLFromArray(items, varName)
{
  var res = '';
  for(i=0;i<items.length;i++)
  {
    res+=((i!=0)?'&':'')+varName+URLEncode('['+items[i].value+']')+'='+URLEncode(items[i].innerHTML);
  }
//  alert(res);
  return (res);
}

function createURLFromArrayEx(items, varName)
{
  var res = '';
  for(i=0;i<items.length;i++)
  {
    res+=((i!=0)?'&':'')+varName+URLEncode('['+i+']')+'='+URLEncode(items[i]);
  }
//  alert(res);
  return (res);
}

function createURLFromTextarea(textarea, varName)
{
  var res = '';
  var items = textarea.innerHTML.split(/;/);
  if (items)
  {
    for(i=0;i<items.length;i++)
    {
      res+=((i!=0)?'&':'')+varName+URLEncode('['+i+']')+'='+URLEncode(trim(items[i]));
    }
  }
  else
  {
    res = '';
  }
//  alert(res);
  return (res);
}

function addRulesFromFile(val, action, frame)
{
  sl = document.getElementById(frame);
  sl1 = document.getElementById(frame+'Panel');
  n = document.getElementById('newRules');
  n.value=val;
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n.value;
  postProtected(action, sl);
}

function postProtected(anAction, items)
{
  setLoadingAlone(true);
  if (document.getElementById('FolderId'))
  {
    cat_id = document.getElementById('FolderId').value;
  }
  else
  {
    cat_id = 0;
  }
//  alert(cat_id);
  lastRewriteId = '';
//  alert(createURLFromArray(items, 'items'));
  makeRequestEx('/rewrite_rules/','action='+anAction+'&'+'&category_id='+cat_id+'&'+createURLFromArray(items, 'items'), alertRewriteRules);

  return false;
}

function processGenerator(anAction)
{

  cat_id = document.getElementById('FolderId').value;
  folder = document.getElementById('generatorFolder').value;
  articleId = document.getElementById('ArticleId').value;
  if (!articleId)
  {
    alert('Please, load source article');
  }
  else
  {
    if (!folder)
    {
      alert('Please, enter folder name');
    }
    else
    {
      if (generatorKeys.length>0)
      {
        itemsKeys = new Array();
        itemsWords = new Array();
        for(i=0;i<generatorKeys.length;i++)
        {
          if (generatorHash[generatorKeys[i]+'#'+generatorWords[i]])
          {
            itemsKeys[itemsKeys.length] = generatorKeys[i];
            itemsWords[itemsWords.length] = generatorWords[i];
          }
        }
        sKeys = createURLFromArrayEx(itemsKeys, 'keys');
        sWords = createURLFromArrayEx(itemsWords, 'words');
        setLoadingAlone(true);
        makeRequestEx('/create_articles/','folder='+folder+'&category_id='+cat_id+'&id='+articleId+'&'+sKeys+"&"+sWords, alertGenerator);
      }
      else
      {
        alert('Please select synonyms');
      }
    }
  }
  return false;
}

function getProtected(anAction)
{
  setLoadingAlone(true);
  cat_id = document.getElementById('FolderId').value;

//  alert(cat_id);
  lastRewriteId = anAction+'Cell';
  makeRequestEx('/rewrite_rules/','action='+anAction+'&'+'&category_id='+cat_id, alertRewriteRules);

  return false;
}

function addToProtected()
{
  sl = document.getElementById('protectedWords');
  n = document.getElementById('newProtected');
  sl.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  //alert(createURLFromArray(sl, 'items'));
  postProtected('protected', sl);
}

function removeFromProtected()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {
    sl = document.getElementById('protectedWords');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {
        sl[i] = null;
        i--;
      }
      i++;
    }

    postProtected('protected', sl);
  }
}

function addToGenerator()
{
  sl = document.getElementById('generatorWords');
  n = document.getElementById('newGenerator');
  n1 = document.getElementById('generatorSynonyms');
  sl.length++;
  txtval = n1.innerHTML;
  if (!txtval)
  {
    txtval = n1.value;
  }
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = txtval;
//  alert(sl.length);
  postProtected('generator', sl);
}

function removeFromGenerator()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('generatorWords');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {
        sl[i] = null;
        i--;
      }
      i++;
    }

    postProtected('generator', sl);
  }
}

function addToCommon()
{
  sl = document.getElementById('commonPhrases');
  sl1 = document.getElementById('commonPhrasesPanel');
  n = document.getElementById('newCommonPhrase');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n.value;
  postProtected('common', sl);
}

function removeFromCommon()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('commonPhrases');
        sl1 = document.getElementById('commonPhrasesPanel');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('common', sl);
  }
}

function addToTransitions()
{
  sl = document.getElementById('transitionsPhrases');
  sl1 = document.getElementById('transitionsPhrasesPanel');
  n = document.getElementById('newTransitionsPhrase');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n.value;
  postProtected('transitions', sl);
}

function removeFromTransitions()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('transitionsPhrases');
        sl1 = document.getElementById('transitionsPhrasesPanel');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('transitions', sl);
  }
}

function addToQuotes()
{
  sl = document.getElementById('quotesPhrases');
  sl1 = document.getElementById('quotesPhrasesPanel');
  n = document.getElementById('newQuotesPhrase');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n.value;
  postProtected('quotes', sl);
}

function removeFromQuotes()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('quotesPhrases');
    sl1 = document.getElementById('quotesPhrasesPanel');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('quotes', sl);
  }
}

function addToBeginnings()
{
  sl = document.getElementById('beginningsPhrases');
  sl1 = document.getElementById('beginningsPhrasesPanel');
  n = document.getElementById('newBeginningsPhrase');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n.value;
  postProtected('beginnings', sl);
}

function removeFromBeginnings()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('beginningsPhrases');
        sl1 = document.getElementById('beginningsPhrasesPanel');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('beginnings', sl);
  }
}

function addToEndings()
{
  sl = document.getElementById('endingsPhrases');
  sl1 = document.getElementById('endingsPhrasesPanel');
  n = document.getElementById('newEndingsPhrase');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n.value;
  postProtected('endings', sl);
}

function removeFromEndings()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('endingsPhrases');
        sl1 = document.getElementById('endingsPhrasesPanel');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('endings', sl);
  }
}

function addToLinks()
{
  sl = document.getElementById('linkWords');
  n = document.getElementById('newLinkWord');
  n1 = document.getElementById('newLink');
  sl.length++;
  sl[sl.length-1].innerHTML = n.value+':'+n1.value;
  sl[sl.length-1].value = n.value;
  postProtected('links', sl);
}

function removeFromLinks()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('linkWords');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
        i--;
      }
      i++;
    }
    postProtected('links', sl);
  }
}

function getCurrentLink(elem)
{
  sl = document.getElementById('linkWords');
  i = 0;
   while (i<sl.length)
   {
     if (sl[i].selected)
     {
       text = sl[i].innerHTML;
     }
     i++;
   }
//   alert(text);
   nlink = document.getElementById('newLink');
   nword = document.getElementById('newLinkWord');
   lnk = text.split(':');
   nlink.value = lnk[1]+':'+lnk[2];
   nword.value = lnk[0];

   /*sl = document.getElementById('linkWords');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('newLink');
      n1 = document.getElementById('newLinkWord');
      lnk = sl[i-1].innerHTML.split(':');
      n.value = lnk[1]+':'+lnk[2];
      n1.value = lnk[0];
    }
    i++;
  }
//  postProtected('custom', sl);
*/
}

function saveLink()
{
  sl = document.getElementById('linkWords');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('newLink');
      n1 = document.getElementById('newLinkWord');
//      sl[i].value = n1.value;
      sl[i].innerHTML = n1.value+':'+n.value;
    }
    i++;
  }
  postProtected('links', sl);
}


function addToCustom()
{
  sl = document.getElementById('customInfo');
  sl1 = document.getElementById('customInfoPanel');
  n = document.getElementById('customTitle');
  n1 = document.getElementById('customText');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n1.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n1.value;
  postProtected('custom', sl);
}

function removeFromCustom()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('customInfo');
        sl1 = document.getElementById('customInfoPanel');
    i = 0;
    while (i<sl.length)
    {;
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('custom', sl);
  }
}

function getCurrentCustom()
{
  sl = document.getElementById('customInfo');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('customTitle');
      n1 = document.getElementById('customText');
      n1.value = sl[i].value;
      n.value = sl[i].innerHTML;
    }
    i++;
  }
//  postProtected('custom', sl);
}

function saveCustom()
{
  sl = document.getElementById('customInfo');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('customTitle');
      n1 = document.getElementById('customText');
      sl[i].value = n1.value;
      sl[i].innerHTML = n.value;
    }
    i++;
  }
  postProtected('custom', sl);
}

function processCustom()
{
  sl = document.getElementById('customInfoPanel');
  i = 0;
  sel = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      sel++;
      if (editing)
      {
        insertAtCursor('EditArticleText', sl[i].value);
      }
      else
      {
        alert('You Should Be In Edit Mode And Click Exactly Where You Want Content To Be Placed. Then Click "Insert" Button');
      }
    }
    i++;
  }
  if (!sel)
  {
    alert('Please select an item from the listbox above.');
  }
}

function addToBio()
{
  sl = document.getElementById('customBio');
  sl1 = document.getElementById('customBioPanel');
  n = document.getElementById('bioTitle');
  n1 = document.getElementById('bioText');
  sl.length++;
  sl1.length++;
  sl[sl.length-1].innerHTML = n.value;
  sl[sl.length-1].value = n1.value;
  sl1[sl1.length-1].innerHTML = n.value;
  sl1[sl1.length-1].value = n1.value;
  postProtected('bio', sl);
}

function removeFromBio()
{
  if (confirm("Are you sure you want to remove the selected item?"))
  {

    sl = document.getElementById('customBio');
        sl1 = document.getElementById('customBioPanel');
    i = 0;
    while (i<sl.length)
    {
      if (sl[i].selected)
      {

        sl[i] = null;
                sl1[i] = null;
        i--;
      }
      i++;
    }
    postProtected('bio', sl);
  }
}

function getCurrentBio()
{
  sl = document.getElementById('customBio');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('bioTitle');
      n1 = document.getElementById('bioText');
      n1.value = sl[i].value;
      n.value = sl[i].innerHTML;
    }
    i++;
  }
//  postProtected('custom', sl);
}

function getCurrentGen()
{
  sl = document.getElementById('generatorWords');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('generatorSynonyms');
      n1 = document.getElementById('newGenerator');
      n1.value = sl[i].innerHTML;
      ss = sl[i].value;
      n.innerHTML = ss;
      n.value = ss;
    }
    i++;
  }
//  postProtected('custom', sl);
}

function saveCurrentGen()
{
  sl = document.getElementById('generatorWords');
  i = 0;
  n = document.getElementById('generatorSynonyms');
  n1 = document.getElementById('newGenerator');

  found = false;
  while (i<sl.length)
  {
    if (sl[i].innerHTML == n1.value)
    {
      sl[i].innerHTML = n1.value;
      sVal = n.innerHTML;
      if (browser=="Opera")
      {
        sVal = n.value;
      }
      sl[i].value = sVal;
//      alert(sl[i].value);
      found = true;
      break;

//      alert(n.innerHTML);
    }
    i++;
  }
  if (found)
  {
    postProtected('generator', sl);
  }
  else
  {
    addToGenerator();
  }
}

function removeBioFromText()
{
  sl = document.getElementById('customBio');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      textToRemove = sl[i].value;
      s = getContent('ArticleText');
//      s = stripTags(s);
      l = textToRemove.length;
      sbstr = s.substr(s.length-l,l);
//      alert(sbstr);
      if (sbstr==textToRemove)
      {
        setContent('ArticleText',s.substr(0,s.length-l));
  //      editEnd();
//        processLinks();
      }
    }
    i++;
  }
//  postProtected('custom', sl);
}

function saveBio()
{
  sl = document.getElementById('customBio');
  i = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      n = document.getElementById('bioTitle');
      n1 = document.getElementById('bioText');
      sl[i].value = n1.value;
      sl[i].innerHTML = n.value;
    }
    i++;
  }
  postProtected('custom', sl);
}


function processBio()
{
  sl = document.getElementById('customBioPanel');
  i = 0;
  sel = 0;
  while (i<sl.length)
  {
    if (sl[i].selected)
    {
      sel++;
      if (editing)
      {
//        insertAtCursor('EditArticleText',newLine+sl[i].value);
        addText('EditArticleText', newLine+sl[i].value);
      }
      else
      {
        alert('You must be in EDIT mode to use INSERT BIO function !')
// turned off by sneg 06.06.2006
//        s = getContent('ArticleText');
//        s += PARAGRAPH_TAG+sl[i].value;
//        setContent('ArticleText', s);
      }
    }
    i++;
  }
  if (!sel)
  {
    alert('Please select an item from the listbox above.');
  }
}

function strpos(str, subs, start)
{
  for (var i = start; i < str.length; i++)
    if (str.substring(i, i+subs.length) == subs)
      return i;
  return -1;
}

function processLinks()
{
  sl = document.getElementById('linkWords');
  i = 0;
  s = getContent('ArticleText');
//  alert(s);
  if (sl.length>0)
  {
    while (i<sl.length)
    {
      tmp = sl[i].innerHTML;
      tmp = tmp.replace('http://','');
      lnk = tmp.split(':');
  //    alert(lnk.length);

      r_exp = "([\\s>])"+lnk[0]+"([\\s<])";
//      alert(r_exp);
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      r_exp = "("+PARAGRAPH_TAG+")"+lnk[0]+"("+PARAGRAPH_TAG+")";
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      r_exp = "("+PARAGRAPH_TAG+")"+lnk[0]+"(\\s)";
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      r_exp = "(\\s)"+lnk[0]+"(\\s)"+"("+PARAGRAPH_TAG+")";
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      r_exp = "("+PARAGRAPH_TAG_IE+")"+lnk[0]+"("+PARAGRAPH_TAG_IE+")";
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      r_exp = "("+PARAGRAPH_TAG_IE+")"+lnk[0]+"(\\s)";
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      r_exp = "(\\s)"+lnk[0]+"(\\s)"+"("+PARAGRAPH_TAG_IE+")";
      re = new RegExp(r_exp, "gm");
      s = s.replace(re, "$1"+"<a class='LinkerWord' target='_blank' href='http://"+lnk[1]+"'>"+lnk[0]+"</a>"+"$2");

      i++;
    }
    setContent('ArticleText', s);
  }
}

function processCommon()
{

  sl = document.getElementById('commonPhrases');
  i = 0;
  s = getContent('ArticleText');
  newParagraph = PARAGRAPH_TAG+PARAGRAPH_TAG;
  newParagraphIE = "<BR><BR>";

  //start = 0;
  lastPos = 0;
  cnt = sl.length;


//  alert(hash.length);
//  alert(s);
  if (cnt>0)
  {
    hash = new Array(cnt);
    inserted = 0;

    while (lastPos!=-1)
    {
      lastPos = strpos(s, newParagraph, lastPos+1);
//      alert(lastPos);
      if (lastPos!=-1)
      {
        rndIndex = Math.floor(cnt*Math.random());
        while (hash[rndIndex])
        {
          rndIndex = Math.floor(cnt*Math.random());
        }
   //     alert(rndIndex);
        s = s.substring(0, lastPos)+PARAGRAPH_TAG+sl[rndIndex].innerHTML+PARAGRAPH_TAG+s.substring(lastPos+newParagraph.length, s.length);
        hash[rndIndex] = true;
        if (inserted>=cnt)
        {
          break;
        }
      }
    }
    lastPos = 0;
    while (lastPos!=-1)
    {
      lastPos = strpos(s, newParagraphIE, lastPos+1);
//      alert(lastPos);
      if (lastPos!=-1)
      {
        rndIndex = Math.floor(cnt*Math.random());
        while (hash[rndIndex])
        {
          rndIndex = Math.floor(cnt*Math.random());
        }

//        alert(rndIndex);
        s = s.substring(0, lastPos)+PARAGRAPH_TAG+sl[rndIndex].innerHTML+PARAGRAPH_TAG+s.substring(lastPos+newParagraphIE.length, s.length);
        hash[rndIndex] = true;
        inserted++;
        if (inserted>=cnt)
        {
          break;
        }

      }
    }
    setContent('ArticleText', s);
  }
}

function loadArticle(anId)
{
  setLoadingAloneEx(true);
  saveArticleText();
  hideSynonymsMenu();
  document.getElementById('ArticleId').value=anId;
//  elm = document.getElementById('newFolder');
  makeRequest('/get_article/','id='+anId, alertArticle);
  lastTextBeforeAdjust = '';
  manualChanges = 0;
  parsedAuto = 0;
  synonymsTable = new Array();
  originalsTable = new Array();
  generatorWords = new Array();
  generatorKeys = new Array();
  generatorHash = new Array();
//alert(anId);
//  showLayer();
  return false;
}

function revertToOriginal()
{
  saveArticleText();
  id = document.getElementById('ArticleId').value;
  if (id)
  {
    loadArticle(id);
  }
}

function insertStopTag()
{
  if (!editing)
  {
    /*
    s = getContent('ArticleText');
    s += ' %STOP% ';
    setContent('ArticleText', s);
    */
    alert('You Should Be In Edit Mode And Click Exactly Where You Want Stop Tag To Be Placed.');
  }
  else
  {
    insertAtCursor('EditArticleText', ' %STOP% ');
  }

//  saveArticleText();
}

function getSelectedCommonPhrase()
{
  sl = document.getElementById('commonPhrasesPanel');
  for (var i=0; i<sl.length; i++)
  {
    if (sl[i].selected)
    {
      return sl[i].value;
    }
  }
  alert("Please, select a phrase.");
  return "";
}

function getSelectedTransitionsPhrase()
{
  sl = document.getElementById('transitionsPhrasesPanel');
  for (var i=0; i<sl.length; i++)
  {
    if (sl[i].selected)
    {
      return sl[i].value;
    }
  }
  alert("Please, select a phrase.");
  return "";
}

function getSelectedQuotesPhrase()
{
  sl = document.getElementById('quotesPhrasesPanel');
  for (var i=0; i<sl.length; i++)
  {
    if (sl[i].selected)
    {
      return sl[i].value;
    }
  }
  alert("Please, select a phrase.");
  return "";
}

function insertCommonPhrase()
{
  if (!editing)
  {
    alert('You Should Be In Edit Mode And Click Exactly Where You Want Content To Be Placed. Then Click "Insert" Button');
    /*s = getContent('ArticleText');
    s += getSelectedCommonPhrase();
    setContent('ArticleText', s);
    */
  }
  else
  {
    insertAtCursor('EditArticleText', ' '+getSelectedCommonPhrase()+' ');
  }

//  saveArticleText();
}

function insertTransitionsPhrase()
{
  if (!editing)
  {
    alert('You Should Be In Edit Mode And Click Exactly Where You Want Content To Be Placed. Then Click "Insert" Button');
  }
  else
  {
    insertAtCursor('EditArticleText', getSelectedTransitionsPhrase());
  }

//  saveArticleText();
}

function insertQuotesPhrase()
{
  if (!editing)
  {
    alert('You Should Be In Edit Mode And Click Exactly Where You Want Content To Be Placed. Then Click "Insert" Button');
  }
  else
  {
    insertAtCursor('EditArticleText', ' '+getSelectedQuotesPhrase()+' ');
  }

//  saveArticleText();
}

function getSelectedBeginningsPhrase()
{
  sl = document.getElementById('beginningsPhrasesPanel');
  for (var i=0; i<sl.length; i++)
  {
    if (sl[i].selected)
    {
      return sl[i].value;
    }
  }
  alert("Pease, select a phrase.");
  return "";
}

function getSelectedEndingsPhrase()
{
  sl = document.getElementById('endingsPhrasesPanel');
  for (var i=0; i<sl.length; i++)
  {
    if (sl[i].selected)
    {
      return sl[i].value;
    }
  }
  alert("Pease, select a phrase.");
  return "";
}

function insertBeginningsPhrase()
{
  if (!editing)
  {
    alert('You Should Be In Edit Mode And Click Exactly Where You Want Content To Be Placed. Then Click "Insert" Button');
  }
  else
  {

    insertAtCursor('EditArticleText', getSelectedBeginningsPhrase());
  }

//  saveArticleText();
}

function insertEndingsPhrase()
{
  if (!editing)
  {
    alert('You Should Be In Edit Mode And Click Exactly Where You Want Content To Be Placed. Then Click "Insert" Button');
  }
  else
  {

    insertAtCursor('EditArticleText', getSelectedEndingsPhrase());
  }

//  saveArticleText();
}

function createNewArticle()
{
  setLoadingAlone(true);
  elm = document.getElementById('newArticle');
  idElm = document.getElementById('FolderId');
  pElm = document.getElementById('FolderId');
  makeRequest('/categories/','action=create_article&name='+elm.value+"&category_id="+idElm.value+'&parent_id='+pElm.value, parseFoldersEx);

  return false;

}

function promptForNewArticle()
{
  s = prompt("Article name:", "New Article");
//  s += '.txt';

  if (s)
  {
    s += '.txt';
    if (trim(s))
    {
      s = trim(s);
      if (!articleExists(s))
      {

        setLoadingAloneEx(true);

        idElm = document.getElementById('FolderId');
        pElm = document.getElementById('FolderId');
        setContent('ArticleText', '');
        makeRequest('/categories/','action=create_article&name='+s+"&category_id="+idElm.value+'&parent_id='+pElm.value, parseFoldersEx);
      }
      else
      {
        alert('Article exists: '+s);
      }
    }
    else
    {
      alert("Invalid article name!");
    }
  }

  return false;

}

function uploadedNewArticle()
{
  setLoadingAlone(true);
  elm = document.getElementById('newArticle');
  idElm = document.getElementById('FolderId');
 // makeRequest('/categories/','action=create_article&name='+elm.value+"&category_id="+idElm.value, parseFoldersEx);

  return false;
}

function createNewFolder()
{
  setLoadingAlone(true);
  elm = document.getElementById('newFolder');
  elm1 = document.getElementById('FolderId');
  if (elm1)
  {
    parent_id = elm1.value;
  }
  else
  {
    parent_id = 0;
  }
  makeRequest('/categories/','action=create&name='+elm.value+"&parent_id="+parent_id, parseFolders);
  return false;

}

function promptForNewFolder()
{
  s = prompt("Folder name:", "New Folder");
  if (s)
  {
    if (trim(s))
    {
      s = trim(s);
      if (!categoryExists(s))
      {
        setLoadingAloneEx(true);

        elm1 = document.getElementById('FolderId');
        if (elm1)
        {
          parent_id = elm1.value;
        }
        else
        {
          parent_id = 0;
        }
        makeRequest('/categories/','action=create&name='+s+"&parent_id="+parent_id, parseFolders);
      }
      else
      {
        alert("Folder "+s+" already exists!");
      }

    }
    else
    {
      alert("Invalid folder name!");
    }
  }
  return false;

}

function deleteFolder(anId)
{
  if (confirm('Are you sure you want to delete this folder?'))
  {
    setLoadingAlone(true);
    elm = document.getElementById('FolderId');
    makeRequest('/categories/','action=delete&id='+anId+'&parent_id='+elm.value, parseFolders);
  }
  return false;

}

function deleteArticle(anId)
{
  if (confirm('Are you sure you want to delete this article?'))
  {
    setLoadingAlone(true);
    pElm = document.getElementById('FolderId');
//    elm = document.getElementById('newFolder');
    makeRequest('/categories/','action=delete_article&id='+anId+'&parent_id='+pElm.value, parseFoldersEx);
  }
  return false;

}

function reloadArticles(anId)
{
    setLoadingAloneEx(true);
    elm = document.getElementById('FolderId');

    makeRequest('/categories/','action=delete_article&id=-1&parent_id='+elm.value, parseFolders);
}

var artID=0;
function setFolderName(anId, aName, anArticleName)
{
  artID=anId;
    setContent('FolderName', folderPath);
    setContent('ArticleName', ARTICLE_NAME_EDITOR_HTML_BEGIN+anArticleName+ARTICLE_NAME_EDITOR_HTML_END);

}

function saveArticleName()
{
  var elem = document.getElementById('newArticleName');
  var str = elem.value;
  makeRequest('/article_name/','action=update_titlu&id='+artID+'&str='+str, parseFoldersEx);
}

function setRootFolder()
{
//  alert(folderPath);
  setContent('ArticleFolderName', folderPath);
//  setContent('FolderNameSuggest', folderPath);
  document.getElementById('FolderId').value='0';
  document.getElementById('uploadFolderId').value='0';
  document.getElementById('zipFolderId').value='0';
  hideLayer('UpFolderLink');
//  getProtected('protected');
}

function showFolderControls(anId, aName)
{
  if (aName!='')
  {
    folderPath += aName + "/";
  }
  else
  {
    ar = folderPath.split("/");
  //  alert(ar.length);
    buf = "/";
    for (i=1;i<ar.length-2;i++)
    {
      buf += ar[i]+"/";
//      alert(ar[i]);
    }
    folderPath = buf;
  }
  setContent('ArticleFolderName', folderPath);
//  setContent('FolderNameSuggest', folderPath);
  document.getElementById('FolderId').value=anId;
  document.getElementById('uploadFolderId').value=anId;
  document.getElementById('zipFolderId').value=anId;

  //showLayer('UpFolderLink');

  showLayer('CreateArticleButtons');
//  ToggleNode(document.getElementById('f'+anId));
//  getProtected('protected');
}

function saveArticleText()
{
  if (editing)
  {
    hideLayer('EditArticle');
    showLayer('ArticleText');
    lastTextBeforeAdjust = '';
    manualChanges = 0;
    parsedAuto = 0;
    synonymsTable = new Array();
    originalsTable = new Array();

    elm = document.getElementById('EditArticleText');
    s = stripTags(elm.value); // i have remove the tags
    setContent('WordsCount', wordsCount(s, 'Lorem####', 2));
    s = s.replace(/\r\n/gm, PARAGRAPH_TAG);
    s = s.replace(/\n/gm, PARAGRAPH_TAG);
//        re = new RegExp('  ','gm');
//        s = s.replace(re, "&nbsp;&nbsp;");
    setContent('ArticleText', s);
    //alert(getContent('articleText'));
//    showLayer('ArticleText');
    setEditEnd();
    editing = false;

//    boldWords();
//    alert('OK');
    //processLinks();
  }
}

function saveArticle()
{
  saveArticleText();

  s = (getContent('ArticleText'));

  re = new RegExp(PARAGRAPH_TAG,'gm');
  s = s.replace(re, newLine+PARAGRAPH_TAG);

  re = new RegExp(PARAGRAPH_TAG_IE,'gm');
  s = s.replace(re, newLine+PARAGRAPH_TAG_IE);

  re = new RegExp('%STOP%','gm');
  s = s.replace(re, "");

//  re = new RegExp('  ','gm');
//  s = s.replace(re, "&nbsp;&nbsp;");

  if (!editing)
  {
    sOrig = getContent('ArticleText');
    sOrig = sOrig.replace(re, "");
    setContent('ArticleText', sOrig);
  }
  s = URLEncode(s);
  setLoadingAlone(true);
//  alert(document.getElementById('ArticleId').value);
  makeRequest('/get_article/','action=save&article='+s+'&id='+document.getElementById('ArticleId').value+'&name='+document.getElementById('newArticleName').value, alertSaveArticle);

  return false;

}

function downloadArticle(mode)
{
  s = (getContent('ArticleText'));

  re = new RegExp(PARAGRAPH_TAG,'gm');
  s = s.replace(re, newLine+PARAGRAPH_TAG);

  re = new RegExp(PARAGRAPH_TAG_IE,'gm');
  s = s.replace(re, newLine+PARAGRAPH_TAG_IE);

  re = new RegExp('%STOP%','gm');
  s = s.replace(re, "");

  re = new RegExp('&nbsp;','gm');
  s = s.replace(re, " ");
  s = stripTags(s);

  document.getElementById('downloadArticle').value = s;
  document.getElementById('downloadMode').value = mode;
  document.getElementById('downloadName').value = document.getElementById('newArticleName').value;
  document.getElementById('downloadForm').submit();

  return false;

}
function checkForUniquness()
{
    open_window('CheckForUniquness', '../checkforunique/uniq.php','790','550');
}

function loadArticleToEditor()
{
  if (!editing)
  {
//    s = trim((getContent('ArticleText')));
    s = getContent('ArticleText');
    editing = true;
    setEditBegin();
    re = new RegExp(PARAGRAPH_TAG,'gm');
    s = s.replace(re, newLine);


    re = new RegExp(PARAGRAPH_TAG_IE,'gm');
    s = s.replace(re, newLine);

    //s = stripTags(s);
    elm = document.getElementById('EditArticleText');

    showLayer('EditArticle');
    hideLayer('ArticleText');
    elm.value = stripTags(s);
    elm.focus();
  }
  else
  {
    saveArticleText();
  }
}

function setEditBegin()
{
  setContent('editButton', 'Finish Editing');
}

function setEditEnd()
{
  setContent('editButton', 'Edit');
}

function selectText()
{
 if (editing)
 {
   elm = document.getElementById('EditArticleText');
   elm.focus();
   elm.select();
 }
 else
 {
//   elm = document.getElementById('ArticleText');
//   elm.select();
   alert('You should be in edit mode to perform this operation!');
 }
}

function insertCliches(elms)
{
  sl = window.opener.document.getElementById('commonPhrases');
  slp = window.opener.document.getElementById('commonPhrasesPanel');
  cat_id = window.opener.document.getElementById('FolderId').value;
//  alert(sl);
  sl.options.length = 0;
  slp.options.length = 0;

  for (i=0; i<elms.length;i++)
  {
    if (elms[i].checked)
    {
      //alert(elms[i].value);
      sl.options.length++;
      sl.options[sl.options.length-1].innerHTML = elms[i].value;
      sl.options[sl.options.length-1].value = elms[i].value;
      slp.options.length++;
      slp.options[slp.options.length-1].innerHTML = elms[i].value;
      slp.options[slp.options.length-1].value = elms[i].value;
    }
  }
  //postProtected('common', sl);
  makeRequestEx('/rewrite_rules/','action='+'common'+'&'+'&category_id='+cat_id+'&'+createURLFromArray(sl, 'items'), alertRewriteRules);
//  window.close();
  return false;
}

function insertTransitions(elms)
{
  sl = window.opener.document.getElementById('transitionsPhrases');
  slp = window.opener.document.getElementById('transitionsPhrasesPanel');
  cat_id = window.opener.document.getElementById('FolderId').value;
//  alert(sl);
  sl.options.length = 0;
  slp.options.length = 0;

  for (i=0; i<elms.length;i++)
  {
    if (elms[i].checked)
    {
      //alert(elms[i].value);
      sl.options.length++;
      sl.options[sl.options.length-1].innerHTML = elms[i].value;
      sl.options[sl.options.length-1].value = elms[i].value;
      slp.options.length++;
      slp.options[slp.options.length-1].innerHTML = elms[i].value;
      slp.options[slp.options.length-1].value = elms[i].value;
    }
  }
  //postProtected('common', sl);
  makeRequestEx('/rewrite_rules/','action='+'transitions'+'&'+'&category_id='+cat_id+'&'+createURLFromArray(sl, 'items'), alertRewriteRules);
//  window.close();
  return false;
}

function insertQuotes(elms)
{
  sl = window.opener.document.getElementById('quotesPhrases');
  slp = window.opener.document.getElementById('quotesPhrasesPanel');
  cat_id = window.opener.document.getElementById('FolderId').value;
//  alert(sl);
  sl.options.length = 0;
  slp.options.length = 0;

  for (i=0; i<elms.length;i++)
  {
    if (elms[i].checked)
    {
      //alert(elms[i].value);
      sl.options.length++;
      sl.options[sl.options.length-1].innerHTML = elms[i].value;
      sl.options[sl.options.length-1].value = elms[i].value;
      slp.options.length++;
      slp.options[slp.options.length-1].innerHTML = elms[i].value;
      slp.options[slp.options.length-1].value = elms[i].value;
    }
  }
  //!!!!!!!
 // postProtected('quotes', sl);
  makeRequestEx('/rewrite_rules/','action='+'quotes'+'&'+'&category_id='+cat_id+'&'+createURLFromArray(sl, 'items'), alertRewriteRules);
  //window.close();
  return false;
}

function insertBeginnings(elms)
{
  sl = window.opener.document.getElementById('beginningsPhrases');
  slp = window.opener.document.getElementById('beginningsPhrasesPanel');
  cat_id = window.opener.document.getElementById('FolderId').value;
//  alert(sl);
  sl.options.length = 0;
  slp.options.length = 0;

  for (i=0; i<elms.length;i++)
  {
    if (elms[i].checked)
    {
      //alert(elms[i].value);
      sl.options.length++;
      sl.options[sl.options.length-1].innerHTML = elms[i].value;
      sl.options[sl.options.length-1].value = elms[i].value;
      slp.options.length++;
      slp.options[slp.options.length-1].innerHTML = elms[i].value;
      slp.options[slp.options.length-1].value = elms[i].value;
    }
  }
  //postProtected('common', sl);
  makeRequestEx('/rewrite_rules/','action='+'beginnings'+'&'+'&category_id='+cat_id+'&'+createURLFromArray(sl, 'items'), alertRewriteRules);
//  window.close();
  return false;
}

function insertEndings(elms)
{
  sl = window.opener.document.getElementById('endingsPhrases');
  slp = window.opener.document.getElementById('endingsPhrasesPanel');
  cat_id = window.opener.document.getElementById('FolderId').value;
//  alert(sl);
  sl.options.length = 0;
  slp.options.length = 0;

  for (i=0; i<elms.length;i++)
  {
    if (elms[i].checked)
    {
      //alert(elms[i].value);
      sl.options.length++;
      sl.options[sl.options.length-1].innerHTML = elms[i].value;
      sl.options[sl.options.length-1].value = elms[i].value;
      slp.options.length++;
      slp.options[slp.options.length-1].innerHTML = elms[i].value;
      slp.options[slp.options.length-1].value = elms[i].value;
    }
  }
  //postProtected('common', sl);
  makeRequestEx('/rewrite_rules/','action='+'endings'+'&category_id='+cat_id+'&'+createURLFromArray(sl, 'items'), alertRewriteRules);
//  window.close();
  return false;
}

function init()
{
//  setContent('ArticleFolderName', aName);
//  document.getElementById('FolderId').value=anId;

  showLayer('CreateArticleButtons');
ToggleOriginal();
  ToggleNodeById('replaceForm');
  ToggleNodeById('commonForm');
  ToggleNodeById('adjustForm');
  ToggleNodeById('keywordForm');
  ToggleNodeById('linkerForm');
  ToggleNodeById('customForm');
  ToggleNodeById('bioForm');
  ToggleNodeById('protectedForm');
  ToggleNodeById('boldForm');
  ToggleNodeById('beginningsForm');
  ToggleNodeById('endingsForm');
  ToggleNodeById('quotesForm');
  ToggleNodeById('transitionsForm');
  ToggleNodeById('generatorForm');
  ToggleNodeById('templateForm');
  ToggleNodeById('publishForm');
  ToggleNodeById('advancedButtons');
//  alert('OK');
//  normalMenuSize = document.getElementById('LeftMenuColumn').style.width;

  setRootFolder();
//  startTimer();

  return false;
}

function open_window(n,u,w,h)
{
  args="width="+w+",height="+h+",resizable=1,scrollbars=yes,status=0,Left=10,Top=10";
  remote=window.open(u,n,args);
}

function open_addr(url)
{
  open_window('Cliches', url,'790','550');
  return false;
}

function downloadCurrentFolder()
{
//  alert("../download_zip/?cat_id="+document.getElementById('FolderId').value);
  document.getElementById('fileUploader').src = "../download_zip/?cat_id="+document.getElementById('FolderId').value;
  return false;
}

function categoryExists(ACatName)
{
  for (var i=0; i<categoryList.length; i++)
  {
    if (categoryList[i] == ACatName)
    {
      return true;
    }
  }
  return false;
}

function articleExists(AnArtName)
{
  for (var i=0; i<articleList.length; i++)
  {
    if (articleList[i] == AnArtName)
    {
      return true;
    }
  }
  return false;
}

function addCategoryToList(ACatName)
{
  categoryList.length++;
  categoryList[categoryList.length-1] = ACatName;
//  alert(ACatName);
}
function addArticleToList(ACatName)
{
  articleList.length++;
  articleList[articleList.length-1] = ACatName;
//  alert(ACatName);
}

function changeUploadAction(form)
{
  fname = form.article_file.value;

  if (fname)
  {
    fname = fname.replace(/\\/g, "/");
    farr = fname.split('/');
    fname = farr[farr.length-1];
    farr = fname.split('.');
    fext = farr[farr.length-1];
    if ((!fext)||(farr.length==1)||(fext=='txt')||(fext=='rtf')||(fext=='doc'))
    {
      form.action="../upload_article/";
//      alert(form.action);
      setLoadingAloneEx(true);
      return true
    }
    else
    {
      if (fext=='zip')
      {
        form.action="../upload_zip/";
        setLoadingAloneEx(true);
        return true
      }
      else
      {
        alert("Invalid file extension: "+fext);
        return false;
      }
    }
//    alert(fext);
    return false;
  }
  else
  {
    alert('Please, choose a file!');
    return false;
  }
}

function addZero(anInt)
{
  var anStr = anInt + '';
  if (anStr.length<2)
  {
    anStr = '0'+anStr;
  }
  return anStr;
}
function processTimer()
{
  if (!paused)
  {
    setContent('timer', addZero(hours) + ':' + addZero(minutes) + ':' + addZero(seconds));
    seconds++;
    if (seconds>60)
    {
      minutes++;
      seconds = 0;
      if (minutes>60)
      {
        hours++;
        minutes = 0;
      }
    }
    setTimeout('processTimer()', 1000);
  }
}

function startTimer()
{
  paused = false;
  if(hours==0 && minutes==0 && seconds==0)
  processTimer();
  else setTimeout('processTimer()', 1000);
}

function stopTimer()
{
  paused = true;
}
function resetTimer()
{
  hours = 0;
  minutes = 0;
  seconds = 0;
  setContent('timer', addZero(0) + ':' + addZero(0) + ':' + addZero(0));
}

var
  resultsShowing = false;

function toggleSearchResults()
{

  if (resultsShowing)
  {
    showSearchMenu();
    if (wasSearch)
    {
      if (lastMenuSize)
      {
        changeMenuSize(lastMenuSize);
      }

      document.getElementById('searchResultsImg').src = "/images/new/icon_search_collapse.gif";
      resultsShowing = !resultsShowing;
    }
  }
  else
  {
    document.getElementById('searchResultsImg').src = "/images/new/icon_search_expand.gif";
    hideSearchMenu();
    resultsShowing = !resultsShowing;
  }
  return false;
}
/*
function processNavigation()
{
  elm = document.getElementById('navigation');
  switch (elm.value)
  {
    case '1':
    {
      window.location = "/forum/";
      break;
    }
    case '2':
    {
      window.location = "/main/";
      break;
    }
    case '3':
    {
      window.location = "/help/";
      break;
    }
    case '4':
    {
      window.location = "/advalliance/";
      break;
    }
    case '5':
    {
      window.location = "/user_profile/";
      break;
    }
    case '6':
    {
      window.location = "/logout/";
      break;
    }

  }
  return false;
}
*/
function setOriginalWord(id,word)
{
    if(!originalsTable[id]) originalsTable[id] = word;
}


function addSynonymsToTable(id, word, userId, synId)
{
  //alert(word);
  if (!synonymsTable[id])
  {
    synonymsTable[id] = new Array();
    synonymsTableUserID[id] = new Array();
        synonymsTableSynID[id] = new Array();
  }
  synonymsTable[id].length++;
  synonymsTable[id][synonymsTable[id].length-1] = word;

  synonymsTableUserID[id].length++;
  synonymsTableUserID[id][synonymsTableUserID[id].length-1] = userId;

  synonymsTableSynID[id].length++;
  synonymsTableSynID[id][synonymsTableSynID[id].length-1] = synId;
}

function addTemplateToList(templateId, templateName, delTemplate, altId)
{
  var slActive, slEdit, doc;
  if(window.opener!=null){
    doc=window.opener.document;
  }else{
    doc = window.document;
  }

  slActive = doc.getElementById('active_template_id');
  slEdit = doc.getElementById('template_id');
  menuTemplates=doc.getElementById('TemplatesMenu');

  var i;

  if (delTemplate)
  {
    for(i=0;i<slActive.length;i++)
    {
      if (slActive[i].value==templateId)
      {
        slActive[i] = null;
      }
    }
    for(i=0;i<slEdit.length;i++)
    {
      if (slEdit[i].value==templateId)
      {
        slEdit[i] = null;
      }
    }
//    alert('The template has been successfully deleted.');
  }
  else if (templateId==-1)
  {

    if (altId)
    {
      slActive[slActive.length-1].value = altId;
    }
    else
    {
      slActive.length++;

      slActive[slActive.length-1].value = templateId;
    }
    slActive[slActive.length-1].innerHTML = templateName;

    if (altId)
    {
      slEdit[slEdit.length-1].value = altId;
    }
    else
    {
      slEdit.length++;
      slEdit[slEdit.length-1].value = templateId;
    }
    slEdit[slEdit.length-1].innerHTML = templateName;
//    alert('The template has been successfully saved.');
  }
  else
  {
        for(i=0;i<slActive.length;i++)
    {
      if (slActive[i].value==templateId)
      {
        slActive[i].innerHTML = templateName;
      }
    }
    for(i=0;i<slEdit.length;i++)
    {
      if (slEdit[i].value==templateId)
      {
        slEdit[i].innerHTML = templateName;
      }
    }

  }
}


function setActiveTemplate()
{
  templateId = document.getElementById('active_template_id').value;
  makeRequest('/user_template/','action=set_active'+'&active_template_id='+templateId, alertSetActiveTemplate);
}

function removeTemplate()
{
  templateId = document.getElementById('active_template_id').value;
  if(templateId=='') alert('Default template can not be removed!');
  else{
  makeRequest('/user_template/','action=submit&template_id='+templateId+'&delete=1', alertRemoveTemplate);
  }
}

function moveLayerIE(layerId){
 document.getElementById(layerId).moveTo(clientX, clientY);
}

function setActiveTemplateByID(templateId)
{
  makeRequest('/user_template/','action=set_active'+"&active_template_id="+templateId, Nothing);
}

function moveLayerIE(layerId){
 document.getElementById(layerId).moveTo(clientX, clientY);
}

function showFileMenu(evt, id)
{
  showLayer('FileMenu');
  getMouseCoord(evt);
  moveLayer('FileMenu');
  fileMenuX=clientX;
  fileMenuY=clientY;
 var s=document.getElementById('FileMenu').innerHTML;
  if (s.indexOf('%ID%')<0)
 {
  s=fileMenu;
 }else{
  fileMenu=s;
  }
  s=s.replace(/\%ID\%/gm, id);
  //alert(s);
  setContent("FileMenu", s);
}

function showDirMenu(evt, id)
{
  showLayer('DirMenu');

  getMouseCoord(evt);

 // alert(clientX);
  moveLayer('DirMenu');
  dirMenuX=clientX;
  dirMenuY=clientY;
  s=document.getElementById('DirMenu').innerHTML;
 if (s.indexOf('%ID%')<0)
 {
  s=dirMenu;
 }else{
   dirMenu=s;
 }

  s=s.replace(/\%ID\%/gm, id);
 // alert(s);
  setContent("DirMenu", s);

}

function showTemplatesMenu(evt, submenu, id)
{
  showLayer('TemplatesMenu');
  getMouseCoord(evt);
  if(submenu) clientX=dirMenuX+200;
  tempMenuX=clientX;
  tempMenuY=clientY;
  w=0;
if(checkIt('msie')) w=document.body.clientWidth;
else w=document.width;
  if(clientX+200>w){
 clientX=w-220;
  }
  moveLayer('TemplatesMenu');
  i=0;
  s="";
  slActive = document.getElementById('active_template_id');
  for(i=0;i<slActive.length;i++)
  {
          var action;
          if(!submenu){
                  action='downloadArticle(\'html\');';
          }
          else
          {
                  action='window.document.location=\'../download_wrapped/?cat_id='+id+'\';';
          }
        s=s+'<tr id="'+slActive[i].value+'"><td><a href=\'#\' onclick="javascript: setActiveTemplateByID(\''+slActive[i].value+'\');'+ action +'">'+slActive[i].innerHTML+'</a></td></tr>';
  }
  // if no user templates yet        *********************
  if(s=="")
    {
          var action;
          if(!submenu){
                  action='downloadArticle(\'html\');';
          }
          else
          {
                  action='window.document.location=\'../download_wrapped/?cat_id='+id+'\';';
          }

    }
//*******************************************************
  t=document.getElementById('TemplatesMenu').innerHTML;
  if (t.indexOf('<!-- templates -->')<0)
 {
   t=tempMenu;
 }else{
   tempMenu=t;
 }

  setContent('TemplatesMenu',t.replace('<!-- templates -->', s).replace(/ACTION\(\)/gm, action));
  //alert(document.getElementById('TemplatesMenu').innerHTML);

}

function showDensityMenu(evt)
{
  showLayer('DensityMenu');
  glEvent = evt;

  if (document.layers)
  {
    clientX = evt.pageX;
    clientY = evt.pageY;
  }
  else
  {
    clientX = evt.clientX;
    clientY = evt.clientY;

  }
//  clientX-=80;
  setCoordsEx('DensityMenu');
}

function hideMenus(evt)
{
        if(!dontHide){
getMouseCoord(evt);
 if((clientX!=fileMenuX)||(clientY!=fileMenuY)){
 hideLayer('FileMenu');
 }

if((clientX!=dirMenuX)||(clientY!=dirMenuY)){
 hideLayer('DirMenu');
 }

if((clientX!=tempMenuX)||(clientY!=tempMenuY)){
 hideLayer('TemplatesMenu');
 }
        }

}


function getMouseCoord(e){
mousex = 0
mousey = 0
if(checkIt('msie')){
    mousex=e.clientX+document.body.scrollLeft;
    mousey=e.clientY+document.body.scrollTop;
}else if(checkIt('opera')){
    mousex=e.clientX;
    mousey=e.clientY;
}else{
    mousex = e.pageX;
    mousey = e.pageY;
}
clientX=mousex;
clientY=mousey;

}

function Nothing(){

}

function hideTemplatesSubmenu(){
  hideLayer('TemplatesMenu');
}