var EXPO = EXPO || {}; //isolated namespace //общий для всех страниц модуль Функционал общий для всех страниц // module requires JQuery library EXPO.placePhoto = (function() { // variables var that = {}; that.settings = { }; //default module setting that.lang ={}; //dependences //private // constructor for popup window on gallery page var ModalBox = function(){ // object properties this.rawData; this.currentId; // привязка к html данным шаблона формы this.control; }; //methods for ModalBox object ModalBox.prototype = { //some kind of 'protected' methods _getAjax: function () { }, _renderSlide: function () { }, _getId: function () { }, //public methods close: function () { }, open: function () { }, nextSlide:function () { }, prevSlide: function () { }, // method to get sliderPopup visible and pass to modalBox first initial id and make some init routine show: function () { } }; // methods //инициализация общих свойств that.init = function(options) { // settings extending $.extend(this.lang, options.lang); options.lang = null; $.extend(this.settings, options); // begin of initialization var self = this; $(function () { $('a.open-photo').on('click', function () { var $popupGallery = $('#pw-gallery'); // configure image var $img = $(this).find('img').clone(); $img.addClass('photoTag'); $img_block = $popupGallery.find('.pg-photos'); $img_block.html($img); // add id for image description var id = 'imgid'+$img.attr('data-image-id') $popupGallery.find('.pg-photo-descr').attr('id', id); $popupGallery.find('.pg-photo-descr ul').remove(); $popupGallery.find('.pg-photo-title').html($img.attr('data-image-name')) $popupGallery.find('.pg-photo-text').html($img.attr('data-image-description')) // end configure image // Список людей для автокомплита: $.getJSON('/accounts/get-tag-users/',function(json){ window.photoTagData = json; }); // отметки $('.photoTag').photoTag({ externalAddTagLinks: { bind: true, selector: ".addTag" }, requestTagsUrl: '/photo/existing-tags/', deleteTagsUrl: '/photo/delete-tag/', addTagUrl: '/photo/add-tag/', parametersForNewTag: { name: { parameterKey: 'name', isAutocomplete: true, label: 'Введите имя:' } } }); // --------------------------------------- var $popupOuter = $('div.popup-gallery-outer', $popupGallery); var $closePopup = $('a.pg-close', $popupGallery); var $prevSlide = $('a.pgpc-prev', $popupGallery); var $nextSlide = $('a.pgpc-next', $popupGallery); function closeGallery() { $popupGallery.fadeOut(300, function () { $body.removeClass('no-scroll'); }); return false; } $closePopup.on('click', closeGallery); $popupOuter.on('click', function (event) { var targetObj = $(event.target); if (targetObj.parents().filter('.popup-gallery').length < 1) { closeGallery() } }); $prevSlide.on('click', function () { return false; }); $nextSlide.on('click', function () { return false; }); $body.addClass('no-scroll'); $popupGallery.fadeIn(300); return false; }); }); }; return that; }());