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 += ' '; if(country) html+= country; html += '
'; } html += ' '; html += latitude + ' ' + longitude; html += ''; html+= '\n'; html+= '\n'; html+= '\n'; html+= '\n'; $('#locationContainer .distance').show(); if(countryId > 0) { html+= '\n'; } } else { html = ' '; if(country) html+= country; if(regionId != '0') html+= ', ' + region; if(cityId != '0') html+= ', ' + city; if(metroId != '0') html+= ', ' + metro; 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 += 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'); }); $('#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(); });