На странице
http://www.gid62.ru/categories/1/ имеется фильтр с кодом:
var facilitiesAbilitiesFilter = [];
function getIntersect(arr1, arr2)
{
var temp = [];
for(var i = 0; i < arr1.length; i++){
for(var k = 0; k < arr2.length; k++){
if(arr1[i] == arr2[k]){
temp.push( arr1[i]);
break;
}
}
}
return temp;
}
function areArraysEqual(array1, array2)
{
var temp = new Array();
if ( (!array1[0]) || (!array2[0]) ) {
return false;
}
if (array1.length != array2.length) {
return false;
}
for (var i=0; i<array1.length; i++) {
key = (typeof array1[i]) + "~" + array1[i];
if (temp[key]) { temp[key]++; } else { temp[key] = 1; }
}
for (var i=0; i<array2.length; i++) {
key = (typeof array2[i]) + "~" + array2[i];
if (temp[key]) {
if (temp[key] == 0) { return false; } else { temp[key]--; }
} else {
return false;
}
}
return true;
}
jQuery(function($)
{
$("#page-facilities-filter").keyup(function(){ pageFacilitiesFilter(); }).val(inputFilterDefValue);
$("#filter-reservation").click(function(){ pageFacilitiesFilter(); }).removeAttr('checked');
$(".carousel").jCarouselLite({
btnNext: ".carousel-next",
btnPrev: ".carousel-prev",
visible: 4
});
$(".carousel-next, .carousel-prev").click(function(){
$(this).blur();
});
$(".filter-types li a").click(function(){
$(this).parent('li').toggleClass('active');
facilitiesAbilitiesFilter = [];
$(".filter-types li.active").each(function()
{
facilitiesAbilitiesFilter.push($(this).children('a').attr('class'));
});
pageFacilitiesFilter();
return false;
});
$(".page-facilities-meals-menu li a").click(function()
{
var sender = $(this);
sender.blur().toggleClass('expanded');
//$(".page-facilities-meals-menu li ol, .page-facilities-meals-menu li ul").hide();
sender.siblings("ol, ul").slideToggle('fast');
return false;
});
$(".page-facilities-meals-menu li ol li, .page-facilities-meals-menu li ul li").hover(function()
{
$(this).siblings("li").css('z-index', '6');
$(this).css('z-index', '7');
var _tip = $(this).children(".menu-item-desc");
if (_tip.text() != '')
{
//_tip.fadeIn("fast");
_tip.show();
}
}
, function()
{
$(this).children(".menu-item-desc").hide();
});
var menuMealsExpandedAll = false;
var menuMealsExpandedAllDefText = $("#menu-meals-expandall a").text();
$("#menu-meals-expandall a").click(function()
{
var sender = $(this);
sender.blur();
menuMealsExpandedAll = !menuMealsExpandedAll;
if (menuMealsExpandedAll)
{
$(".page-facilities-meals-menu li ol, .page-facilities-meals-menu li ul").show();
sender.text('свернуть все');
}
else
{
$(".page-facilities-meals-menu li ol, .page-facilities-meals-menu li ul").hide();
sender.text(menuMealsExpandedAllDefText);
}
return false;
});
});
function pageFacilitiesFilter()
{
var filter = $("#page-facilities-filter").val() != inputFilterDefValue ? $("#page-facilities-filter").val().toUpperCase() : '';
var filterReservation = $("#filter-reservation:checked").length > 0;
$(".results-list li").each(function()
{
var _abilities_pass = true;
if (facilitiesAbilitiesFilter.length > 0)
{
var _abilities = $(this).attr('class').split(/\s+/);
_abilities_pass = areArraysEqual(getIntersect(_abilities, facilitiesAbilitiesFilter), facilitiesAbilitiesFilter);
}
if
(
$(this).hasClass("active") ||
(
$(this).find(".title").text().toUpperCase().indexOf(filter) >= 0 &&
(!filterReservation || $.trim($(this).find(".reservation").text()) != "") &&
_abilities_pass
)
)
{
$(this).slideDown('fast');
}
else
{
$(this).slideUp('fast');
}
});
}
и google maps
var map;
var mapMarkers = [];
var mapIcons = [];
var mapIconShadow;
var infoWindow;
mapIcons['red'] = new google.maps.MarkerImage
(
'/i/gmarkers/red.png'
);
mapIcons['green'] = new google.maps.MarkerImage
(
'/i/gmarkers/green.png'
);
mapIcons['blue'] = new google.maps.MarkerImage
(
'/i/gmarkers/blue.png'
);
mapIconShadow = new google.maps.MarkerImage
(
'/i/gmarkers/marker_sprite.png',
new google.maps.Size(30, 34),
new google.maps.Point(27, 0),
new google.maps.Point(3, 34)
);
jQuery(function($)
{
if ($("#map").length)
{
var latlng = new google.maps.LatLng(54.62466, 39.738571);
map = new google.maps.Map(document.getElementById("map"), {
zoom: 12,
center: latlng,
scrollwheel: true,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}
});
infoWindow = new google.maps.InfoWindow();
if (typeof(mapLoaded) != 'undefined')
{
mapLoaded();
}
}
});
function mapMarkerAdd(lat, lng, html, ico, zindex)
{
var marker = new google.maps.Marker({
position: new google.maps.LatLng(lat, lng),
map: map,
icon: ico,
shadow: mapIconShadow
});
if (typeof(zindex) != 'undefined') marker.setZIndex(zindex);
// если метка зеленая - центрируем карту и выводим баббл
if (ico == mapIcons['green'])
{
//map.setCenter(new google.maps.LatLng(lat + 0.002, lng));
map.setCenter(new google.maps.LatLng(lat + 0.017, lng));
infoWindow.setContent('<div id="map-'+Math.random()+'">'+html+'</div>');
infoWindow.open(map, marker);
}
else
{
google.maps.event.addListener(marker, 'click', function()
{
infoWindow.setContent('<div id="map-'+Math.random()+'">'+html+'</div>');
infoWindow.open(map, marker);
});
}
mapMarkers.push(marker);
}
function mapAutoZoom()
{
var latlngBounds = new google.maps.LatLngBounds();
var mapMarkersLength = mapMarkers.length;
for (var i = 0; i < mapMarkersLength; i++)
{
latlngBounds.extend(mapMarkers[i].position);
}
map.fitBounds(latlngBounds);
}
Вопрос: Как можно сделать так, чтобы фильтр по верхнему скрипту применялся и к карте?
Я сам php программист, js знаю базово а разбирать некомментируемый код оставленный предыдущими разработчиками сложновато, да и времени в обрез ((