  $ = YAHOO.util.Dom.get;
  var initSlider = function(){
    var callBack = function(pos1, pos2){
      pos1 -= 1;
      FilterPage.Results.filterDate(pos1, pos2);
    }
    var cfg = {
      containerDiv: 'sliderContainer',
      leftHandleDiv: 'leftHandle',
      rightHandleDiv: 'rightHandle',
      groupName: 'whatever',
      minValue: 1,
      maxValue: 12,
      stepCount: 12,
      allowEqual:false,
      callBack: callBack
    }
    var slider = createSlider(cfg);
    slider.init(); 

    // if we've got some pre-set values from the querystring, we need to move the thumbs
    if (FilterPage.Results.dateFilter){
      var moveToPreset = function(){
        if (FilterPage.Results.dateFilter[0] == 0){
        $('leftHandle').style.left = 14*(FilterPage.Results.dateFilter[0]) + 2 + 'px';  
        }else{$('leftHandle').style.left = 14*(FilterPage.Results.dateFilter[0] -1) + 2 + 'px';}

        $('rightHandle').style.left = 14*(FilterPage.Results.dateFilter[1] -1) + 2 + 'px';
        var left = YAHOO.util.Dom.getX('leftHandle');
        var right = YAHOO.util.Dom.getX('rightHandle');
        slider.resetRight(left - 18, right);
        slider.resetLeft(left, right - 18);
      } 
      setTimeout(moveToPreset, 200); 
    }   
  }//end intSlider

  // Need to make sure slider gets rendered AFTER drop-downs.
  var waitSlider = function(){
    if (FilterPage.Filters.finished)
      setTimeout(initSlider, 1500);//this stopped the left handle from getting stuck
    else
      setTimeout(waitSlider, 100);
  }
  
  var addHandlers = function(){
    $('filename').onchange = function(){
      deleteCookie(cookieNamePrefix+"currentYear");
      FilterPage.Results.setFileName();
      FilterPage.Results.populateData();
      waitSlider();
    }
    var sortDateOrder = 'recentTop';
    $('sortByDate').className = "arrow-down";
    $('sortByDate').onclick = function() {
      $('sortByRating').className = "";
      if (sortDateOrder == "recentBtm") {
        $('sortByDate').className = "arrow-down";
        sortDateOrder = 'recentTop';
        FilterPage.Results.sortBy = '';
        FilterPage.Results.populateData();
      } else {
        sortDateOrder = 'recentBtm';
        FilterPage.Results.sortBy = 'date';
        FilterPage.Results.populateData();
        $('sortByDate').className = "arrow-up";
      }
      return false;
    }
    $('perPage25').onclick = function(){
      results_active(this);
      FilterPage.Results.perPage = 25;
      FilterPage.Results.populateData();
      return false;
    }
    $('perPage50').onclick = function(){
      results_active(this);
      FilterPage.Results.perPage = 50;
      FilterPage.Results.populateData();
      return false;
    }
    $('perPage100').onclick = function(){
      results_active(this);
      FilterPage.Results.perPage = 100;
      FilterPage.Results.populateData();
      return false;
    }
    // On page load check if any sorts are pre-present
    var preSort = getQueryParam('sort');
    if (preSort){
      if (preSort == 'date') {
        var sortDateOrder = 'recentTop'
        FilterPage.Results.sortBy = '';
        $('sortByDate').className = "arrow-down";
      }
    }
    //Cookie stuff
    var preFilter = getQueryParam('filter');
    var preDate = getQueryParam('dates');
    var preYear = getQueryParam('year');
    var preFilterFromCookie = getCookie(cookieNamePrefix+"filterNums");
    var preDateFromCookie = getCookie(cookieNamePrefix+"cookieDates");
    var perPageFromCookie = getCookie(cookieNamePrefix+"perPage");
    var currentPageFromCookie = getCookie(cookieNamePrefix+"currentPage");
    var currentYearFromCookie = getCookie(cookieNamePrefix+"currentYear");
    var sortByFromCookie = getCookie(cookieNamePrefix+"cookieSortBy");

    if (preFilter)
      FilterPage.Filters.prePopulate(preFilter.split(','));
    else if (preFilterFromCookie)
      FilterPage.Filters.prePopulate(preFilterFromCookie.split(','));

    if (preDateFromCookie){
      preDateFromCookie = preDateFromCookie.split(',');
      if (preDateFromCookie[0] < 0) { preDateFromCookie[0] = 1; }
      FilterPage.Results.dateFilter = [preDateFromCookie[0], preDateFromCookie[1]];
    } else {
      if (preDate){
        preDate = preDate.split(',');
        FilterPage.Results.dateFilter = [preDate[0], preDate[1]]; 
      }
    }
    if (perPageFromCookie) {
      switch(perPageFromCookie) {
        case "25":
        results_active($('perPage25'));
        FilterPage.Results.perPage = 25;
        break;

        case "50":
        results_active($('perPage50'));
        FilterPage.Results.perPage = 50;
        break;

        case "100":
        results_active($('perPage100'));
        FilterPage.Results.perPage = 100;
        break;
      }
    }
    if (currentPageFromCookie)
      FilterPage.Results.page = parseInt(currentPageFromCookie);
    if (preYear || currentYearFromCookie) {
      var path = (currentYearFromCookie) ? currentYearFromCookie : $('filename').value;
      if (preYear) {
        path = path.replace(/\d{4}/, preYear);
        FilterPage.Results.fileName = path;
        setCookie(cookieNamePrefix+'currentYear', path);
      }
      var options = $('filename').getElementsByTagName('option');
      for (var i=0; i < options.length; i++) {
        if (options[i].value == path) {
          options[i].selected = true;
        }
      }
    }
    if (sortByFromCookie) {
      switch(sortByFromCookie) {
        case '':
        $('sortByRating').className = "";
        $('sortByDate').className = "arrow-down";
        break;

        case 'date':
        $('sortByRating').className = "";
        $('sortByDate').className = "arrow-up";
        break;
      }
      FilterPage.Results.sortBy = sortByFromCookie;
    }
    FilterPage.Filters.init();
    FilterPage.Results.populateData();
  }

  function saveCookies() {
    var filters = new Array();
    for (cat in FilterPage.Results.activeTags){
      if (FilterPage.Results.activeTags[cat] != null || FilterPage.Results.activeTags[cat] != '')
        filters.push(FilterPage.Results.activeTags[cat]);
    }
    setCookie(cookieNamePrefix+"filterNums", filters);
    //set date (month)
    setCookie(cookieNamePrefix+"cookieDates", FilterPage.Results.dateFilter);
    //set Results per Page
    setCookie(cookieNamePrefix+"perPage", FilterPage.Results.perPage)
    //get Current page
    setCookie(cookieNamePrefix+"currentPage", FilterPage.Results.page);
    //get Year
    setCookie(cookieNamePrefix+"currentYear", FilterPage.Results.getFileName());
    //set sortBy
    setCookie(cookieNamePrefix+"cookieSortBy", FilterPage.Results.sortBy);
  }
  function results_active(link) {
    var results_links = $('sort-header').getElementsByTagName('a');
    for (x=0; x<(results_links.length-1); x++) {
      results_links[x].className = "";
    }
    link.className = "active";
  }
  // how to filter
  function infoBox() {
    $("filterToggle").onclick = function() {
      if ($("listSteps").style.display=="none") {
        $("listSteps").style.display="block";
        $("filterToggle").className = '';
        $("btm-cap").className = '';
      } else {
        $("listSteps").style.display="none";
        $("filterToggle").className = 'collapsed';
        $("btm-cap").className = 'collapsed';
      }
    }
  }
  var loadCode = function() {
    waitSlider();
    addHandlers();
    infoBox();
  }
  YAHOO.util.Event.addListener(window, 'load', loadCode);
  YAHOO.util.Event.addListener(window, 'unload', saveCookies);
