function ga (id) {
  if (id.length > 0) {
    try {
      var pageTracker = _gat._getTracker (id);
      pageTracker._trackPageview ();
    }
    catch (e) { }

    var anchors = document.getElementsByTagName ('a');
    for (var i = 0; i < anchors.length; i++) {
      if (anchors[i].className.search (/\bga\b/) != -1) {
        var href = anchors[i].pathname + anchors[i].search;
        anchors[i].onclick = function () {
          pageTracker._trackPageview (href);
        };
      }
    }
  }
}

function get_ajax_object () {
  var xHR = null;
  try {
    xHR = new XMLHttpRequest ();
  }
  catch (e) {
    try {
      xHR = new ActiveXObject ("Msxml2.XMLHTTP");
    }
    catch (e) {
      try {
        xHR = new ActiveXObject ("Microsoft.XMLHTTP");
      }
      catch (e) { }
    }
  }
  return (xHR);
}

function submit_edit_comment (id, url) {
  document.getElementById ('comment_error').innerHTML = '';

  var c_poster = encodeURIComponent (document.getElementById ('poster').value);
  var c_poster_url = encodeURIComponent (document.getElementById ('poster_url').value);
  var c_comment = encodeURIComponent (document.getElementById ('comment').value);

  var params = 'ajax_method=edit_comment';
  params += '&comment_id=' + id;
  params += '&comment_poster=' + c_poster;
  params += '&comment_poster_url=' + c_poster_url;
  params += '&comment_content=' + c_comment;

  function ajax_response () {
    if ((xHR.readyState == 4) && (xHR.status == 200)) {
      var json = eval ('(' + xHR.responseText + ')');

      if (json.status < 0) {
        document.getElementById ('comment_error').innerHTML = json.error;
      }
      else {
        var r = confirm ('Continue editing comment?');
        if (r == false) {
          document.session.submit ();
        }
      }
    }
  }

  var xHR = get_ajax_object ();
  xHR.onreadystatechange = ajax_response;
  xHR.open ('POST', url, true);
  xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
  xHR.setRequestHeader ('Content-length', params.length);
  xHR.setRequestHeader ('Connection', 'close');
  xHR.send (params);
}

function submit_edit_post (id, url) {
  document.getElementById ('post_error').innerHTML = '';

  var p_linked = (document.getElementById ('post_linked').checked) ? '1' : '0';
  var p_visible = (document.getElementById ('post_visible').checked) ? '1' : '0';
  var p_comments = (document.getElementById ('post_comments').checked) ? '1' : '0';
  var p_notifications = (document.getElementById ('post_notifications').checked) ? '1' : '0';
  var p_title = encodeURIComponent (document.getElementById ('post_title').value);
  var p_position = encodeURIComponent (document.getElementById ('post_position').value);
  var p_summary = encodeURIComponent (document.getElementById ('post_summary').value);
  var p_rss_summary = encodeURIComponent (document.getElementById ('post_rss_summary').value);
  var p_content = encodeURIComponent (document.getElementById ('post_content').value);
  
  if (document.getElementById ('rss_use_summary').checked) {
    p_rss_summary = '<...>';
  }

  if (document.getElementById ('use_content').checked) {
    p_summary = '<...>';
  }

  if (p_linked == '1') {
    p_visible = '1';
    p_comments = '0';
    p_notifications = '0';
  }

  var params = 'ajax_method=edit_post';
  params += '&post_linked=' + p_linked;
  params += '&post_id=' + id;
  params += '&post_visible=' + p_visible;
  params += '&post_comments=' + p_comments;
  params += '&post_notifications=' + p_notifications;
  params += '&post_title=' + p_title;
  params += '&post_position=' + p_position;
  params += '&post_rss_summary=' + p_rss_summary;
  params += '&post_summary=' + p_summary;
  params += '&post_content=' + p_content;

  function ajax_response () {
    if ((xHR.readyState == 4) && (xHR.status == 200)) {
      var json = eval ('(' + xHR.responseText + ')');

      if (json.status < 0) {
        document.getElementById ('post_error').innerHTML = json.error;
      }
      else {
        var r = confirm ('Continue editing post?');
        if (r == false) {
          document.session.submit ();
        }
      }
    }
  }

  var xHR = get_ajax_object ();
  xHR.onreadystatechange = ajax_response;
  xHR.open ('POST', url, true);
  xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
  xHR.setRequestHeader ('Content-length', params.length);
  xHR.setRequestHeader ('Connection', 'close');
  xHR.send (params);
}

