function fold(plus, content, force) { 
	if(plus) $(plus).innerHTML = (force ? force : ($(plus).innerHTML == '+' ? '-': '+'))
	force? ($(content).style.display=force=='+'?'none':'block') : Toggle.display(content)
}
function each(a, f) { for(var i=0; i<a.length; i++) f(a[i]) };
function deli(tag, poar, uri) {
	var div = document.createElement('div');
	div.innerHTML += '<h3>'+tag+'</h3>';
	for (var i=0, post; post = poar[i]; i++) {
		if(tag=='Textstream') var u='http://del.icio.us/url/?url='+post.u, d=post.d.slice(0, 50)+(post.d.length>50?'...':'');
		else var u=post.u, d=post.d;
		div.innerHTML += '<a href="'+u+'">'+d+'</a>'+(poar[i+1]?' &mdash; ':'');
	}
	div.innerHTML += '<br/><a href="http://del.icio.us/eliazar/'+tag+'" class="more">More &raquo;</a>';
	$('streams').appendChild(div);
}

/*typo legacy*/

function register_onload(func) {
  var old_event = window.onload;
  if (typeof window.onload != 'function') { window.onload = func; }
  else { window.onload = function() { old_event(); func(); }; }
}

function show_dates_as_local_time() {
  var spans = document.getElementsByTagName('span');
  for (var i=0; i<spans.length; i++) {
    if (spans[i].className.match(/\bworddate\b/i)) {
      spans[i].innerHTML = get_local_time_for_date(spans[i].title);
    }
    if (spans[i].className.match(/\bnumberdate\b/i)) {
      spans[i].innerHTML = Math.floor(compute_local_date(spans[i].title)/1440);
    }
  }
}

function compute_local_date(time) {
  system_date = new Date(time);
  user_date = new Date();
  return Math.floor((user_date - system_date) / (60 * 1000));
}

function get_local_time_for_date(time) {
  delta_minutes = compute_local_date(time);
  distance = distance_of_time_in_words(delta_minutes);
  if (delta_minutes < 0) {
	return distance + ' from now';
  } else {
	return distance + ' ago';
  }
}

// a vague copy of rails' inbuilt function, 
// but a bit more friendly with the hours.
function distance_of_time_in_words(minutes) {
  if (minutes.isNaN) return "";
  minutes = Math.abs(minutes);
  if (minutes < 1) return ('less than a minute');
  if (minutes < 50) return (minutes + ' minute' + (minutes == 1 ? '' : 's'));
  if (minutes < 90) return ('about one hour');
  if (minutes < 1080) return (Math.round(minutes / 60) + ' hours');
  if (minutes < 1440) return ('one day');
  if (minutes < 2880) return ('about one day');
  else return (Math.round(minutes / 1440) + ' days')
}

function commentAdded(request) {
  new Effect.BlindDown($('commentList').lastChild.style?$('commentList').lastChild:$('commentList').lastChild.previousSibling);
}

function failure(request) {
  $('errors').innerHTML = request.responseText;
  new Effect.Highlight('errors');
}

function loading() {
  $('form-submit-button').disabled = true;
  $('form-submit-button').value = "Posting...";
  $('guest_turing').style.display = 'none';
}

function complete(request) {
  Element.show('commentform');
  $('form-submit-button').disabled = false;  
  $('form-submit-button').value = "Post";  

  if (request.status == 200) { commentAdded() };  
}

function preview() {
	var c=$('previewMode').checked;
	if(c) {
		$('preview').style.background='#fff'
	}
	else {
		$('preview').style.background='#eee'
	}

}

register_onload(function() {
  if ($('commentform')) {
    $('commentform').elements['comment[author]'].value = getCookie('author')||'';
    $('commentform').elements['comment[url]'].value = getCookie('url')||'';
    $('commentform').elements['turing'].value = getCookie('turing')||'';
    
    if ($('commentform').elements['comment[url]'].value != ''
        || $('commentform').elements['comment[email]'].value != '') {
      Element.show('guest_url'); Element.show('guest_email');
    }
  }
})
register_onload(function() { if ($('q')) {$('q').setAttribute('autocomplete', 'off');} })

function forCats(o) {
	var p=o.parentNode, c=p.childNodes, s=false;
	each(c, function(e) {e.style.display ? s=e : false})
	s.style.display='inline';
	p.removeChild(o)
	p.innerHTML = 'for:'+p.innerHTML
}

