function expandSources(e) {
	var sources_height = elementPosition($('footer'))['y'] - elementPosition($('sources_content'))['y'] - 10 - 12;
	setElementDimensions($('sources_content'), {'h': sources_height});

  if (!$('section')) return;
	var section_height = elementPosition($('footer'))['y'] - elementPosition($('section'))['y'] - 8;
	setElementDimensions($('section'), {'h': section_height});
}

function checkCols(e) {
	check('top_stories');
	check('normal');
	check('normal2');
}

function check(container) {
	if (!$(container)) return;
	var cols = getElementsByTagAndClassName('div', 'col', container);

	// get maximum column height
	var max_height = 0;
	for(var i=0; i < cols.length; i++) {
		height = getElementDimensions(cols[i])['h'];
		if (height > max_height) max_height = height;
	}

	// set all columns to max height
	for(var i=0; i < cols.length; i++) {
		setElementDimensions(cols[i], {'h': max_height});
	}			
}

function initAutoClear(e) {
  // don't let form submit if inputs not cleared
  var forms = getElementsByTagAndClassName('form', 'autoclear');
  for (i = 0; i < forms.length; i++) {
    connect(forms[i], 'onsubmit', function(e) {
      var inputs = getElementsByTagAndClassName('input', 'autoclear', forms[i]);
      for (j = 0; j < inputs.length; j++) {
        if (inputs[j].className == 'autoclear') {
          e.stop();          
          return false;
        }
      }
    });
  }
  
  var inputs = getElementsByTagAndClassName('input', 'autoclear');
  for (i = 0; i < inputs.length; i++) {
    connect(inputs[i], 'onfocus', function(e) { 
      inputs[i-1].className = '';
      inputs[i-1].value = '';
      disconnectAll(inputs[i-1]);
    });
  }
}

function padHeadlines(e) {
  var headlines = $$('div.headline.last-child');
  for (i = 0; i < headlines.length; i++) {
    // compute trailing whitespace
    var headline = headlines[i];
    var headline_bottom = elementPosition(headline)['y'] + elementDimensions(headline)['h'];
    
    var col = getFirstParentByTagAndClassName(headline, 'div', 'col');
    var col_bottom = elementPosition(col)['y'] + elementDimensions(col)['h'];
    
    var col_padding = col_bottom - headline_bottom - 12;
    
    // apply padding to previous siblings to use up whitespace
    if (col_padding > 0) {
      var divs = getElementsByTagAndClassName('div', 'headline', col);
      var div_padding = Math.floor(col_padding / divs.length);
      for (j = 0; j < divs.length; j++) {
        if (div_padding % 2 == 0) { // even
          var padding = div_padding / 2;
          setStyle(divs[j], {'padding-top': padding + 12 + 'px', 'padding-bottom': padding + 'px'});
        }
        else { // odd
          var padding = Math.floor(div_padding / 2);
          setStyle(divs[j], {'padding-top': (padding + 12 + 1) + 'px', 'padding-bottom': padding + 'px'});          
        }
      }
    }
  }
}

function checkEmail() {
    var email = document.maillist.email;
    var atPosition = email.value.toString().indexOf('@');
    var dotPosition = email.value.toString().lastIndexOf('.');
    /* verify that the string has the format of an email */
    if (email.value.toString().length > 0) {
        if ((atPosition >= 1) && (atPosition + 1 < dotPosition)) {
            return true;
        }
        else {
            alert("Please verify your email address.");
            return false;
        }
    }
    alert("Please verify your email address.");
    return false;
}