function submit_post (url) {
  document.getElementById ('post_error').innerHTML = '';

  var p_linked = (document.getElementById ('post_linked').checked) ? '1' : '0';
  var p_visible = (document.getElementById ('post_visible').checked) ? '1' : '0';
  var p_comments = (document.getElementById ('post_comments').checked) ? '1' : '0';
  var p_notifications = (document.getElementById ('post_notifications').checked) ? '1' : '0';
  var p_title = encodeURIComponent (document.getElementById ('post_title').value);
  var p_position = encodeURIComponent (document.getElementById ('post_position').value);
  var p_rss_summary = encodeURIComponent (document.getElementById ('post_rss_summary').value);
  var p_summary = encodeURIComponent (document.getElementById ('post_summary').value);
  var p_content = encodeURIComponent (document.getElementById ('post_content').value);

  if (document.getElementById ('rss_use_summary').checked) {
    p_rss_summary = '<...>';
  }

  if (document.getElementById ('use_content').checked) {
    p_summary = '<...>';
  }
    
  if (p_linked == '1') {
    p_visible = '1';
    p_comments = '0';
    p_notifications = '0';
  }

  var params = 'ajax_method=new_post';
  params += '&post_linked=' + p_linked;
  params += '&post_visible=' + p_visible;
  params += '&post_comments=' + p_comments;
  params += '&post_notifications=' + p_notifications;
  params += '&post_title=' + p_title;
  params += '&post_position=' + p_position;
  params += '&post_rss_summary=' + p_rss_summary;
  params += '&post_summary=' + p_summary;
  params += '&post_content=' + p_content;

  function ajax_response () {
    if ((xHR.readyState == 4) && (xHR.status == 200)) {
      var json = eval ('(' + xHR.responseText + ')');

      if (json.status < 0) {
        document.getElementById ('post_error').innerHTML = json.error;
      }
      else {
        document.session.submit ();
      }
    }
  }

  var xHR = get_ajax_object ();
  xHR.onreadystatechange = ajax_response;
  xHR.open ('POST', url, true);
  xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
  xHR.setRequestHeader ('Content-length', params.length);
  xHR.setRequestHeader ('Connection', 'close');
  xHR.send (params);
}

function submit_login (url) {
  document.getElementById ('login_error').innerHTML = '';

  var l_username = encodeURIComponent (document.getElementById ('login_username').value);
  var l_password = encodeURIComponent (document.getElementById ('login_password').value);

  var params = 'ajax_method=login';
  params += '&login_username=' + l_username;
  params += '&login_password=' + l_password;
  params += '&recaptcha_challenge_field=' + Recaptcha.get_challenge ();
  params += '&recaptcha_response_field=' + Recaptcha.get_response ();

  Recaptcha.create ('6LdmggwAAAAAAG4GGCQgvfaacCQrWsIIlp5JrUVH', 'recaptcha', { theme : 'white' } );

  function ajax_response () {
    if ((xHR.readyState == 4) && (xHR.status == 200)) {
      var json = eval ('(' + xHR.responseText + ')');

      if (json.status < 0) {
        document.getElementById ('login_error').innerHTML = json.error;
      }
      else {
        document.cookie = 'Session_Id=' + json.session_id + ';';
        document.login_redirect.submit ();
      }
    }
  }

  var xHR = get_ajax_object ();
  xHR.onreadystatechange = ajax_response;
  xHR.open ('POST', url, true);
  xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
  xHR.setRequestHeader ('Content-length', params.length);
  xHR.setRequestHeader ('Connection', 'close');
  xHR.send (params);
}

function submit_contact (url) {
  document.getElementById ('contact_error').innerHTML = '';

  var c_name = encodeURIComponent (document.getElementById ('contact_name').value);
  var c_mail = encodeURIComponent (document.getElementById ('contact_mail').value);
  var c_subject = encodeURIComponent (document.getElementById ('contact_subject').value);
  var c_message = encodeURIComponent (document.getElementById ('contact_message').value);

  var params = 'ajax_method=contact';
  params += '&contact_name=' + c_name;
  params += '&contact_mail=' + c_mail;
  params += '&contact_subject=' + c_subject;
  params += '&contact_message=' + c_message;
  params += '&recaptcha_challenge_field=' + Recaptcha.get_challenge ();
  params += '&recaptcha_response_field=' + Recaptcha.get_response ();

  Recaptcha.create ('6LdmggwAAAAAAG4GGCQgvfaacCQrWsIIlp5JrUVH', 'recaptcha', { theme : 'white' } );

  function ajax_response () {
    if ((xHR.readyState == 4) && (xHR.status == 200)) {
      var json = eval ('(' + xHR.responseText + ')');

      if (json.status < 0) {
        document.getElementById ('contact_error').innerHTML = json.error;
      }
      else {
        location.href = '/index.php';
      }
    }
  }

  var xHR = get_ajax_object ();
  xHR.onreadystatechange = ajax_response;
  xHR.open ('POST', url, true);
  xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
  xHR.setRequestHeader ('Content-length', params.length);
  xHR.setRequestHeader ('Connection', 'close');
  xHR.send (params);
}

