$.fn.ToggleInputValue = function(){     
  return $(this).each(function(){         
    var Input = $(this);
    var default_value = Input.val();
    Input.focus(function() {            
      if(Input.val() == default_value) Input.val("");         
    }).blur(function(){         
      if(Input.val().length == 0) 
        Input.val(default_value);         
      });    
    }); 
}

String.prototype.ReplaceAll = function(stringToFind,stringToReplace){
    var temp = this;
    var index = temp.indexOf(stringToFind);
        while(index != -1){
            temp = temp.replace(stringToFind,stringToReplace);
            index = temp.indexOf(stringToFind);
        }
        return temp;
    }     

function escapeParam(param) {
  //param = param.ReplaceAll('.','_dot_');
  //param = param.ReplaceAll(' ','_');
  param = escape(param);
  return param;
}

function filter(type, param) { 
  if (param == '') {
    return;
  }
  
  $('.active_letter').removeClass('active_letter');
  
  var urlType = '';
  switch (type) {
    case 'alphabetical':
      $('#letter_' + param).addClass('active_letter');
      urlType = 'clubs/letter';
      break;
    case 'province':
      urlType = 'clubs/province';
      break;
    case 'name':
      urlType = 'clubs/name';
      break;
  }
  
  if (viewType == 'map') {
    $.ajax({
     url: '/api/' + urlType + '/' + escapeParam(param) + '.html',
     dataType: 'json',
     success: function(data) {
      if (data.clubs.length == 0) {
        alert(noResults);
        return;
      }
      $("#map").gMap({ zoom: 7,
                       markers: data.clubs,
                       onComplete: function() {
                          var map = $('#map').data('gmap');
                          var southWest = new google.maps.LatLng(data.minLat,data.minLon);
                          var northEast = new google.maps.LatLng(data.maxLat,data.maxLon);
                          var bounds = new google.maps.LatLngBounds(southWest,northEast);
                          map.gmap.fitBounds(bounds);
                          
                          var mc = new MarkerClusterer(map.gmap, map.markers, {maxZoom: 12,gridSize: 50});
                         }
                       });
     }
    });
    $('#switch_list').attr('href', '/' + currentLanguage + '/' + voetbalController + '/' + urlType + '/' + escapeParam(param) + '.html');
  } else {
    document.location.href = '/' + currentLanguage + '/' + voetbalController + '/' + urlType + '/' + escapeParam(param) + '.html';
  }
}
 
$(function() {   
  $('#search-name').keypress(function(e) {
        if(e.which == 13) {
          jQuery(this).blur();
          filter('name',$('#search-name').val());
        }
    });
    
  var startSlide = 0;
  switch (lastFilter) {
    case 'name':
      startSlide = 0;
      break;
    case 'province':
      startSlide = 1;
      break;
    case 'letter':
      startSlide = 2;
      break;
    default:
      startSlide = 0;
  }
  
  $('#filters').cycle({
      fx:     'scrollHorz',
      easing: 'easeOutBack',
      speed:   1000,
      startingSlide: startSlide,
      timeout: 0,
      sync: true,
      pager: '#navprojects',
      next:   '.filter-right',
      prev:   '.filter-left'
  });
  
  $.ui.autocomplete.prototype._renderItem = function (ul, item) {
      item.label = item.label.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(this.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
      return $("<li></li>")
              .data("item.autocomplete", item)
              .append("<a>" + item.label + "</a>")
              .appendTo(ul);
  };
  
  $('#search-name').ToggleInputValue();
  $('#search-name').autocomplete({
     delay: 500,
     source: function(request, response) {
      $.ajax({
       url: '/api/autocomplete/' + escapeParam(request.term) + '.html',
       dataType: 'json',
       success: function(data) {
        response($.map(data.clubs, function(item) {
         return {
          label: item.name,
          value: item.name
         }
        }))
       }
      })
     },
     minLength: 1,
     open: function() {
      
     },
     close: function() {
      
     }                
    });
    
  /*$('#province').ToggleInputValue();
  $('#province').autocomplete({
     delay: 10,
     focus: function(evt, ui) {alert('ok');},
     source: function(request, response) {
      $.ajax({
       url: '/api/autocompleteClubName/' + escapeParam(request.term) + '.html',
       dataType: 'json',
       success: function(data) {
        response($.map(data.clubs, function(item) {
         return {
          label: item.name,
          value: item.name
         }
        }))
       }
      })
     },
     minLength: 0,
     open: function() {
      
     },
     close: function() {
      
     }                
    });*/
});
