function eb(obj) {
  return document.getElementById('' + obj + '');
  
}

function show_rant() {
  eb('vent_text').disabled = false;
  
  eb('vent_button_post').disabled = false;
  eb('vent_button_post').innerHTML = "post it";
  
  eb('vent_shade').style.display = 'block';
  eb('vent_box').style.display = 'block';
  eb('vent_text').focus();
  
}

function disregard_rant() {
  eb('vent_shade').style.display = 'none';
  eb('vent_box').style.display = 'none';
  eb('vent_text').value = '';
  
  eb('vent_box_action_notify_email').style.display = 'none';
  eb('vent_box_action_notify_text').style.display = 'block';
  eb('vent_email').value = '';
  rant_copy_update(true);
  
  rant_update();
  
}

function karma(rant, direction) {
  var xmlobj;

  try {
    xmlobj = new XMLHttpRequest();

  } catch (e) {
    try {
      xmlobj = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {
      try {
        xmlobj = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e) {
        alert("Your browser does not support the required functionality to use this feature.");
        return;
      }
    }
  }

  xmlobj.onreadystatechange=function() {
    if (xmlobj.readyState == 4) {
      if (xmlobj.responseText.length < 5) return;
      
      var result = eval("(" + xmlobj.responseText + ")");

      if (result.error) {
        alert(result.error);
        return;
        
      }
      
      if (result.rant)
        document.getElementById("rant_karma_" + result.rant).innerHTML = result.karma;

        if (/MSIE/i.test(navigator.userAgent))
          document.getElementById("rant_" + result.rant).filters.alpha.opacity = Math.floor(result.opacity * 100);
        else
          document.getElementById("rant_" + result.rant).style.opacity = result.opacity;

    }
    
  }

  xmlobj.open('GET', "/post/karma/" + rant + "/" + direction + "/?ts=" + Math.floor(Math.random()*1000), true);
  xmlobj.setRequestHeader('Connection', 'close');
  xmlobj.send(null);
  
}

function rant_update() {
  eb('vent_box_count_val').innerHTML = (1500 - eb('vent_text').value.length);
}

function post_rant() {
  eb('vent_text').disabled = true;
  eb('vent_email').disabled = true;
  eb('vent_button_post').innerHTML = "wait...";
  eb('vent_button_post').disabled = true;

  var xmlobj;
  var addo;
  
  if (eb('vent_box_action_notify_email').style.display == 'block')
    addo = '&email=' + escape(eb('vent_email').value);
  else
    addo = '';
  
  try {
    xmlobj = new XMLHttpRequest();

  } catch (e) {
    try {
      xmlobj = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {
      try {
        xmlobj = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e) {
        alert("Your browser does not support the required functionality to use this feature.");
        return;
      }
    }
  }

  xmlobj.onreadystatechange=function() {
    if (xmlobj.readyState == 4) {
      if (xmlobj.responseText.length < 5) return;
      
      var result = eval("(" + xmlobj.responseText + ")");

      if (result.error) {
        alert(result.error);
        eb('vent_text').disabled = false;
        eb('vent_email').disabled = false;
        eb('vent_button_post').innerHTML = "post it";
        eb('vent_button_post').disabled = false;
        eb('vent_text').focus();
        return;
      }
      
      document.location = '/rant/' + result.rant + '/';
      return;

    }
    
  }

  xmlobj.open('POST', "/post/rant");
  xmlobj.setRequestHeader('Connection', 'close');
  xmlobj.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded; charset=UTF-8");
  xmlobj.send("rant=" + escape(eb('vent_text').value) + addo);

}

function rant_copy() {
  eb('vent_box_action_notify_text').style.display = 'none';
  eb('vent_box_action_notify_email').style.display = 'block';
}

function rant_copy_update(b) {
  if (b && eb('vent_email').value.length == 0) {
    eb('vent_email').value = '(optional) enter an email address to send a copy to.';
    return;
  }
  
  if (eb('vent_email').value == '(optional) enter an email address to send a copy to.') {
    eb('vent_email').value = '';
    return;
  }
  
}