var counter = 0;
var suggestionsAction = false;
var selectikWidth = 538;
var map = null;
var currentPage = 0;
var currentFilter = false;
var checkedObjectsArray = [];
var filteredObjectsArray = [];
var maxSelectedItems = 100;
var markers = null;
var bookmarksAction = null;
var locationPopupCallbackFunction = function() {
Spinner.show();
var country = $('#locationPopupCountry option:selected').text();
var region = $('#locationPopupRegion option:selected').text();
var city = $('#locationPopupCity option:selected').text();
var metro = $('#locationPopupMetro option:selected').text();
var countryId = $('#locationPopupCountry').length ? $('#locationPopupCountry').val() : '0';
var regionId = $('#locationPopupRegion').length ? $('#locationPopupRegion').val() : '0';
var cityId = $('#locationPopupCity').length ? $('#locationPopupCity').val() : 0;
var metroId = $('#locationPopupMetro').length ? $('#locationPopupMetro').val() : 0;
var latitude = $('#latitude_decimal') ? $('#latitude_decimal').val() : 0;
var longitude = $('#longitude_decimal') ? $('#longitude_decimal').val() : 0;
var scale = $('#zoom') ? $('#zoom').val() : 0;
var mapType = $('#mapType').val() ? $('#mapType').val() : 0;
var enableCoords = $('#enableCoords').is(':checked');
var html;
html = '';
html += ' ';
html += latitude + ' ' + longitude;
html += '';
html+= '\n';
html+= '\n';
html+= '\n';
html+= '\n';
$('#locationContainer .distance').show();
if(countryId > 0) {
html+= '\n';
}
$('#locationExpander').addClass('active');
$('#locationExpander').siblings('.container').slideDown();
$('#locationContainer .location').html(html);
$('#dialog-locationPopup').unbind('dialogclose');
Spinner.hide();
return false;
};
Array.prototype.remove= function(){
var what, a= arguments, L= a.length, ax;
while(L && this.length){
what= a[--L];
while((ax= this.indexOf(what))!= -1){
this.splice(ax, 1);
}
}
return this;
}
var recalculateButtonStates = function(){
var total = $('.mass_action_checkbox').length;
var count = $('.mass_action_checkbox:checked').length;
var selected = checkedObjectsArray.length
$('#selected_count').text(selected);
if (selected > 0) {
$('#action').button('option', 'disabled', false);
$('#show_selected').button('option', 'disabled', false);
$('#select_none').button('option', 'disabled', false);
} else {
$('#action').button('option', 'disabled', true);
$('#show_selected').button('option', 'disabled', true);
$('#select_none').button('option', 'disabled', true);
}
if (total && total != count && (selected + total - count <= maxSelectedItems)) {
$('#select_all').button('option', 'disabled', false);
} else {
$('#select_all').button('option', 'disabled', true);
}
};
jQuery(function($) {
$.history.init(function(hash){
var urlParams = /^(selected)?\/?(\d+)?\/?$/.exec(hash);
if(!urlParams) return false;
var prevPage = currentPage;
var prevFilter = currentFilter;
currentPage = urlParams[2] ? urlParams[2] : 1;
currentFilter = urlParams[1] ? true : false;
if(prevPage != currentPage || prevFilter != currentFilter) {
Spinner.show();
var data = $('#searchContainer form').find("input[type='hidden'], input:not(:hidden), select:not(:hidden), checkbox:not(:hidden), textarea:not(:hidden)").serializeArray();
data.push({name: 'sort', value: $("#sortOrder input:radio:checked").val()});
data.push({name: 'page', value: currentPage});
if (currentFilter) {
data.push({name: 'ids', value: filteredObjectsArray});
}
$('#searchResult').load(
'/tracks/search_result_page',
data,
function(){
$('#searchResult [title]').tooltip({showURL: false});
Spinner.hide();
}
);
}
},
{ unescape: ",/" });
$('.bookmarks .heading, .track-height .heading, .track-distance .heading, .surface .heading').click(function(){
if(!$(this).hasClass('active')){
$(this).addClass('active');
$(this).siblings('.container').slideDown();
} else{
$(this).removeClass('active');
$(this).siblings('.container').slideUp(function(){
$(this).find('input').attr('checked', false);
$(this).find('input:text').val('');
});
}
});
$('.uploadbutton input').change(function(){
var str = $(this).val();
if(str.substr(str.length - 4, str.length).toLowerCase() != ".gpx"){
flushSpinnerMessage('File type not allowed,
Allowed file:*.gpx');
$(this).val('');
return false;
}
$(this).closest('form').submit();
});
$('a.object').tooltip({showURL: false});
$('#clearForm').button().click(function(){
$('input:text').val('');
$('#searchContainer .heading.active').click();
return false;
});
$('#dialog-locationPopup').on('click', 'a', function(){
$('#enableCoords').prop('checked', true).change();
return false;
});
$('#advancedSearchContainer input:checkbox').checkbox({cls:'jquery-checkbox-dark', empty: '/skin/images/empty.png'});
$('#params_distance').inputmask({
mask: 9,
placeholder: '',
repeat: 5,
onKeyUp: function () { //show some metadata in the console
if($('#params_distance').val() > 10000) {
$('#params_distance').val(10000);
}
if($('#params_distance').val() == 0) {
$('#params_distance').val(1);
}
}
});
$('#locationExpander').click(function(){
if(!$(this).hasClass('active')) {
locationPopupDefaultCountry = $(this).data('country');
locationPopupDefaultRegion = $(this).data('region');
locationPopupDefaultCity = $(this).data('city');
locationPopupDefaultMetro = $(this).data('metro');
locationPopupDefaultLatitude = $(this).data('latitude');
locationPopupDefaultLongitude = $(this).data('longitude');
locationPopupDefaultZoom = $(this).data('zoom');
locationPopupDefaultMapType = $(this).data('map_type');
$('#dialog-locationPopup').dialog('open');
} else {
$(this).removeClass('active');
$(this).siblings('.container').slideUp(function(){
$(this).find('.location').empty();
});
}
return false;
});
$('#params_rating').raty({
score: $('#rating').data('score'),
starOff: '/skin/images/rating-dark-off.png',
starOn : '/skin/images/rating-dark-on.png',
hints: [
Travvi.s('js.raty.1'),
Travvi.s('js.raty.2'),
Travvi.s('js.raty.3'),
Travvi.s('js.raty.4'),
Travvi.s('js.raty.5')
]
});
$('#ratingExpander').click(function(){
if($(this).hasClass('active')){
$(this).removeClass('active');
$(this).siblings('.container').slideUp();
} else{
$(this).addClass('active');
$(this).siblings('.container').slideDown(function(){
$(this).find('input').attr('checked', true);
$('#params_rating').raty('score', 0);
$('#rating input:hidden').val('0');
});
}
});
$('a.locationPopupCaller').live('click', function(){
locationPopupDefaultCountry = $(this).data('country');
locationPopupDefaultRegion = $(this).data('region');
locationPopupDefaultCity = $(this).data('city');
locationPopupDefaultMetro = $(this).data('metro');
locationPopupDefaultLatitude = $(this).data('latitude');
locationPopupDefaultLongitude = $(this).data('longitude');
locationPopupDefaultZoom = $(this).data('zoom');
locationPopupDefaultMapType = $(this).data('map_type');
$('#dialog-locationPopup').dialog('open');
return false;
});
$('#dialog-locationPopup').bind('dialogclose', function() {
$('#locationVisible').attr('checked', false);
});
$('#searchButton').button().click(function(){
$('#searchContainer form').submit();
return false;
});
$('.searchHobby a.ok').click(function(){
$('#searchButton').click();
return false;
});
$('#searchContainer form').submit(function(){
currentPage = -1;
$.history.load((currentFilter ? 'selected/' : '') + '1');
$.history.check();
return false;
});
$('#nearestButton').button().click(function(){
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
Spinner.show();
var html = '';
html += ' ';
html += position.coords.latitude + ' ' + position.coords.longitude;
html += '';
html+= '\n';
html+= '\n';
html+= '\n';
html+= '\n';
$('#params_distance').val('5');
$('#locationContainer .location').html(html);
$('#locationContainer, #locationContainer .distance').show();
$('#sort__distance').prop("disabled", false).prop("checked", true);
$('#searchContainer form').submit();
}, function(err){
flushSpinnerMessage('ERROR: ' + err.message);
}, {
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 0
});
} else {
flushSpinnerMessage(Travvi.s('js.geolocation_is_not_supported'));
}
return false;
});
$('#dialog-hobbies').dialog({
autoOpen: false,
width: 'auto',
position: ['center', 'center'],
height: 'auto',
modal: true,
resizable: false,
draggable: false,
close: function() {
$('#searchHobby').val('');
}
});
$('#hobbies_list').click(function(){
$('#dialog-hobbies').dialog('open');
return false;
});
$('#hobbiesExpander').click(function(){
if(!$(this).hasClass('active')){
$('#dialog-hobbies').dialog('open');
} else{
$('.for-hobbies .container').slideUp();
$('#hobbies_list, #hobbyIds, #dialog-hobbies #hobbiesContent').empty();
$(this).removeClass('active');
}
return false;
});
$('#dialog-hobbies a.submit').button();
$('#dialog-hobbies a.submit.cancel').click(function(){
$('#dialog-hobbies').dialog('close');
return false;
});
$('#dialog-hobbies a.submit.ok').click(function(){
$('#hobbyIds').empty();
$('#hobbiesContent .hobby').each(function(){
$('#hobbyIds').append('')
});
var count = $('#hobbiesContent .hobby').length;
$('#hobbies_list').html($('#hobbiesContent').html());
if(count > 0) {
$('#hobbiesExpander').addClass('active');
$('.for-hobbies .container').slideDown();
} else {
$('#hobbiesExpander').removeClass('active');
$('.for-hobbies .container').slideUp();
}
$('#dialog-hobbies').dialog('close');
return false;
});
$('#searchHobby').keyup(function(){
var inputString = $(this).val();
if(inputString.length < 3) {
$('#suggestionsContainer').fadeOut();
} else {
$.post("/interests/find", {queryString: ""+inputString+"", fullSearch: 1}, function(data) {
$('#suggestionsContainer').fadeIn();
$('#suggestions').html(data);
});
}
}).blur(function(){
if(!suggestionsAction)
$('#suggestionsContainer').fadeOut();
}).focus(function(){
if($(this).val().length > 2) {
$('#suggestionsContainer').fadeIn();
$(window).resize();
}
});
var slideSuggestions = function(amount) {
var content = $('#suggestions'),
container = $('#suggestionsContainer'),
delta = container.actual('height') - content.actual('outerHeight');
if (delta < 0) {
content.css('marginTop', delta*(1-amount/100));
}
}
$('#suggestionsSlider').slider({
value: 100,
orientation: "vertical",
min: 0,
max: 100,
step: 1,
slide: function( event, ui ) {
slideSuggestions(ui.value);
},
change: function( event, ui ) {
slideSuggestions(ui.value);
}
});
$('#suggestionsContainer').mousewheel(function(e, delta){
delta *= 5;
var obj = $( "#suggestionsSlider" );
var newVal = obj.slider('option', 'value') + delta;
newVal = Math.max(obj.slider('option', 'min'), Math.min(obj.slider('option', 'max'),newVal));
obj.slider('option', 'value', newVal);
return false;
}).hover(function(){
suggestionsAction = true;
}, function(){
suggestionsAction = false;
});
$(window).resize(function(){
var content = $('#suggestions'),
container = $('#suggestionsContainer');
if(!$('#suggestions').length || !$('#suggestionsContainer')) return false;
var screenHeight = $(window).height() - container.offset().top - 30;
container.css('height', Math.min(screenHeight, content.actual('outerHeight') + parseInt(container.css('padding-top')) + parseInt(container.css('padding-bottom')) ));
var delta = container.actual('height') - content.actual('outerHeight');
if (delta < 0) {
$('#suggestionsSlider').show();
$('#suggestionsSlider').height(container.actual('outerHeight') - 30);
} else {
$('#suggestionsSlider').hide();
}
});
$('#suggestions').on('click', 'li', function() {
$('#hobbiesContent span.message').remove();
if($('#hobbiesContent div.hobby').length > 4) {
$('#suggestionsContainer').hide();
$('#searchHobby').blur();
flushSpinnerMessage(Travvi.s('js.for_adding_another_hobby_remove_selected_one_first'));
return false;
}
if(!$('#hobbies_' + $(this).data('id')).length) {
html = '