var EXPO = EXPO || {}; //isolated namespace EXPO.exposition = EXPO.exposition || {}; if (EXPO.exposition.object){ console.warn('WARNING: EXPO.exposition.object is already defined!'); }else { EXPO.exposition.object = (function () { // variables var that = {}, VisitButtons = function ( opt) { this.opt = opt; this.isActive = false; this.$visitorsList = $(document.getElementById(opt.visitorsListId)); this.$secondary = $(document.getElementById(opt.wrapId)); this._controller(); }, UnVisitButtons = function (opt) { this.opt = opt; this.$visitorsList = $(document.getElementById(opt.visitorsListId)); this.$secondary = $(document.getElementById(opt.wrapId)); this._controller(); }; VisitButtons.prototype = { _controller: function () { var self = this; $('.'+this.opt.class).on('click',function(){ self._setName(); $('.'+self.opt.class).hide().siblings('.button').show(); }); }, _setName: function () { $('
  • ').html(this.opt.template).prependTo(this.$visitorsList); this.$secondary.hide(); isActive = true; } }; UnVisitButtons.prototype = { _controller: function () { var self = this; $('.'+this.opt.class).on('click',function(){ self._unSetName(); $('.'+self.opt.class).hide().siblings('.button').show(); }); }, _unSetName: function () { var self = this; this.$visitorsList.children().each(function () { if($(this).html() == self.opt.template){ $(this).detach(); } }); if(!this.$visitorsList.children().length){ this.$secondary.show(); }else{ this.$secondary.hide(); } isActive = true; } }; that.opt = {}; //свойства по умолчанию //private $(function () { //$('.visit').on('click', function () { // console.log('!!!! visit button is clicked!'); //}); }); // methods //инициализация общих свойств that.init = function (options) { $.extend(this.opt, options); var self = this, $visitorsWrap = $(document.getElementById(self.opt.visitButton.visitorsListId)), $secondaryList = $(document.getElementById(self.opt.visitButton.wrapId)); if(!$visitorsWrap.children().length){ $secondaryList.show(); } this.visitButtons = new VisitButtons(self.opt.visitButton); this.unVisitButtons = new UnVisitButtons(self.opt.unvisitButton); }; return that; }()); }