{"version":3,"sources":["../lib/intro.frag","../lib/ym/CenterMarker.js","../lib/ym/CEventEmitter.js","../lib/ym/CSearchSignals.js","../lib/ym/CMapSignals.js","../lib/ym/CMarkerSignals.js","../lib/models/ResultListModel.js","../lib/models/PagingModel.js","../lib/views/ViewModel.js","../lib/views/SearchView.js","../lib/views/ResultListView.js","../lib/views/PagingView.js","../lib/views/MapView.js","../lib/views/PopupView.js","../lib/map.js","../lib/search.js","../lib/results.js","../lib/outro.frag"],"names":[],"mappings":"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","file":"results.js","sourcesContent":["(function () {\r\n // I don't want to deal with the RequireJS bullshit. Just return the configs.\r\n var module = {\r\n config: function () {\r\n return config;\r\n }\r\n };","function CenterMarker(GeoPoint, Icon) {\r\n\tif (!GeoPoint) GeoPoint = CenterMarker.GeoPoint;\r\n\telse CenterMarker.GeoPoint = GeoPoint;\r\n\r\n\tif (!Icon) {\r\n\t\tIcon = new ym.common.CIcon(\r\n\t\t\t'/Presentation/filialfinder/Content/img/icons/PoiDefaultLocation.gif',\r\n\t\t\t{ Width: 16, Height: 16 },\r\n\t\t\t{ X: 8, Y: 8 }\r\n\t\t);\r\n\t}\r\n\r\n\tmap.removeMarker('CenterMarker');\r\n\r\n\tvar marker = new ym.map.CMarker({\r\n\t\tIcon: Icon,\r\n\t\tPosition: GeoPoint,\r\n\t\tLayerID: 'CenterMarker',\r\n\t\tZIndex: 1000\r\n\t});\r\n\r\n\tmap.addMarker(marker);\r\n\tmap.showMarker(marker);\r\n\r\n\treturn marker;\r\n}\r\n","function CEventEmitter() {\r\n this._handlers = {};\r\n\r\n this.on = function (eventName, handler) {\r\n // either use the existing array or create a new one for this event\r\n // this isn't the most efficient way to do this, but is the shorter\r\n // than other more efficient ways, so we'll go with it for now.\r\n (this._handlers[eventName] = this._handlers[eventName] || [])\r\n // add the handler to the array\r\n .push(handler);\r\n\r\n return this;\r\n };\r\n\r\n this.once = function (eventName, handler) {\r\n // create a wrapper listener, that will remove itself after it is called\r\n function wrappedHandler() {\r\n // remove ourself, and then call the real handler with the args\r\n // passed to this wrapper\r\n handler.apply(this.off(eventName, wrappedHandler), arguments);\r\n }\r\n\r\n // in order to allow that these wrapped handlers can be removed by\r\n // removing the original function, we save a reference to the original\r\n // function\r\n wrappedHandler.h = handler;\r\n\r\n // call the regular add listener function with our new wrapper\r\n return this.on(eventName, wrappedHandler);\r\n };\r\n\r\n this.off = function (eventName, handler) {\r\n // loop through all handlers for this eventName, assuming a handler\r\n // was passed in, to see if the handler passed in was any of them so\r\n // we can remove it\r\n // it would be more efficient to stash the length and compare i\r\n // to that, but that is longer so we'll go with this.\r\n for (var list = this._handlers[eventName], i = 0; handler && list && list[i]; i++) {\r\n // either this item is the handler passed in, or this item is a\r\n // wrapper for the handler passed in. See the 'once' function\r\n list[i] != handler && list[i].h != handler ||\r\n // remove it!\r\n list.splice(i--, 1);\r\n }\r\n // if i is 0 (i.e. falsy), then there are no items in the array for this\r\n // event name (or the array doesn't exist)\r\n if (!i) {\r\n // remove the array for this eventname (if it doesn't exist then\r\n // this isn't really hurting anything)\r\n delete this._handlers[eventName];\r\n }\r\n return this;\r\n };\r\n\r\n this.emit = function (eventName, data) {\r\n // loop through all handlers for this event name and call them all\r\n // it would be more efficient to stash the length and compare i\r\n // to that, but that is longer so we'll go with this.\r\n for (var list = this._handlers[eventName], i = 0; list && list[i];) {\r\n list[i++].apply(this, list.slice.call(arguments, 1));\r\n }\r\n return this;\r\n };\r\n}\r\n","var _args = function (obj, offset) {\r\n\treturn Array.prototype.slice.call(obj, offset || 0);\r\n};\r\n\r\nfunction CSearchSignals(\r\n\t/** ym.geo.CSearch */ searchObj,\r\n\t/**ym.map.CMap || ym.geo.CGeoRect */ areaObj,\r\n\t/** ym.event.CEventEmitter */ signalsObject\r\n) {\r\n\tthis.signalsObject = signalsObject;\r\n\tthis.area = areaObj;\r\n\tthis.search = searchObj;\r\n}\r\n\r\nCSearchSignals.prototype = {\r\n\tsignalsObject: null,\r\n\r\n\tconstructor: CSearchSignals,\r\n\r\n\tuseCache: function () {\r\n\t\tvar cached = this._cached;\r\n\t\tthis.cache = {\r\n\t\t\tgetCenter: function () {\r\n\t\t\t\treturn cached.center;\r\n\t\t\t},\r\n\t\t\tgetBoundingRect: function () {\r\n\t\t\t\treturn cached.rect;\r\n\t\t\t}\r\n\t\t};\r\n\t},\r\n\r\n\tunuseCache: function () {\r\n\t\tthis.cache = null;\r\n\t},\r\n\r\n\t_doSearch: function (method, args) {\r\n\t\tvar self = this;\r\n\r\n\t\tself.signalsObject.emit.apply(self.signalsObject, ['searchbefore'].concat(args));\r\n\t\targs.unshift(function (data) {\r\n\t\t\tself.signalsObject.emit('searchsuccess', data);\r\n\t\t});\r\n\t\tself.search[method].apply(self.search, args);\r\n\t},\r\n\r\n\t_doSearchByAreaOrLocation: function (method, args) {\r\n\t\tvar area = this.area;\r\n\t\tvar cache = this.cache;\r\n\r\n\t\tif (!this.cache) {\r\n\t\t\tthis._cached = {\r\n\t\t\t\tcenter: area.getCenter(),\r\n\t\t\t\trect: area.getBoundingRect()\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\targs.unshift(cache ? cache : area);\r\n\t\tthis._doSearch(method, args);\r\n\t},\r\n\r\n\tsearchFulltext: function (branchCodes, searchTerm) {\r\n\t\tvar fulltext = new ym.geo.CSearchFulltext(branchCodes);\r\n\t\tvar self = this;\r\n\t\tfulltext.find(searchTerm, function (data) {\r\n\t\t\tself.signalsObject.emit('searchsuccess', data);\r\n\t\t});\r\n\t},\r\n\r\n\tsearchInAreaByBranchCode: function (branchCodes, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchInAreaByBranchCode', _args(arguments, 0));\r\n\t},\r\n\tsearchInAreaByCatchword: function (catchwords, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchInAreaByCatchword', _args(arguments, 0));\r\n\t},\r\n\tsearchAtLocationByBranchCode: function (branchCodes, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchAtLocationByBranchCode', _args(arguments, 0));\r\n\t},\r\n\tsearchAtLocationByCatchword: function (catchwords, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchAtLocationByCatchword', _args(arguments, 0));\r\n\t},\r\n\tsearchAlongRouteByBranchCode: function (polyline, branchCodes, maxDistanceToRoute, corridorRouting, additions) {\r\n\t\tthis._doSearch('searchAlongRouteByBranchCode', _args(arguments, 0));\r\n\t},\r\n\tlookupCluster: function (clusterID, clusterLevel, productTypes, additions) {\r\n\t\tthis._doSearch('lookupCluster', _args(arguments, 0));\r\n\t},\r\n\tsearchPhoneBookInArea: function (catchwords, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchPhoneBookInArea', _args(arguments, 0));\r\n\t},\r\n\tsearchPhoneBookAtLocation: function (catchwords, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchPhoneBookAtLocation', _args(arguments, 0));\r\n\t},\r\n\tsearchPhoneBookByNumber: function (phoneNumber, additions) {\r\n\t\tthis._doSearch('searchPhoneBookByNumber', _args(arguments, 0));\r\n\t},\r\n\tsearchEventInAreaByCatchword: function (catchwords, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchEventInAreaByCatchword', _args(arguments, 0));\r\n\t},\r\n\tsearchEventInAreaByBranchCode: function (branchCodes, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchEventInAreaByBranchCode', _args(arguments, 0));\r\n\t},\r\n\tsearchByCustomerIDs: function (customerID, additions) {\r\n\t\tthis._doSearch('searchByCustomerIDs', _args(arguments, 0));\r\n\t},\r\n\tsearchByIdentifier: function (identifier, additions) {\r\n\t\tthis._doSearch('searchByIdentifier', _args(arguments, 0));\r\n\t},\r\n\tsearchGeoLayer: function (geoLayer, additions) {\r\n\t\tthis._doSearchByAreaOrLocation('searchGeoLayer', _args(arguments, 0));\r\n\t},\r\n\tsearchBranchesCluster: function (clusterLevel, clusterID) {\r\n\t\tthis._doSearch('searchBranchesCluster', _args(arguments, 0));\r\n\t}\r\n};\r\n","/**\r\n\r\n Registriert SignalEvents:\r\n =========================\r\n\r\n maploaded (map:ym.map.CMap, event:Object)\r\n mapstartmove (map:ym.map.CMap, event:Object)\r\n mapendmove (map:ym.map.CMap, event:Object)\r\n mapendzoom (map:ym.map.CMap, event:Object)\r\n mapchangestyles (map:ym.map.CMap, event:Object)\r\n mapmouseout (map:ym.map.CMap, event:Object)\r\n mapmouseover (map:ym.map.CMap, event:Object)\r\n mapmousedown (map:ym.map.CMap, geoPosition:ym.geo.CGeoPoint, pixelPosition:ym.common.CPixel)\r\n mapmouseup (map:ym.map.CMap, geoPosition:ym.geo.CGeoPoint, pixelPosition:ym.common.CPixel)\r\n mapresize (map:ym.map.CMap, event:Object)\r\n\r\n */\r\n\r\nfunction CMapSignals(/** ym.map.CMap */mapObj, /** ym.event.CEventEmitter */signalsObject) {\r\n this.signalsObject = signalsObject;\r\n\r\n var self = this,\r\n events = [\r\n \"onload\",\r\n \"onstartmove\",\r\n \"onendmove\",\r\n \"onendzoom\",\r\n \"onchangemapstyle\",\r\n \"onclick\",\r\n \"onmouseover\",\r\n \"onmouseout\",\r\n \"onmousedown\",\r\n \"onmouseup\",\r\n \"onresize\"\r\n ];\r\n\r\n this.map = map;\r\n\r\n function _addListener(eventName) {\r\n return function () {\r\n self['_' + eventName].apply(self, Array.prototype.slice.call(arguments, 0));\r\n }\r\n }\r\n\r\n for (var i = 0, l = events.length; i < l; i++) {\r\n this.map.addListener(events[i], _addListener(events[i]));\r\n }\r\n}\r\n\r\nCMapSignals.prototype = {\r\n signalsObject: null,\r\n\r\n constructor: CMapSignals,\r\n\r\n /** map events **/\r\n _onload: function (event) {\r\n this.signalsObject.emit(\"maploaded\", this.map, event);\r\n },\r\n\r\n _onstartmove: function (event) {\r\n this.signalsObject.emit(\"mapstartmove\", this.map, event);\r\n },\r\n\r\n _onendmove: function (event) {\r\n this.signalsObject.emit(\"mapendmove\", this.map, event);\r\n },\r\n\r\n _onendzoom: function (event) {\r\n this.signalsObject.emit(\"mapendzoom\", this.map, event);\r\n },\r\n\r\n _onchangemapstyle: function (event) {\r\n this.signalsObject.emit(\"mapchangestyle\", this.map, event);\r\n },\r\n\r\n _onclick: function (event) {\r\n this.signalsObject.emit(\"mapclick\", this.map, event);\r\n },\r\n\r\n _onmouseover: function (event) {\r\n this.signalsObject.emit(\"mapmouseover\", this.map, event);\r\n },\r\n\r\n _onmouseout: function (event) {\r\n this.signalsObject.emit(\"mapmouseout\", this.map, event);\r\n },\r\n\r\n _onmousedown: function (pos) {\r\n this.signalsObject.emit(\"mapmousedown\", this.map, pos.GeoPosition, pos.PixelPosition);\r\n },\r\n\r\n _onmouseup: function (pos) {\r\n this.signalsObject.emit(\"mapmouseup\", this.map, pos.GeoPosition, pos.PixelPosition);\r\n },\r\n\r\n _onresize: function (event) {\r\n this.signalsObject.emit(\"mapresize\", this.map, event);\r\n }\r\n /** map events **/\r\n };\r\n","/**\r\n\r\n Registriert SignalEvents:\r\n =========================\r\n\r\n markermouseover (map:ym.map.CMap, event:Object)\r\n markermouseout (map:ym.map.CMap, event:Object)\r\n markerclick (map:ym.map.CMap, geoPosition:ym.geo.CGeoPoint, pixelPosition:ym.common.CPixel)\r\n markermousedown (map:ym.map.CMap, geoPosition:ym.geo.CGeoPoint, pixelPosition:ym.common.CPixel)\r\n markermouseup (map:ym.map.CMap, event:Object)\r\n\r\n */\r\nfunction CMarkerSignals(/** object */ markerOptions, /** ym.event.CEventEmitter */ signalsObject) {\r\n\tthis.signalsObject = signalsObject;\r\n\r\n\tvar self = this,\r\n\t\tevents = ['onmouseover', 'onmouseout', 'onclick', 'onmousedown', 'onmouseup'];\r\n\r\n\tthis.marker = new ym.map.CMarker(markerOptions);\r\n\r\n\tfunction _addListener(eventName) {\r\n\t\treturn function () {\r\n\t\t\tself['_' + eventName].apply(self, Array.prototype.slice.call(arguments, 0));\r\n\t\t};\r\n\t}\r\n\r\n\tfor (var i = 0, l = events.length; i < l; i++) {\r\n\t\tthis.marker.addListener(events[i], _addListener(events[i]));\r\n\t}\r\n}\r\n\r\nCMarkerSignals.prototype = {\r\n\tconstructor: CMarkerSignals,\r\n\r\n\t_onmouseover: function (event) {\r\n\t\tthis.signalsObject.emit('markermouseover', this.marker, event);\r\n\t},\r\n\t_onmouseout: function (event) {\r\n\t\tthis.signalsObject.emit('markermouseout', this.marker, event);\r\n\t},\r\n\t_onclick: function (event) {\r\n\t\tthis.signalsObject.emit('markerclick', this.marker, event);\r\n\t},\r\n\t_onmousedown: function (event) {\r\n\t\tthis.signalsObject.emit('markermousedown', this.marker, event);\r\n\t},\r\n\t_onmouseup: function (event) {\r\n\t\tthis.signalsObject.emit('markermouseup', this.marker, event);\r\n\t}\r\n};\r\n","function initializeResultListModel() {\r\n\tvar customBranchTexts = {};\r\n\r\n\twindow.ResultListModelBase = Backbone.Model.extend({\r\n\t\tqrCodeEnabled: false,\r\n\t\tvCardEnabled: false,\r\n\r\n\t\tinitialize: function () {\r\n\t\t\tif (!this.vCardEnabled) {\r\n\t\t\t\tthis.qrCodeEnabled = false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\taddCustomBranchText: function (branchCode, text) {\r\n\t\t\tcustomBranchTexts[branchCode] = text;\r\n\t\t},\r\n\r\n\t\tremoveCustomBranchText: function (branchCode) {\r\n\t\t\tdelete customBranchTexts[branchCode];\r\n\t\t},\r\n\r\n\t\t_convertDataToObj: function ($el, type) {\r\n\t\t\tvar obj = {},\r\n\t\t\t\tdataAttr = 'data-' + type;\r\n\t\t\t$el.each(function (i, n) {\r\n\t\t\t\tvar name = $(n).attr(dataAttr);\r\n\t\t\t\tobj[name.substring(0, 1).toUpperCase() + name.substring(1)] = $(n).text();\r\n\t\t\t});\r\n\t\t\treturn obj;\r\n\t\t},\r\n\r\n\t\tcreateVCard: function (addressItems) {\r\n\t\t\tvar vcards = [];\r\n\t\t\t_.each(addressItems, function (addressItem) {\r\n\t\t\t\taddressItem.VCard =\r\n\t\t\t\t\t'BEGIN:VCARD\\n' +\r\n\t\t\t\t\t'VERSION:2.1\\n' +\r\n\t\t\t\t\t'FN:' +\r\n\t\t\t\t\taddressItem.GeneratedData.Title +\r\n\t\t\t\t\t'\\n' +\r\n\t\t\t\t\t'N:' +\r\n\t\t\t\t\taddressItem.GeneratedData.Title +\r\n\t\t\t\t\t';\\n' +\r\n\t\t\t\t\t'ADR;HOME:;;' +\r\n\t\t\t\t\taddressItem.GeneratedData.Street +\r\n\t\t\t\t\t';' +\r\n\t\t\t\t\taddressItem.GeneratedData.City +\r\n\t\t\t\t\t';;' +\r\n\t\t\t\t\taddressItem.BasicData.Address.Zip +\r\n\t\t\t\t\t';Deutschland\\n' +\r\n\t\t\t\t\t(addressItem.BasicData.Contact.Fax\r\n\t\t\t\t\t\t? 'TEL;HOME;FAX:' + addressItem.BasicData.Contact.Fax + '\\n'\r\n\t\t\t\t\t\t: '') +\r\n\t\t\t\t\t(addressItem.BasicData.Contact.Phone\r\n\t\t\t\t\t\t? 'TEL;HOME;VOICE:' + addressItem.BasicData.Contact.Phone + '\\n'\r\n\t\t\t\t\t\t: '') +\r\n\t\t\t\t\t(addressItem.BasicData.Contact.Mobile\r\n\t\t\t\t\t\t? 'TEL;HOME;CELL:' + addressItem.BasicData.Contact.Mobile + '\\n'\r\n\t\t\t\t\t\t: '') +\r\n\t\t\t\t\t(addressItem.BasicData.Contact.Email\r\n\t\t\t\t\t\t? 'EMAIL;INTERNET:' + addressItem.BasicData.Contact.Email + '\\n'\r\n\t\t\t\t\t\t: '') +\r\n\t\t\t\t\t(addressItem.BasicData.Contact.Url ? 'URL;WORK:' + addressItem.BasicData.Contact.Url + '\\n' : '') +\r\n\t\t\t\t\t'END:VCARD\\n';\r\n\t\t\t\tvcards.push(addressItem.VCard);\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcreateQRCode: function (addressItems) {\r\n\t\t\tvar vCards = _.map(addressItems, function (addressItem) {\r\n\t\t\t\treturn addressItem.VCard;\r\n\t\t\t});\r\n\t\t\t$.ajax({\r\n\t\t\t\tasync: false,\r\n\t\t\t\turl: '/api_js/v2/HelperUtils.asmx/QRCodeSpecialCharacters',\r\n\t\t\t\tdata: {\r\n\t\t\t\t\tSystemPartner: ym.BaseValues.Partner,\r\n\t\t\t\t\tSecurityID: ym.BaseValues.SecurityID,\r\n\t\t\t\t\tChannel: ym.BaseValues.Channel,\r\n\t\t\t\t\tQRCodeValue: JSON.stringify(vCards),\r\n\t\t\t\t\tReplaceSpecialCharacters: 'false'\r\n\t\t\t\t},\r\n\r\n\t\t\t\tdataType: 'json',\r\n\t\t\t\ttype: 'post',\r\n\t\t\t\tsuccess: function (qrcodes) {\r\n\t\t\t\t\tif (qrcodes.Values && qrcodes.Values.length > 0) {\r\n\t\t\t\t\t\t_.each(qrcodes.Values, function (qrcode, index) {\r\n\t\t\t\t\t\t\taddressItems[index].QRCode = qrcode;\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcreateGeneratedData: function (addressItem) {\r\n\t\t\t// Standardinformationen aufbereiten\r\n\t\t\tvar generatedData = {\r\n\t\t\t\tTitle: $.trim(addressItem.BasicData.Title),\r\n\t\t\t\tZip: $.trim(addressItem.BasicData.Address.Zip),\r\n\t\t\t\tCity: $.trim(addressItem.BasicData.Address.City),\r\n\t\t\t\tStreet: $.trim(addressItem.BasicData.Address.Street),\r\n\t\t\t\tHouseNo: $.trim(addressItem.BasicData.Address.HouseNo),\r\n\t\t\t\tCountry: $.trim(addressItem.BasicData.Address.Country)\r\n\t\t\t};\r\n\r\n\t\t\tif (generatedData.Title == '') {\r\n\t\t\t\tgeneratedData.Title = $.trim(addressItem.BasicData.Address.CompanyName);\r\n\t\t\t}\r\n\r\n\t\t\t// Selbstdefinierte Texte zu den BranchenCodes\r\n\t\t\tgeneratedData.CustomBranchTexts = [];\r\n\t\t\t_.each(addressItem.BasicData.BranchListElements, function (branchElement) {\r\n\t\t\t\t// IE don't like undefined!\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (customBranchTexts && customBranchTexts[branchElement.BranchCode]) {\r\n\t\t\t\t\t\tgeneratedData.CustomBranchTexts.push(customBranchTexts[branchElement.BranchCode]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tgeneratedData.Icon = new ym.common.CIcon(\r\n\t\t\t\t'/presentation/filialfinder/content/img/icons/PinDefault.png',\r\n\t\t\t\t{\r\n\t\t\t\t\tWidth: 37,\r\n\t\t\t\t\tHeight: 44\r\n\t\t\t\t},\r\n\t\t\t\t{ X: 29, Y: 32 }\r\n\t\t\t);\r\n\t\t\tgeneratedData.IconHighlight = new ym.common.CIcon(\r\n\t\t\t\t'/presentation/filialfinder/content/img/icons/PinDefault.png',\r\n\t\t\t\t{\r\n\t\t\t\t\tWidth: 37,\r\n\t\t\t\t\tHeight: 44\r\n\t\t\t\t},\r\n\t\t\t\t{ X: 29, Y: 32 }\r\n\t\t\t);\r\n\r\n\t\t\treturn generatedData;\r\n\t\t},\r\n\r\n\t\tcreateGeneratedShadowData: function (addressItem, self) {\r\n\t\t\t// Standardinformationen aufbereiten\r\n\t\t\tvar generatedData = {\r\n\t\t\t\tTitle: $.trim(addressItem.BasicData.Title),\r\n\t\t\t\tZip: $.trim(addressItem.BasicData.Address.Zip),\r\n\t\t\t\tCity: $.trim(addressItem.BasicData.Address.City),\r\n\t\t\t\tStreet: $.trim(addressItem.BasicData.Address.Street),\r\n\t\t\t\tHouseNo: $.trim(addressItem.BasicData.Address.HouseNo),\r\n\t\t\t\tCountry: $.trim(addressItem.BasicData.Address.Country)\r\n\t\t\t};\r\n\r\n\t\t\tif (generatedData.Title == '') {\r\n\t\t\t\tgeneratedData.Title = $.trim(addressItem.BasicData.Address.CompanyName);\r\n\t\t\t}\r\n\r\n\t\t\t// Selbstdefinierte Texte zu den BranchenCodes\r\n\t\t\tgeneratedData.CustomBranchTexts = [];\r\n\t\t\t_.each(addressItem.BasicData.BranchListElements, function (branchElement, i) {\r\n\t\t\t\t// IE don't like undefined!\r\n\t\t\t\ttry {\r\n\t\t\t\t\tif (customBranchTexts && customBranchTexts[branchElement.BranchCode]) {\r\n\t\t\t\t\t\tgeneratedData.CustomBranchTexts.push(customBranchTexts[branchElement.BranchCode]);\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tgeneratedData.Icon = new ym.common.CIcon(\r\n\t\t\t\t'/presentation/filialfinder/content/img/icons/PinDefault.png',\r\n\t\t\t\t{\r\n\t\t\t\t\tWidth: 17,\r\n\t\t\t\t\tHeight: 20\r\n\t\t\t\t},\r\n\t\t\t\t{ X: 29, Y: 32 }\r\n\t\t\t);\r\n\t\t\tgeneratedData.IconHighlight = new ym.common.CIcon(\r\n\t\t\t\t'/presentation/filialfinder/content/img/icons/PinDefault.png',\r\n\t\t\t\t{\r\n\t\t\t\t\tWidth: 17,\r\n\t\t\t\t\tHeight: 20\r\n\t\t\t\t},\r\n\t\t\t\t{ X: 29, Y: 32 }\r\n\t\t\t);\r\n\r\n\t\t\treturn generatedData;\r\n\t\t},\r\n\r\n\t\tcreateGeneratedClusterData: function (addressItem, self) {\r\n\t\t\t// Standardinformationen aufbereiten\r\n\t\t\tvar generatedData = {};\r\n\r\n\t\t\tgeneratedData.Icon = new ym.common.CIcon(\r\n\t\t\t\t'/presentation/filialfinder/content/img/icons/cluster-icon-' + Math.min(addressItem.Count, 99) + '.png',\r\n\t\t\t\t{\r\n\t\t\t\t\tWidth: 56,\r\n\t\t\t\t\tHeight: 53\r\n\t\t\t\t},\r\n\t\t\t\t{ X: 21, Y: 35 }\r\n\t\t\t);\r\n\t\t\tgeneratedData.IconHighlight = new ym.common.CIcon(\r\n\t\t\t\t'/presentation/filialfinder/content/img/icons/cluster-icon-' + Math.min(addressItem.Count, 99) + '.png',\r\n\t\t\t\t{\r\n\t\t\t\t\tWidth: 56,\r\n\t\t\t\t\tHeight: 53\r\n\t\t\t\t},\r\n\t\t\t\t{ X: 21, Y: 35 }\r\n\t\t\t);\r\n\r\n\t\t\treturn generatedData;\r\n\t\t},\r\n\r\n\t\t_convertMemoItems: function (memoItems) {\r\n\t\t\tif (!memoItems || memoItems.length == 0) return [];\r\n\r\n\t\t\t_.each(memoItems, function (item) {\r\n\t\t\t\tif (item.Type === 'OPENING_HOURS' && item.OpeningHoursMask === 'NONE') {\r\n\t\t\t\t\t// Öffnungszeiten werden vorformatiert im Model (quick & dirty)\r\n\t\t\t\t\tvar week = item.Text.split(/\\|\\<br\\s*\\/\\>/g);\r\n\t\t\t\t\tvar openingHours = '
';\r\n\t\t\t\t\t_.each(week, function (weekDay) {\r\n\t\t\t\t\t\tvar day = weekDay.split(': ');\r\n\t\t\t\t\t\tif (day.length > 1) {\r\n\t\t\t\t\t\t\tvar dayParts = day[1].split(' ');\r\n\t\t\t\t\t\t\tif (dayParts.length > 1) {\r\n\t\t\t\t\t\t\t\topeningHours +=\r\n\t\t\t\t\t\t\t\t\t'
{0}
{1}{2}
'\r\n\t\t\t\t\t\t\t\t\t\t.replace('{0}', day[0])\r\n\t\t\t\t\t\t\t\t\t\t.replace('{1}', dayParts[0])\r\n\t\t\t\t\t\t\t\t\t\t.replace('{2}', dayParts[1]);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\topeningHours +=\r\n\t\t\t\t\t\t\t\t\t'
{0}
{1}
'\r\n\t\t\t\t\t\t\t\t\t\t.replace('{0}', day[0])\r\n\t\t\t\t\t\t\t\t\t\t.replace('{1}', day[1]);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t\topeningHours += '
';\r\n\t\t\t\t\titem.Text = openingHours;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn _.sortBy(memoItems, function (item) {\r\n\t\t\t\treturn item.BlockNo;\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tfromHTML: function (html) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar addressItems = self.get('AddressItems');\r\n\t\t\taddressItems.splice(0, addressItems.length);\r\n\t\t\t$(html).each(function (i, n) {\r\n\t\t\t\tvar id = $(n).attr('data-id'),\r\n\t\t\t\t\tproviderId = $(n).attr('data-provider-id'),\r\n\t\t\t\t\tproviderFk = $(n).attr('data-provider-fk'),\r\n\t\t\t\t\t$address = $(n).find('[data-address]'),\r\n\t\t\t\t\t$contact = $(n).find('[data-contact]');\r\n\r\n\t\t\t\tvar branchListElements = $.parseJSON(($(n).attr('data-branches') || '{}').replace(/"/g, '\"'));\r\n\t\t\t\tvar objectListItems = $.parseJSON(($(n).attr('data-objectlist') || '{}').replace(/"/g, '\"'));\r\n\t\t\t\tvar memoData = $.parseJSON(($(n).attr('data-memoitems') || '{}').replace(/"/g, '\"'));\r\n\r\n\t\t\t\tvar addressItem = {\r\n\t\t\t\t\tBasicData: {\r\n\t\t\t\t\t\tIdentifiers: {\r\n\t\t\t\t\t\t\tYMID: id,\r\n\t\t\t\t\t\t\tYMID3: id,\r\n\t\t\t\t\t\t\tYMIDUrlEncoded: id,\r\n\t\t\t\t\t\t\tYMIDPathEncoded: id,\r\n\t\t\t\t\t\t\tProviderID: providerId,\r\n\t\t\t\t\t\t\tProviderForeignKey: providerFk\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tTitle: $(n).attr('data-title'),\r\n\t\t\t\t\t\tMemoItems: self._convertMemoItems(memoData || '[]'),\r\n\t\t\t\t\t\tBranchListElements: branchListElements || [],\r\n\t\t\t\t\t\tObjectListItems: objectListItems || [],\r\n\t\t\t\t\t\tAddress: self._convertDataToObj($address, 'address'),\r\n\t\t\t\t\t\tContact: self._convertDataToObj($contact, 'contact'),\r\n\t\t\t\t\t\tGeo: {\r\n\t\t\t\t\t\t\tXCoord: $(n).attr('data-x'),\r\n\t\t\t\t\t\t\tYCoord: $(n).attr('data-y'),\r\n\t\t\t\t\t\t\tDistance: $(n).attr('data-distance')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\taddressItem.QRCode = '';\r\n\t\t\t\taddressItem.GeneratedData = self.createGeneratedData(addressItem, self);\r\n\t\t\t\taddressItems.push(addressItem);\r\n\t\t\t});\r\n\r\n\t\t\tself.vCardEnabled && self.createVCard(addressItems);\r\n\t\t\tself.qrCodeEnabled && self.createQRCode(addressItems);\r\n\r\n\t\t\tself.set('AddressItems', addressItems);\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\tfromJSON: function (json) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tvar addressItems = self.get('AddressItems');\r\n\t\t\taddressItems.splice(0, addressItems.length);\r\n\r\n\t\t\tjson.AddressItems = json.AddressItems || [];\r\n\r\n\t\t\t$.each(json.AddressItems, function (i, addressItem) {\r\n\t\t\t\taddressItem.QRCode = '';\r\n\t\t\t\taddressItem.GeneratedData = self.createGeneratedData(addressItem, self);\r\n\t\t\t\taddressItem.BasicData.MemoItems = self._convertMemoItems(addressItem.BasicData.MemoItems);\r\n\t\t\t\taddressItems.push(addressItem);\r\n\t\t\t});\r\n\r\n\t\t\tvar addressShadowItems = self.get('AddressShadowItems');\r\n\t\t\taddressShadowItems.splice(0, addressShadowItems.length);\r\n\r\n\t\t\tjson.AddressShadowItems = json.AddressShadowItems || [];\r\n\r\n\t\t\t$.each(json.AddressShadowItems, function (i, addressItem) {\r\n\t\t\t\taddressItem.QRCode = '';\r\n\t\t\t\taddressItem.GeneratedData = self.createGeneratedShadowData(addressItem, self);\r\n\t\t\t\taddressItem.BasicData.MemoItems = self._convertMemoItems(addressItem.BasicData.MemoItems);\r\n\t\t\t\taddressShadowItems.push(addressItem);\r\n\t\t\t});\r\n\r\n\t\t\tvar addressTiles = self.get('AddressTiles');\r\n\t\t\taddressTiles.splice(0, addressTiles.length);\r\n\r\n\t\t\tjson.AddressTiles = json.AddressTiles || [];\r\n\r\n\t\t\t$.each(json.AddressTiles, function (i, addressItem) {\r\n\t\t\t\taddressItem.QRCode = '';\r\n\t\t\t\taddressItem.GeneratedData = self.createGeneratedClusterData(addressItem, self);\r\n\t\t\t\taddressTiles.push(addressItem);\r\n\t\t\t});\r\n\r\n\t\t\tif (addressItems.length > 0) {\r\n\t\t\t\tself.vCardEnabled && self.createVCard(addressItems);\r\n\t\t\t\tself.qrCodeEnabled && self.createQRCode(addressItems);\r\n\t\t\t}\r\n\r\n\t\t\tif (addressShadowItems.length > 0) {\r\n\t\t\t\tself.vCardEnabled && self.createVCard(addressShadowItems);\r\n\t\t\t\tself.qrCodeEnabled && self.createQRCode(addressShadowItems);\r\n\t\t\t}\r\n\r\n\t\t\tself.set('AddressItems', addressItems);\r\n\t\t\tself.set('AddressShadowItems', addressShadowItems);\r\n\t\t\tself.set('AddressTiles', addressTiles);\r\n\r\n\t\t\tself.set('Paging', json.Paging);\r\n\t\t\tself.set('SearchData', json.SearchData);\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\tdefaults: {\r\n\t\t\tTitlePrefix: '',\r\n\t\t\tAddressItems: [],\r\n\t\t\tAddressShadowItems: [],\r\n\t\t\tAddressTiles: [],\r\n\t\t\tSearchData: {}\r\n\t\t}\r\n\t});\r\n\r\n\twindow.ResultListModel = ResultListModelBase.extend({\r\n\t\tsetQRCode: function (element) {\r\n\t\t\tvar AddressItems = this.get('AddressItems');\r\n\t\t\t$(element).attr('src', 'data:image/png;base64,' + AddressItems[0].QRCode);\r\n\t\t},\r\n\r\n\t\tcreateGeneratedData: function (AddressItem, self) {\r\n\t\t\t// Standardinformationen aufbereiten\r\n\t\t\tvar GeneratedData = {\r\n\t\t\t\tTitle: '',\r\n\t\t\t\tCity: $.trim(AddressItem.BasicData.Address.City),\r\n\t\t\t\tStreet: $.trim(AddressItem.BasicData.Address.Street)\r\n\t\t\t};\r\n\r\n\t\t\tif ($.trim(AddressItem.BasicData.Address.CompanyName) != '') {\r\n\t\t\t\tGeneratedData.Title = $.trim(AddressItem.BasicData.Address.CompanyName);\r\n\t\t\t}\r\n\r\n\t\t\tif ($.trim(AddressItem.BasicData.Address.CompanyNameAddon1) !== '') {\r\n\t\t\t\tif (GeneratedData.Title !== '') GeneratedData.Title += ' ';\r\n\r\n\t\t\t\tGeneratedData.Title += $.trim(AddressItem.BasicData.Address.CompanyNameAddon1);\r\n\t\t\t}\r\n\t\t\tif ($.trim(AddressItem.BasicData.Address.CompanyNameAddon2) !== '') {\r\n\t\t\t\tif (GeneratedData.Title !== '') GeneratedData.Title += ' ';\r\n\r\n\t\t\t\tGeneratedData.Title += $.trim(AddressItem.BasicData.Address.CompanyNameAddon2);\r\n\t\t\t}\r\n\r\n\t\t\tif ($.trim(AddressItem.BasicData.Title) != '') {\r\n\t\t\t\tif (GeneratedData.Title != '') GeneratedData.Title += ' ';\r\n\r\n\t\t\t\tGeneratedData.Title += $.trim(AddressItem.BasicData.Title);\r\n\t\t\t}\r\n\r\n\t\t\tif (AddressItem.BasicData.MemoItems.length > 0 && document.cookie.indexOf('intern') >= 0) {\r\n\t\t\t\tvar jsonInfo = _.find(AddressItem.BasicData.MemoItems, function (m) {\r\n\t\t\t\t\treturn m.Type === 'JSON_INFO';\r\n\t\t\t\t});\r\n\t\t\t\tif (jsonInfo) {\r\n\t\t\t\t\tjsonInfo = JSON.parse(jsonInfo.Text);\r\n\t\t\t\t\tif (jsonInfo.HiddenPoiInfos) {\r\n\t\t\t\t\t\tGeneratedData.Source = jsonInfo.HiddenPoiInfos.Herkunft;\r\n\t\t\t\t\t\tGeneratedData.SourceDate = jsonInfo.HiddenPoiInfos.Stand;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Selbstdefinierte Texte zu den BranchenCodes\r\n\t\t\tGeneratedData.CustomBranchTexts = [];\r\n\t\t\tfor (var i = 0, l = AddressItem.BasicData.BranchListElements.length; i < l; i++) {\r\n\t\t\t\t// IE don't like undefined!\r\n\t\t\t\ttry {\r\n\t\t\t\t\tGeneratedData.CustomBranchTexts.push(AddressItem.BasicData.BranchListElements[i].BranchCode);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t}\r\n\r\n\t\t\tGeneratedData.PruefungVorOrt = false;\r\n\t\t\t_.some(AddressItem.BasicData.BranchListElements, function (e) {\r\n\t\t\t\tif (e.BranchText.indexOf('vor Ort') > 0) {\r\n\t\t\t\t\tGeneratedData.PruefungVorOrt = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tGeneratedData.CanMakeAppointment = false;\r\n\t\t\t_.some(AddressItem.BasicData.BranchListElements, function (e) {\r\n\t\t\t\tif (e.BranchText.indexOf('Terminvereinbarung') > 0 && AddressItem.BasicData.Contact.Email.indexOf('@') > 0) {\r\n\t\t\t\t\tGeneratedData.CanMakeAppointment = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tGeneratedData.AppointmentLink =\r\n\t\t\t\t'https://terminanfrage.gtue.de/id/' + AddressItem.BasicData.Identifiers.ProviderForeignKey;\r\n\r\n\t\t\tvar icon = this._GetIcon(GeneratedData.CustomBranchTexts, 'D');\r\n\r\n\t\t\tGeneratedData.Icon = icon.IconDefault;\r\n\t\t\tGeneratedData.IconHighlight = icon.IconHighlight;\r\n\r\n\t\t\tGeneratedData.ShowPruefungVorOrt = !(\r\n\t\t\t\tthis._hasConfig() &&\r\n\t\t\t\t(config.Mode === 'Bau' || config.Mode === 'Anlagensicherheit')\r\n\t\t\t);\r\n\r\n\t\t\treturn GeneratedData;\r\n\t\t},\r\n\r\n\t\tcreateGeneratedShadowData: function (AddressItem, self) {\r\n\t\t\tvar GeneratedData = {};\r\n\t\t\tGeneratedData.CustomBranchTexts = [];\r\n\t\t\tfor (var i = 0, l = AddressItem.BasicData.BranchListElements.length; i < l; i++) {\r\n\t\t\t\t// IE don't like undefined!\r\n\t\t\t\ttry {\r\n\t\t\t\t\tGeneratedData.CustomBranchTexts.push(AddressItem.BasicData.BranchListElements[i].BranchCode);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t}\r\n\r\n\t\t\tvar icon = this._GetIcon(GeneratedData.CustomBranchTexts, 'D');\r\n\t\t\tGeneratedData.Icon = icon.IconDefault;\r\n\t\t\tGeneratedData.IconHighlight = icon.IconHighlight;\r\n\r\n\t\t\treturn GeneratedData;\r\n\t\t},\r\n\r\n\t\t_Params: [\r\n\t\t\t{\r\n\t\t\t\tBranchType: 'GTUE',\r\n\t\t\t\tBC: 'GTUE'.split('|'),\r\n\t\t\t\tIconDefault: new ym.common.CIcon(\r\n\t\t\t\t\t'/presentation/filialfinder/areas/gtueMobile/content/img/gtue-logo_60.svg',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWidth: 40,\r\n\t\t\t\t\t\tHeight: 30\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ X: 20, Y: 15 }\r\n\t\t\t\t),\r\n\t\t\t\tIconHighlight: new ym.common.CIcon(\r\n\t\t\t\t\t'/presentation/filialfinder/areas/gtueMobile/content/img/gtue-logo_60.svg',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWidth: 40,\r\n\t\t\t\t\t\tHeight: 30\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ X: 20, Y: 15 }\r\n\t\t\t\t)\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tBranchType: 'GTUP',\r\n\t\t\t\tBC: 'GTUP'.split('|'),\r\n\t\t\t\tIconDefault: new ym.common.CIcon(\r\n\t\t\t\t\t'/presentation/filialfinder/areas/gtueMobile/content/img/gtue-logo_60.svg',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWidth: 40,\r\n\t\t\t\t\t\tHeight: 30\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ X: 29, Y: 32 }\r\n\t\t\t\t),\r\n\t\t\t\tIconHighlight: new ym.common.CIcon(\r\n\t\t\t\t\t'/presentation/filialfinder/areas/gtueMobile/content/img/gtue-logo_60.svg',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWidth: 40,\r\n\t\t\t\t\t\tHeight: 30\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ X: 20, Y: 15 }\r\n\t\t\t\t)\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tBranchType: 'GTUV',\r\n\t\t\t\tBC: 'GTUV'.split('|'),\r\n\t\t\t\tIconDefault: new ym.common.CIcon(\r\n\t\t\t\t\t'/presentation/filialfinder/areas/gtueMobile/content/img/Gtue_Vertragsanwalt.png',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWidth: 40,\r\n\t\t\t\t\t\tHeight: 40\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ X: 29, Y: 32 }\r\n\t\t\t\t),\r\n\t\t\t\tIconHighlight: new ym.common.CIcon(\r\n\t\t\t\t\t'/presentation/filialfinder/areas/gtueMobile/content/img/Gtue_Vertragsanwalt.png',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tWidth: 40,\r\n\t\t\t\t\t\tHeight: 40\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{ X: 20, Y: 15 }\r\n\t\t\t\t)\r\n\t\t\t}\r\n\t\t],\r\n\r\n\t\t_GetShadowIcon: function () {\r\n\t\t\treturn {};\r\n\t\t},\r\n\r\n\t\t_hasConfig: function () {\r\n\t\t\treturn config;\r\n\t\t},\r\n\r\n\t\t_GetIcon: function (BranchCodes, Country) {\r\n\t\t\tif (this._hasConfig() && (config.Mode === 'Bau' || config.Mode === 'Anlagensicherheit')) {\r\n\t\t\t\treturn this._Params[0];\r\n\t\t\t}\r\n\r\n\t\t\tvar ActiveParamIndex = 0,\r\n\t\t\t\ti,\r\n\t\t\t\tj,\r\n\t\t\t\tBC,\r\n\t\t\t\tParam;\r\n\t\t\tfor (i = 0; i < BranchCodes.length; i++) {\r\n\t\t\t\tBC = BranchCodes[i];\r\n\t\t\t\tfor (j = 0; j < this._Params.length; j++) {\r\n\t\t\t\t\tParam = this._Params[j];\r\n\t\t\t\t\tif (_.indexOf(Param.BC, BC) > -1 && j > ActiveParamIndex) {\r\n\t\t\t\t\t\tActiveParamIndex = j;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this._Params[ActiveParamIndex];\r\n\t\t}\r\n\t});\r\n}\r\n","/**\r\n * Prüft, ob der Wert innerhalb der min/max-Schranken liegt.\r\n */\r\nfunction _inBounds(min, max, val) {\r\n return (val >= min ? (val <= max ? val : max) : min);\r\n}\r\n\r\n/**\r\n * Berechnet die maximale Anzahl an Einträgen, sowie das\r\n * erste sichtbare Item und das letzte sichtbare Item.\r\n */\r\nfunction _calculate(paging) {\r\n var _OptimizedEntries, _MaxPages;\r\n paging.maxPages = (_MaxPages = Math.ceil(paging.maxEntries / paging.numPerPage)) > 0 ? _MaxPages : 1;\r\n paging.firstVisibleItem = ((paging.currentPage - 1) * paging.numPerPage) + 1;\r\n paging.lastVisibleItem = ((_OptimizedEntries = paging.firstVisibleItem + paging.numPerPage) > paging.numPerPage * paging.maxPages ? paging.maxEntries : _OptimizedEntries - 1);\r\n}\r\n\r\nfunction CPaging(currentPage, maxEntries, numPerPage) {\r\n this.setMaxEntries(maxEntries);\r\n this.setNumPerPage(numPerPage);\r\n this.moveTo(currentPage);\r\n}\r\n\r\nCPaging.prototype = {\r\n\r\n /**\r\n * Die aktuelle Seitennummer\r\n * @type int\r\n * @default 1\r\n */\r\n currentPage: 1,\r\n\r\n /**\r\n * Die maximale Anzahl an Einträgen\r\n * @type int\r\n * @default 0\r\n */\r\n maxEntries: 0,\r\n\r\n /**\r\n * Die Anzahl an Einträgen pro Seite\r\n * @type int\r\n * @default 4\r\n */\r\n numPerPage: 4,\r\n\r\n /**\r\n * Die errechnete Anzahl an Seiten\r\n * @type int\r\n * @default 1\r\n */\r\n maxPages: 1,\r\n\r\n /**\r\n * Die errechnete Startposition auf der Seite\r\n * @type int\r\n * @default null\r\n */\r\n firstVisibleItem: null,\r\n\r\n /**\r\n * Die errechnete Endposition auf der Seite\r\n * @type int\r\n * @default null\r\n */\r\n lastVisibleItem: null,\r\n\r\n /**\r\n * @class Klasse zur Erstellung einer Seitennummerierung.\r\n * @constructor\r\n * @param int CurrentPage Die aktuelle Seite\r\n * @param int MaxEntries Die maximale Anzahl an Einträgen.\r\n * @param int NumPerPage Die Anzahl der Einträge pro Seite.\r\n */\r\n constructor: CPaging,\r\n\r\n /**\r\n * Ändert die maximale Anzahl an Einträgen\r\n * @param int n Die Anzahl der Einträge\r\n */\r\n setMaxEntries: function (n) {\r\n if (n === this.maxEntries) {\r\n return;\r\n }\r\n this.maxEntries = _inBounds(0, n, n);\r\n _calculate(this);\r\n },\r\n\r\n /**\r\n * Ändert die maximale Anzahl an Einträgen auf einer Seite\r\n * @param int n Die neue Anzahl\r\n */\r\n setNumPerPage: function (n) {\r\n if (n === this.numPerPage) {\r\n return;\r\n }\r\n this.numPerPage = _inBounds(0, this.maxEntries, n);\r\n _calculate(this);\r\n },\r\n\r\n /**\r\n * Springt zur Seite X zwischen 0 und maxPages\r\n * @param int n Die Seitenzahl\r\n */\r\n moveTo: function (n) {\r\n if (n === this.currentPage) {\r\n return;\r\n }\r\n this.currentPage = _inBounds(1, this.maxPages, n);\r\n _calculate(this);\r\n },\r\n\r\n getPrevPage: function (n) {\r\n return _inBounds(1, this.maxPages, this.currentPage - (n ? n : 1));\r\n },\r\n\r\n /**\r\n * Springt zu der/den vorige(n) Seite(n).\r\n * @param int (optional) bestimmt, wie viele Seiten übersprungen werden sollen\r\n */\r\n prev: function (n) {\r\n this.moveTo(this.currentPage - (n ? n : 1));\r\n },\r\n\r\n getNextPage: function (n) {\r\n return _inBounds(1, this.maxPages, this.currentPage + (n ? n : 1));\r\n },\r\n\r\n /**\r\n * Springt zu der/den nächste(n) Seite(n).\r\n * @param int (optional) bestimmt, wie viele Seiten übersprungen werden sollen\r\n */\r\n next: function (n) {\r\n this.moveTo(this.currentPage + (n ? n : 1));\r\n },\r\n\r\n getFirstPage: function () {\r\n return 1;\r\n },\r\n\r\n /**\r\n * Springt zur ersten Seite\r\n */\r\n first: function () {\r\n this.moveTo(1);\r\n },\r\n\r\n getLastPage: function () {\r\n return this.maxPages;\r\n },\r\n\r\n /**\r\n * Springt zur letzten Seite\r\n */\r\n last: function () {\r\n this.moveTo(this.maxPages);\r\n }\r\n};\r\n\r\nvar PagingModel = Backbone.Model.extend({\r\n initialize: function () {\r\n },\r\n\r\n fromResultList: function (ResultListModel, config) {\r\n var self = this;\r\n\r\n var itemCount = ResultListModel.get('AddressItems').length + ResultListModel.get('AddressShadowItems').length;\r\n\r\n var Paging = ResultListModel.get('Paging'),\r\n pagingObj = new CPaging(Paging.Page, Paging.Count, config.ItemsPerPage),\r\n rangeItems = _.range(pagingObj.getPrevPage(4), pagingObj.getNextPage(4) + 1);\r\n\r\n var PagingRange = _.map(rangeItems, function (page, index) {\r\n return {page: page, active: page === Paging.Page, text: page};\r\n });\r\n\r\n if (PagingRange.length === 0) {\r\n PagingRange.push({page: 1, active: true, text: 1});\r\n }\r\n\r\n // PagingRange.unshift({ page: pagingObj.getPrevPage(), active: pagingObj.getPrevPage() === Paging.Page, text: \"<\" });\r\n // PagingRange.unshift({ page: pagingObj.getFirstPage(), active: pagingObj.getFirstPage() === Paging.Page, text: \"◀\" });\r\n // PagingRange.push({ page: pagingObj.getNextPage(), active: pagingObj.getNextPage() === Paging.Page, text: \">\" });\r\n // PagingRange.push({ page: pagingObj.getLastPage(), active: pagingObj.getLastPage() === Paging.Page, text: \"▶\" });\r\n\r\n var searchData = ResultListModel.get('SearchData');\r\n\r\n self.set('SingleSlotGeo', '');\r\n self.set('BC', searchData.Branches);\r\n self.set('LocX', searchData.Location.XCoord);\r\n self.set('LocY', searchData.Location.YCoord);\r\n self.set('MaxPages', config.MaxPages * 1);\r\n self.set('ItemsPerPage', config.ItemsPerPage * 1);\r\n self.set('Paging', Paging);\r\n self.set('AddressItemsCount', itemCount * 1);\r\n self.set('Range', PagingRange);\r\n\r\n return this;\r\n }\r\n});\r\n","var ViewModel = Backbone.View.extend({\r\n\r\n /**\r\n * Setup a bind to the model.\r\n * when model changes the view's render() method is called.\r\n *\r\n * third param to the \"on()\" methods teach to use view itself as context for the callback.\r\n */\r\n initialize: function () {\r\n this.model.on('change', this.render, this);\r\n },\r\n\r\n\r\n /**\r\n * Render use the compiled template to change the source of the target DOM node.\r\n * children classes will define what \"this.template\" will be!\r\n *\r\n * safeData() fetch data from model and send it to the template in a safe way. read on!\r\n */\r\n render: function () {\r\n var data = this.safeData();\r\n\r\n this.$el.empty();\r\n\r\n $($.trim(this.template(data))).appendTo(this.$el);\r\n\r\n return this;\r\n },\r\n\r\n\r\n clear: function () {\r\n this.$el.empty();\r\n },\r\n\r\n /**\r\n * this method come from these article:\r\n * http://backbonefu.com/2011/11/handling-variable-is-not-defined-with-underscore-template-engine/\r\n *\r\n * there is an Underscore::template() limit so you can't use undefined variables in a template directly\r\n * but you can use undefined properties.\r\n *\r\n * this method wraps model's JSONed data into a namespace called \"data\".\r\n * to refer to the person's name in templates we will use \"data.name\".\r\n */\r\n safeData: function () {\r\n return this.model.toJSON();\r\n }\r\n});","var textTransform;\r\n\r\nvar $searchPoi, $searchFulltext, $autocomplete;\r\n\r\nvar LocX, LocY;\r\n\r\nfunction setInputValue(name, value) {\r\n\tvar input = document.querySelector('[name=\"' + name + '\"]');\r\n\tif (input) {\r\n\t\tinput.value = value;\r\n\t}\r\n}\r\n\r\nfunction getInputValue(name) {\r\n\tvar input = document.querySelector('[name=\"' + name + '\"]');\r\n\tif (input) {\r\n\t\treturn input.value;\r\n\t}\r\n\treturn '';\r\n}\r\n\r\nfunction getGroupLabel(Description) {\r\n\tswitch (Description) {\r\n\t\tcase 'G':\r\n\t\t\treturn 'Amtliche Dienstleistungen';\r\n\t\tcase 'B':\r\n\t\t\treturn 'Nichtamtliche Dienstleistungen';\r\n\t\tcase 'T':\r\n\t\t\treturn 'Technischer Dienst';\r\n\t\tcase 'Q':\r\n\t\t\treturn 'Bau-Dienstleistungen';\r\n\t\tcase 'K':\r\n\t\t\treturn 'weitere Dienstleistungen';\r\n\t\tcase 'A':\r\n\t\t\treturn 'Anlagensicherheit';\r\n\t\tdefault:\r\n\t\t\treturn 'Sonstige Dienstleistungen';\r\n\t}\r\n}\r\n\r\nfunction groupBy(array, key) {\r\n\treturn array.reduce((acc, obj) => {\r\n\t\tconst groupKey = obj[key].substring(2, 3);\r\n\r\n\t\tacc[groupKey] = acc[groupKey] || [];\r\n\t\tacc[groupKey].push(obj);\r\n\r\n\t\treturn acc;\r\n\t}, {});\r\n}\r\n\r\nfunction sortBy(array, key) {\r\n\treturn array.sort((a, b) => {\r\n\t\tconst keyA = a[key];\r\n\t\tconst keyB = b[key];\r\n\r\n\t\tif (keyA !== keyB) {\r\n\t\t\treturn keyA - keyB;\r\n\t\t}\r\n\r\n\t\tconst stringA = String(a[key]);\r\n\t\tconst stringB = String(b[key]);\r\n\r\n\t\treturn stringA.localeCompare(stringB);\r\n\t});\r\n}\r\n\r\nfunction orderBy(groupedData, order) {\r\n\tconst orderMap = new Map(order.map((val, index) => [val, index]));\r\n\r\n\tconst groupedArray = Object.entries(groupedData);\r\n\r\n\tconst orderedGroups = groupedArray.sort(([keyA], [keyB]) => {\r\n\t\tconst orderA = orderMap.get(keyA);\r\n\t\tconst orderB = orderMap.get(keyB);\r\n\r\n\t\tif (orderA < orderB) {\r\n\t\t\treturn -1;\r\n\t\t} else if (orderA > orderB) {\r\n\t\t\treturn 1;\r\n\t\t} else {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\t});\r\n\r\n\treturn Object.fromEntries(orderedGroups);\r\n}\r\n\r\nfunction groupAndSortBy(array, groupKey, sortKey) {\r\n\tconst groupedData = groupBy(array, groupKey);\r\n\r\n\tfor (const key in groupedData) {\r\n\t\tgroupedData[key] = sortBy(groupedData[key], sortKey);\r\n\t}\r\n\r\n\treturn groupedData;\r\n}\r\n\r\nvar SearchView = ViewModel.extend({\r\n\tinitialize: function (model, options) {\r\n\t\toptions = options || {};\r\n\t\tif (!options.disableTypeahead) {\r\n\t\t\tthis.enableTypeahead();\r\n\t\t}\r\n\r\n\t\tvar self = this;\r\n\r\n\t\tif (navigator.geolocation) {\r\n\t\t\t$('#searchByPosition').click(function () {\r\n\t\t\t\tself.getPosition('searchForm');\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\t$('#searchByPosition').hide();\r\n\t\t}\r\n\r\n\t\t$('#searchForm').submit(function () {\r\n\t\t\tself.setShowOnlyResults();\r\n\t\t});\r\n\r\n\t\t$('#BranchCodes').change(function () {\r\n\t\t\tvar select = $('#BranchCodes');\r\n\t\t\tvar text = select.children(\"option[value='\" + select.val() + \"']\").text();\r\n\t\t\t$('#BranchCodesDiv').html(text);\r\n\t\t});\r\n\r\n\t\tself.loadBranches();\r\n\t},\r\n\r\n\tsetTextTransformer: function (transformer) {\r\n\t\ttextTransform = transformer;\r\n\t},\r\n\r\n\tgetTextTransformer: function () {\r\n\t\treturn textTransform;\r\n\t},\r\n\r\n\t_createAutocomplete: function () {\r\n\t\tvar searchConfig = module.config();\r\n\r\n\t\t$searchPoi = $(searchConfig.SingleSlotGeoInput);\r\n\r\n\t\tvar fulltextValue = '';\r\n\t\tif ($searchPoi.hasClass('searchFulltext')) {\r\n\t\t\tfulltextValue = $searchPoi.val();\r\n\t\t\t$searchPoi.removeClass('searchFulltext');\r\n\t\t\t$searchPoi.val('');\r\n\t\t}\r\n\r\n\t\tvar ac = ym.modules.autoComplete(searchConfig.SingleSlotGeoInput, { locales: ['de'] });\r\n\t\tvar lastSelectedACInput = '';\r\n\t\tac.on('selected', function (item) {\r\n\t\t\tvar x = item.geometry.coordinates[0];\r\n\t\t\tvar y = item.geometry.coordinates[1];\r\n\r\n\t\t\tsetInputValue('LocX', x);\r\n\t\t\tsetInputValue('LocY', y);\r\n\r\n\t\t\tlastSelectedACInput = ac.element.value;\r\n\t\t\t$(ac.element).closest('form').submit();\r\n\t\t});\r\n\r\n\t\tac.element.addEventListener('input', function () {\r\n\t\t\tvar searchInput = ac.element.value.trim();\r\n\t\t\tif (searchInput === '' || searchInput !== lastSelectedACInput) {\r\n\t\t\t\tsetInputValue('LocX', '');\r\n\t\t\t\tsetInputValue('LocY', '');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t$autocomplete = $searchPoi.closest('.sm-autocomplete');\r\n\t\t$searchFulltext = $searchPoi.clone();\r\n\t\t$searchFulltext.addClass('searchFulltext');\r\n\t\t$searchFulltext.val(fulltextValue);\r\n\t},\r\n\r\n\tdisableTypeahead: function () {\r\n\t\tif (!$autocomplete) {\r\n\t\t\tthis._createAutocomplete();\r\n\t\t}\r\n\t\t$autocomplete.detach();\r\n\t\t$searchFulltext.appendTo('.search-input-container');\r\n\t\tLocX = getInputValue('LocX');\r\n\t\tLocY = getInputValue('LocY');\r\n\t\tsetInputValue('LocX', '');\r\n\t\tsetInputValue('LocY', '');\r\n\t},\r\n\r\n\tenableTypeahead: function () {\r\n\t\tif (!$autocomplete) {\r\n\t\t\tthis._createAutocomplete();\r\n\t\t}\r\n\t\t$autocomplete.appendTo('.search-input-container');\r\n\t\tif ($searchFulltext) {\r\n\t\t\t$searchFulltext.detach();\r\n\t\t}\r\n\t\tif (LocX && LocY) {\r\n\t\t\tsetInputValue('LocX', LocX);\r\n\t\t\tsetInputValue('LocY', LocY);\r\n\t\t\tLocX = undefined;\r\n\t\t\tLocY = undefined;\r\n\t\t}\r\n\t},\r\n\r\n\trender: function () {},\r\n\r\n\tgetPosition: function (LocFormMobile) {\r\n\t\tvar self = this;\r\n\t\tvar errorText =\r\n\t\t\t'Fehler: Sie haben die automatische Lokalisierung abgelehnt, Ihr Standort konnte nicht ermittelt werden oder Ihr Endgerät unterstützt die automatische Lokalisierung nicht.';\r\n\t\tif (navigator.geolocation) {\r\n\t\t\ttry {\r\n\t\t\t\tnavigator.geolocation.getCurrentPosition(\r\n\t\t\t\t\tfunction (p) {\r\n\t\t\t\t\t\tdocument.forms[LocFormMobile].action +=\r\n\t\t\t\t\t\t\t'&LocX=' + escape(p.coords.longitude) + '&LocY=' + escape(p.coords.latitude);\r\n\t\t\t\t\t\tself.setShowOnlyResults();\r\n\t\t\t\t\t\tdocument.forms[LocFormMobile].submit();\r\n\t\t\t\t\t},\r\n\t\t\t\t\tfunction (error) {\r\n\t\t\t\t\t\talert(errorText);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttimeout: 5000\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t} catch (e) {\r\n\t\t\t\talert(errorText);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// no native geolocation support available :(\r\n\t\t\talert(errorText);\r\n\t\t}\r\n\t},\r\n\r\n\tsetShowOnlyResults: function () {\r\n\t\t//wenn die Karte aktuell nicht zu sehen ist, wollen wir sehr wahrscheinlich als nächstes nur die Ergebnisse ohne Karte\r\n\t\tif ($('.searchDivKurz').css('display') !== 'none') {\r\n\t\t\tvar newPage = $('#ShowOnlyResults');\r\n\t\t\tnewPage.val(true);\r\n\t\t}\r\n\t},\r\n\r\n\tbranchSearchSuccess: function (result) {\r\n\t\tvar select = $('#BranchCodes');\r\n\t\tvar mode = $('#Mode').val();\r\n\t\tvar lastBC = config.BranchCodes;\r\n\t\tvar index = lastBC.indexOf('&');\r\n\t\tif (index > 0) {\r\n\t\t\tlastBC = lastBC.substr(0, index);\r\n\t\t}\r\n\t\tresult.BranchListElements = _.filter(result.BranchListElements, function (value) {\r\n\t\t\tvar branchCode = value.BranchCode.substring(0, 3);\r\n\t\t\tswitch (mode) {\r\n\t\t\t\tcase 'Anlagensicherheit':\r\n\t\t\t\t\treturn branchCode === 'GTA';\r\n\t\t\t\tcase 'Bau':\r\n\t\t\t\t\treturn branchCode === 'GTQ' || branchCode === 'GTK';\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn branchCode === 'GTB' || branchCode === 'GTG' || branchCode === 'GTT';\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tconst groupedBranchListElements = groupAndSortBy(result.BranchListElements, 'BranchCode', 'SortNr');\r\n\r\n\t\tconst groupOrder = ['G', 'T', 'B', 'Q', 'K'];\r\n\t\tconst orderedBranchListElements = orderBy(groupedBranchListElements, groupOrder);\r\n\r\n\t\tfor (let group in orderedBranchListElements) {\r\n\t\t\tlet label = getGroupLabel(group);\r\n\t\t\tlet optgroup = $('');\r\n\r\n\t\t\tgroupedBranchListElements[group].forEach((value) => {\r\n\t\t\t\tif (lastBC === value.BranchCode) {\r\n\t\t\t\t\toptgroup.append(\r\n\t\t\t\t\t\t''\r\n\t\t\t\t\t);\r\n\t\t\t\t\t$('#BranchCodesDiv').html(value.BranchText);\r\n\t\t\t\t} else {\r\n\t\t\t\t\toptgroup.append('');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tselect.append(optgroup);\r\n\t\t}\r\n\t},\r\n\r\n\tloadBranches: function () {\r\n\t\t$.ajax({\r\n\t\t\turl: '/api_js/V2/BranchSearches.asmx/SearchPartnerBranchCodes',\r\n\t\t\tdataType: 'jsonp',\r\n\t\t\tdata: {\r\n\t\t\t\tSystemPartner: ym.options.name,\r\n\t\t\t\tSecurityID: ym.options.securityID,\r\n\t\t\t\tChannel: ym.options.channel,\r\n\t\t\t\tIsoCountryCode: ym.options.isoCountryCode || 'DE',\r\n\t\t\t\tIsoLocale: ym.options.isoLocale || 'de-DE',\r\n\t\t\t\tAddition: ''\r\n\t\t\t},\r\n\t\t\tsuccess: this.branchSearchSuccess\r\n\t\t});\r\n\t}\r\n});\r\n","var ResultListViewBase = ViewModel.extend({\r\n template: _.template($('#resultListItemTemplate').html().trim()),\r\n\r\n render: function () {\r\n\r\n var data = this.safeData();\r\n\r\n this.$el.empty();\r\n\r\n _.each(data.AddressItems, function (Item, Index) {\r\n Item.Index = Index;\r\n\r\n $($.trim(this.template(Item))).appendTo(this.$el);\r\n }, this);\r\n\r\n return this;\r\n }\r\n});\r\n\r\nvar ResultListView = ResultListViewBase.extend({\r\n\r\n setCurrentPage: function (currentPage) {\r\n this.currentPage = currentPage;\r\n },\r\n\r\n setSearchMode: function (searchMode) {\r\n this.searchMode = searchMode;\r\n },\r\n\r\n render: function () {\r\n var data = this.safeData();\r\n\r\n this.$el.empty();\r\n\r\n _.each(data.AddressItems, function (Item, Index) {\r\n Item.Index = Index;\r\n\r\n var BranchCodes = _.map(Item.BasicData.BranchListElements, function (el) {\r\n return el.BranchCode;\r\n });\r\n\r\n //BranchCodes.push(\"GTBIB0172\");\r\n\r\n $($.trim(this.template(_.extend(Item, {\r\n currentPage: this.currentPage,\r\n BranchCodes: BranchCodes,\r\n searchMode: this.searchMode\r\n })))).appendTo(this.$el);\r\n }, this);\r\n\r\n return this;\r\n }\r\n});","var PagingView = ViewModel.extend({\r\n\r\n initialize: function () {\r\n },\r\n\r\n template: _.template($('#pagingtemplate').html().trim()),\r\n\r\n render: function () {\r\n PagingView.__super__.render.apply(this, arguments);\r\n\r\n var config = module.config();\r\n $(\"#content-pagination-top ul li a, #content-pagination-bottom ul li a\").click(function (e) {\r\n e.preventDefault();\r\n var page = $(this).data(\"page\");\r\n if (page) {\r\n if (!ym.BaseValues.defaultSearchMode || ym.BaseValues.defaultSearchMode == \"area\") {\r\n Search.searchInAreaByBranchCode(config.BranchCodes, {\r\n ZoomLevel: 11,\r\n SingleSlotGeo: config.SingleSlotGeo,\r\n LocX: config.LocX,\r\n LocY: config.LocY,\r\n Page: page,\r\n Top: config.Top\r\n });\r\n } else {\r\n Search.searchAtLocationByBranchCode(config.BranchCodes, {\r\n ZoomLevel: 11,\r\n SingleSlotGeo: config.SingleSlotGeo,\r\n LocX: config.LocX,\r\n LocY: config.LocY,\r\n MaxRadius: -1,\r\n Page: page,\r\n Top: config.Top\r\n });\r\n }\r\n }\r\n });\r\n return this;\r\n }\r\n});","window.lockMove = false;\r\n\r\nvar MapView = ViewModel.extend({\r\n defaults: {\r\n isInit: false,\r\n map: {},\r\n search: {},\r\n config: {},\r\n searchCenter: null\r\n },\r\n\r\n initialize: function (options) {\r\n MapView.__super__.initialize.apply(this, arguments);\r\n this.options = options;\r\n },\r\n\r\n\r\n /**\r\n * Render use the compiled template to change the source of the target DOM node.\r\n * children classes will define what \"this.template\" will be!\r\n *\r\n * safeData() fetch data from model and send it to the template in a safe way. read on!\r\n */\r\n render: function () {\r\n var Markers = [];\r\n var me = this;\r\n\r\n //erstelle die Adressenergebnisse\r\n var AddressItems = this.model.get('AddressItems');\r\n\r\n _.each(AddressItems, function (Poi, i) {\r\n\r\n var MarkerSignals = me.CreatePoi(me.options.map, Poi, i);\r\n\r\n Markers.push(MarkerSignals.marker);\r\n\r\n if (me.options.isInit) {\r\n if (i == AddressItems.length - 1) {\r\n me._PoisCreated(Markers, me.options.search, me.options.config);\r\n }\r\n }\r\n });\r\n\r\n //erstelle die Shadow-Adressenergebnisse\r\n var AddressShadowItems = this.model.get('AddressShadowItems');\r\n\r\n _.each(AddressShadowItems, function (Poi, i) {\r\n\r\n var MarkerSignals = me.CreateShadowPoi(me.options.map, Poi, i);\r\n\r\n Markers.push(MarkerSignals.marker);\r\n\r\n if (me.options.isInit) {\r\n if (i == AddressItems.length - 1) {\r\n me._PoisCreated(Markers, me.options.search, me.options.config);\r\n }\r\n }\r\n });\r\n\r\n //erstelle die Cluster-Adressenergebnisse\r\n var AddressClusterItems = this.model.get('AddressTiles');\r\n\r\n _.each(AddressClusterItems, function (Poi, i) {\r\n\r\n var MarkerSignals = me.CreateClusterPoi(me.options.map, Poi, i, me.options.config);\r\n\r\n Markers.push(MarkerSignals.marker);\r\n\r\n if (me.options.isInit) {\r\n if (i == AddressItems.length - 1) {\r\n me._PoisCreated(Markers, me.options.search, me.options.config);\r\n }\r\n }\r\n });\r\n\r\n return this;\r\n },\r\n\r\n CreatePoi: function (map, Poi, i) {\r\n var GeoPoint = new ym.geo.CGeoPoint(Poi.BasicData.Geo.YCoord, Poi.BasicData.Geo.XCoord);\r\n\r\n var MarkerSignals = new CMarkerSignals({\r\n Icon: Poi.GeneratedData.Icon,\r\n Position: GeoPoint,\r\n LayerID: \"FilialLayer\",\r\n OrdinalNumber: i,\r\n OriginalPoi: Poi,\r\n ZIndex: 5000\r\n }, signals);\r\n\r\n var popupModel = new Backbone.Model(Poi);\r\n var popupTmpl = new PopupView({model: popupModel});\r\n popupTmpl.render();\r\n\r\n MarkerSignals.marker.setInfoBoxOptions({\r\n Position: ym.map.INFO_BOX_POSITION.AUTO,\r\n ShowOnHover: true,\r\n ContentTemplate: popupTmpl.$el.children()[0]\r\n });\r\n\r\n $('.resultlist > li:eq(' + i + ')').hover(\r\n function (e) {\r\n MarkerSignals.marker.showInfoBox();\r\n },\r\n function (e) {\r\n MarkerSignals.marker.hideInfoBox();\r\n });\r\n\r\n map.addMarker(MarkerSignals.marker);\r\n map.showMarker(MarkerSignals.marker);\r\n\r\n return MarkerSignals;\r\n },\r\n\r\n CreateShadowPoi: function (map, Poi, i) {\r\n var GeoPoint = new ym.geo.CGeoPoint(Poi.BasicData.Geo.YCoord, Poi.BasicData.Geo.XCoord);\r\n\r\n var MarkerSignals = new CMarkerSignals({\r\n Icon: Poi.GeneratedData.Icon,\r\n Position: GeoPoint,\r\n LayerID: \"FilialLayer\",\r\n OrdinalNumber: i,\r\n OriginalPoi: Poi,\r\n ZIndex: 5000\r\n }, signals);\r\n\r\n map.addMarker(MarkerSignals.marker);\r\n map.showMarker(MarkerSignals.marker);\r\n\r\n return MarkerSignals;\r\n },\r\n\r\n CreateClusterPoi: function (map, Poi, i, config) {\r\n var me = this;\r\n var GeoPoint = new ym.geo.CGeoPoint(Poi.YFocus, Poi.XFocus);\r\n\r\n Poi.BranchCodes = me.options.config.BranchCodes;\r\n Poi.ClusterLevel = map.getZoomLevel() + config.ClusterLevelOffset;\r\n var MarkerSignals = new CMarkerSignals({\r\n Icon: Poi.GeneratedData.Icon,\r\n Position: GeoPoint,\r\n LayerID: \"FilialLayer\",\r\n OrdinalNumber: i,\r\n OriginalPoi: Poi,\r\n ZIndex: 5000\r\n\r\n }, signals);\r\n\r\n\r\n MarkerSignals.marker.target = me;\r\n\r\n MarkerSignals.marker.addListener(\"onmouseover\", me.searchClusterDetails);\r\n\r\n MarkerSignals.marker.addListener(\"onmouseout\", function () {\r\n this.hideInfoBox();\r\n });\r\n\r\n map.addMarker(MarkerSignals.marker);\r\n map.showMarker(MarkerSignals.marker);\r\n\r\n return MarkerSignals;\r\n },\r\n\r\n searchClusterDetails: function (event) {\r\n var ymsearch = new ym.geo.CSearch();\r\n ///**function*/Callback, /**string*/Branchcodes, /**int*/ClusterID, /**int*/ClusterLevel, /**string*/ProductTypes, /**OPTIONAL object*/AdditionalParams\r\n var target = this.target;\r\n var poi = this.OriginalPoi;\r\n var marker = this;\r\n ymsearch.lookupCluster(function (data) {\r\n target.onClusterDetailsResult(marker, target, poi, data);\r\n }, this.OriginalPoi.BranchCodes, this.OriginalPoi.ClusterID, this.OriginalPoi.ClusterLevel, this.OriginalPoi.ProductTypes);\r\n },\r\n\r\n onClusterDetailsResult: function (marker, me, poi, data) {\r\n\r\n var resultListModel = new ResultListModel();\r\n resultListModel.set('TitlePrefix', \"H2-Tankstellen\");\r\n resultListModel.fromJSON(data);\r\n\r\n var popupModel = new ClusterPopupModel();\r\n popupModel.fromResultList(poi, resultListModel);\r\n\r\n var popupTmpl = new ViewClusterPopup({model: popupModel});\r\n popupTmpl.render();\r\n\r\n marker.setInfoBoxOptions({\r\n Position: ym.map.INFO_BOX_POSITION.AUTO,\r\n ShowOnHover: false,\r\n ContentTemplate: popupTmpl.$el.children()[0]\r\n });\r\n\r\n marker.showInfoBox();\r\n },\r\n\r\n _PoisCreated: function (Markers, search, config) {\r\n this.options.map.optimizeMapForResult(Markers);\r\n var self = this;\r\n\r\n // setTimeout(function () {\r\n // signals.on('mapendmove', function (map, event) {\r\n // if (!lockMove) {\r\n // var zoomlevel = map.getZoomLevel();\r\n //\r\n // if (zoomlevel <= 13) {\r\n // searchSignals.searchInAreaByBranchCode(config.BranchCodes, {\r\n // ZoomLevel: map.getZoomLevel(),\r\n // ClusterLevel: map.getZoomLevel() + config.ClusterLevelOffset\r\n // });\r\n // }\r\n // else {\r\n // var addition = 'Database=YM_FILIALEN';\r\n // if (self.options.searchCenter) {\r\n // addition += '&LocXForDistanceCalculation=' + self.options.searchCenter.Position.Longitude +\r\n // '&LocYForDistanceCalculation=' + self.options.searchCenter.Position.Latitude\r\n // }\r\n // searchSignals.searchInAreaByBranchCode(config.BranchCodes, {\r\n // Addition: encodeURIComponent(addition),\r\n // ZoomLevel: map.getZoomLevel(),\r\n // Top: self.options.config.Top\r\n // });\r\n // }\r\n // } else {\r\n // setTimeout(function () {\r\n // lockMove = false;\r\n // }, 1000);\r\n // }\r\n // });\r\n // }, 1000);\r\n }\r\n});","var PopupView = ViewModel.extend({\r\n template: _.template($('#popuptemplate').html().trim())\r\n});","\r\nfunction initializeMap() {\r\n window.map = new ym.map.CMap(config.Container, config.Options);\r\n}\r\n","function initializeSearch() {\r\n var searchMode = $('[name=\"Search.SearchMode\"]:checked').val();\r\n\r\n var model = new Backbone.Model();\r\n\r\n window.searchView = new SearchView(model, {\r\n disableTypeahead: searchMode === \"FULLTEXT_SEARCH\"\r\n });\r\n searchView.setTextTransformer(ym.util.formatAddressLine);\r\n\r\n $('[name=\"Search.SearchMode\"]').change(function () {\r\n var value = $('[name=\"Search.SearchMode\"]:checked').val();\r\n\r\n if ('POI_SEARCH' === value) {\r\n searchView.enableTypeahead();\r\n } else {\r\n searchView.disableTypeahead();\r\n }\r\n });\r\n\r\n searchView.render();\r\n\r\n $(\"#Search_SingleSlotGeo\").popover('show');\r\n setTimeout(function() {\r\n $(\"#Search_SingleSlotGeo\").popover('hide');\r\n }, 5000);\r\n}\r\n\r\nym.ready({ autocomplete: 5 }, function () {\r\n if (!ym.modules.autoComplete && sm.autocomplete.v5) {\r\n ym.modules.autoComplete = sm.autocomplete.v5.autoComplete;\r\n }\r\n initializeSearch();\r\n});","$.ajaxSetup({\r\n\tdata: {\r\n\t\tSystemPartner: ym.options.name,\r\n\t\tSecurityID: ym.options.securityID,\r\n\t\tChannel: ym.options.channel,\r\n\t\tIsoCountryCode: ym.options.isoCountryCode || 'DE',\r\n\t\tIsoLocale: ym.options.isoLocale || 'de-DE',\r\n\t\tAddition: 'Database=YM_FILIALEN',\r\n\t\tTop: config.Top\r\n\t}\r\n});\r\n\r\nfunction initializeResults() {\r\n\twindow.signals = new CEventEmitter();\r\n\r\n\tvar search = new ym.geo.CSearch();\r\n\twindow.searchSignals = new CSearchSignals(search, map, signals);\r\n\tvar mapSignals = new CMapSignals(map, signals);\r\n\r\n\tfunction registerResultClickEvent() {\r\n\t\t$('.resultlist > li').click(function (e) {\r\n\t\t\tvar contact = $(e.target).data('contact');\r\n\t\t\tif (contact !== 'url' && contact !== 'email') {\r\n\t\t\t\tvar href = $(this).data('href');\r\n\t\t\t\twindow.location = href;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tfunction renderPager(id) {\r\n\t\tvar pagingModel = new PagingModel();\r\n\t\tpagingModel.fromResultList(resultListModel, config);\r\n\r\n\t\tvar pagingView = new PagingView({\r\n\t\t\tel: id,\r\n\t\t\tmodel: pagingModel\r\n\t\t});\r\n\t\tpagingView.render();\r\n\t}\r\n\r\n\tvar config = module.config(),\r\n\t\tresultListModel = new ResultListModel(),\r\n\t\tfirstSearchCompleted = false,\r\n\t\tresultListView;\r\n\r\n\tvar currentPage = 1;\r\n\tvar lastPage = 1;\r\n\tvar isLocationSearch = true;\r\n\tvar lockMapSearch = false;\r\n\tvar searchMode;\r\n\tvar searchCenter;\r\n\r\n\tsearchView.setTextTransformer(ym.util.formatAddressLine);\r\n\r\n\t$('#Search_SearchMode-poi-search').click(function () {\r\n\t\tsearchView.enableTypeahead();\r\n\t\tsearchMode = $(this).val();\r\n\t\tisLocationSearch = true;\r\n\t});\r\n\r\n\t$('#Search_SearchMode-fulltext-search').click(function () {\r\n\t\tsearchView.disableTypeahead();\r\n\t\tsearchMode = $(this).val();\r\n\t\tisLocationSearch = false;\r\n\t});\r\n\r\n\t$(document).on('click', '.details-link', function (e) {\r\n\t\tsessionStorage.search = location.search;\r\n\t});\r\n\r\n\t$(document).on('click', '.searchMoreButton', function (e) {\r\n\t\te.preventDefault();\r\n\t\tcurrentPage = currentPage || $(this).data('currentPage');\r\n\t\tlastPage = lastPage || $(this).data('lastPage');\r\n\t\tisLocationSearch = true;\r\n\t\tlockMapSearch = true;\r\n\r\n\t\tresultListView.isLocationSearch = isLocationSearch;\r\n\r\n\t\tvar mapView = new MapView({\r\n\t\t\tmodel: resultListModel,\r\n\t\t\tisInit: true,\r\n\t\t\tmap: map,\r\n\t\t\tsearch: search,\r\n\t\t\tconfig: config,\r\n\t\t\tsearchCenter: searchCenter\r\n\t\t});\r\n\r\n\t\tif (currentPage < lastPage) {\r\n\t\t\tcurrentPage++;\r\n\t\t\t//erste Suche ist Umkreissuche damit wir Umkreis ggf. erweitern können\r\n\t\t\tlockMove = true;\r\n\t\t\t// searchSignals.useCache();\r\n\r\n\t\t\tsearchSignals.searchAtLocationByBranchCode(mapView.options.config.BranchCodes, {\r\n\t\t\t\tZoomLevel: map.getZoomLevel(),\r\n\t\t\t\tMaxRadius: -1,\r\n\t\t\t\tTop: mapView.options.config.Top,\r\n\t\t\t\tPage: currentPage\r\n\t\t\t});\r\n\r\n\t\t\tmapView.render();\r\n\t\t}\r\n\t\tif (currentPage >= lastPage) {\r\n\t\t\t$('.searchMoreButton').hide();\r\n\t\t}\r\n\t});\r\n\r\n\t$(document).on('click', '.externalRouteLink', function (e) {\r\n\t\tif (window.innerWidth < 768) {\r\n\t\t\te.preventDefault();\r\n\t\t\twindow.open($(this).attr('data-mobile-href'));\r\n\t\t}\r\n\t});\r\n\r\n\t// Wenn die Map zum ersten Mal geladen wurde,\r\n\t// soll ein Event ausgelöst werden, dass künftig\r\n\t// immer eine Suche startet, sobald die Karte\r\n\t// bewegt wurde. Kein Timeout nötig :)\r\n\tsignals.once('maploaded', function () {\r\n\t\t$('#result-list').removeClass('first-load-hide');\r\n\r\n\t\tif (resultListView) {\r\n\t\t\tresultlistView.$el.empty();\r\n\t\t}\r\n\r\n\t\tresultListView = new ResultListView({\r\n\t\t\tel: '#result-list',\r\n\t\t\tmodel: resultListModel,\r\n\t\t\tisLocationSearch: true,\r\n\t\t\tsearchMode: searchMode\r\n\t\t});\r\n\t\tresultListView.$el.empty();\r\n\r\n\t\tisLocationSearch = true;\r\n\t\tlockMapSearch = true;\r\n\r\n\t\tvar mapView = new MapView({\r\n\t\t\tmodel: resultListModel,\r\n\t\t\tisInit: true,\r\n\t\t\tmap: map,\r\n\t\t\tsearch: search,\r\n\t\t\tconfig: config\r\n\t\t});\r\n\r\n\t\tsearchMode = $('[name=\"Search.SearchMode\"]:checked').val();\r\n\t\tif (searchMode === 'FULLTEXT_SEARCH') {\r\n\t\t\tisLocationSearch = false;\r\n\t\t\tym.BaseValues.defaultSearchMode = 'fulltext';\r\n\t\t\tsearchView.disableTypeahead();\r\n\r\n\t\t\tlockMove = true;\r\n\t\t\tsearchSignals.searchFulltext(mapView.options.config.BranchCodes, $('#Search_SingleSlotGeo').val());\r\n\t\t} else {\r\n\t\t\tym.BaseValues.defaultSearchMode = 'location';\r\n\t\t\t//erste Suche ist Umkreissuche damit wir Umkreis ggf. erweitern können\r\n\t\t\tlockMove = true;\r\n\t\t\tsearchSignals.searchAtLocationByBranchCode(mapView.options.config.BranchCodes, {\r\n\t\t\t\tZoomLevel: map.getZoomLevel(),\r\n\t\t\t\tMaxRadius: -1,\r\n\t\t\t\tTop: mapView.options.config.Top,\r\n\t\t\t\tPage: currentPage\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tmapView.render();\r\n\t\tregisterResultClickEvent();\r\n\r\n\t\t$(window).resize(function () {\r\n\t\t\tif (map) {\r\n\t\t\t\t//Wenn es eine Karte gibt, informieren wir sie hier über ein Resizing.\r\n\t\t\t\tvar map_container = $('#' + config.Container);\r\n\t\t\t\tvar width = map_container.width();\r\n\t\t\t\tvar height = map_container.height();\r\n\t\t\t\tmap.resizeMap(new ym.common.CSize(width, height));\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\tsignals.on('searchsuccess', function (data) {\r\n\t\t// searchSignals.unuseCache();\r\n\r\n\t\tvar myCenterMarker = _.find(map.MapObj.Markers, function (marker) {\r\n\t\t\treturn marker.LayerID === 'CenterMarker';\r\n\t\t});\r\n\r\n\t\tif (!isLocationSearch) {\r\n\t\t\tmap.removeAllMarkers('FilialLayer');\r\n\t\t} else {\r\n\t\t\tsearchCenter = ym.g(data.SearchData.Location.YCoord, data.SearchData.Location.XCoord);\r\n\t\t\tmyCenterMarker = CenterMarker(searchCenter);\r\n\t\t}\r\n\r\n\t\tlastPage = +data.Paging.MaxPage;\r\n\t\tcurrentPage = +data.Paging.Page;\r\n\r\n\t\t// Erstelle die Address-Liste aus dem JSON-Objekt\r\n\t\tresultListModel = new ResultListModel();\r\n\t\tresultListModel.fromJSON(data);\r\n\t\tresultListView.isLocationSearch = isLocationSearch;\r\n\t\tresultListView.setSearchMode(searchMode);\r\n\t\tresultListView.render();\r\n\r\n\t\tvar mapView = new MapView({\r\n\t\t\tmodel: resultListModel,\r\n\t\t\tisInit: false,\r\n\t\t\tmap: map,\r\n\t\t\tsearch: search,\r\n\t\t\tconfig: config,\r\n\t\t\tsearchCenter: myCenterMarker\r\n\t\t});\r\n\t\tmapView.render();\r\n\r\n\t\trenderPager('#content-pagination-bottom');\r\n\r\n\t\tregisterResultClickEvent();\r\n\t\t//registerQRCodeHover();\r\n\r\n\t\t//neue Suche registrieren, wenn Karte bewegt wurde\r\n\t\tif (!firstSearchCompleted) {\r\n\t\t\tif (mapView.Markers && mapView.Markers.length > 0) {\r\n\t\t\t\tmapView.options.map.optimizeMapForResult(mapView.Markers, 40);\r\n\t\t\t}\r\n\r\n\t\t\tmapView.options.isInit = true;\r\n\t\t\tmapView.render();\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tsignals.on('mapendmove', function (currentMap) {\r\n\t\t\t\t\tif (lockMapSearch) {\r\n\t\t\t\t\t\tlockMapSearch = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tym.BaseValues.defaultSearchMode = 'area';\r\n\t\t\t\t\t\tcurrentPage = 1;\r\n\t\t\t\t\t\tsearchMode = $('[name=\"Search.SearchMode\"]:checked').val();\r\n\t\t\t\t\t\tif (searchMode !== 'FULLTEXT_SEARCH') {\r\n\t\t\t\t\t\t\tlockMove = true;\r\n\t\t\t\t\t\t\tisLocationSearch = false;\r\n\t\t\t\t\t\t\tsearchSignals.searchInAreaByBranchCode(mapView.options.config.BranchCodes, {\r\n\t\t\t\t\t\t\t\tAddition: encodeURIComponent(\r\n\t\t\t\t\t\t\t\t\t'Database=YM_FILIALEN&' +\r\n\t\t\t\t\t\t\t\t\t\t'LocXForDistanceCalculation=' +\r\n\t\t\t\t\t\t\t\t\t\tsearchCenter.Longitude +\r\n\t\t\t\t\t\t\t\t\t\t'&' +\r\n\t\t\t\t\t\t\t\t\t\t'LocYForDistanceCalculation=' +\r\n\t\t\t\t\t\t\t\t\t\tsearchCenter.Latitude\r\n\t\t\t\t\t\t\t\t),\r\n\t\t\t\t\t\t\t\tZoomLevel: currentMap.getZoomLevel(),\r\n\t\t\t\t\t\t\t\tTop: mapView.options.config.Top,\r\n\t\t\t\t\t\t\t\tPage: currentPage\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}, 1000);\r\n\t\t\tfirstSearchCompleted = true;\r\n\t\t}\r\n\t});\r\n\r\n\tsearchView.render();\r\n\tmap.loadMap();\r\n}\r\n\r\nym.ready({ autocomplete: 5 }, function () {\r\n\tif (!ym.modules.autoComplete && sm.autocomplete.v5) {\r\n\t\tym.modules.autoComplete = sm.autocomplete.v5.autoComplete;\r\n\t}\r\n\tinitializeMap();\r\n\tinitializeResultListModel();\r\n\tinitializeResults();\r\n});\r\n","}());"]}