function label(formName, locator, fieldName){
  var searchLabel = $(locator).remove().text();
  $(fieldName).addClass('placeholder').val(searchLabel) 
                                                  .focus(function() {
    if (this.value == searchLabel) {
      $(this).removeClass('placeholder').val('');
    };
  }).blur(function() {
    if (this.value == '') {
      $(this).addClass('placeholder').val(searchLabel);
    };
  });
  $(formName).submit(function() {
  if ($(fieldName).val() == searchLabel) {
      $(fieldName).val('');
    }
  });

}

function setAuto(field, printLabel, printPhone){
  var $autocomplete = $('<ul class="autocomplete"></ul>').hide().insertAfter(field);
  var selectedItem = null;
  
  var setSelectedItem = function(item) {
    selectedItem = item;
    if (selectedItem === null) {
      $autocomplete.hide();
      return;
    }
    if (selectedItem < 0) {
      selectedItem = 0;
    }
    if (selectedItem >= $autocomplete.find('li').length) {
      selectedItem = $autocomplete.find('li').length - 1;
    }
    $autocomplete.find('li').removeClass('selected').eq(selectedItem) 
                                               .addClass('selected');
    $autocomplete.show();
  };
  var populateSearchField = function() {
    $(field).val($autocomplete.find('li').eq(selectedItem).find('span').text());
    $(printLabel).text($autocomplete.find('li').eq(selectedItem).find('strong').text());
	$('label').find('span').text($autocomplete.find('li').eq(selectedItem).find('strong').text());
    /* $(printPhone).text($autocomplete.find('li').eq(selectedItem).find('em').text()); WHEN PHONE IS READY */
    setSelectedItem(null);
  };
  $(field).attr('autocomplete', 'off').keyup(function(event) 
{
    if (event.keyCode > 40 || event.keyCode == 8) {
     // Keys with codes 40 and below are special
     //   (enter, arrow keys, escape, etc.).
     // Key code 8 is backspace.
      $.ajax({
        'url': 'http://lite.edufinder.org/support/php/autocomplete.php',
        'data': {'search-text': $(field).val()},
        'dataType': 'json',
        'type': 'POST',
		'success': function(data) {
			//alert(data);
          if (data.length) {
            $autocomplete.empty();
            $.each(data, function(index, term) {
              $('<li></li>').html("<strong>"+term[0]+"</strong> <em>("+term[1]+")</em> <span>"+term[2]+"</span>").appendTo($autocomplete) 
                                              .mouseover(function() {
                setSelectedItem(index);
              }).click(populateSearchField);
            });
            
            setSelectedItem(0);
          }
          else {
            setSelectedItem(null);
          }
        }
      });
    }
    else if (event.keyCode == 38 && selectedItem !== null) {
      // User pressed up arrow.
      setSelectedItem(selectedItem - 1);
      event.preventDefault();
    }
    else if (event.keyCode == 40 && selectedItem !== null) {
      // User pressed down arrow.
      setSelectedItem(selectedItem + 1);
      event.preventDefault();
    }
    else if (event.keyCode == 27 && selectedItem !== null) {
      // User pressed escape key.
      setSelectedItem(null);
    }
  }).keypress(function(event) {
    if (event.keyCode == 13 && selectedItem !== null) {
      // User pressed enter key.
      populateSearchField();
      event.preventDefault();
    }
  }).blur(function(event) {
    setTimeout(function() {
      setSelectedItem(null);
    }, 250);
  });
}

$(document).ready(function() {
	setAuto('#fromAddress','#print-from-name','#print-from-phone');  
	setAuto('#toAddress','#print-to-name','#print-to-phone');  
	label('#search','#from','#fromAddress');
	label('#search','#to','#toAddress');
/*
	//making each county alternate
	var theList = $('ul.autocomplete').find('li').find('em').text();
	var theListNext = $('ul.autocomplete').find('li').next().find('em').text();
	$('ul.autocomplete li').each{
		if(theList != theListNext){
			this.addClass("alt");
		}
	}
*/
});

