function activateSearch() {
	if ($('searchform')) {
		$('s').value = '';
		var o = document.createElement('div');
		var n = document.createElement('div');
		var i = document.createElement('img');
		var a = document.createElement('a');
		$('searchform').onsubmit = function() { doSearch();return false; };
		$('s').onfocus = focusS;
		a.href = 'http://www.jaronbrass.com/#';
		a.id = 'cancel-search';
		a.onclick = function() { cancelSearch(); return false; };
		i.src = '/images/assets/spinner.gif';
		Element.toggle(i);
		i.id = 'indicator';
		var s = $('search-results');
		var f = $('searchfields');
		o.id = 'old-search-results';
		n.id = 'current-search-results';
		s.appendChild(n);
		s.appendChild(o);
		f.appendChild(i);
		f.appendChild(a);
		Element.toggle(a);
		has_searched = false;
		o.style.display = 'none';
		n.style.display = 'none';
		show_search = false;
		is_searching = false;
    }
}

function doSearch() {
	if (is_searching) return false;
	s = $F('s');
	if (s == '' || s == '') return false;
	is_searching = true;
	c = $('current-search-results');
	o = $('old-search-results');
	Element.toggle($('searchbutton'));
	Element.toggle($('indicator'));
	o.innerHTML = c.innerHTML;
	c.style.display = 'none';
	o.style.display = 'block';
	pars = 's=' + escape(s) + '&ajax';
 var myAjax = new Ajax.Request('http://www.jaronbrass.com/blog/', {method: 'get', parameters: pars, onComplete:doSearchResponse});
}

function doSearchResponse(response) {
	$('current-search-results').innerHTML = response.responseText;
 x = new Effect.BlindUp('old-search-results', {duration:.8});
	y = new Effect.BlindDown('current-search-results', {duration:.8, afterFinish:resetForm});
}

function resetForm() {
	Element.toggle($('indicator')); 
	Element.toggle($('searchbutton'));
	show_search = true;
	is_searching = false;
}

function focusS() {
	if ($F('s') == '') $('s').value = '';
}

function cancelSearch() {
	show_search = false;
	$('s').value = '';	
	$('old-search-results').innerHTML = '';
	z = new Effect.BlindUp('current-search-results',{duration:.8,afterFinish:function() { $('current-search-results').innerHTML = ''; }});
}

// Create namespace ------------------------------------------------------------
if (at == undefined) var at = {};
if (at.jaronbrass == undefined) at.jaronbrass = {};

// Search Field class ----------------------------------------------------------
at.jaronbrass.searchField = Class.create();
at.jaronbrass.searchField.prototype = {
  initialize: function()
  {
    this.search_field  = $("s");
    this.default_value = "";
    this.is_safari     = ((parseInt(navigator.productSub)>=20020000)&&(navigator.vendor.indexOf("Apple Computer")!=-1));
    if (this.is_safari) {
      Element.addClassName(this.search_field, "issafari");
      this.replace();      
    } else {
      if (this.search_field.value == "") this.search_field.value = this.default_value;
    }
    Event.observe(this.search_field, "focus", this.focus.bindAsEventListener(this), false);
    Event.observe(this.search_field, "blur",  this.blur.bindAsEventListener(this),  false);
  },
  replace: function()
  {
    this.search_field.setAttribute('type', 'search');
    this.search_field.setAttribute('autosave', 'com.jaronbrass.blog.search');
    this.search_field.setAttribute('results', '5');
    this.search_field.setAttribute('placeholder', this.default_value);
  },
  focus: function()
  {
    if (this.search_field.value == this.default_value) {
      this.search_field.value = "";
      Element.addClassName(this.search_field, "focus");
    }
  },
  blur: function()
  {
    if (this.search_field.value == "") {
      if (this.is_safari) {
        this.search_field.value = "";        
      } else {
        this.search_field.value = this.default_value;
        Element.removeClassName(this.search_field, "focus");
      }
    }
  }
}

Event.observe(window, 'load', activateSearch, false);
Event.observe(window, "load", function(){new at.jaronbrass.searchField()}, false);