/* loginbox.js merged
 ***************************************************************************/
function initOverLabels () {
  if (!document.getElementById) return;

  var labels, id, field;

  // Set focus and blur handlers to hide and show
  // LABELs with 'overlabel' class names.
  labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {

    if (labels[i].className == 'overlabel') {

      // Skip labels that do not have a named association
      // with another field.
      id = labels[i].htmlFor || labels[i].getAttribute('for');
      if (!id || !(field = document.getElementById(id))) {
        continue;
      }

      // Change the applied class to hover the label
      // over the form field.
      labels[i].className = 'overlabel-apply';

      // Hide any fields having an initial value.
      if (field.value !== '') {
        hideLabel(field.getAttribute('id'), true);
      }

      // Set handlers to show and hide labels.
      field.onfocus = function () {
        hideLabel(this.getAttribute('id'), true);
      };
      field.onblur = function () {
        if (this.value === '') {
          hideLabel(this.getAttribute('id'), false);
        }
      };

      // Handle clicks to LABEL elements (for Safari).
      labels[i].onclick = function () {
        var id, field;
        id = this.getAttribute('for');
        if (id && (field = document.getElementById(id))) {
          field.focus();
        }
      };

    }
  }
}

function hideLabel (field_id, hide) {
  var field_for;
  var labels = document.getElementsByTagName('label');
  for (var i = 0; i < labels.length; i++) {
    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
    if (field_for == field_id) {
      labels[i].style.textIndent = (hide) ? '-1400px' : '0px';
      return true;
    }
  }
}

$(initOverLabels);


/* boxhovers-2.js merged
 ***************************************************************************/
$(function(){
  $('.listing, #justin > .feature-listing').
    hover(function(){ $(this).addClass('hovering'); }, function(){ $(this).removeClass('hovering'); }).
    click(function(event){
      if(event.target.tagName.toUpperCase() === 'A'){
        return;
      }

      $(this).unbind('click').find('a:first').each(function(){ window.location = this.href; });
    });//.each(function(i){ $(this).attr('tabIndex', i+1); });
});


/* External Links
 ****************************************************************************/
$(function(){
  $('.external').click(function(){
    var url = this.href.toLowerCase();
    if(url.indexOf('http://') === 0) url = url.substring(7);
    if(url.indexOf('/') === url.length - 1){
      url = url.substring(0, url.length - 1);
    }

    $(this).attr('href', '/external-link/?url=' + escape(url));
  });
});