function submit_comment (url) {
  document.getElementById ('error').innerHTML = '';

  var s_post_id = encodeURIComponent (document.getElementById ('post_id').value);
  var s_poster = encodeURIComponent (document.getElementById ('poster').value);
  var s_poster_url = encodeURIComponent (document.getElementById ('poster_url').value);
  var s_comment = encodeURIComponent (document.getElementById ('comment').value);

  var params = 'ajax_method=comment';
  params += '&post_id=' + s_post_id;
  params += '&poster=' + s_poster;
  params += '&poster_url=' + s_poster_url;
  params += '&comment=' + s_comment;
  params += '&recaptcha_challenge_field=' + Recaptcha.get_challenge ();
  params += '&recaptcha_response_field=' + Recaptcha.get_response ();

  Recaptcha.create ('6LdmggwAAAAAAG4GGCQgvfaacCQrWsIIlp5JrUVH', 'recaptcha', { theme : 'white' } );

  function ajax_response () {
    if ((xHR.readyState == 4) && (xHR.status == 200)) {
      var json = eval ('(' + xHR.responseText + ')');

      if (json.status < 0) {
        document.getElementById ('error').innerHTML = json.error;
      }
      else {
        document.getElementById ('new_comment').innerHTML = json.comment;
        document.getElementById ('comment_check').style.display = 'block';
        document.getElementById ('new_comment').style.display = 'block';
        document.getElementById ('lac').style.display = 'none';
        document.getElementById ('error').innerHTML = '';
        document.getElementById ('poster').value = '';
        document.getElementById ('poster_url').value = '';
        document.getElementById ('comment').value = '';
      }
    }
  }

  var xHR = get_ajax_object ();
  xHR.onreadystatechange = ajax_response;
  xHR.open ('POST', url, true);
  xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
  xHR.setRequestHeader ('Content-length', params.length);
  xHR.setRequestHeader ('Connection', 'close');
  xHR.send (params);
}

function new_post () {
  document.getElementById ('admin_method').value = 'new_post';
  document.session.submit ();
}

function login_onload () {
  document.cookie = 'Session_Id=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
  document.login.login_username.focus ();
}

function admin_logout () {
  document.cookie = 'Session_Id=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
  document.logout.submit ();
}

function edit_post (id) {
  document.getElementById ('admin_method').value = 'edit_post';
  document.getElementById ('id').value = id;
  document.session.submit ();
}

function delete_post (id, url) {
  document.getElementById ('post_error').innerHTML = '';

  var r = confirm ('Are you absolutely sure?');
  if (r == true) {
    var p_post_id = encodeURIComponent (id);

    var params = 'ajax_method=delete_post';
    params += '&post_id=' +  p_post_id;

    function ajax_response () {
      if ((xHR.readyState == 4) && (xHR.status == 200)) {
        var json = eval ('(' + xHR.responseText + ')');

        if (json.status < 0) {
          document.getElementById ('post_error').innerHTML = json.error;
        }
        else {
          document.session.submit ();
        }
      }
    }

    var xHR = get_ajax_object ();
    xHR.onreadystatechange = ajax_response;
    xHR.open ('POST', url, true);
    xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
    xHR.setRequestHeader ('Content-length', params.length);
    xHR.setRequestHeader ('Connection', 'close');
    xHR.send (params);
  }
}

function edit_comment (id) {
  document.getElementById ('admin_method').value = 'edit_comment';
  document.getElementById ('id').value = id;
  document.session.submit ();
}

function delete_comment (id, url) {
  document.getElementById ('comment_error').innerHTML = '';

  var r = confirm ('Are you absolutely sure?');
  if (r == true) {
    var p_comment_id = encodeURIComponent (id);

    var params = 'ajax_method=delete_comment';
    params += '&comment_id=' +  p_comment_id;

    function ajax_response () {
      if ((xHR.readyState == 4) && (xHR.status == 200)) {
        var json = eval ('(' + xHR.responseText + ')');

        if (json.status < 0) {
          document.getElementById ('comment_error').innerHTML = json.error;
        }
        else {
          document.session.submit ();
        }
      }
    }

    var xHR = get_ajax_object ();
    xHR.onreadystatechange = ajax_response;
    xHR.open ('POST', url, true);
    xHR.setRequestHeader ('Content-type', 'application/x-www-form-urlencoded');
    xHR.setRequestHeader ('Content-length', params.length);
    xHR.setRequestHeader ('Connection', 'close');
    xHR.send (params);
  }
}

