/*** Tab management ***/

function create_cookie(name, value, seconds)
{
  if (days)
  {
    var date = new Date();
    date.setTime(date.getTime() + (seconds * 1000));
    var expires = "; expires=" + date.toGMTString();
  }
  else
  {
    var expires = "";
  }
  document.cookie = name + "=" + value + expires + "; path=/";
}

function read_cookie(name)
{
  var name = name + "=";
  var cookies = document.cookie.split(";");
  for (var i = 0; i < cookies.length; i++)
  {
    var cookie = cookies[i];
    while (c.charAt(0) == " ")
    {
      cookies = cookies.substring(1, cookies.length);
    }
    if (cookies.indexOf(name) == 0)
    {
      return cookies.substring(name.length, cookies.length);
    }
  }
  return null;
}

function texts_tab_select()
{
  document.getElementById("texts_tab").className = "selected";
  document.getElementById("users_tab").className = null;
  document.getElementById("texts_tab").blur();
  document.getElementById("texts_content").style.display = "block";
  document.getElementById("users_content").style.display = "none";
}

function users_tab_select()
{
  document.getElementById("users_tab").className = "selected";
  document.getElementById("texts_tab").className = null;
  document.getElementById("users_tab").blur();
  document.getElementById("users_content").style.display = "block";
  document.getElementById("texts_content").style.display = "none";
}

function words_tab_select()
{
  document.getElementById("words_tab").className = "selected";
  document.getElementById("tags_tab").className = null;
  document.getElementById("search_tab").className = null;
  document.getElementById("words_tab").blur();
  document.getElementById("words_content").style.display = "block";
  document.getElementById("tags_content").style.display = "none";
  document.getElementById("search_content").style.display = "none";
}

function tags_tab_select()
{
  document.getElementById("tags_tab").className = "selected";
  document.getElementById("words_tab").className = null;
  document.getElementById("search_tab").className = null;
  document.getElementById("tags_tab").blur();
  document.getElementById("tags_content").style.display = "block";
  document.getElementById("words_content").style.display = "none";
  document.getElementById("search_content").style.display = "none";
}

function search_tab_select()
{
  document.getElementById("search_tab").className = "selected";
  document.getElementById("words_tab").className = null;
  document.getElementById("tags_tab").className = null;
  document.getElementById("search_tab").blur();
  document.getElementById("search_content").style.display = "block";
  document.getElementById("words_content").style.display = "none";
  document.getElementById("tags_content").style.display = "none";
}

function center_tab_select(index, total)
{
  for (var i = 0; i < total; i++)
  {
    if (i != index)
    {
      document.getElementById("center_" + i + "_tab").className = null;
      document.getElementById("center_" + i + "_content").style.display = "none";
    }
    else
    {
      document.getElementById("center_" + i + "_tab").className = "selected";
      document.getElementById("center_" + i + "_tab").blur();
      document.getElementById("center_" + i + "_content").style.display = "block";
    }
  }
}

function load()
{
  /*
  left_tab_cookie = read_cookie("left_tab");
  if (left_tab_cookie)
  {
    left_tab_select(left_tab_cookie, false)
  }
  
  right_tab_cookie = read_cookie("right_tab");
  if (right_tab_cookie)
  {
    right_tab_select(right_tab_cookie, false)
  }
  */
}

function highlight_word(word, count, highlighted)
{
  for (var i = 1; i < (count + 1); i++)
  {
    word_a = document.getElementById(word + '_' + i);
    if (word_a.className == "marked") { return; }
    if (highlighted)
    {
      word_a.className = "highlighted";
    }
    else
    {
      if (word_a.className.indexOf("marked") != -1)
      {
        word_a.className = "marked";
      }
      else
      {
        word_a.className = "";
      }
    }
  }
}

function mark_word(word, count)
{
  for (var i = 1; i < (count + 1); i++)
  {
    word_a = document.getElementById(word + '_' + i);
    if (word_a.className == "marked")
    {
      word_a.className = "";
      //this_word_a.className = "";
    }
    else
    {
      word_a.className = "marked";
      //this_word_a.className = "marked";
    }
  }    
}

function open_comments(base_id)
{
  document.getElementById('comment_arrow_' + base_id).style.display = 'block';
  document.getElementById('comment_popup_' + base_id).style.display = 'block';
  document.getElementById('line_' + base_id).className += ' boxed';
  document.getElementById('comment_link_' + base_id).style.display = 'none';
}

function close_comments(base_id)
{
  document.getElementById('comment_arrow_' + base_id).style.display = 'none';
  document.getElementById('comment_popup_' + base_id).style.display = 'none';
  document.getElementById('line_' + base_id).className += 'line_text';
  document.getElementById('comment_link_' + base_id).style.display = 'block';
}

function post_comment(text_id, line_id, content_textarea_id)
{
  make_post_request("/ecomma-0.0.3/comments/add", encodeURI("data[Comment][text_id]=" + text_id + "&data[Comment][line_id]=" + line_id + "&data[Comment][content]=" + document.getElementById(content_textarea_id).value));
}

var http_request = false;
function make_post_request(url, parameters)
{
  http_request = false;
  if (window.XMLHttpRequest)
  {
    http_request = new XMLHttpRequest();
    if (http_request.overrideMimeType)
    {
      // set type accordingly to anticipated content type
      // http_request.overrideMimeType('text/xml');
      http_request.overrideMimeType('text/html');
    }
  }
  else if (window.ActiveXObject)
  {
    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 = alertContents;
  http_request.open("POST", url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}

function alertContents()
{
  if (http_request.readyState == 4)
  {
    if (http_request.status == 200)
    {
      //alert(http_request.responseText);
      result = http_request.responseText;
      alert("Your comment has been posted.");
      location.reload(true);
    }
    else
    {
      alert("There was a problem with the request.");
    }
  }
}
