// IE hack
if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
  }
}

var finder = window.VectorFinder;
finder.setOptions({
  results: function() {
    $('#loader').hide();
    $('#jumpToTop').show();
    $('#search').show();
    $('#searchResults').show();
    $('#searchResultsBar').show();
  },
  noResults: function() {
    $('#loader').hide();
    $('#noResults').show();
  }
});

function clean_term(term) {
  term = term.replace(/vector[s]?/i, "")
             .replace(/#/, '')
             .replace(/_/, ' ')
             .trim();
  return term;
};

function search(term) {
  $('#home').hide();
  $('#home').remove();
  $('#searchBox').show();

  $('#searchResults').hide();
  $('#searchResults').children('.searchResult').remove();
  $('#jumpToTop').hide();
  $('#searchResultsBar').hide();

	$("#loader").show();
  $('#noResults').hide();
	$('#searchResultsBar').html("Displaying the best <strong>\""+term+ "\"</strong> vectors from across the web!")
  $('#searchTerm').attr('value', term);
  window.location.hash = term.replace(/ /g, '_');

  finder.reset();
	finder.search("searchResults", term);
}

(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preloadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }

  $('#searchResults .searchResult a').live('click', function(e) {
    var api = $(this).closest('.searchResult').attr('data-api');
    var term = $('#searchTerm').attr('value');
    _gaq.push(['_trackEvent', 'click', api, term]);
  });
  
  $.preloadImages("/images/finding.gif");
  
  $('#search').live('submit', function() {
    var term = clean_term($('#searchTerm').val());
    if (term === "") {
      // the search was blank, show a message 
      if ($('#blank_msg').length == 0) {
        $('#search').append("<div id=\"blank_msg\" style=\"display:none;\">Please enter a search term</div>");
        $("#blank_msg").fadeIn('slow');
      } else {
        $("#blank_msg").fadeOut(800, function() {
          $("#blank_msg").fadeIn('slow');
        });
        
      }
    } else {
      search(term);
      _gaq.push(['_trackEvent', 'search', term]);
    }
  	return false;
  });

  $('#jumpToTop').live('click', function(e) {
    scrollTo(0,0);
    return false;
  });
  
  var term = clean_term(window.location.hash);
  if( term ) {
    setTimeout(function() {search(term);}, 0);
  }
})(jQuery);