function toggle_page () {
  toggle_post_notifications ();
  toggle_linked_post (0);
}

function toggle_visible () {
  if ((document.getElementById ('post_visible').checked && (document.getElementById ('post_position').value == '0')) || document.getElementById ('post_linked').checked) {
    document.getElementById ('rss_use_summary').disabled = false;
    document.getElementById ('label_use_summary').style.color = '#ccc';

    if (document.getElementById ('post_linked').checked) {
      document.getElementById ('use_content').disabled = true;
      document.getElementById ('label_use_content').style.color = '#666';
    }
    else {
      document.getElementById ('use_content').disabled = false;
      document.getElementById ('label_use_content').style.color = '#ccc';
    }

    if (document.getElementById ('rss_use_summary').checked) {
      document.getElementById ('post_rss_summary').disabled = true;
      document.getElementById ('label_rss_summary').style.color = '#666';
    }
    else {
      document.getElementById ('post_rss_summary').disabled = false;
      document.getElementById ('label_rss_summary').style.color = '#ccc';
    }

    if (document.getElementById ('use_content').checked) {
      document.getElementById ('post_summary').disabled = true;
      document.getElementById ('label_summary').style.color = '#666';
    }
    else {
      document.getElementById ('post_summary').disabled = false;
      document.getElementById ('label_summary').style.color = '#ccc';
    }
  }
  else {
    document.getElementById ('post_rss_summary').disabled = true;
    document.getElementById ('label_rss_summary').style.color = '#666';
    document.getElementById ('rss_use_summary').disabled = true;
    document.getElementById ('label_use_summary').style.color = '#666';
    document.getElementById ('post_summary').disabled = true;
    document.getElementById ('label_summary').style.color = '#666';
    document.getElementById ('use_content').disabled = true;
    document.getElementById ('label_use_content').style.color = '#666';
  }
}

function toggle_linked_post (change) {
  if (document.getElementById ('post_linked').checked) {
    document.getElementById ('post_visible').checked = true;
    document.getElementById ('post_visible').disabled = true;
    document.getElementById ('label_visible').style.color = '#666';
    document.getElementById ('post_comments').disabled = true;
    document.getElementById ('label_comments').style.color = '#666';
    document.getElementById ('post_notifications').disabled = true;
    document.getElementById ('label_notifications').style.color = '#666';
    document.getElementById ('post_content').disabled = true;
    document.getElementById ('label_content').style.color = '#666';
    // document.getElementById ('use_content').checked = false;
    document.getElementById ('use_content').disabled = true;
    document.getElementById ('label_use_content').style.color = '#666';
    document.getElementById ('label_position').innerHTML = 'Linked Post ID';
    if (change == true) {
      document.getElementById ('post_position').value = '0';
    }
    toggle_visible ();
  }
  else {
    document.getElementById ('post_visible').disabled = false;
    document.getElementById ('label_visible').style.color = '#ccc';
    document.getElementById ('post_comments').disabled = false;
    document.getElementById ('label_comments').style.color = '#ccc';
    document.getElementById ('post_notifications').disabled = false;
    document.getElementById ('label_notifications').style.color = '#ccc';
    document.getElementById ('post_content').disabled = false;
    document.getElementById ('label_content').style.color = '#ccc';
    document.getElementById ('use_content').disabled = false;
    document.getElementById ('label_use_content').style.color = '#ccc';
    document.getElementById ('label_position').innerHTML = 'Position';
    if (change == true) {
      document.getElementById ('post_position').value = '0';
    }
    toggle_visible ();
  }
}

function toggle_post_notifications () {
  if (document.getElementById ('post_comments').checked) {
    document.getElementById ('post_notifications').disabled = false;
    document.getElementById ('label_notifications').style.color = '#ccc';
  }
  else {
    document.getElementById ('post_notifications').disabled = true;
    document.getElementById ('label_notifications').style.color = '#666';
  }
}

function get_cookie (id) {
  if (document.cookie.length > 0) {
    var c_start = document.cookie.indexOf (id + '=');
    if (c_start != -1) {
      c_start += id.length + 1;
      c_end = document.cookie.indexOf (';', c_start);
      if (c_end == -1) {
        c_end = document.cookie.length;
      }
      return (unescape (document.cookie.substring (c_start, c_end)));
    }
  }
  return ('');
}
