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);
}
function validate() {
  if($('comment_author').value=='')         return alert("To speak up you need a name!")
  if($('comment_body').value=='')           return alert("To speak up you need something to say!")
  if($('turing').value!='I use Javascript)       return alert("You smell of spam! If this isn't true, my apologies.")

  var form=$('commentform').elements;

  if($('remember').checked==true) {
    setCookie('author', form['comment[author]'].value);
    setCookie('url', form['comment[url]'].value);
    setCookie('email', form['comment[email]'].value);
  };

  setCookie('turing', form['turing'].value);

  return true;
}
function forget() {
    each(['author','url','email','remember','subscribe', 'previewMode'], function(c) {deleteCookie(c)})
    alert('Done! Your name, blog, and email have been forgotten.')
}

jQuery(document).ready( function($){
  $('.default-text').attr('defaultText', function() {return this.value}).
                    focus(function() {if((this.value==$(this).attr('defaultText')) && (!this.value.match(/.+@.+/))) this.value=''}).
                    blur(function() {if((this.value=='') && (!this.value.match(/.+@.+/))) this.value=$(this).attr('defaultText')});
  if ($('#commentform')) {
    var form=$('#commentform')[0].elements

    form['comment[author]'].value = getCookie('author')||'';
    form['comment[url]'].value = getCookie('url')||'';
    form['comment[email]'].value = getCookie('email')||'';
    if(getCookie('email')) $('#your-email')[0].value = $('#your-email-comments')[0].value=getCookie('email');

    form['turing'].value = getCookie('turing')||'';
    form['remember'].checked = getCookie('remember')=='true' ? true : '';
    form['subscribe'].disabled = getCookie('email') ? false : true;
    form['subscribe'].checked = getCookie('subscribe')=='true' ? true :'';
    form['previewMode'].checked = getCookie('previewMode')||true;
    
    if(form['turing'].value == 'I am human') Element.hide('guest_turing')
  }
})


/*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) {
  location.hash='message';
  $('message').innerHTML = request.responseText;
  new Effect.Highlight('message');
}

function loading() {
  fsb=$('form-submit-button');
  fsb.disabled = true;
  fsb.value = "Posting...";
  fsb.parentNode.innerHTML='<img src="/images/blog/gui/loading.gif" id="form-submit-loading"/>'+fsb.parentNode.innerHTML
  $('guest_turing').style.display = 'none';
}

function complete(request) {
  fsb=$('form-submit-button');
  fsb.disabled = false;  
  fsb.value = "Post";  
  fsb.parentNode.removeChild($('form-submit-loading'));
  fsb.parentNode.innerHTML+=' <em>Posted!</em>'

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

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

function rememberCheck(o) {
  setCookie(o.name,o.checked);
}

function toggleCheck(o) {
  o=jQuery(o).siblings('input').get(0);
  if(!o.disabled)
    o.checked=!o.checked;
}

