var counter = 0;
var suggestionsAction = false;
var selectikWidth = 538;
var currentPage = 0;
var currentFilter = false;
var checkedObjectsArray = [];
var filteredObjectsArray = [];
var maxSelectedItems = 100;
var map = null;
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;
if(enableCoords || metroId > 0) {
html = '';
if(countryId > 0) {
html += '
';
}
html += ' ';
html+= '\n';
html+= '\n';
html+= '\n';
html+= '\n';
$('#locationContainer .distance').show();
if(countryId > 0) {
html+= '\n';
}
} else {
html = ' ';
html+= '\n';
html+= '\n';
html+= '\n';
html+= '\n';
html+= '\n';
$('#locationContainer .distance').hide();
}
$('#locationExpander').addClass('active');
$('#locationExpander').siblings('.container').slideDown();
$('#locationContainer .location').html(html);
$('#dialog-locationPopup').unbind('dialogclose');
$('#other_properties').load('/objects/get_properties_for_search', $('#searchContainer form').serializeArray(), Spinner.hide());
return false;
};
function imageMapInit(lat, lng, zoom) {
map = new L.Map('map_canvas', {center: new L.LatLng(lat, lng), zoom: zoom, maxZoom: 19});
map.addControl(new L.Control.Layers({
'OSM': new L.DeferredLayer(layerdefs.osm),
'Yandex Map': new L.DeferredLayer(layerdefs.ymap),
'Yandex Satellite': new L.DeferredLayer(layerdefs.ysat),
'Yandex Hybrid': new L.DeferredLayer(layerdefs.yhyb),
'Yandex Народная': new L.DeferredLayer(layerdefs.ypub),
'Yandex Народная Hybrid': new L.DeferredLayer(layerdefs.ypubhyb),
'Google Roadmap': new L.DeferredLayer(layerdefs.groad),
'Google Terrain': new L.DeferredLayer(layerdefs.gter),
'Google Satellite': new L.DeferredLayer(layerdefs.gsat),
'GoogleHybrid': new L.DeferredLayer(layerdefs.ghyb),
'Bing Road': new L.DeferredLayer(layerdefs.broad),
'Bing Aerial': new L.DeferredLayer(layerdefs.baer),
'Bing Aerial With Labels': new L.DeferredLayer(layerdefs.baerlab),
'MapQuest': new L.DeferredLayer(layerdefs.mqst)
}));
map.addControl(new L.Control.Scale({width: 100, position: 'bottomleft'}));
var fullScreen = new L.Control.FullScreen();
map.addControl(fullScreen);
$('.leaflet-control-zoom').parent().removeClass('leaflet-left').addClass('leaflet-right');
var count = 1; // 0 - not set
$('#map_canvas .leaflet-control-layers-base input:radio')
.each(function(){
$(this).val(count);
if(count == 1) $(this).click();
count++;
});
map.on('enterFullscreen exitFullscreen', function(){
setTimeout(function(){map.invalidateSize()}, 1000);
});
$('#map_canvas .leaflet-control-layers-list input:radio').checkbox({cls:'jquery-radiobutton-dark',empty: '/skin/images/empty.png'});
$('#map_canvas .jquery-radiobutton-dark').hover(function(){
$('#map_canvas .leaflet-control-layers').addClass('leaflet-control-layers-expanded');
}, function(){
$('#map_canvas .leaflet-control-layers').removeClass('leaflet-control-layers-expanded');
});
}
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($) {
imageMapInit(0, 0, 0);
$.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(
'/objects/search_result_page',
data,
function(){
$('#searchResult [title]').tooltip({showURL: false});
Spinner.hide();
}
);
}
},
{ unescape: ",/" });
$(window).scroll(function() {
$('#dialog-actionForm').dialog('option', {position: ['center', 'center']});
$('#dialog-map').dialog('option', {position: ['center', 'center']});
});
//--------------------- Search panel --------------------------------
$('#params_rating').raty({
starOff: '/skin/images/rating-dark-off.png',
starOn : '/skin/images/rating-dark-on.png',
score: $('#params_rating').data('score'),
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')
]
});
$('#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;
});
$('#object_list').dropdownchecklist({width: 560, maxDropHeight: 240, customScroll: true, textFormatFunction: function(options) {
var selectedOptions = options.filter(":selected");
var countOfSelected = selectedOptions.size();
var size = options.size();
switch(countOfSelected) {
case 0: return '' + Travvi.s('js.select') + '';
case size: return Travvi.s('js.selected') + ': ' + Travvi.s('js.all');
default: return Travvi.s('js.selected') + ': ' + countOfSelected;
}
}
});
$('#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);
}
}
});
$('#addType').click(function(){
counter++;
var val = $('#objectSection input:checked').val();
$(this).parent().before('
');
$('#objectTypeContainer'+counter).load('/objects/get_types/' + val + '/' + counter, function(){
Spinner.hide(); }
);
if($('.additionalType').length >= 2) {
$('#addTypeContainer').hide();
}
return false;
});
$('.sectionHiddable').on('click', ' a.delete', function(){
Spinner.show();
$(this).parent().parent().next().remove();
$(this).parent().parent().remove();
$('#addTypeContainer').show();
$('#other_properties').load('/objects/get_properties_for_search', $('#searchContainer form').serializeArray(), Spinner.hide());
return false;
});
$('#sectionExpander').click(function(){
if($(this).hasClass('active')) {
$('#objectSection input.radio').prop('checked', false);
$('#objectTypeContainer0').empty();
$('#objectKindContainer0').empty();
$('.sectionHiddable .additionalType').remove();
$('.sectionHiddable .additionalKind').remove();
$('#addTypeContainer').hide();
$('#other_properties').load('/objects/get_properties_for_search', $('#searchContainer form').serializeArray(), Spinner.hide());
} else {
}
$(this).toggleClass('active');
$('.sectionHiddable').toggle();
return false;
});
$('#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;
});
$('div.sectionHiddable').on('change', 'select', function() {
Spinner.show();
if($('.additionalType').length < 3) {
$('#addTypeContainer').show();
} else {
$('#addTypeContainer').hide();
}
$('#other_properties').load('/objects/get_properties_for_search', $('#searchContainer form').serializeArray(), Spinner.hide());
});
$('.recomendation .heading, .bookmarks .heading, .exclude .heading, .other-option .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);
});
}
});
$('#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');
});
}
});
$('#rating').raty({
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')
],
target: '#rating + .result',
targetKeep : true
});
$('#rating [title]').attr('title', '');
$('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;
});
var prevStr = '';
$('#searchstr').keydown(function(e){
var code = e.keyCode ? e.keyCode : e.wich;
if(code == 38 || code == 40) {
e.preventDefault();
return false;
}
}).keyup(function(e){
var code = e.keyCode ? e.keyCode : e.wich;
if(code == 38) { // up
var obj = $('#presearch li.highlighted').prev();
if(obj.length) {
$('#presearch li.highlighted').removeClass('highlighted');
obj.addClass('highlighted');
$('#searchstr').val(obj.text());
}
return false;
}
if(code == 40) { // down
var obj = $('#presearch li.highlighted').next();
if(obj.length) {
$('#presearch li.highlighted').removeClass('highlighted');
obj.addClass('highlighted');
$('#searchstr').val(obj.text());
}
return false;
}
var str = $.trim($(this).val());
if(str !== prevStr) {
if(str.length > 3) {
Spinner.show();
$('#presearch')
.load('/objects/presearch', {searchstr: str}, function(){ Spinner.hide() })
.show();
} else {
$('#presearch').hide();
}
}
prevStr = str;
}).blur(function(){
$('#presearch').fadeOut();
}).focus(function(){
var str = $.trim($(this).val());
if(str !== prevStr) {
$(this).keyup();
return;
}
if(str.length > 3) {
$('#presearch').fadeIn();
}
});
$('#presearch').on('click', 'li', function(){
$('#searchstr').val($(this).text());
$('#presearch').fadeOut();
return false;
});
$('#searchContainer form').submit(function(){
currentPage = -1;
$.history.load((currentFilter ? 'selected/' : '') + '1');
$.history.check();
return false;
});
// ---------------------------------------------------------------------
$('#addObject').button().click(function(){
$('#object_data').submit();
return false;
});
$('#searchResult').on('change', '.mass_action_checkbox', function(){
if($(this).is(':checked')) {
$(this).closest('.object_card').addClass('selected');
} else {
$(this).closest('.object_card').removeClass('selected');
}
return false;
});
$('#searchResult').on('click', '.object_card .expander', function(){
$(this).closest('.object_menu').toggleClass('wide');
$(this).toggleClass('collapser').closest('.object_card').find('.info').toggle();
if($(this).hasClass('collapser')) {
$(this).attr('title', Travvi.s('js.hide_extended_info')).tooltip({showURL: false});
} else {
$(this).attr('title', Travvi.s('js.show_extended_info')).tooltip({showURL: false});
}
return false;
});
$('#mass_action a').button({disabled: true});
$('#action_holder a').button({disabled: true});
$('#select_all').click(function(){
$('.object_card .mass_action_checkbox').attr("checked", true).change();
return false;
});
$('#select_none').click(function(){
checkedObjectsArray = [];
$('.object_card .mass_action_checkbox').removeAttr("checked").change();
return false;
});
$('#show_selected').click(function(){
filteredObjectsArray = checkedObjectsArray.slice(0);
currentFilter = false;
$.history.load('selected/1');
$.history.check();
return false;
});
$('#show_all').click(function(){
currentFilter = true;
$.history.load('1');
$.history.check();
return false;
});
$('a#action').click(function(){
actionCandidates = checkedObjectsArray;
$('#dialog-actionForm').dialog('open');
return false;
});
$('#dialog-actionForm').dialog({
autoOpen: false,
width: 'auto',
position: ['center', 'center'],
height: 'auto',
modal: true,
resizable: false,
draggable: false,
open: function(){
if(!actionCandidates.length) {
flushSpinnerMessage(Travvi.s('js.error_please_select_objects'));
return false;
}
if(actionCandidates.length == 1) {
$('#dialog-actionForm .addComment').removeClass('disabled');
} else {
$('#dialog-actionForm .addComment').addClass('disabled');
}
}
});
$('#dialog-actionForm [title]').tooltip({showURL: false});
$('#dialog-actionForm .showOnMap').click(function() {
$('#dialog-actionForm').dialog('close');
Spinner.show();
$.post( "/objects/get_map_objects", {candidates: actionCandidates}, function() {
if(markers) map.removeLayer(markers);
markers = L.markerClusterGroup({showCoverageOnHover:false, disableClusteringAtZoom: 17});
var TravviIcon = L.Icon.Label.extend({
options: {
iconUrl: '/skin/images/marker_t.png',
shadowUrl: null,
iconSize: [40, 40],
iconAnchor: new L.Point(0, 0),
popupAnchor: [0, -40],
labelAnchor: new L.Point(30, 13),
wrapperAnchor: new L.Point(20, 40)
}
});
for (var i = 0; i < addressPoints.length; i++) {
var a = addressPoints[i];
var marker = L.marker(L.latLng(a[0], a[1]), { icon: new TravviIcon({ labelText: a[2].replace(/(<([^>]+)>)/ig,"").substr(0, 100) }) });
marker.bindPopup(a[3]);
markers.addLayer(marker);
}
$('#dialog-map').dialog('open');
map.addLayer(markers);
map.fitBounds(markers.getBounds(), [0,0]);
Spinner.hide();
});
return false;
});
$('#dialog-map').dialog({
autoOpen: false,
width: 'auto',
position: ['center', 'center'],
height: 'auto',
modal: true,
resizable: false,
draggable: false,
open: function(){
$('#dialog-map').dialog('option', {
width: Math.max(Math.min($(window).width() - 100, 900), 480),
height: Math.max(Math.min($(window).height() - 100, 600), 360)
}).dialog('option', {position: ['center', 'center']});
map.invalidateSize();
}
});
$('#dialog-actionForm .addBookmarks').click(function() {
bookmarksAction = 'add';
$('#dialog-actionForm').dialog('close');
$('#dialog-groupFormAdd a.ok .ui-button-text').html(Travvi.s('js.add'));
$('#dialog-groupFormAdd').dialog('open');
return false;
});
$('#dialog-actionForm .removeBookmarks').click(function() {
bookmarksAction = 'remove';
$('#dialog-actionForm').dialog('close');
$('#dialog-groupFormAdd a.ok .ui-button-text').html(Travvi.s('js.delete'));
$('#dialog-groupFormAdd').dialog('open');
return false;
});
$('#dialog-groupFormAdd').dialog({
autoOpen: false,
width: 'auto',
position: ['center', 'center'],
height: 'auto',
modal: true,
resizable: false,
draggable: false,
open: function(){
Spinner.show();
$('#dialog-groupFormAdd .groupsList').load('/user/object_lists/get_for_mass_action', {action: bookmarksAction, candidates: actionCandidates}, function(){
$('#dialog-groupFormAdd input:checkbox').checkbox({cls:'jquery-checkbox-dark', empty: '/skin/images/empty.png'});
var content = $('#dialog-groupFormAdd .groupsList'),
container = $('#dialog-groupFormAdd .groupsListContainer'),
delta = container.actual('height') - content.actual('outerHeight');
if (delta < 0) {
$('#dialog-groupFormAdd .slider').show();
} else {
$('#dialog-groupFormAdd .slider').hide();
}
$('#dialog-groupFormAdd').dialog('option', {position: ['center', 'center']});
Spinner.hide();
});
}
});
$('#dialog-groupFormAdd a').button();
$('#dialog-groupFormAdd a[title]').tooltip({showURL: false});
$('#dialog-groupFormAdd a.edit').click(function(){
$('#dialog-groupFormAdd').dialog('close');
$('#dialog-groupEditForm').dialog('open');
return false;
});
$('#dialog-groupFormAdd a.cancel').click(function(){
$('#dialog-groupFormAdd').dialog('close');
return false;
});
$('#dialog-groupFormAdd a.ok').click(function(){
var lists = [],
extended = [];
$('#dialog-groupFormAdd .groupsList input:checkbox:checked').each(function(){
if($.isNumeric($(this).val())) {
lists.push($(this).val());
} else {
extended.push($(this).val());
}
});
if(lists.length + extended.length == 0) {
flushSpinnerMessage(Travvi.s('js.bookmarks_not_selected'));
return false;
}
$.ajax({
url: '/user/object_lists/' + bookmarksAction + '_objects',
data: {ids: actionCandidates, lists: lists, extended: extended },
type: 'post',
dataType: 'script'
});
$('#dialog-groupFormAdd').dialog('close');
if(success) {
currentPage = -1;
$.history.load('1');
$.history.check();
}
return false;
});
$('#dialog-groupFormAdd .slider').slider({
value: 100,
orientation: "vertical",
min: 0,
max: 100,
step: 1,
slide: function( event, ui ) {
var content = $('#dialog-groupFormAdd .groupsList'),
container = $('#dialog-groupFormAdd .groupsListContainer'),
delta = container.actual('height') - content.actual('outerHeight');
if (delta < 0) {
content.css('marginTop', delta*(1-ui.value/100));
}
},
change: function( event, ui ) {
var content = $('#dialog-groupFormAdd .groupsList'),
container = $('#dialog-groupFormAdd .groupsListContainer'),
delta = container.actual('height') - content.actual('outerHeight');
if (delta < 0) {
content.css('marginTop', delta*(1-ui.value/100));
}
}
});
$('#dialog-groupFormAdd .groupsListContainer').mousewheel(function(e, delta){
delta *= 5;
var obj = $( "#dialog-groupFormAdd .slider" );
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;
});
$( "#dialog-reviewForm" ).dialog({
autoOpen: false,
resizable: false,
position: ['center', 'center'],
width: 'auto',
height: 'auto',
modal: true,
draggable: false,
open: function(){
$( "#dialog-reviewForm textarea" ).val('');
var id = actionCandidates[0];
var rating = $('#rating_' + id).val();
if(rating == '0') {
$('#rating').raty('readOnly', false).raty('score', 0);
$('#rating + .result').empty();
} else {
$('#rating').raty('score', rating).raty('readOnly', true);
}
}
});
$('#dialog-actionForm .addComment').click(function() {
if($(this).hasClass('disabled')) return false;
$('#dialog-actionForm').dialog('close');
$('#dialog-reviewForm').dialog('open');
return false;
});
$( "#dialog-reviewForm a.submit.cancel" ).button().click(function(){
$( "#dialog-reviewForm" ).dialog('close');
return false;
});
$( "#dialog-reviewForm a.submit.ok" ).button().click(function(){
if(!$('#rating input').val()) {
flushSpinnerMessage(Travvi.s('js.rating_is_not_set_set_rating'));
return false;
}
var $form = $('#dialog-reviewForm form');
$form.append($('').val(actionCandidates[0]));
$.post('/objects/save_rating', $form.serialize(), function(data){
$( "#dialog-reviewForm" ).dialog('close');
eval(data);
});
return false;
});
$('#plus').textareaCount({
'maxCharacterSize': 90,
'originalStyle': 'originalDisplayInfo',
'displayFormat': '#left'
});
$('#minus').textareaCount({
'maxCharacterSize': 90,
'originalStyle': 'originalDisplayInfo',
'displayFormat': '#left'
});
$('#comment').textareaCount({
'maxCharacterSize': 300,
'originalStyle': 'originalDisplayInfo',
'displayFormat': '#left'
});
$('a.object').tooltip({showURL: false});
$('#objectSection input.radio')
.checkbox({cls:'jquery-radiobutton-dark', empty: '/skin/images/empty.png'})
.change(function(){
var val = $('#objectSection input.radio:checked').length ? $('#objectSection input.radio:checked').val() : 0;
Spinner.show();
if(val == 'private' || val == '') {
$('#objectTypeContainer0').empty();
} else {
$('#objectTypeContainer0').load('/objects/get_types/' + val, function(){ Spinner.hide(); });
}
$('#objectKindContainer0').empty();
$('.additionalType').remove();
$('.additionalKind').remove();
$('#addTypeContainer').hide();
$('#other_properties').load('/objects/get_properties_for_search', $('#searchContainer form').serializeArray(), Spinner.hide());
});
$('.searchHobby a.ok').click(function(){
$('#searchButton').click();
return false;
});
$('#searchButton').button().click(function(){
$('#searchContainer form').submit();
return false;
});
$('#nearestButton').button().click(function(){
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
Spinner.show();
var html = '';
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');
});
$('#hobbiesExpander').click(function(){
if(!$(this).hasClass('active')){
$('#dialog-hobbies').dialog('open');
} else{
$('.for-hobbies .container').slideUp();
$('#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: 0}, function(data) {
$('#suggestionsContainer').fadeIn();
$('#suggestions').html(data);
$(window).resize();
});
}
}).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 = '';
html += '
';
html += $(this).data('name');
html += '
';
$('#hobbiesContent').append(html);
}
$('#suggestionsContainer').hide();
$('#searchHobby').blur();
flushSpinnerMessage(Travvi.s('js.hobby_named_%s_selected_for_further_processing', $(this).data('name')));
return false;
});
$('#hobbiesContent').on('click', 'a.delete', function(){
$(this).closest('div.hobby').remove();
return false;
});
$('#myHobbies').click(function(){
$('#myHobbiesList').show();
$(window).resize();
$(document).one('click', function(){
$('#myHobbiesList').hide();
});
return false;
});
$('#myHobbiesList').on('click', 'li', function() {
$('#hobbiesContent span.message').remove();
if($('#hobbiesContent div.hobby').length > 4) {
flushSpinnerMessage(Travvi.s('js.for_adding_another_hobby_remove_selected_one_first'));
$('#myHobbiesList').hide();
return false;
}
if(!$('#hobbies_' + $(this).data('id')).length) {
html = '';
html += '
';
html += $(this).data('name');
html += '
';
$('#hobbiesContent').append(html);
}
flushSpinnerMessage(Travvi.s('js.hobby_named_%s_selected_for_further_processing', $(this).data('name')));
$('#myHobbiesList').hide();
return false;
});
//$('#advancedSearchContainer:not(.active)').hide().css({'top' : 0});
//---------- My Hobbies Slider --------------------------------------
var slideMyHobbies = function(amount) {
var content = $('#myHobbiesList ul'),
container = $('#myHobbiesList'),
delta = container.actual('height') - content.actual('outerHeight');
if (delta < 0) {
content.css('marginTop', delta*(1-amount/100));
}
}
$('#myHobbiesSlider').slider({
value: 100,
orientation: "vertical",
min: 0,
max: 100,
step: 1,
slide: function( event, ui ) {
slideMyHobbies(ui.value);
},
change: function( event, ui ) {
slideMyHobbies(ui.value);
}
});
$('#myHobbiesList').mousewheel(function(e, delta){
delta *= 5;
var obj = $( "#myHobbiesSlider" );
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;
});
$(window).resize(function(){
var content = $('#myHobbiesList ul'),
container = $('#myHobbiesList');
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');
content.css('marginTop', Math.min(delta, 0));
if (delta < 0) {
$('#myHobbiesSlider').show();
$('#myHobbiesSlider').height(container.actual('outerHeight') - 30);
} else {
$('#myHobbiesSlider').hide();
}
});
Spinner.hide();
});