// lib/handlebars/base.js var Handlebars = {}; Handlebars.VERSION = "1.0.beta.6"; Handlebars.helpers = {}; Handlebars.partials = {}; Handlebars.registerHelper = function(name, fn, inverse) { if(inverse) { fn.not = inverse; } this.helpers[name] = fn; }; Handlebars.registerPartial = function(name, str) { this.partials[name] = str; }; Handlebars.registerHelper('helperMissing', function(arg) { if(arguments.length === 2) { return undefined; } else { throw new Error("Could not find property '" + arg + "'"); } }); var toString = Object.prototype.toString, functionType = "[object Function]"; Handlebars.registerHelper('blockHelperMissing', function(context, options) { var inverse = options.inverse || function() {}, fn = options.fn; var ret = ""; var type = toString.call(context); if(type === functionType) { context = context.call(this); } if(context === true) { return fn(this); } else if(context === false || context == null) { return inverse(this); } else if(type === "[object Array]") { if(context.length > 0) { for(var i=0, j=context.length; i 0) { for(var i=0, j=context.length; i 2) { expected.push("'" + this.terminals_[p] + "'"); } var errStr = ""; if (this.lexer.showPosition) { errStr = "Parse error on line " + (yylineno + 1) + ":\n" + this.lexer.showPosition() + "\nExpecting " + expected.join(", ") + ", got '" + this.terminals_[symbol] + "'"; } else { errStr = "Parse error on line " + (yylineno + 1) + ": Unexpected " + (symbol == 1?"end of input":"'" + (this.terminals_[symbol] || symbol) + "'"); } this.parseError(errStr, {text: this.lexer.match, token: this.terminals_[symbol] || symbol, line: this.lexer.yylineno, loc: yyloc, expected: expected}); } } if (action[0] instanceof Array && action.length > 1) { throw new Error("Parse Error: multiple actions possible at state: " + state + ", token: " + symbol); } switch (action[0]) { case 1: stack.push(symbol); vstack.push(this.lexer.yytext); lstack.push(this.lexer.yylloc); stack.push(action[1]); symbol = null; if (!preErrorSymbol) { yyleng = this.lexer.yyleng; yytext = this.lexer.yytext; yylineno = this.lexer.yylineno; yyloc = this.lexer.yylloc; if (recovering > 0) recovering--; } else { symbol = preErrorSymbol; preErrorSymbol = null; } break; case 2: len = this.productions_[action[1]][1]; yyval.$ = vstack[vstack.length - len]; yyval._$ = {first_line: lstack[lstack.length - (len || 1)].first_line, last_line: lstack[lstack.length - 1].last_line, first_column: lstack[lstack.length - (len || 1)].first_column, last_column: lstack[lstack.length - 1].last_column}; r = this.performAction.call(yyval, yytext, yyleng, yylineno, this.yy, action[1], vstack, lstack); if (typeof r !== "undefined") { return r; } if (len) { stack = stack.slice(0, -1 * len * 2); vstack = vstack.slice(0, -1 * len); lstack = lstack.slice(0, -1 * len); } stack.push(this.productions_[action[1]][0]); vstack.push(yyval.$); lstack.push(yyval._$); newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; stack.push(newState); break; case 3: return true; } } return true; } };/* Jison generated lexer */ var lexer = (function(){ var lexer = ({EOF:1, parseError:function parseError(str, hash) { if (this.yy.parseError) { this.yy.parseError(str, hash); } else { throw new Error(str); } }, setInput:function (input) { this._input = input; this._more = this._less = this.done = false; this.yylineno = this.yyleng = 0; this.yytext = this.matched = this.match = ''; this.conditionStack = ['INITIAL']; this.yylloc = {first_line:1,first_column:0,last_line:1,last_column:0}; return this; }, input:function () { var ch = this._input[0]; this.yytext+=ch; this.yyleng++; this.match+=ch; this.matched+=ch; var lines = ch.match(/\n/); if (lines) this.yylineno++; this._input = this._input.slice(1); return ch; }, unput:function (ch) { this._input = ch + this._input; return this; }, more:function () { this._more = true; return this; }, pastInput:function () { var past = this.matched.substr(0, this.matched.length - this.match.length); return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, ""); }, upcomingInput:function () { var next = this.match; if (next.length < 20) { next += this._input.substr(0, 20-next.length); } return (next.substr(0,20)+(next.length > 20 ? '...':'')).replace(/\n/g, ""); }, showPosition:function () { var pre = this.pastInput(); var c = new Array(pre.length + 1).join("-"); return pre + this.upcomingInput() + "\n" + c+"^"; }, next:function () { if (this.done) { return this.EOF; } if (!this._input) this.done = true; var token, match, col, lines; if (!this._more) { this.yytext = ''; this.match = ''; } var rules = this._currentRules(); for (var i=0;i < rules.length; i++) { match = this._input.match(this.rules[rules[i]]); if (match) { lines = match[0].match(/\n.*/g); if (lines) this.yylineno += lines.length; this.yylloc = {first_line: this.yylloc.last_line, last_line: this.yylineno+1, first_column: this.yylloc.last_column, last_column: lines ? lines[lines.length-1].length-1 : this.yylloc.last_column + match[0].length} this.yytext += match[0]; this.match += match[0]; this.matches = match; this.yyleng = this.yytext.length; this._more = false; this._input = this._input.slice(match[0].length); this.matched += match[0]; token = this.performAction.call(this, this.yy, this, rules[i],this.conditionStack[this.conditionStack.length-1]); if (token) return token; else return; } } if (this._input === "") { return this.EOF; } else { this.parseError('Lexical error on line '+(this.yylineno+1)+'. Unrecognized text.\n'+this.showPosition(), {text: "", token: null, line: this.yylineno}); } }, lex:function lex() { var r = this.next(); if (typeof r !== 'undefined') { return r; } else { return this.lex(); } }, begin:function begin(condition) { this.conditionStack.push(condition); }, popState:function popState() { return this.conditionStack.pop(); }, _currentRules:function _currentRules() { return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules; }, topState:function () { return this.conditionStack[this.conditionStack.length-2]; }, pushState:function begin(condition) { this.begin(condition); }}); lexer.performAction = function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) { var YYSTATE=YY_START switch($avoiding_name_collisions) { case 0: if(yy_.yytext.slice(-1) !== "\\") this.begin("mu"); if(yy_.yytext.slice(-1) === "\\") yy_.yytext = yy_.yytext.substr(0,yy_.yyleng-1), this.begin("emu"); if(yy_.yytext) return 14; break; case 1: return 14; break; case 2: this.popState(); return 14; break; case 3: return 24; break; case 4: return 16; break; case 5: return 20; break; case 6: return 19; break; case 7: return 19; break; case 8: return 23; break; case 9: return 23; break; case 10: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return 15; break; case 11: return 22; break; case 12: return 34; break; case 13: return 33; break; case 14: return 33; break; case 15: return 36; break; case 16: /*ignore whitespace*/ break; case 17: this.popState(); return 18; break; case 18: this.popState(); return 18; break; case 19: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 28; break; case 20: return 30; break; case 21: return 30; break; case 22: return 29; break; case 23: return 33; break; case 24: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 33; break; case 25: return 'INVALID'; break; case 26: return 5; break; } }; lexer.rules = [/^[^\x00]*?(?=(\{\{))/,/^[^\x00]+/,/^[^\x00]{2,}?(?=(\{\{))/,/^\{\{>/,/^\{\{#/,/^\{\{\//,/^\{\{\^/,/^\{\{\s*else\b/,/^\{\{\{/,/^\{\{&/,/^\{\{![\s\S]*?\}\}/,/^\{\{/,/^=/,/^\.(?=[} ])/,/^\.\./,/^[\/.]/,/^\s+/,/^\}\}\}/,/^\}\}/,/^"(\\["]|[^"])*"/,/^true(?=[}\s])/,/^false(?=[}\s])/,/^[0-9]+(?=[}\s])/,/^[a-zA-Z0-9_$-]+(?=[=}\s\/.])/,/^\[[^\]]*\]/,/^./,/^$/]; lexer.conditions = {"mu":{"rules":[3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"INITIAL":{"rules":[0,1,26],"inclusive":true}};return lexer;})() parser.lexer = lexer; return parser; })(); if (typeof require !== 'undefined' && typeof exports !== 'undefined') { exports.parser = handlebars; exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); } exports.main = function commonjsMain(args) { if (!args[1]) throw new Error('Usage: '+args[0]+' FILE'); if (typeof process !== 'undefined') { var source = require('fs').readFileSync(require('path').join(process.cwd(), args[1]), "utf8"); } else { var cwd = require("file").path(require("file").cwd()); var source = cwd.join(args[1]).read({charset: "utf-8"}); } return exports.parser.parse(source); } if (typeof module !== 'undefined' && require.main === module) { exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args); } }; ; // lib/handlebars/compiler/base.js Handlebars.Parser = handlebars; Handlebars.parse = function(string) { Handlebars.Parser.yy = Handlebars.AST; return Handlebars.Parser.parse(string); }; Handlebars.print = function(ast) { return new Handlebars.PrintVisitor().accept(ast); }; Handlebars.logger = { DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3, // override in the host environment log: function(level, str) {} }; Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); }; ; // lib/handlebars/compiler/ast.js (function() { Handlebars.AST = {}; Handlebars.AST.ProgramNode = function(statements, inverse) { this.type = "program"; this.statements = statements; if(inverse) { this.inverse = new Handlebars.AST.ProgramNode(inverse); } }; Handlebars.AST.MustacheNode = function(params, hash, unescaped) { this.type = "mustache"; this.id = params[0]; this.params = params.slice(1); this.hash = hash; this.escaped = !unescaped; }; Handlebars.AST.PartialNode = function(id, context) { this.type = "partial"; // TODO: disallow complex IDs this.id = id; this.context = context; }; var verifyMatch = function(open, close) { if(open.original !== close.original) { throw new Handlebars.Exception(open.original + " doesn't match " + close.original); } }; Handlebars.AST.BlockNode = function(mustache, program, close) { verifyMatch(mustache.id, close); this.type = "block"; this.mustache = mustache; this.program = program; }; Handlebars.AST.InverseNode = function(mustache, program, close) { verifyMatch(mustache.id, close); this.type = "inverse"; this.mustache = mustache; this.program = program; }; Handlebars.AST.ContentNode = function(string) { this.type = "content"; this.string = string; }; Handlebars.AST.HashNode = function(pairs) { this.type = "hash"; this.pairs = pairs; }; Handlebars.AST.IdNode = function(parts) { this.type = "ID"; this.original = parts.join("."); var dig = [], depth = 0; for(var i=0,l=parts.length; i": ">", '"': """, "'": "'", "`": "`" }; var badChars = /&(?!\w+;)|[<>"'`]/g; var possible = /[&<>"'`]/; var escapeChar = function(chr) { return escape[chr] || "&"; }; Handlebars.Utils = { escapeExpression: function(string) { // don't escape SafeStrings, since they're already safe if (string instanceof Handlebars.SafeString) { return string.toString(); } else if (string == null || string === false) { return ""; } if(!possible.test(string)) { return string; } return string.replace(badChars, escapeChar); }, isEmpty: function(value) { if (typeof value === "undefined") { return true; } else if (value === null) { return true; } else if (value === false) { return true; } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) { return true; } else { return false; } } }; })();; // lib/handlebars/compiler/compiler.js Handlebars.Compiler = function() {}; Handlebars.JavaScriptCompiler = function() {}; (function(Compiler, JavaScriptCompiler) { Compiler.OPCODE_MAP = { appendContent: 1, getContext: 2, lookupWithHelpers: 3, lookup: 4, append: 5, invokeMustache: 6, appendEscaped: 7, pushString: 8, truthyOrFallback: 9, functionOrFallback: 10, invokeProgram: 11, invokePartial: 12, push: 13, assignToHash: 15, pushStringParam: 16 }; Compiler.MULTI_PARAM_OPCODES = { appendContent: 1, getContext: 1, lookupWithHelpers: 2, lookup: 1, invokeMustache: 3, pushString: 1, truthyOrFallback: 1, functionOrFallback: 1, invokeProgram: 3, invokePartial: 1, push: 1, assignToHash: 1, pushStringParam: 1 }; Compiler.DISASSEMBLE_MAP = {}; for(var prop in Compiler.OPCODE_MAP) { var value = Compiler.OPCODE_MAP[prop]; Compiler.DISASSEMBLE_MAP[value] = prop; } Compiler.multiParamSize = function(code) { return Compiler.MULTI_PARAM_OPCODES[Compiler.DISASSEMBLE_MAP[code]]; }; Compiler.prototype = { compiler: Compiler, disassemble: function() { var opcodes = this.opcodes, opcode, nextCode; var out = [], str, name, value; for(var i=0, l=opcodes.length; i 0) { this.source[1] = this.source[1] + ", " + locals.join(", "); } // Generate minimizer alias mappings if (!this.isChild) { var aliases = [] for (var alias in this.context.aliases) { this.source[1] = this.source[1] + ', ' + alias + '=' + this.context.aliases[alias]; } } if (this.source[1]) { this.source[1] = "var " + this.source[1].substring(2) + ";"; } // Merge children if (!this.isChild) { this.source[1] += '\n' + this.context.programs.join('\n') + '\n'; } if (!this.environment.isSimple) { this.source.push("return buffer;"); } var params = this.isChild ? ["depth0", "data"] : ["Handlebars", "depth0", "helpers", "partials", "data"]; for(var i=0, l=this.environment.depths.list.length; i this.stackVars.length) { this.stackVars.push("stack" + this.stackSlot); } return "stack" + this.stackSlot; }, popStack: function() { return "stack" + this.stackSlot--; }, topStack: function() { return "stack" + this.stackSlot; }, quotedString: function(str) { return '"' + str .replace(/\\/g, '\\\\') .replace(/"/g, '\\"') .replace(/\n/g, '\\n') .replace(/\r/g, '\\r') + '"'; } }; var reservedWords = ( "break else new var" + " case finally return void" + " catch for switch while" + " continue function this with" + " default if throw" + " delete in try" + " do instanceof typeof" + " abstract enum int short" + " boolean export interface static" + " byte extends long super" + " char final native synchronized" + " class float package throws" + " const goto private transient" + " debugger implements protected volatile" + " double import public let yield" ).split(" "); var compilerWords = JavaScriptCompiler.RESERVED_WORDS = {}; for(var i=0, l=reservedWords.length; i /// /// /// /// /// var SelectedDate; var mapSpecialEventParkingSpaces = []; var ListbelongsAssets = []; var listDoesnotbelongAssets = []; var selectedAssets = []; var unselectedAssets = []; var Assignedblface = []; var Unassignedblockface = []; var selectedblfce = []; var partialBlockface = []; var dashedBlockface = []; var unselectedblckface = []; var partialBlockfaceUnselected = []; var partialBlockfaceMeters = []; activeSpecialEvent = false; var IsSaveCart = false; var selectedFilterCart = ""; var IsMeterMapAssetGroupTypeEnabled = false; var mapResizedExternally = false; var MERGEMap = function (renderTo, mapOptions, defaultZoomLevel) { var map = null, CityName = "", mapBounds = null, mapBoundsCity = null, mapData = null, meterMapData = null, blockfaceMapData = null, mapDataUrl = null, mapRenderer = null, // The runtime js obj that will render the map (i.e. Occupancy, Payment, Maintenance, etc) mapSearchMarker = null, mapMarkers = [], mapBlockfacesLines = [], mapBlockfaceCircles = [], line = [], MapAssetModel = [], mapOffstreetParkingMarkers = [], mapDMSParkingMarkers = [], maxZoomOutLevel = 14, zoomLevel = (defaultZoomLevel == undefined ? 18 : defaultZoomLevel), showPushPinsZoomLevel = 19, isHostedExternally = false, widgetOptions = null, selectedMarker = null, currPosList = 0, newPosList = 1, listDiv = "", isMapInitiallyLoaded = false, didYouMeanHandler = null, addressFoundHandler = null, addressNotFoundHandler = null, mapLoadedHandler = null, blockfaceClickedHandler = null, gettingMapDataHandler = null, advancedSearchSection = null, advancedSearchSectionName = null, infoWindow = new google.maps.InfoWindow(), listPushpin = false, refreshMap = true, isPanelOpen = false, //US 63733 : set panel open to false by default showMeters = true, isBlockfaceOpen = false, flagMeterToggleRender = false, flagSpaceToggleRender = false, urlGetCityName = '/Map/GetCityName', urlMultipleBlockface = '/Map/GetBlockfacesByNumberAndStreet', PrevRenderType = '', PrevMapRenderType = '', IsOpenAdvancedFilter = false, groupChangeEvent = false, subGroupChangeEvent = false ddlSubGroupPrevVal = ''; ddlGroupPrevVal = ''; init = function () { setBindings(); var swBounds = new google.maps.LatLng(mapOptions.SouthWestBounds.Lat, mapOptions.SouthWestBounds.Lng); var neBounds = new google.maps.LatLng(mapOptions.NorthEastBounds.Lat, mapOptions.NorthEastBounds.Lng); mapBounds = new google.maps.LatLngBounds(swBounds, neBounds); didYouMeanHandler = new DidYouMeanResultEvent(); addressFoundHandler = new AddressFoundResultEvent(); addressNotFoundHandler = new AddressNotFoundResultEvent(); mapLoadedHandler = new MapLoadedEvent(); blockfaceClickedHandler = new BlockfaceClickedEvent(); gettingMapDataHandler = new GettingMapDataEvent(); $('#DerivedIndicatorsCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.BlockfaceNavItemHR').hide(); $('.mapNavGroup:[renderer="DerivedIndicators"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="DerivedIndicators"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="DerivedIndicators"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="DerivedIndicators"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#DIndicatorCheckList'); if (searchPane.is(":visible")) { } else { $('#DIndicatorCheckList').show(); $('#toggle_d').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#DIndicatorCheckAll').click(function () { $('#toggle_d').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#DIndicatorCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#OccupancyCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.BlockfaceNavItemHR').hide(); $('.mapNavGroup:[renderer="Occupancy"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="Occupancy"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="Occupancy"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="Occupancy"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#OccupancyCheckList'); if (searchPane.is(":visible")) { } else { $('#OccupancyCheckList').show(); $('#toggle_O').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#OccupancyAll').click(function () { $('#toggle_O').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#OccupancyCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#PaymentCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.BlockfaceNavItemHR').hide(); $('.mapNavGroup:[renderer="Payment"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="Payment"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="Payment"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="Payment"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#PaymentCheckList'); if (searchPane.is(":visible")) { } else { $('#PaymentCheckList').show(); $('#toggle_P').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#PaymentAll').click(function () { $('#toggle_P').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#PaymentCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#SpaceDerivedIndicatorsCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.SpaceNavItemHR').hide(); $('.mapNavGroup:[renderer="DerivedIndicators"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="DerivedIndicators"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="DerivedIndicators"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="DerivedIndicators"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#SpaceDIndicatorCheckList'); if (searchPane.is(":visible")) { } else { $('#SpaceDIndicatorCheckList').show(); $('#toggle_ds').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#SpaceDIndicatorCheckAll').click(function () { $('#toggle_ds').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#SpaceDIndicatorCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#SpaceOccupancyCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.SpaceNavItemHR').hide(); $('.mapNavGroup:[renderer="Occupancy"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="Occupancy"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="Occupancy"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="Occupancy"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#SpaceOccupancyCheckList'); if (searchPane.is(":visible")) { } else { $('#SpaceOccupancyCheckList').show(); $('#toggle_Os').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#SpaceOccupancyAll').click(function () { $('#toggle_Os').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#SpaceOccupancyCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#SpacePaymentCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.SpaceNavItemHR').hide(); $('.mapNavGroup:[renderer="Payment"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="Payment"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="Payment"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="Payment"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#SpacePaymentCheckList'); if (searchPane.is(":visible")) { } else { $('#SpacePaymentCheckList').show(); $('#toggle_Psm').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#SpacePaymentAll').click(function () { $('#toggle_Psm').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); var searchPane = $('#SpacePaymentCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#MeterPaymentCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.MeterNavItemHR').hide(); $('.mapNavGroup:[renderer="Payment"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="Payment"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="Payment"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="Payment"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#MeterPaymentCheckList'); if (searchPane.is(":visible")) { } else { $('#MeterPaymentCheckList').show(); $('#toggle_MP').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#MeterPaymentAll').click(function () { $('#toggle_MP').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); var searchPane = $('#MeterPaymentCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#MeterStateCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.MeterNavItemHR').hide(); $('.BlockfaceNavItemHR').hide(); $('.mapNavGroup:[renderer="MeterState"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="MeterState"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="MeterState"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="MeterState"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#MeterStateCheckList'); if (searchPane.is(":visible")) { } else { $('#MeterStateCheckList').show(); $('#toggle_MS').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#MeterStateAll').click(function () { $('#toggle_MS').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#MeterStateCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#AssetGroupTypeCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.BlockfaceNavItemHR').show(); $('.mapNavGroup:[renderer="AssetGroupType"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="AssetGroupType"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.BlockfaceNavItemHR').hide(); $('.mapNavGroup:[renderer="AssetGroupType"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="AssetGroupType"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#AssetGroupTypeCheckList'); if (searchPane.is(":visible")) { } else { $('#AssetGroupTypeCheckList').show(); $('#toggle_AGT').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#AssetGroupTypeAll').click(function () { $('#toggle_AGT').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#AssetGroupTypeCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#AssetGroupTypeMeterCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.MeterNavItemHR').show(); $('.mapNavGroup:[renderer="AssetGroupType"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="AssetGroupType"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="AssetGroupType"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="AssetGroupType"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#AssetGroupTypeMeterCheckList'); if (searchPane.is(":visible")) { } else { $('#AssetGroupTypeMeterCheckList').show(); $('#toggle_AGTM').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#AssetGroupTypeMeterAll').click(function () { $('#toggle_AGTM').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#AssetGroupTypeMeterCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#AssetGroupTypeSpaceCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.SpaceNavItemHR').show(); $('.mapNavGroup:[renderer="AssetGroupType"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="AssetGroupType"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="AssetGroupType"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="AssetGroupType"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#AssetGroupTypeMeterCheckList'); if (searchPane.is(":visible")) { } else { $('#AssetGroupTypeSpaceCheckList').show(); $('#toggle_AGTS').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#AssetGroupTypeSpaceAll').click(function () { $('#toggle_AGTS').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#AssetGroupTypeSpaceCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#MaintenanceStateCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.MeterNavItemHR').hide(); $('.mapNavGroup:[renderer="Maintenance"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="Maintenance"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="Maintenance"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="Maintenance"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#MaintenanceStateCheckList'); if (searchPane.is(":visible")) { } else { $('#MaintenanceStateCheckList').show(); $('#toggle_MSC').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#MaintenanceStateAll').click(function () { $('#toggle_MSC').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#MaintenanceStateCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); $('#MaintenancePriorityCheckAll').click(function () { if ($('[type="checkbox"]').is(":checked")) { $('.MeterNavItemHR').hide(); $('.mapNavGroup:[renderer="PriorityMaintenance"]').find('input:checkbox').attr('checked', 'checked'); $('.mapNavGroup:[renderer="PriorityMaintenance"]').find('.mapNavItem').addClass('active'); //PermitstateSelectAll = false; } else { $('.mapNavGroup:[renderer="PriorityMaintenance"]').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:[renderer="PriorityMaintenance"]').find('.mapNavItem').removeClass('active'); //PermitstateSelectAll = true; } var searchPane = $('#MaintenancePriorityCheckList'); if (searchPane.is(":visible")) { } else { $('#MaintenancePriorityCheckList').show(); $('#toggle_MPC').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } }); $('#MaintenancePriorityAll').click(function () { $('#toggle_MPC').toggleClass('icon-chevron-down').toggleClass('icon-chevron-right'); var searchPane = $('#MaintenancePriorityCheckList'); if (searchPane.is(":visible")) { advancedSearch.SearchPanel.hidePane(searchPane); } else { advancedSearch.SearchPanel.showPane(searchPane); } }); //Check if the map is loaded from Meter Management Portal //This is so that when the Parking Finder or other maps are loaded, they //do not use the zoom level param below if ($('#MeterMgmt').length) { //provide custom zoom value in url for command center display zoomLevel = parseInt($('#map-zoom').val()); } $('#list_view').hide(); var myOptions = { center: new google.maps.LatLng(mapOptions.MapCenter.Lat, mapOptions.MapCenter.Lng), zoom: zoomLevel, mapTypeId: google.maps.MapTypeId.ROADMAP, minZoom: maxZoomOutLevel }; if (mapOptions.MinZoom != undefined) { myOptions.minZoom = mapOptions.MinZoom; } if (mapOptions.MaxZoom != undefined) { myOptions.maxZoom = mapOptions.MaxZoom; } if (mapOptions.MapZoom != undefined) { myOptions.zoom = mapOptions.MapZoom; } map = new google.maps.Map(document.getElementById(renderTo), myOptions); map.setTilt(0); // Color saturation of map var mapStyles = JSON.parse(mapOptions.MapStyle); map.setOptions({ styles: mapStyles }); google.maps.event.addListener(map, 'idle', function () { if (isHostedExternally) { if (mapResizedExternally) { mapResizedExternally = false; return true; } getMaxPolicyRate(); } var selectedDate = new Date($('#divDatePicker').datepicker('getDate')); //Meter Mgmt and Special Event Map will load for first time with this If condition as Invalid Date if (selectedDate == "Invalid Date") { loadMap(); } // For Special Event Calendar clicking on NEXT button the selectedDate will always come as = undefined and we dont need to load // the map again for that as it is already loaded for the first time with the above code if (!isMapInitiallyLoaded) { mapLoadedHandler.execute(); isMapInitiallyLoaded = true; } }); google.maps.event.addListener(map, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); }); if (null != mapOptions.AssetGroupTypeForFilter && mapOptions.AssetGroupTypeForFilter != '') { $('#assetGroupTypeSection').show(); } else { $('#assetGroupTypeSection').hide(); } }, toggleDatePicker = function (shouldShow) { var label = $('#policy-date'); var datePicker = $('#policy_date_picker'); if (shouldShow) { $('#policy_activity_date').show(); label.hide(); datePicker.show(); } else { label.show() datePicker.hide(); $('#policy_activity_date').hide(); } }, shouldLoadPolicyFilterNav = function () { return ($('#policyMgmtFiltersContainer').html() == ''); }, setBindings = function () { $('#mapFilters').delegate('a', 'click', function (e) { e.preventDefault(); $(this).tab('show'); advancedSearch.SearchPanel.updateIndicator(); if (getMapFilterType() == MapFilterTab.Policy) { toggleDatePicker(false); if (shouldLoadPolicyFilterNav()) { displayGettingMapData(); var date = new Date(); $('#policy-date').text(date.toShortDateString()); $('#policyMgmtFiltersContainer').load($('#policyMgmtFiltersContainer').attr('basic-policy-mgmt-action'), { effectiveDate: (date.toDateString() + ' ' + date.toShortTimeString()) }, function () { loadMap(); }); } else { loadMap(); } } else { toggleDatePicker(true); loadMap(); } }); //==========Special Event showModal = function (modalId) { var $modal = $('#' + modalId); $modal.css('margin-top', function () { return -($(this).height() / 1.25); }) .css('margin-left', function () { return -($(this).width() / 2.25); }); $modal.modal('show'); }; hideModal = function (modalId) { $('#' + modalId).modal('hide'); }; $("#btnCancelSpecialEvent").live("click", function () { if ($('#addspecialEvent').length > 0) { mapSpecialEventParkingSpaces = []; activeSpecialEvent = false; $('#divSuccess').css('position', 'absolute'); $('#divSuccess').css('visibility', 'hidden'); $('#divError').css('position', 'absolute'); $('#divError').css('visibility', 'hidden'); } loadMap(); }); $("#divAddSpecialEvent").live("click", function () { if ($('#addspecialEvent').length > 0) { showModal('CalendarLockoutModal'); } }); $("a#lnkAddSpecialEvent").live("click", function () { if ($('#addspecialEvent').length > 0) { var currDate = new Date(); var selectedDate = new Date($('#divDatePicker').datepicker('getDate')); var LeadDateTime = new Date($('#hdnSpecialEventsLeadDate').val()); var diffYears = selectedDate.getFullYear() - LeadDateTime.getFullYear(); var diffMonths = selectedDate.getMonth() - LeadDateTime.getMonth(); SelectedDate = selectedDate; if (diffYears * 12 + diffMonths <= 0) { $('#divAddSpecialEvent').trigger('click'); return false; } else if (diffYears * 12 + diffMonths == 1) { if (currDate.toShortDateString() > LeadDateTime.toShortDateString()) { $('#divAddSpecialEvent').trigger('click'); return false; } } mapSpecialEventParkingSpaces = []; activeSpecialEvent = false; var selectedDate = new Date($('#divDatePicker').datepicker('getDate')); var selectedDate = selectedDate.toDateString(); $('#addspecialEvent').load($('#addspecialEvent').attr('specialEvent-add-action'), { strMap: "true", selectedDate: selectedDate }); setTimeout(function () { loadMap(); }, 300); $('body').layout().open('east'); } }); $("#divCalender").live("click", function () { mapSpecialEventParkingSpaces = []; activeSpecialEvent = false; $('#hdnSelectedParkingSpace').val(""); $('#hdnAllSelectedParkingSpace').val(""); $('#txtSpecialEventName').val(""); $('#txtCategoryName').val(""); $('#lsSpecialEventPolicies').val(""); $('#hdnSelectedParkingSpaceLat').val(""); $('#hdnSelectedParkingSpaceLng').val(""); $('#btnRemove').css('visibility', 'hidden'); $('body').layout().close('east'); }); // Special Event $("li.info-inactive").live("click", function () { if ($('#addspecialEvent').length > 0) { activeSpecialEvent = false; var SpecialEventId = this.id $('body').layout().open('east'); $("li.active").removeClass('active'); $('#' + SpecialEventId).addClass('active'); mapSpecialEventParkingSpaces = []; $('#divSuccess').css('position', 'absolute'); $('#divSuccess').css('visibility', 'hidden'); $('#divError').css('position', 'absolute'); $('#divError').css('visibility', 'hidden'); $('#hdnSelectedParkingSpaceLat').val(""); $('#hdnSelectedParkingSpaceLng').val(""); var selectedDate = new Date($('#divDatePicker').datepicker('getDate')); var selectedDate = selectedDate.toDateString(); $('#addspecialEvent').load($('#divlsSE').attr('specialEvent-active-action'), { SpecialEventId: SpecialEventId, selectedDate: selectedDate }); setTimeout(function () { loadMap(); }, 300); } }); $("li.info-active").live("click", function () { if ($('#addspecialEvent').length > 0) { activeSpecialEvent = true; var SpecialEventId = this.id $('body').layout().open('east'); mapSpecialEventParkingSpaces = []; $("li.inactive").removeClass('active'); $('#' + SpecialEventId).addClass('active'); $('#divSuccess').css('position', 'absolute'); $('#divSuccess').css('visibility', 'hidden'); $('#divError').css('position', 'absolute'); $('#divError').css('visibility', 'hidden'); $('#hdnSelectedParkingSpaceLat').val(""); $('#hdnSelectedParkingSpaceLng').val(""); var selectedDate = new Date($('#divDatePicker').datepicker('getDate')); var selectedDate = selectedDate.toDateString(); $('#addspecialEvent').load($('#divlsSE').attr('specialEvent-active-action'), { SpecialEventId: SpecialEventId, selectedDate: selectedDate }); setTimeout(function () { loadMap(); }, 300); } }); // ========================== /*START - Shopping Cart Asset groups*/ //Change color of existing blockface Lines only without removing the blcokface/line object from global array CreatenewPolyLine = function (mapb, event) { //Create a Ployline by assigning the MapData with blockface information for (var j = 0; j < mapData.length; j++) { if (mapData[j].BlockFaceId == mapb.blockfaceId) { if (mapData[j].IsSelected == false) { mapb.setOptions({ strokeColor: '#00B2EE' }); mapData[j].IsSelected = true; mapData[j].IsUnSelected = false; mapData[j].CurrentState = 0; for (var c = 0; c < mapData[j].Meters.length; c++) { mapData[j].Meters[c].CurrentState = mapData[j].IsSelected ? 0 : 2; } break; } else { mapb.setOptions({ strokeColor: '#999999' }); mapData[j].IsSelected = false; mapData[j].IsUnSelected = true; mapData[j].CurrentState = 2; for (var c = 0; c < mapData[j].Meters.length; c++) { mapData[j].Meters[c].CurrentState = mapData[j].IsSelected ? 0 : 2; } break; } } } blockfaceMapData = mapData; }, //change from Dashed to proper Blockface Line //Create a PLAIN blue blockface line from a "DOTTED" blockfaceLine. CreatenewDashedToPolyLine = function (mapobj, event) { //Create a Ployline by assigning the MapData with blockface information for (var g = 0; g < line.length; g++) { if (line[g].blockfaceId == mapobj.blockfaceId) { //Add new polyline object to exissting blockfaceline object var pathoption = mapobj.getPath(); var polylinecordinates = []; if (pathoption.length == 0) { pathoption = line[g].getPath(); } for (var f = 0; f < pathoption.length; f++) { var xy = pathoption.getAt(f); polylinecordinates[polylinecordinates.length] = new google.maps.LatLng(xy.lat(), xy.lng()); } for (var b = 0; b < mapBlockfacesLines.length; b++) { if (mapBlockfacesLines[b].blockfaceId == mapobj.blockfaceId) { mapBlockfacesLines[b].setMap(null); if (mapBlockfacesLines.indexOf(mapBlockfacesLines[b]) != -1) { var removebf = mapBlockfacesLines.indexOf(mapBlockfacesLines[b]); mapBlockfacesLines.splice(removebf, 1); } } } mapBlockfacesLines.push(new google.maps.Polyline({ path: polylinecordinates, strokeColor: '#00B2EE', strokeOpacity: .7, strokeWeight: 5, blockfaceId: mapobj.blockfaceId, map: map })); //remove from line array line[g].setMap(null); mapBlockfacesLines[mapBlockfacesLines.length - 1].setMap(map); google.maps.event.addListener(mapBlockfacesLines[mapBlockfacesLines.length - 1], 'click', function (event) { //make it back to dot line. as per COA. var mlineobj = GetindexOf('blockfaceId', mapobj.blockfaceId, mapBlockfacesLines); // CreateNewDashedPolyline(mapBlockfacesLines[mlineobj], event); CreatenewDashedToGreyPolyLine(mapBlockfacesLines[mlineobj], event); }); } } //Assign back the Blockface information to mapdata for (var j = 0; j < mapData.length; j++) { if (mapData[j].BlockFaceId == mapobj.blockfaceId) { mapData[j].IsEdited = true; if (mapData[j].IsDottedBlockface == true) { mapobj.setOptions({ strokeColor: '#00B2EE' }); mapData[j].IsSelected = true; mapData[j].IsUnSelected = false; mapData[j].CurrentState = 0; mapData[j].IsDottedBlockface = false; for (var c = 0; c < mapData[j].Meters.length; c++) { mapData[j].Meters[c].CurrentState = mapData[j].IsSelected ? 0 : 2; mapData[j].Meters[c].IsSelected = true; mapData[j].Meters[c].IsUnSelected = false; for (var v = 0; v < meterMapData.length; v++) { if (meterMapData[v].MeterId == mapData[j].Meters[c].MeterId) { meterMapData[v].CurrentState = mapData[j].IsSelected ? 0 : 2; meterMapData[v].IsSelected = true; meterMapData[v].IsUnSelected = false; break; } } } break; } else { mapobj.setOptions({ strokeColor: '#999999' }); mapData[j].IsSelected = false; mapData[j].IsUnSelected = true; mapData[j].CurrentState = 2; for (var c = 0; c < mapData[j].Meters.length; c++) { mapData[j].Meters[c].CurrentState = mapData[j].IsSelected ? 0 : 2; mapData[j].Meters[c].IsSelected = false; mapData[j].Meters[c].IsUnSelected = true; for (var d = 0; v < meterMapData.length; v++) { if (meterMapData[v].MeterId == mapData[j].Meters[c].MeterId) { meterMapData[v].CurrentState = mapData[j].IsSelected ? 0 : 2; meterMapData[v].IsSelected = false; meterMapData[v].IsUnSelected = true; break; } } } break; } } } blockfaceMapData = mapData; }, //Create a NEW PLAIN GREY blockface line from a "DOTTED" blue line. // which means all meters in the blockface have been unselected. CreatenewDashedToGreyPolyLine = function (mapobj, event) { if (partialBlockface.indexOf(mapobj.blockfaceId) != -1) { var removeItemd = partialBlockface.indexOf(mapobj.blockfaceId); partialBlockface.splice(removeItemd, 1); } if (dashedBlockface.indexOf(mapobj.blockfaceId) != -1) { var removeItem = dashedBlockface.indexOf(mapobj.blockfaceId); dashedBlockface.splice(removeItem, 1); } if (partialBlockfaceUnselected.indexOf(mapobj.blockfaceId) == -1) { partialBlockfaceUnselected.push(mapobj.blockfaceId); } if (Assignedblface.indexOf(mapobj.blockfaceId) != -1) { var removeItem = Assignedblface.indexOf(mapobj.blockfaceId); Assignedblface.splice(removeItem, 1); } if (selectedblfce.indexOf(mapobj.blockfaceId) != -1) { var removeItem = selectedblfce.indexOf(mapobj.blockfaceId); selectedblfce.splice(removeItem, 1) } if (Unassignedblockface.indexOf(mapobj.blockfaceId) == -1) { Unassignedblockface.push(mapobj.blockfaceId); } if (unselectedblckface.indexOf(mapobj.blockfaceId) == -1) { unselectedblckface.push(mapobj.blockfaceId); } for (var g = 0; g < line.length; g++) { if (line[g].blockfaceId == mapobj.blockfaceId) { //remove from line array line[g].setMap(null); //Add new polyline object to exissting blockfaceline object var pathoption = mapobj.getPath(); var polylinecordinates = []; if (pathoption.length == 0) { pathoption = line[g].getPath(); } if (pathoption.length == 0) { var mlineobj = GetindexOf('blockfaceId', mapobj.blockfaceId, mapBlockfacesLines); var pathoption = mapBlockfacesLines[mlineobj].getPath(); } for (var f = 0; f < pathoption.length; f++) { var xy = pathoption.getAt(f); polylinecordinates[polylinecordinates.length] = new google.maps.LatLng(xy.lat(), xy.lng()); } for (var b = 0; b < mapBlockfacesLines.length; b++) { if (mapBlockfacesLines[b].blockfaceId == mapobj.blockfaceId) { mapBlockfacesLines[b].setMap(null); if (mapBlockfacesLines.indexOf(mapBlockfacesLines[b]) != -1) { var removebf = mapBlockfacesLines.indexOf(mapBlockfacesLines[b]); mapBlockfacesLines.splice(removebf, 1); } } } mapBlockfacesLines.push(new google.maps.Polyline({ path: polylinecordinates, strokeColor: '#999999', strokeOpacity: .7, strokeWeight: 5, blockfaceId: mapobj.blockfaceId })); mapBlockfacesLines[mapBlockfacesLines.length - 1].setMap(map); google.maps.event.addListener(mapBlockfacesLines[mapBlockfacesLines.length - 1], 'click', function (event) { ////make it back to poly line var mlineobj = GetindexOf('blockfaceId', mapobj.blockfaceId, mapBlockfacesLines); CreatenewPolyLine(mapBlockfacesLines[mlineobj], event); }); //Assign back the Blockface information to mapdata for (var j = 0; j < mapData.length; j++) { if (mapData[j].BlockFaceId == mapobj.blockfaceId) { mapData[j].IsEdited = true; if (mapData[j].IsDottedBlockface == true) { mapobj.setOptions({ strokeColor: '#00B2EE' }); mapData[j].IsSelected = true; mapData[j].IsUnSelected = false; mapData[j].CurrentState = 0; mapData[j].IsDottedBlockface = false; for (var c = 0; c < mapData[j].Meters.length; c++) { mapData[j].Meters[c].CurrentState = mapData[j].IsSelected ? 0 : 2; mapData[j].Meters[c].IsSelected = true; mapData[j].Meters[c].IsUnSelected = false; for (var v = 0; v < meterMapData.length; v++) { if (meterMapData[v].MeterId == mapData[j].Meters[c].MeterId) { meterMapData[v].CurrentState = mapData[j].IsSelected ? 0 : 2; meterMapData[v].IsSelected = true; meterMapData[v].IsUnSelected = false; break; } } } break; } else { mapobj.setOptions({ strokeColor: '#999999' }); mapData[j].IsSelected = false; mapData[j].IsUnSelected = true; mapData[j].CurrentState = 2; for (var c = 0; c < mapData[j].Meters.length; c++) { mapData[j].Meters[c].CurrentState = mapData[j].IsSelected ? 0 : 2; mapData[j].Meters[c].IsSelected = false; mapData[j].Meters[c].IsUnSelected = true; for (var d = 0; v < meterMapData.length; v++) { if (meterMapData[v].MeterId == mapData[j].Meters[c].MeterId) { meterMapData[v].CurrentState = mapData[j].IsSelected ? 0 : 2; meterMapData[v].IsSelected = false; meterMapData[v].IsUnSelected = true; break; } } } break; } } } blockfaceMapData = mapData; } } }, //Change from proper blockfaceLine back to dashed line //Which means some meters a re selected while others are not CreateNewDashedPolyline = function (mapob, event) { var bfid = mapob.BlockFaceId == undefined ? mapob.blockfaceId : mapob.BlockFaceId; if (Assignedblface.indexOf(mapob.blockfaceId) != -1) { var removeItem = Assignedblface.indexOf(mapob.blockfaceId); Assignedblface.splice(removeItem, 1); } if (selectedblfce.indexOf(mapob.blockfaceId) != -1) { var removebFCE = selectedblfce.indexOf(mapob.blockfaceId); selectedblfce.splice(removebFCE, 1); } if (partialBlockface.indexOf(mapob.blockfaceId) == -1) { partialBlockface.push(mapob.blockfaceId); } if (dashedBlockface.indexOf(mapob.blockfaceId) == -1) { dashedBlockface.push(mapob.blockfaceId); } for (var g = 0; g < mapBlockfacesLines.length; g++) { if (mapBlockfacesLines[g].blockfaceId == mapob.blockfaceId) { var pathoption = mapob.getPath(); var polylinecordinates = []; for (var l = 0; l < line.length; l++) { if (line[l].blockfaceId == mapob.blockfaceId) { if (pathoption.length == 0) { pathoption = line[l].getPath(); } line[l].setMap(null); var removebf = line.indexOf(line[l]); line.splice(removebf, 1); } } if (pathoption.length == 0) { var mlineobj = GetindexOf('blockfaceId', mapob.blockfaceId, mapBlockfacesLines); var pathoption = mapBlockfacesLines[mlineobj].getPath(); } for (var f = 0; f < pathoption.length; f++) { var xy = pathoption.getAt(f); polylinecordinates[polylinecordinates.length] = new google.maps.LatLng(xy.lat(), xy.lng()); } if (mapBlockfacesLines.indexOf(mapBlockfacesLines[g]) != -1) { var removebf = mapBlockfacesLines.indexOf(mapBlockfacesLines[g]); mapBlockfacesLines[g].setMap(null); mapBlockfacesLines.splice(removebf, 1); } var lineSymbol = { path: 'M 0,-1 0,1', strokeOpacity: 0.9, strokeColor: '#00B2EE', scale: 4 }; line.push(new google.maps.Polyline({ path: polylinecordinates, strokeOpacity: 0, icons: [{ icon: lineSymbol, offset: '0', repeat: '20px' }], blockfaceId: bfid, map: map })); line[line.length - 1].setMap(map); google.maps.event.addListener(line[line.length - 1], 'click', function (event) { //create new polyline CreatenewDashedToPolyLine(this, event); }); } } }, //Get the blockface Line color according to the CART STATUS //0- Blue //1- Blue //2- Grey getCartlineColor = function (status) { switch (status) { case 0: return '#00B2EE'; break; case 1: return '#00B2EE'; break; case 2: return '#999999'; break; default: return '#999999'; } } Array.prototype.contains = function (value) { for (var i = 0; i < mapData.length; i++) { if (mapData[i].BlockFaceId == value.BlockFaceId) return true; } return false; } Array.prototype.containsMeterId = function (value) { for (var i = 0; i < mapData.length; i++) { if (mapData[i].MeterId == value.MeterId) return true; } return false; } //Function to render blockface view for shopping cart rendershoppingcartBlockfaces = function () { // hideMapCanvasProgressIndicator(); resetMapOverylays(); var Partialblockcordinates = []; Unassignedblockface = []; Assignedblface = []; ListOfBlockFaceAreAssigned = []; // Apply the existing blockface edited information //to mapdata to avoid lose of data during refresh / getadata when mouse drag if (null != blockfaceMapData && blockfaceMapData.length > 0) { for (var i = 0; i < blockfaceMapData.length; i++) { for (var j = 0; j < mapData.length; j++) { if (blockfaceMapData[i].BlockFaceId == mapData[j].BlockFaceId && (blockfaceMapData[i].IsSelected != mapData[j].IsSelected || blockfaceMapData[i].IsEdited)) { mapData[j].IsSelected = blockfaceMapData[i].IsSelected; mapData[j].isOriginalStatusWasSelected = blockfaceMapData[i].isOriginalStatusWasSelected; mapData[j].IsEdited = blockfaceMapData[i].IsEdited; mapData[j].Meters = blockfaceMapData[i].Meters; break; } } if (mapData.contains(blockfaceMapData[i]) == false && blockfaceMapData[i].isOriginalStatusWasSelected != blockfaceMapData[i].IsSelected) { mapData.push(blockfaceMapData[i]); } } } // filter already edited meter information to an array alreadySelectedBlockFace with respective blockface by filtering with meterMapData array which holds the meter information // this code will have the edited meter information along with blockface information var alreadySelectedBlockFace = []; if (null != meterMapData && meterMapData.length > 0) { for (var i = 0; i < meterMapData.length; i++) { if ((meterMapData[i].isOriginalStatusWasSelected != meterMapData[i].IsSelected) || (!meterMapData[i].isOriginalStatusWasSelected && meterMapData[i].IsUnSelected)) { blockfaceObj = { BlockfaceId: meterMapData[i].BlockfaceId, isOriginalStatusWasSelected: meterMapData[i].isOriginalStatusWasSelected, IsSelected: meterMapData[i].IsSelected, CurrentState: meterMapData[i].IsSelected ? 0 : 2, MeterId: meterMapData[i].MeterId }; alreadySelectedBlockFace.push(blockfaceObj) } } } // Set the alreadySelectedBlockFace details with mapadata with respective blockfaceid for (var j = 0; j < mapData.length; j++) { if (null != alreadySelectedBlockFace && alreadySelectedBlockFace.length > 0) { var tempList = []; for (var ii = 0; ii < alreadySelectedBlockFace.length; ii++) { if (alreadySelectedBlockFace[ii].BlockfaceId == mapData[j].BlockFaceId) { for (var m = 0; m < mapData[j].Meters.length; m++) { if (alreadySelectedBlockFace[ii].MeterId == mapData[j].Meters[m].MeterId) { mapData[j].Meters[m].CurrentState = alreadySelectedBlockFace[ii].CurrentState; // break; } } } } for (var m = 0; m < mapData[j].Meters.length; m++) { tempList.push(mapData[j].Meters[m].CurrentState); } if (tempList.length > 0 && tempList.indexOf(1) >= 0) { mapData[j].CurrentState = 1; } else if (tempList.length > 0 && tempList.indexOf(0) >= 0 && tempList.indexOf(2) >= 0) { mapData[j].CurrentState = 1; } else if (tempList.length > 0 && tempList.indexOf(0) >= 0) { mapData[j].CurrentState = 0; } else if (tempList.length > 0 && tempList.indexOf(2) >= 0) { mapData[j].CurrentState = 2; } } else { if (mapData[j].IsSelected != mapData[j].isOriginalStatusWasSelected || mapData[j].IsEdited == true) { if (mapData[j].IsSelected) { mapData[j].CurrentState = 0; } else { mapData[j].CurrentState = 2; } } } if (mapData[j].CurrentState == 0) { mapData[j].IsSelected = true; mapData[j].IsUnSelected = false; if ((unselectedblckface.indexOf(mapData[j].BlockFaceId) == -1)) { Assignedblface.push(parseInt(mapData[j].BlockFaceId)); ListOfBlockFaceAreAssigned.push(parseInt(mapData[j].BlockFaceId)); } } else if (mapData[j].CurrentState == 1 || mapData[j].CurrentState == 2) { if (mapData[j].CurrentState == 2) { mapData[j].IsSelected = false; mapData[j].IsUnSelected = true; } } mapData[j].IsDottedBlockface = false; if (mapData[j].CurrentState == 1) { mapData[j].IsDottedBlockface = true; } } //assign back the modified information to blockface array blockfaceMapData = mapData; for (var i = 0; i < mapData.length; i++) { var blockfaceCoordinates = []; var UnassignedblockfaceCoordinates = []; for (var ii = 0; ii < mapData[i].Markers.length; ii++) { if (mapData[i].CurrentState == 1) { if (unselectedblckface.indexOf(mapData[i].BlockFaceId) == -1) { if (Assignedblface.indexOf(mapData[i].BlockFaceId) == -1) { if (selectedblfce.indexOf(mapData[i].BlockFaceId) == -1) { //partially assigned blockface represented by dashed lines UnassignedblockfaceCoordinates[UnassignedblockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } else { blockfaceCoordinates[blockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } } else { blockfaceCoordinates[blockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } } else { blockfaceCoordinates[blockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } } else { blockfaceCoordinates[blockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } if (mapData[i].Markers.length == 1) { var selected = false; if (MapAssetModel.length > 0) { var t = GetindexOf('blockfaceId', mapData[i].BlockFaceId, MapAssetModel); if (t != undefined && t != "") { selected = MapAssetModel[t].selected; } } var circleOptions = { map: map, strokeOpacity: .7, strokeWeight: 2, fillOpacity: .7, radius: 3, strokeColor: selected == true ? '#00B2EE' : getCartlineColor(mapData[i].CurrentState), fillColor: selected == true ? '#00B2EE' : getCartlineColor(mapData[i].CurrentState), center: new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long), blockfaceId: parseInt(mapData[i].BlockFaceId) }; var circle = new google.maps.Circle(circleOptions); mapBlockfaceCircles[mapBlockfaceCircles.length] = circle; google.maps.event.addListener(circle, 'click', function (event) { //check if color is grey and change back to blue and vice versa if (Assignedblface.indexOf(circle.blockfaceId) != -1) { var removeItem = Assignedblface.indexOf(circle.blockfaceId); Assignedblface.splice(removeItem, 1); if (selectedblfce.indexOf(circle.blockfaceId) != -1) { var removebFCE = selectedblfce.indexOf(circle.blockfaceId); selectedblfce.splice(removebFCE, 1); } if (unselectedblckface.indexOf(circle.blockfaceId) == -1) { unselectedblckface.push(circle.blockfaceId); } if (Unassignedblockface.indexOf(circle.blockfaceId) == -1) { Unassignedblockface.push(circle.blockfaceId); } var mCircleobj = GetindexOf('blockfaceId', circle.blockfaceId, mapBlockfaceCircles) if (mCircleobj != undefined) { mapBlockfaceCircles[mCircleobj].setOptions({ strokeColor: '#999999', fillColor: '#999999' }); } } else { var mCircleobj = GetindexOf('blockfaceId', circle.blockfaceId, mapBlockfaceCircles) if (mCircleobj != undefined) { mapBlockfaceCircles[mCircleobj].setOptions({ strokeColor: '#00B2EE', fillColor: '#00B2EE' }); } } if (mapSearchMarker) { mapSearchMarker.setMap(null); } var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); }); } } var lineSymbol = { path: 'M 0,-1 0,1', strokeOpacity: 0.9, strokeColor: '#00B2EE', scale: 4 }; line.push(new google.maps.Polyline({ path: UnassignedblockfaceCoordinates, strokeOpacity: 0, icons: [{ icon: lineSymbol, offset: '0', repeat: '20px' }], blockfaceId: mapData[i].BlockFaceId, map: map })); line[i].setMap(map); mapBlockfacesLines.push(new google.maps.Polyline({ path: blockfaceCoordinates, strokeColor: getCartlineColor(mapData[i].CurrentState), strokeOpacity: .7, strokeWeight: 5, blockfaceId: mapData[i].BlockFaceId })); mapBlockfacesLines[i].setMap(map); google.maps.event.addListener(mapBlockfacesLines[i], 'click', function (event) { CreatenewPolyLine(this, event); if (mapSearchMarker) { mapSearchMarker.setMap(null); } var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); }); google.maps.event.addListener(line[i], 'click', function (event) { CreatenewDashedToPolyLine(this, event); if (mapSearchMarker) { mapSearchMarker.setMap(null); } var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); }); } blockfaceMapData = mapData; }, //function to render meters view for shopping cart rendershoppingCartMeters = function () { // hideMapCanvasProgressIndicator(); resetMapOverylays(); var href = $(location).attr('href').split('/'); href = href[0] + '//' + href[2] + '/'; $('#navGroupBlockface, #navGroupPushpin').hide(); $('#navGroupMeter').show(); if (!flagSpaceToggleRender) { if (getMapFilterType() == MapFilterTab.Policy || getMapFilterType() == MapFilterTab.SpecialEventPolicy) { } else { createSpaceToggle(); } } listDoesnotbelongAssets = []; ListbelongsAssets = []; var data = getMapBounds(); data['mapData'] = mapData; data['blockfaceMapData'] = blockfaceMapData; $.ajax({ url: "/Map/MapMeterInfo", type: 'POST', data: data, async: false, cache: false, error: function (jqXHR, exception) { }, success: function (result) { if (result.Error === undefined) { mapData = result; } else { } } }); // Apply the existing meter edited information //to refreshed mapdata to avoid lose of existing data in the same session during refresh / getadata when mouse drag if (null != meterMapData && meterMapData.length > 0) { for (var i = 0; i < meterMapData.length; i++) { for (var j = 0; j < mapData.length; j++) { if (meterMapData[i].MeterId == mapData[j].MeterId && (meterMapData[i].isOriginalStatusWasSelected != meterMapData[i].IsSelected || (!meterMapData[i].isOriginalStatusWasSelected && meterMapData[i].IsUnSelected))) { mapData[j].IsSelected = meterMapData[i].IsSelected; mapData[j].isOriginalStatusWasSelected = meterMapData[i].isOriginalStatusWasSelected; mapData[j].IsUnSelected = meterMapData[i].IsUnSelected; if (meterMapData[i].IsEdited) { mapData[j].CurrentState = meterMapData[i].IsSelected ? 0 : 1; mapData[j].IsEdited = true; } break; } } if (mapData.containsMeterId(meterMapData[i]) == false && (meterMapData[i].isOriginalStatusWasSelected != meterMapData[i].IsSelected || (!meterMapData[i].isOriginalStatusWasSelected && meterMapData[i].IsUnSelected))) { mapData.push(meterMapData[i]); } } } // filter already edited meter information to an array alreadySelectedmeters with respective blockface by filtering with blockfaceMapData array which holds the meter information // this code will have the edited blockface information along with edited meter information in the same session var alreadySelectedBlockFace = []; if (null != blockfaceMapData && blockfaceMapData.length > 0) { for (var i = 0; i < blockfaceMapData.length; i++) { if ((blockfaceMapData[i].isOriginalStatusWasSelected != blockfaceMapData[i].IsSelected) || (!blockfaceMapData[i].isOriginalStatusWasSelected && blockfaceMapData[i].IsUnSelected)) { blockfaceObj = { BlockFaceId: blockfaceMapData[i].BlockFaceId, isOriginalStatusWasSelected: blockfaceMapData[i].isOriginalStatusWasSelected, IsSelected: blockfaceMapData[i].IsSelected, CurrentState: blockfaceMapData[i].CurrentState, IsUnSelected: blockfaceMapData[i].IsUnSelected }; alreadySelectedBlockFace.push(blockfaceObj) } } } // Set the alreadySelectedBlockFace details with mapadata with respective blockfaceid for (var i = 0; i < mapData.length; i++) { if (null != alreadySelectedBlockFace && alreadySelectedBlockFace.length > 0) { for (var ii = 0; ii < alreadySelectedBlockFace.length; ii++) { if (alreadySelectedBlockFace[ii].BlockFaceId == mapData[i].BlockfaceId && mapData[i].IsEdited == false) { mapData[i].isOriginalStatusWasSelected = alreadySelectedBlockFace[ii].isOriginalStatusWasSelected; mapData[i].IsSelected = alreadySelectedBlockFace[ii].IsSelected; mapData[i].CurrentState = alreadySelectedBlockFace[ii].CurrentState; mapData[i].IsUnSelected = alreadySelectedBlockFace[ii].IsUnSelected; break; } } } if (mapData[i].IsSelected) { mapData[i].Icon = href + '/Content/themes/images/iconIndicatorBlue.png'; } else { mapData[i].Icon = href + '/Content/themes/images/iconIndicatorGray.png'; } var image = new google.maps.MarkerImage(mapData[i].Icon) var myLatLng = new google.maps.LatLng(mapData[i].Marker.Lat, mapData[i].Marker.Long); var marker = new google.maps.Marker({ position: myLatLng, map: map, icon: image, title: mapData[i].MeterNumber, blockfaceId: mapData[i].BlockfaceId, IsSelected: false, IsUnSelected: false, }); if (image != null && mapData[i].Icon.indexOf('Blue') >= 0) { marker.IsSelected = true; marker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); } else { marker.setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); } marker.MarkerId = mapData[i].MeterId; mapMarkers.push(marker); google.maps.event.addListener(marker, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); for (var ii = 0; ii < mapMarkers.length; ++ii) { var pos = mapMarkers[ii].getPosition(); if (pos.lat() == event.latLng.lat() && pos.lng() == event.latLng.lng()) { selectedMarker = mapMarkers[ii]; var myEventLatLng = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng()); mapData[ii].IsEdited = true; if (meterMapData[ii].IsSelected == true) { selectedMarker.setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); selectedMarker.Position = myEventLatLng; mapData[ii].IsUnSelected = true; mapData[ii].IsSelected = false; mapData[ii].CurrentState = 2; } else { selectedMarker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); selectedMarker.Position = myEventLatLng; mapData[ii].IsUnSelected = false; mapData[ii].IsSelected = true; mapData[ii].CurrentState = 0; } //assign back the modified information to meterMapData array meterMapData = mapData; return; } } }); } //assign back the modified information to meterMapdata array meterMapData = mapData; }, //Enable/Disable Shopping Cart in case of "Parking Space" view and other cases. EnableDisableShoppingCart = function (isEnable) { if (isEnable) { $('#btnEditShoppingCart').attr('disabled', false); $('#btnResetShoppingCart').attr('disabled', false); } else { $('#btnEditShoppingCart').attr('disabled', true); $('#btnResetShoppingCart').attr('disabled', true); } }, //Restore map filters once "Save" shopping cart is done. RestoreMapFilters = function () { resetMapOverylays(); if (selectedFilterCart != null && selectedFilterCart != "" && selectedFilterCart != 'undefined') { var action = selectedFilterCart + '-action'; setMapRenderer(selectedFilterCart); setMapDataUrl($('#mapFilters').attr(action)); } } renderShoppingCartDisplay = function (data) { // hideMapCanvasProgressIndicator(); if (!data) { return; } mapData = data; switch (getMapRenderType()) { case MapRenderType.Blockface: rendershoppingcartBlockfaces(); flagSpaceToggleRender = false; flagMeterToggleRender = false; break; case MapRenderType.ListView: break; case MapRenderType.Meter: rendershoppingCartMeters(); flagSpaceToggleRender = false; flagMeterToggleRender = false; break; default: throw "Argument Exception: Invalid MapDisplayType"; } }, //load shopping Cart Map Data when Edit is clicked after selecting the group and group Type loadShoppingCartMap = function () { displayGettingMapData(); var data = getMapBounds(); var groupSearchobj = advancedSearch.SearchPanel.getSearchOptions(data, null); ddlGroupPrevVal = groupSearchobj.SearchType; ddlSubGroupPrevVal = groupSearchobj.SearchValue; var renderType = getMapRenderType(); data['renderType'] = renderType; $.ajax({ url: "/Map/GetShoppingCartMapData", data: data, cache: false, async: false, error: function (jqXHR, exception) { hideMapCanvasProgressIndicator(); return; }, success: function (result) { if (result.Error === undefined) { setTimeout(function () { hideMapCanvasProgressIndicator(); }, 200); renderShoppingCartDisplay(result); } else { hideMapCanvasProgressIndicator(); return; } } }); }, //click on reset will bring back last changes saved. $('#btnResetShoppingCart').live('click', function () { if ($('#btnEditShoppingCart').html() == 'Save') { displayGettingMapData(); ListbelongsAssets = []; listDoesnotbelongAssets = []; selectedAssets = []; unselectedAssets = []; Assignedblface = []; unselectedblckface = []; Unassignedblockface = []; selectedblfce = []; partialBlockface = []; MapAssetModel = []; dashedBlockface = []; partialBlockfaceUnselected = []; partialBlockfaceMeters = []; meterMapData = []; // Reset the saved meter information blockfaceMapData = []; // Reset the saved Blocface information loadShoppingCartMap(); } }); $('#btnAlreadyhasEntities').live('click', function () { hideModal('AlreadyhasEntities'); $('#btnResetShoppingCart').click(); }); $('#btnAlreadyhasEntitiesClose').live('click', function () { hideModal('AlreadyhasEntities'); $('#btnResetShoppingCart').click(); }); $('#btnBack').live('click', function () { if ($('#btnEditShoppingCart').html() == 'Save') { showModal('backToMainFilters'); $("#btnYesGroupDDChange").live("click", function () { $('#backToMainFilters').hide(); $('#btnEditShoppingCart').html('Edit'); $('#btnEditShoppingCart').removeClass('btn-success'); loadAssetGroups(); var SubGroup = $('#sub-group'); SubGroup.html(''); RestoreMapFilters(); RefreshSavedMapData(); loadMap(); $('#btnBack').hide(); $('#toggle_advanced').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); var searchPane = $('#search-pane'); if (searchPane.is(":visible")) { refreshMap = true; advancedSearch.SearchPanel.hidePane(searchPane); $('#view_map').click(); } //$('#toggle_advanced').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); }); $("#btnNoGroupDDChange").live("click", function () { $('#backToMainFilters').hide(); $('#sub-group').val(ddlSubGroupPrevVal); $('#btnBack').show(); }); } }); $('#btnEditShoppingCart').live('click', function () { $('#btnBack').show(); var subgroupvalue = $("#sub-group option:selected").text(); var groupvalue = $("#group option:selected").text(); var currentassetgroupId = $("#sub-group option:selected").val(); var currentAssetGroupTypeId = $("#group option:selected").val(); if (groupvalue != 'ALL' && subgroupvalue != 'ALL') { var renderType = getMapRenderType(); resetMapOverylays(); displayGettingMapData(); if ($('#btnEditShoppingCart').html() == 'Save') { //Validate for Unassign assets /indirect Mapping of assets bug 73655 var NewassetGroupMapperDetails = []; var RemoveassetGroupMapperDetails = []; var IsUnSelectedAssetIsAlreadyAvailble = 0; var assetGroups = { AssetGroupName: subgroupvalue, AssetGroupDescription: $('#AssetGroupDescription').val() , AssetGroupTypeId: currentAssetGroupTypeId, AssetGroupId: currentassetgroupId , AssignedAssetGroupMapper: NewassetGroupMapperDetails, RemovedAssetGroupMapper: RemoveassetGroupMapperDetails }; $.ajax({ type: 'POST', url: '/AssetGroups/ValidateGroupForAssets', data: JSON.stringify({ assetGroups: assetGroups }), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if (data.IsSuccessful == false) { if (data.Error.Message == 'hasAssets') { $('#AlreadyhasEntities-confirm').text("The empty container " + $('#ddlAssetType option:selected').text() + "(s) cannot be assigned "); $('#AlreadyhasEntities-confirm').css("font-weight", "normal"); showModal('AlreadyhasEntities'); //remove from removed list and // $("#assetgrp-revoke-assetgroup-button").trigger('click'); // RemoveassetGroupMapperDetails.splice(0, RemoveassetGroupMapperDetails.length); } if (data.Error.Message == 'hasMapping') { $('#AlreadyhasEntities-confirm').text("The selected asset(s) are not directly mapped to " + subgroupvalue + " and hence cannot be unassigned."); $('#AlreadyhasEntities-confirm').css("font-weight", "normal"); showModal('AlreadyhasEntities'); // $("#assetgrp-grant-assetgroup-button").trigger('click'); } return false; } else { $('#btnEditShoppingCart').attr('disabled', true); $('#btnEditShoppingCart').html('Saving...'); var data = getMapBounds(); var renderType = getMapRenderType(); advancedSearch.SearchPanel.getSearchOptions(data, null); data['renderType'] = renderType; if (renderType == 'Blockface') { if (selectedblfce.length != 0) { data['SelectedAssets'] = JSON.stringify(selectedblfce); } //else { // data['SelectedAssets'] = JSON.stringify(Assignedblface); //} if (unselectedblckface.length != 0) { data['NonSelectedAssets'] = JSON.stringify(unselectedblckface); } //else // { // data['NonSelectedAssets'] = JSON.stringify(Unassignedblockface); // } //remove partially assigned Blockface from nonselected list(if any) if (partialBlockface.length != 0) { for (var p = 0; p < partialBlockface.length; p++) { if (Unassignedblockface.indexOf(partialBlockface[p]) != -1) { var removeBcf = Unassignedblockface.indexOf(partialBlockface[p]); Unassignedblockface.splice(removeBcf, 1); } } } //only for dynamically created partial blockfaces if (dashedBlockface.length != 0) { var v = 0; for (var d = 0; d < dashedBlockface.length; d++) { for (var m = 0; m < MapAssetModel.length; m++) { if (dashedBlockface[d] == MapAssetModel[m].blockfaceId) { if (MapAssetModel[m].removed == false) { data["partialAssets[" + v + "].Key"] = JSON.stringify(MapAssetModel[m].MeterId); data["partialAssets[" + v + "].Value"] = JSON.stringify(MapAssetModel[m].selected); v++; } } } } } else { var v = 0; data["partialAssets[" + v + "].Key"] = JSON.stringify(0); data["partialAssets[" + v + "].Value"] = JSON.stringify(0); } } else { if (selectedAssets.length != 0) { data['SelectedAssets'] = JSON.stringify(selectedAssets); } //else { // data['SelectedAssets'] = JSON.stringify(ListbelongsAssets); //} if (unselectedAssets.length != 0) { data['NonSelectedAssets'] = JSON.stringify(unselectedAssets); } // added below code as in MVC5, if dictionary object is null/empty it gets assign to controller method var v = 0; data["partialAssets[" + v + "].Key"] = JSON.stringify(0); data["partialAssets[" + v + "].Value"] = JSON.stringify(0); } //Set the meter & blockface information as parameter to save metod data["lstSlimBlockfaceViewModel"] = blockfaceMapData; data["lstSlimMarkerViewModel"] = meterMapData; //if success $.ajax({ url: "/Map/SaveShoppingCartData", type: 'POST', data: data, cache: false, error: function (jqXHR, exception) { }, success: function (result) { if (result.Error === undefined) { hideMapCanvasProgressIndicator(); IsSaveCart = true; $('#advanced-search').click(); $('#btnEditShoppingCart').attr('disabled', false); $('#btnEditShoppingCart').removeClass('btn-success'); $('#btnEditShoppingCart').html('Edit'); RestoreMapFilters(); RefreshSavedMapData(); //Reset the meter & block face arrays loadMap(); } else { hideMapCanvasProgressIndicator(); return; $('#btnEditShoppingCart').removeClass('btn-success'); $('#btnEditShoppingCart').html('Edit'); } } }); } } }); } else { selectedFilterCart = mapRenderer.renderType; $('#btnEditShoppingCart').html('Save'); $('#btnEditShoppingCart').addClass('btn btn-success'); ListbelongsAssets = []; ListOfMetersAreAssigned = []; ListOfBlockFaceAreAssigned = []; listDoesnotbelongAssets = []; selectedAssets = []; unselectedAssets = []; Assignedblface = []; unselectedblckface = []; Unassignedblockface = []; selectedblfce = []; partialBlockface = []; MapAssetModel = []; dashedBlockface = []; partialBlockfaceUnselected = []; partialBlockfaceMeters = []; RefreshSavedMapData();//Reset the meter & block face arrays loadShoppingCartMap(); } } else { hideMapCanvasProgressIndicator(); showModal('ShoppingCartModal'); } //hideMapCanvasProgressIndicator(); }); /*END - Shopping Cart Asset groups*/ //Reset the meter & block face arrays RefreshSavedMapData = function () { blockfaceMapData = []; meterMapData = []; } $('.mapNavItem').click(function () { var checkbox = $(this).find('input:checkbox'); if (checkbox.attr('checked')) { checkbox.removeAttr('checked'); $(this).removeClass('active'); } else { checkbox.attr('checked', 'checked'); $(this).addClass('active'); } filterMap(this); return false; }); // Advanced Search $('#advanced-search').click(function () { loadAssetGroups(); $(this).toggleClass('white-border-bottom'); $('#toggle_advanced').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); var searchPane = $('#search-pane'); if (searchPane.is(":visible")) { refreshMap = true; advancedSearch.SearchPanel.hidePane(searchPane); $('#view_map').click(); } else { refreshMap = false; advancedSearch.SearchPanel.showPane(searchPane); } if ($('#btnEditShoppingCart').html() == 'Save') { $('#btnBack').show(); } else if ($('#btnEditShoppingCart').html() == 'Edit') { $('#btnBack').hide(); } }); /* Test Code */ $(function () { $('#SearchAddress').keypress(function (event) { if (event.keyCode == 13) { $('#MapSearch').click(); } }) $('#MapSearch').click(function () { }) }) $('#SearchSection').delegate('#MapSearch', 'click', function () { flagSpaceToggleRender = false; flagMeterToggleRender = false; $('#view_map').click(); var html = '
Loading...
Loading...
' $('#mapSearchResults').html(html); var searchTerms = jQuery.trim($('#SearchAddress').val()); var searchType = $('#search_other'); var pretext = searchType.attr('search-for-' + searchType.val()); if (searchTerms.length == 0 || searchTerms === pretext) { return false; } if (searchType.val() == "space" || searchType.val() == "Space Number") { selectSpacePaymentFiltersByDefault(); Search.searchMultiplespacesByNumber(searchTerms, MapSearchType.SpaceNumber); return false; } else if (searchType.val() == "blockface") { map.setZoom(zoomLevel); Search.searchByMultipleBlockface(searchTerms, MapSearchType.Blockface); return false; } else if (searchType.val() == "meter" || searchType.val() == "Meter Number") { selectMeterPaymentFilters(); Search.searchMultipleMetersByNumber(searchTerms, MapSearchType.MeterNumber); return false; } else if (searchType.val() == "permit" || searchType.val() == "Meter Permit") { Search.searchMeterPermitNumber(searchTerms, MapSearchType.MeterPermit); return false; } Search.doSearch(searchTerms, 0); return false; }); $('#search_other').change(function () { var searchText = 'search-for-' + this.value; var text = $(this).attr(searchText); $('#SearchAddress').attr('placeholder', text); }); $('.didYouMean').live('click', function () { if ($(this).attr('data-blockface') !== undefined && $(this).attr('data-blockface').length > 0) { Search.onClickDidYouMean($(this).attr('data-address'), $(this).attr('data-blockface')); return false; } Search.onClickDidYouMean($(this).attr('data-address'), 0); return false; }); //on map/list icon click $('#view_list').click(function () { if (getMapRenderType() === MapRenderType.ListView) { return; } $('#layoutCenter').hide(); $('#list_view').show(); $('#view_map').toggleClass('mapViewSelected').toggleClass('mapView'); $(this).toggleClass('listView').toggleClass('listViewSelected'); loadMap(); }); $('#view_map').click(function () { if (getMapRenderType() !== MapRenderType.ListView) { return; } $('#layoutCenter').show(); $('#list_view').hide(); $(this).toggleClass('mapViewSelected').toggleClass('mapView'); $('#view_list').toggleClass('listView').toggleClass('listViewSelected'); loadMap(); }); }, filterMap = function (selectedFilter) { // Ensure all other section's checkboxes are unchecked $('.mapNavGroup:not([renderer="' + $(selectedFilter).closest('.mapNavGroup').attr('renderer') + '"])').find('input:checkbox').removeAttr('checked'); $('.mapNavGroup:not([renderer="' + $(selectedFilter).closest('.mapNavGroup').attr('renderer') + '"])').find('.mapNavItem').removeClass('active'); $('.mapNavGroup').addClass('inactive'); $('.mapNavGroup:[renderer="' + $(selectedFilter).closest('.mapNavGroup').attr('renderer') + '"]').removeClass('inactive'); // Prepare for and load map var $navGroup = $(selectedFilter).closest('.mapNavGroup'); setMapDataUrl($navGroup.attr('action')); setMapRenderer($navGroup.attr('renderer')); if ($navGroup.attr('renderer').toLowerCase() == 'assetgrouptype') { IsMeterMapAssetGroupTypeEnabled = true; } else { IsMeterMapAssetGroupTypeEnabled = false; } loadMap(); }, // US # 59135 - Add City Search Filter GetCityName = function () { jQuery.support.cors = true; $.ajax({ url: urlGetCityName, headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With' }, beforeSend: function (xhr) { xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); }, headers: { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS', 'Access-Control-Allow-Headers': 'Content-Type, X-Requested-With' }, beforeSend: function (xhr) { xhr.setRequestHeader("Access-Control-Allow-Origin", "*"); }, success: function (result) { if (typeof CityName === "undefined" || CityName == "") { CityName = result; } }, error: function (jqXHR, exception) { if (typeof CityName === "undefined" || CityName == "") { if (window.location.href.indexOf('.dc') > -1) { CityName = 'WASHINGTON'; } else { CityName = 'LOS ANGELES'; } } } }); }, // US # 59135 - Add City Search Filter IsCityNameExist = function (cname) { var result = false; for (i = 0; i < CityName.length; i++) { if (CityName.toString().toUpperCase() == cname.toUpperCase()) { result = true; break; } else { result = false; } } return result; }, loadMapFilterNav = function () { if (getMapFilterType() == MapFilterTab.Meter) { $('#navGroupBlockface, #navGroupPushpin,#navGroupMeter').hide(); if (getMapRenderType() == MapRenderType.Blockface) { $('#navGroupBlockface').show(); $('.grayDot').removeClass('grayDot').addClass('grayLine'); } else if (getMapRenderType() == MapRenderType.ListView) { if (listPushpin == true) { //BUG 64484 : List view not showing correct filters //BUG 64569 if (getMapFilterType() == MapFilterTab.Meter) { $('#navGroupBlockface').hide(); if (showMeters) // meter view { $('#navGroupMeter').show(); $('#navGroupPushpin').hide(); } else { //space view $('#navGroupPushpin').show(); $('#navGroupMeter').hide(); } } else { $('#navGroupBlockface, #navGroupMeter').hide(); $('#navGroupPushpin').show(); } $('.grayLine').removeClass('grayLine').addClass('grayDot'); } else { $('#navGroupPushpin,#navGroupMeter').hide(); $('#navGroupBlockface').show(); $('.grayDot').removeClass('grayDot').addClass('grayLine'); } } else { if (getMapRenderType() != MapRenderType.Meter) { $('#navGroupBlockface, #navGroupMeter').hide(); $('#navGroupPushpin').show(); } $('.grayLine').removeClass('grayLine').addClass('grayDot'); } } }, //Function for US 64208 for side panel close CheckSidePanelIsOpen = function () { var CurrentMapRenderType = getMapRenderType(); var changedMapRenderType = false; var searchTerms = jQuery.trim($('#SearchAddress').val()); var searchType = $('#search_other'); var pretext = searchType.attr('search-for-' + searchType.val()); if (searchTerms.length == 0 || searchTerms === pretext) { //Check if search has been performed for meter,blockface,space if (PrevMapRenderType != '' && PrevMapRenderType != CurrentMapRenderType && CurrentMapRenderType == MapRenderType.Meter && true == showMeters) { changedMapRenderType = true; } if (PrevMapRenderType != '' && PrevMapRenderType != CurrentMapRenderType && CurrentMapRenderType == MapRenderType.Pushpin && !showMeters) { changedMapRenderType = true; } if (PrevMapRenderType != '' && PrevMapRenderType != CurrentMapRenderType && CurrentMapRenderType == MapRenderType.Blockface) { if (PrevMapRenderType.indexOf('GetMapDataAsJsonp') <= 0) // request is not from public site { changedMapRenderType = true; } } } else { //if meter is searched and then zoomed out if (PrevMapRenderType != '' && PrevMapRenderType != CurrentMapRenderType && CurrentMapRenderType == MapRenderType.Meter && true == showMeters) { if (searchType.val() == "blockface" || isBlockfaceOpen == true) { isBlockfaceOpen = false;//if blockface is searched and then zoomed out/zoomed in changedMapRenderType = true; } } if (PrevMapRenderType != '' && PrevMapRenderType != CurrentMapRenderType && CurrentMapRenderType == MapRenderType.Pushpin && !showMeters) { //if space is searched and then zoomed out/zoomed in if (searchType.val() == "blockface" || isBlockfaceOpen == true) { isBlockfaceOpen = false; changedMapRenderType = true; } } if (PrevMapRenderType != '' && PrevMapRenderType != CurrentMapRenderType && CurrentMapRenderType == MapRenderType.Blockface) { if (PrevMapRenderType.indexOf('GetMapDataAsJsonp') <= 0) // request is not from public site { changedMapRenderType = true; } } } PrevMapRenderType = CurrentMapRenderType; if (changedMapRenderType) { if (isPanelOpen) { ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); $('body').layout().close('east'); isPanelOpen = false; } } }, GetindexOf = function (propertyName, lookingForValue, array) { for (var i in array) { if (array[i][propertyName] == lookingForValue) { return i; } } return undefined; }, CheckMapMovedCart = function () { var RenderTypechanged = false; var CurrentRenderType = getMapRenderType(); if (PrevRenderType != '' && PrevRenderType != CurrentRenderType && CurrentRenderType == MapRenderType.Meter && true == showMeters) { RenderTypechanged = true; } if (PrevRenderType != '' && PrevRenderType != CurrentRenderType && CurrentRenderType == MapRenderType.Blockface) { RenderTypechanged = true; } PrevRenderType = CurrentRenderType; if (RenderTypechanged) { return true; } else { return false; } }, /* This function will be called each time the map loads to check if the Shopping Cart is active or not.Return false if not active and true if active */ CheckCartActive = function () { var searchPane = $('#search-pane'); if (!searchPane.is(":visible")) { return false; } if ($('#btnEditShoppingCart').html() == 'Save') { var Changedmap = CheckMapMovedCart(); var CurrentRenderType = getMapRenderType(); var mapobjectindex; var blockFaceId; loadShoppingCartMap(); displayGettingMapData(); var selectedCount = 0; var totalcount = 0; var unselectedCount = 0; if (CurrentRenderType == 'Blockface') { //Set the Icons to blockface with the respective colors if (!Changedmap) { if (selectedblfce.length > 0) { for (var s = 0; s < selectedblfce.length; s++) { var mlineobj = GetindexOf('blockfaceId', selectedblfce[s], mapBlockfacesLines); var mCircleobj = GetindexOf('blockfaceId', selectedblfce[s], mapBlockfaceCircles) mapBlockfacesLines[mlineobj].setOptions({ strokeColor: '#00B2EE' }); if (mCircleobj != undefined) { mapBlockfaceCircles[mCircleobj].setOptions({ strokeColor: '#00B2EE', fillColor: '#00B2EE' }); } } } if (unselectedblckface.length > 0) { for (var s = 0; s < unselectedblckface.length; s++) { var mlineobj = GetindexOf('blockfaceId', unselectedblckface[s], mapBlockfacesLines); var mCircleobj = GetindexOf('blockfaceId', unselectedblckface[s], mapBlockfaceCircles) mapBlockfacesLines[mlineobj].setOptions({ strokeColor: '#999999' }); if (mCircleobj != undefined) { mapBlockfaceCircles[mCircleobj].setOptions({ strokeColor: '#999999', fillColor: '#999999' }); } } } } } else { /*check if any blockfaces have been selected/unselected and render Meters accordingly Check the selected blockfaces, and make all meters as "Blue", Check unselected blockfaces and make all meters as Grey Check for dotted blockfaces then individually make meters as Blue/Grey from the "MapAssetmodel" array. Check for the "selected" attribute If it is true, make it blue else make it grey. */ var href = $(location).attr('href').split('/'); href = href[0] + '//' + href[2] + '/'; if (!Changedmap) { //Set the Icons to meter with the respective colors for (var i = 0; i < mapData.length; i++) { var image = new google.maps.MarkerImage(mapData[i].Icon); if (image != null && mapMarkers != null && mapMarkers.length > 0) { //This part is to render the markers in the map with icons //if meter does not belong to the group if (mapData[i].IsSelected == true) { mapMarkers[i].setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); } else //if meter belongs to the group { mapMarkers[i].setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); } } } if (dashedBlockface.length > 0) { for (var v = 0; v < dashedBlockface.length; v++) { for (var b = 0; b < unselectedAssets.length; b++) { mapassetobjind = GetindexOf('MeterId', unselectedAssets[b], MapAssetModel); MapAssetModel[mapassetobjind].selected = false; mapobjectindex = GetindexOf('MarkerId', unselectedAssets[b], mapMarkers); if (mapobjectindex != undefined) { mapMarkers[mapobjectindex].setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); } } for (var b = 0; b < selectedAssets.length; b++) { mapassetobjind = GetindexOf('MeterId', selectedAssets[b], MapAssetModel); MapAssetModel[mapassetobjind].selected = true; mapobjectindex = GetindexOf('MarkerId', selectedAssets[b], mapMarkers); if (mapobjectindex != undefined) { mapMarkers[mapobjectindex].setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); } } } } /*If no manipulations have been done, load from DB.*/ else { if (Changedmap) { // loadShoppingCartMap(); } else { if (selectedAssets.length > 0) { for (var s = 0; s < selectedAssets.length; s++) { mapobjectindex = GetindexOf('MarkerId', selectedAssets[s], mapMarkers); var mapssetm = GetindexOf('MeterId', selectedAssets[s], MapAssetModel); if (mapobjectindex != undefined) { mapMarkers[mapobjectindex].setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); if (ListbelongsAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) == -1) { ListbelongsAssets.push(mapMarkers[mapobjectindex].MarkerId); if (listDoesnotbelongAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) != -1) { var removeItem = listDoesnotbelongAssets.indexOf(mapMarkers[mapobjectindex].MarkerId); listDoesnotbelongAssets.splice(removeItem, 1); } if (unselectedAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) != -1) { var removeAsset = unselectedAssets.indexOf(mapMarkers[mapobjectindex].MarkerId); unselectedAssets.splice(removeAsset, 1); } MapAssetModel[mapssetm].selected = true; } } } } if (unselectedAssets.length > 0) { for (var s = 0; s < unselectedAssets.length; s++) { mapobjectindex = GetindexOf('MarkerId', unselectedAssets[s], mapMarkers); var mapssetm = GetindexOf('MeterId', unselectedAssets[s], MapAssetModel); if (mapobjectindex != undefined) { mapMarkers[mapobjectindex].setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); if (listDoesnotbelongAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) == -1) { if (ListbelongsAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) != -1) { var removeItem = ListbelongsAssets.indexOf(mapMarkers[mapobjectindex].MarkerId); ListbelongsAssets.splice(removeItem, 1); } if (selectedAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) != -1) { var removeasset = selectedAssets.indexOf(mapMarkers[mapobjectindex].MarkerId); selectedAssets.splice(removeasset, 1); } listDoesnotbelongAssets.push(mapMarkers[mapobjectindex].MarkerId); if (unselectedAssets.indexOf(mapMarkers[mapobjectindex].MarkerId) == -1) { unselectedAssets.push(mapMarkers[mapobjectindex].MarkerId); } MapAssetModel[mapssetm].selected = false; } } } } } } } } setTimeout(function () { hideMapCanvasProgressIndicator(); }, 200); return true; } else return false; }, CheckAdvancedFilterPanelOpen = function () { if (IsMeterMapAssetGroupTypeEnabled == true) { $('.BlockfaceNavItemHR').show(); $('.MeterNavItemHR').show(); $('.SpaceNavItemHR').show(); } else { $('.BlockfaceNavItemHR').hide(); $('.MeterNavItemHR').hide(); $('.SpaceNavItemHR').hide(); } IsOpenAdvancedFilter = false; var changedRenderType = false; var CurrentRenderType = getMapRenderType(); if (PrevRenderType != '' && PrevRenderType != CurrentRenderType && CurrentRenderType == MapRenderType.Meter && true == showMeters) { changedRenderType = true; selectMeterPaymentFilters(); } if (PrevRenderType != '' && PrevRenderType != CurrentRenderType && CurrentRenderType == MapRenderType.Pushpin && !showMeters) { changedRenderType = true; selectSpaceOccupancyFilters(); } if (PrevRenderType != '' && PrevRenderType != CurrentRenderType && CurrentRenderType == MapRenderType.Blockface) { if (mapDataUrl.indexOf('GetMapDataAsJsonp') <= 0) // request is not from public site { changedRenderType = true; selectBlockfaceOccupancyFilters(); } } PrevRenderType = CurrentRenderType; if (changedRenderType) { var searchPane = $('#search-pane'); if (searchPane.is(":visible")) { $('#advanced-search').click(); IsOpenAdvancedFilter = true; } } }, loadMap = function () { var IsCartActive = CheckCartActive(); if (!IsCartActive) { flagMeterToggleRender = false; flagSpaceToggleRender = false; CheckAdvancedFilterPanelOpen(); CheckSidePanelIsOpen(); $('#advanced-search').show(); loadMapFilterNav(); //SpecialEvent(); if (getMapFilterType() == MapFilterTab.Meter && mapRenderer == null) { return; } resetMapOverylays(); // Prevent map from zooming out father from highest level if (map.getZoom() < maxZoomOutLevel) { map.setZoom(maxZoomOutLevel); return; } var data = getMapBounds(); var swBoundsC = new google.maps.LatLng(data.SountWestLat, data.SountWestLong); var neBoundsC = new google.maps.LatLng(data.NorthEastLat, data.NorthEastLong); mapBoundsCity = new google.maps.LatLngBounds(swBoundsC, neBoundsC); if (data.SountWestLat == data.NorthEastLat && data.SountWestLong == data.NorthEastLong) { ////We are resizing this map here because whenever we are coming from policy management or any other module map was getting shrink. ////Following piece of code will resize the map to its original size. Bug:64508 - IE10 map not loading full. google.maps.event.trigger(map, 'resize') } if (IsMeterMapAssetGroupTypeEnabled) { data['AssetGroupType'] = mapOptions.AssetGroupType; } if (isHostedExternally) { data['SelectedDateTime'] = widgetOptions.SelectedDateTime; data['Duration'] = widgetOptions.Duration; data['MaxPay'] = widgetOptions.MaxPay; data['MinPay'] = widgetOptions.MinPay; $.ajax({ url: mapDataUrl, data: data, dataType: 'jsonp', jsonpCallback: 'loadMapJsonpCallback', beforeSend: function (jqXHR, settings) { gettingMapDataHandler.execute(); }, error: function (jqXHR, exception) { } }); } else { // Ensure that the map data url is set for the selected section and render type var selectedFilter = $('#map-filters div.mapNavGroupMeterContainer:visible').find('.mapNavGroup:not(.inactive)'); if (selectedFilter.attr('action') != undefined) { setMapDataUrl(selectedFilter.attr('action')); } var filterClasses, hasFilters; switch (getMapFilterType()) { case MapFilterTab.Meter: var renderType = getMapRenderType(); if (mapRenderer.renderType == 'undefined' || mapRenderer.renderType == null || mapRenderer.renderType === undefined) { setMapRenderer('Occupancy'); } data['renderType'] = renderType; if (renderType === MapRenderType.ListView) { var action = mapRenderer.renderType + '-action'; setMapDataUrl($('#mapFilters').attr(action)); if (map.getZoom() < showPushPinsZoomLevel) { renderType = MapRenderType.Blockface; } else { //BUG 64484 : List view not showing correct filters if (showMeters) { renderType = MapRenderType.Meter; } else { renderType = MapRenderType.Pushpin; } } } if (renderType == MapRenderType.Blockface) { if (IsMeterMapAssetGroupTypeEnabled == true) { $('#meterTab a').text("Meter"); var strCheckedItems = ''; $('#navGroupBlockface .mapNavGroup input:checkbox:checked').each(function (index, elem) { if (strCheckedItems === '') { strCheckedItems = $(elem).val(); } else { strCheckedItems += ',' + $(elem).val(); } }); data['strCheckedItemIds'] = strCheckedItems; } else { $('#meterTab a').text("Meter"); $('#navGroupBlockface .mapNavGroup input:checkbox:checked').each(function (index, elem) { data['CheckedItemIds[' + index + ']'] = $(elem).val(); }); } } else if (renderType == MapRenderType.Meter) { if (IsMeterMapAssetGroupTypeEnabled == true) { $('#meterTab a').text("Meter"); var strCheckedItems = ''; $('#navGroupMeter .mapNavGroup input:checkbox:checked').each(function (index, elem) { if (strCheckedItems === '') { if ($.isNumeric($(elem).val())) { strCheckedItems = $(elem).val(); } } else { strCheckedItems += ',' + $(elem).val(); } }); data['SelectedAssetGroupIds'] = strCheckedItems; } else { $('#meterTab a').text("Meter"); $('#navGroupMeter .mapNavGroup input:checkbox:checked').each(function (index, elem) { data['Checkeditemids[' + index + ']'] = $(elem).val(); }); } } else // space view { if (IsMeterMapAssetGroupTypeEnabled == true) { $('#meterTab a').text("Meter"); var strCheckedItems = ''; $('#navGroupPushpin .mapNavGroup input:checkbox:checked').each(function (index, elem) { if (strCheckedItems === '') { if ($.isNumeric($(elem).val())) { strCheckedItems = $(elem).val(); } } else { strCheckedItems += ',' + $(elem).val(); } }); data['SelectedAssetGroupIds'] = strCheckedItems; } else { $('#meterTab a').text("Space"); $('#navGroupPushpin .mapNavGroup input:checkbox:checked').each(function (index, elem) { data['CheckedItemIds[' + index + ']'] = $(elem).val(); }); } } // bug : 64566, 64567 ,64591 , 64593 if (MapRenderType.Meter != renderType) { filterClasses = '.mapNavGroup.' + renderType.toLowerCase(); hasFilters = $(filterClasses + ' input:checkbox:checked').length > 0; // Show other indicators if filters exist } else { filterClasses = '.mapNavGroup.pushpin' hasFilters = $(filterClasses + ' input:checkbox:checked').length > 0; } //close advance filter and load map to default after save is clicked on cart section if (IsSaveCart) { IsOpenAdvancedFilter = true; IsSaveCart = false; } else { IsSaveCart = false; } if (!IsOpenAdvancedFilter) { advancedSearch.SearchPanel.getSearchOptions(data, hasFilters); } $.ajax({ url: mapDataUrl, data: data, async: false, beforeSend: function (jqXHR, settings) { gettingMapDataHandler.execute(); }, error: function (jqXHR, exception) { }, success: function (result) { if (result.Error === undefined) { renderDisplay(result); } else { alert(result.Error); hideMapCanvasProgressIndicator(); return; } } }); break; case MapFilterTab.Policy: var form = $('.ajaxFormGetPolicyMap'); data.MaxStay = $('#MaxStaysList').find('option:selected').val(); data.PolicyType = $('#PoliciesList').find('option:selected').val(); data.MinRate = $('#policyMinPay').val(); data.MaxRate = $('#policyMaxPay').val(); var selectedDate = new Date($('#effectiveDate').datepicker('getDate')); data.EffectiveDate = selectedDate.getFullYear() + '-' + (selectedDate.getMonth() + 1) + '-' + selectedDate.getDate() + ' ' + selectedDate.getHours() + ':' + selectedDate.getMinutes() + ':' + selectedDate.getSeconds(); advancedSearch.SearchPanel.getSearchOptions(data, false); var url = (getMapRenderType() == MapRenderType.ListView ? form.attr('dataListViewAction') : form.attr('action')); $.ajax({ url: url, data: data, beforeSend: function (jqXHR, settings) { gettingMapDataHandler.execute(); }, error: function (jqXHR, exception) { }, success: function (result) { if (result.Error === undefined) { renderDisplay(result); } else { alert(result.Error); hideMapCanvasProgressIndicator(); return; } } }); break; case MapFilterTab.SpecialEventPolicy: data.PolicyType = "ALL" data.MinRate = 0; var selectedDate = new Date(); data.EffectiveDate = selectedDate.toJSON(); $.ajax({ url: $('#SpecialEventSection').attr('action'), data: data, beforeSend: function (jqXHR, settings) { gettingMapDataHandler.execute(); }, error: function (jqXHR, exception) { }, success: function (result) { if (result.Error === undefined) { renderDisplay(result); } else { alert(result.Error); hideMapCanvasProgressIndicator(); return; } } }); break; } } if ($('#hdnSelectedParkingSpace').length == 0) { if ($('#specialEventSummary').length) { var selectedDate = new Date().toDateString(); $('#specialEventSummary').load($('#specialEventSummary').attr('specialEvent-summary-action'), { selectedDate: selectedDate }); } } } }, loadBlockfaceSearchMap = function (searchTerm, blockfaceId) { $('#advanced-search').show(); var data = getMapBounds(); var resultset = null; var filterClasses, hasFilters; data['searchTerm'] = searchTerm; data['blockfaceId'] = blockfaceId; $.ajax({ url: '/OccupancyMap/GetMapDataForBlockfacesSearch', data: data, error: function (jqXHR, exception) { }, success: function (results) { mapData = results.viewModels; var myLatLng = new google.maps.LatLng(results.blockfaceMapModel.MapCenterLatitude, results.blockfaceMapModel.MapCenterLongitude); map.setCenter(myLatLng); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = myLatLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ map: map, position: myLatLng, title: MarkerToolTip }); blockfaceClickedHandler.execute(blockfaceId); } }); }, loadOffstreetParking = function () { var url = $('.garageToggle').attr('action'), data = getMapBounds(); $.ajax({ url: url, data: data, dataType: 'jsonp', jsonpCallback: 'loadOffstreetParkingJsonpCallback' }); }, loadCityOwnedOffstreetParking = function () { var url = $('#layoutCenter').attr('offstreet-parking-action'), data = getMapBounds(); $.getJSON(url, data, function (result) { displayOffstreetParking(result); }); }, loadPolicyMgmtMap = function () { loadMap(); }, getOffstreetParkingMarker = function (latLng) { for (var i = 0, len = mapOffstreetParkingMarkers.length; i < len; ++i) { var pos = mapOffstreetParkingMarkers[i].marker.getPosition(); if (pos.lat() == latLng.lat() && pos.lng() == latLng.lng()) { return mapOffstreetParkingMarkers[i]; } } return null; }, displayOffstreetParking = function (data) { for (var i = 0; i < data.length; i++) { var image = new google.maps.MarkerImage(data[i].Icon), myLatLng = new google.maps.LatLng(data[i].Latitude, data[i].Longitude); var marker = getOffstreetParkingMarker(myLatLng); if (marker == null) { marker = new google.maps.Marker({ position: myLatLng, map: map, icon: image, title: data[i].FacilityName }); mapOffstreetParkingMarkers.push({ marker: marker, data: data[i] }); } else { marker.data = data[i]; } google.maps.event.addListener(marker, 'click', function (event) { infoWindow.close(); var selOffstreetMarker = getOffstreetParkingMarker(event.latLng); if (selOffstreetMarker == null) { return; } var tmplName = isHostedExternally ? "public-offstreet-parking-template" : "private-offstreet-parking-template"; var source = $("#" + tmplName).html(); var template = Handlebars.compile(source); var html = template(selOffstreetMarker.data); infoWindow.setContent(html); infoWindow.open(map, selOffstreetMarker.marker); }); } }, removeOffstreetParking = function () { if (mapOffstreetParkingMarkers && mapOffstreetParkingMarkers.length > 0) { try { for (i in mapOffstreetParkingMarkers) { mapOffstreetParkingMarkers[i].marker.setMap(null); } } catch (e) { } mapOffstreetParkingMarkers.length = 0; } }, loadDynamicSigns = function () { var url = $('#dmsLayer').attr('dynamic-signs-action'), data = getMapBounds(); $.getJSON(url, data, function (result) { displayDynamicSigns(result); }); }, getDMSMarker = function (latLng) { for (var i = 0, len = mapDMSParkingMarkers.length; i < len; ++i) { var pos = mapDMSParkingMarkers[i].marker.getPosition(); if (pos.lat() == latLng.lat() && pos.lng() == latLng.lng()) { return mapDMSParkingMarkers[i]; } } return null; }, displayDynamicSigns = function (data) { for (var i = 0; i < data.length; i++) { var image = new google.maps.MarkerImage(data[i].Icon), myLatLng = new google.maps.LatLng(data[i].Latitude, data[i].Longitude); var marker = getDMSMarker(myLatLng); if (marker == null) { marker = new google.maps.Marker({ position: myLatLng, map: map, icon: image, deviceId: data[i].DeviceId }); mapDMSParkingMarkers.push({ marker: marker, data: data[i] }); google.maps.event.addListener(marker, 'click', function (event) { for (var ii = 0; ii < mapDMSParkingMarkers.length; ++ii) { var pos = mapDMSParkingMarkers[ii].marker.getPosition(); if (pos.lat() == event.latLng.lat() && pos.lng() == event.latLng.lng()) { selectedMarker = mapDMSParkingMarkers[ii].marker; ParkingManagement.DMSSign.loadDmsPanel(selectedMarker); return; } } }); } else { marker.data = data[i]; } } }, getMapBounds = function () { return { NorthEastLat: map.getBounds().getNorthEast().lat(), NorthEastLong: map.getBounds().getNorthEast().lng(), SountWestLat: map.getBounds().getSouthWest().lat(), SountWestLong: map.getBounds().getSouthWest().lng() }; }, resetMapOverylays = function () { // Remove all applicable if (mapMarkers && mapMarkers.length > 0) { try { for (i in mapMarkers) { mapMarkers[i].setMap(null); } } catch (e) { } mapMarkers.length = 0; } if (mapBlockfacesLines && mapBlockfacesLines.length > 0) { try { for (i in mapBlockfacesLines) { mapBlockfacesLines[i].setMap(null); } } catch (e) { } mapBlockfacesLines.length = 0; } if (mapBlockfaceCircles && mapBlockfaceCircles.length > 0) { try { for (i in mapBlockfaceCircles) { mapBlockfaceCircles[i].setMap(null); } } catch (e) { } mapBlockfaceCircles.length = 0; } if (line && line.length > 0) { try { for (i in line) { line[i].setMap(null); } } catch (e) { } line.length = 0; } if (0 < $('#divShowMeterDiv').length) { $('#divShowMeterDiv').remove(); } if (0 < $('#divShowSpaceDiv').length) { $('#divShowSpaceDiv').remove(); selectSpacePaymentFiltersByDefault(); } }, renderDisplay = function (data) { hideMapCanvasProgressIndicator(); if (!data) { return; } mapData = data; switch (getMapRenderType()) { case MapRenderType.Blockface: if (IsMeterMapAssetGroupTypeEnabled && data.length > 0 && data[0].SlimBlockface !== undefined) { renderBlockfaceByAssetGroup(); } else { renderBlockface(); } loadCityOwnedOffstreetParking(); loadDynamicSigns(); flagSpaceToggleRender = false; flagMeterToggleRender = false; break; case MapRenderType.Pushpin: if (IsMeterMapAssetGroupTypeEnabled && data.length>0 && data[0].SlimMeterMarker !== undefined) { renderPushPinByAssetGroup(); } else { renderPushPin(); } loadCityOwnedOffstreetParking(); loadDynamicSigns(); break; case MapRenderType.ListView: renderList(); flagSpaceToggleRender = false; flagMeterToggleRender = false; break; case MapRenderType.Meter: if (IsMeterMapAssetGroupTypeEnabled && data.length > 0 && data[0].SlimMeterMarker !== undefined) { renderMetersByAssetGroup(); } else { renderMeters(); } loadCityOwnedOffstreetParking(); loadDynamicSigns(); break; default: throw "Argument Exception: Invalid MapDisplayType"; } }, renderList = function () { var meterList = []; for (var i = 0; i < mapData.length; i++) { var meter = mapData[i]; if (getMapRenderType() == MapRenderType.Blockface) { for (var j = 0; j < meter.Markers.length; j++) { meterList.push(meter.Markers[j]); } } else { meterList.push(meter); } } var data = { noOfMeters: meterList.length, meters: meterList, isMeter: (getMapFilterType() == MapFilterTab.Meter) }; var newdiv = $("#list_view"); var source = $('#listview-template').html(); var template = Handlebars.compile(source); var content = template(data); newdiv.html(content); $('#meterlist tbody tr').click(function () { var selectedTr = $(this); $('#meterlist tr').removeAttr("id"); selectedTr.attr("id", "selectrow"); var parkingSpaceId = selectedTr.find('#parkingSpaceId').val(); var meterId = selectedTr.find('#meterId').val(); ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(parkingSpaceId, meterId); isPanelOpen = true; }); newdiv.fadeIn('fast'); var headers = $('#meterlist th'); headers.each(function () { var th = $(this), thIndex = th.index(), asc = true; th.click(function () { asc = !asc; headers.children().removeClass(); $(this).find('span').addClass(asc ? 'icon-chevron-up' : 'icon-chevron-down'); var $table = $('#meterlist'); var $rows = $('tbody tr', $table); $rows.sort(function (a, b) { var x = $('td:nth-child(' + (thIndex + 1) + ')', a); var y = $('td:nth-child(' + (thIndex + 1) + ')', b); return sortColumn(asc, x.text(), y.text()); }); $.each($rows, function (index, row) { $table.append(row); }); }); }); }, sortColumn = function (sortAscending, objA, objB) { if (objA === objB) return 0; var regexAlpha = /[^a-zA-Z]/g; var regexNumeric = /[^0-9]/g; var retVal; var alphaA = objA.replace(regexAlpha, ""); var alphaB = objB.replace(regexAlpha, ""); if (alphaA === alphaB) { var numericA = parseInt(objA.replace(regexNumeric, ""), 10); var numericB = parseInt(objB.replace(regexNumeric, ""), 10); retVal = numericA > numericB ? 1 : -1; } else { retVal = alphaA > alphaB ? 1 : -1; } if (!sortAscending) { retVal = retVal * -1; } return retVal; }, startScroll = function () { if (newPosList > currPosList) { currPosList = listDiv.scrollTop; listDiv.scrollTop = 600; newPosList = listDiv.scrollTop; startScroll(); } }, renderBlockface = function () { for (var i = 0; i < mapData.length; i++) { var blockfaceCoordinates = []; var DashedblockfaceCoordinates = []; if (null != blockfaceMapData && blockfaceMapData.length > 0) { for (var ii = 0; ii < blockfaceMapData.length; ii++) { if (blockfaceMapData[ii].BlockFaceId == mapData[i].BlockFaceId && blockfaceMapData[ii].IsSelected != mapData[i].IsSelected) { mapData[i].IsSelected = blockfaceMapData[ii].IsSelected; mapData[i].isOriginalStatusWasSelected = blockfaceMapData[ii].isOriginalStatusWasSelected; } } } else { mapData[i].isOriginalStatusWasSelected = mapData[i].IsSelected; } for (var ii = 0; ii < mapData[i].Markers.length; ii++) { /*check if blockface is Dotted or not. Draw partial Blockface Co-ordinates for IsdottedBlockface=true else draw normal line */ //US 72737 if (mapData[i].IsDottedBlockface != null && mapData[i].IsDottedBlockface == true && mapData[i].IsGroupFiltered != true) { DashedblockfaceCoordinates[DashedblockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } else { blockfaceCoordinates[blockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long); } if (mapData[i].Markers.length == 1) { var circleOptions = { map: map, strokeOpacity: .7, strokeWeight: 2, fillOpacity: .7, radius: 3, strokeColor: mapRenderer.getBlockfaceLineColor(mapData[i].CurrentState), fillColor: mapRenderer.getBlockfaceLineColor(mapData[i].CurrentState), center: new google.maps.LatLng(mapData[i].Markers[ii].Lat, mapData[i].Markers[ii].Long), blockfaceId: parseInt(mapData[i].BlockFaceId) }; var circle = new google.maps.Circle(circleOptions); mapBlockfaceCircles[mapBlockfaceCircles.length] = circle; google.maps.event.addListener(circle, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); blockfaceClickedHandler.execute(this.blockfaceId); }); } } var lineSymbol = { path: 'M 0,-1 0,1', strokeOpacity: 0.9, strokeColor: mapRenderer.getBlockfaceLineColor(mapData[i].CurrentState), scale: 4 }; line.push(new google.maps.Polyline({ path: DashedblockfaceCoordinates, strokeOpacity: 0, icons: [{ icon: lineSymbol, offset: '0', repeat: '20px' }], blockfaceId: mapData[i].BlockFaceId, map: map })); line[i].setMap(map); google.maps.event.addListener(line[i], 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); blockfaceClickedHandler.execute(this.blockfaceId); }); mapBlockfacesLines.push(new google.maps.Polyline({ path: blockfaceCoordinates, strokeColor: mapRenderer.getBlockfaceLineColor(mapData[i].CurrentState), strokeOpacity: .7, strokeWeight: 5, blockfaceId: mapData[i].BlockFaceId })); mapBlockfacesLines[i].setMap(map); google.maps.event.addListener(mapBlockfacesLines[i], 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); blockfaceClickedHandler.execute(this.blockfaceId); }); } }, renderBlockfaceByAssetGroup = function () { for (var i = 0; i < mapData.length; i++) { var blockfaceCoordinates = []; var DashedblockfaceCoordinates = []; if (null != blockfaceMapData && blockfaceMapData.length > 0) { for (var ii = 0; ii < blockfaceMapData.length; ii++) { if (blockfaceMapData[ii].BlockFaceId == mapData[i].SlimBlockface.BlockFaceId && blockfaceMapData[ii].IsSelected != mapData[i].SlimBlockface.IsSelected) { mapData[i].SlimBlockface.IsSelected = blockfaceMapData[ii].IsSelected; mapData[i].SlimBlockface.isOriginalStatusWasSelected = blockfaceMapData[ii].isOriginalStatusWasSelected; } } } else { mapData[i].SlimBlockface.isOriginalStatusWasSelected = mapData[i].SlimBlockface.IsSelected; } for (var ii = 0; ii < mapData[i].SlimBlockface.Markers.length; ii++) { /*check if blockface is Dotted or not. Draw partial Blockface Co-ordinates for IsdottedBlockface=true else draw normal line */ //US 72737 if (mapData[i].SlimBlockface.IsDottedBlockface != null && mapData[i].SlimBlockface.IsDottedBlockface == true && mapData[i].SlimBlockface.IsGroupFiltered != true) { DashedblockfaceCoordinates[DashedblockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].SlimBlockface.Markers[ii].Lat, mapData[i].SlimBlockface.Markers[ii].Long); } else { blockfaceCoordinates[blockfaceCoordinates.length] = new google.maps.LatLng(mapData[i].SlimBlockface.Markers[ii].Lat, mapData[i].SlimBlockface.Markers[ii].Long); } if (mapData[i].SlimBlockface.Markers.length == 1) { var circleOptions = { map: map, strokeOpacity: .7, strokeWeight: 2, fillOpacity: .7, radius: 3, strokeColor: (mapData[i].GroupColorCode === '') ? '#00000F' : mapData[i].GroupColorCode, fillColor: (mapData[i].GroupColorCode === '') ? '#00000F' : mapData[i].GroupColorCode, center: new google.maps.LatLng(mapData[i].SlimBlockface.Markers[ii].Lat, mapData[i].SlimBlockface.Markers[ii].Long), blockfaceId: parseInt(mapData[i].SlimBlockface.BlockFaceId) }; var circle = new google.maps.Circle(circleOptions); mapBlockfaceCircles[mapBlockfaceCircles.length] = circle; google.maps.event.addListener(circle, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); blockfaceClickedHandler.execute(this.blockfaceId); }); } } var lineSymbol = { path: 'M 0,-1 0,1', strokeOpacity: 0.9, strokeColor: (mapData[i].GroupColorCode === '') ? '#00000F' : mapData[i].GroupColorCode, scale: 4 }; line.push(new google.maps.Polyline({ path: DashedblockfaceCoordinates, strokeOpacity: 0, icons: [{ icon: lineSymbol, offset: '0', repeat: '20px' }], blockfaceId: mapData[i].SlimBlockface.BlockFaceId, map: map })); line[i].setMap(map); google.maps.event.addListener(line[i], 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); blockfaceClickedHandler.execute(this.blockfaceId); }); mapBlockfacesLines.push(new google.maps.Polyline({ path: blockfaceCoordinates, strokeColor: (mapData[i].GroupColorCode === '') ? '#00000F' : mapData[i].GroupColorCode, strokeOpacity: .7, strokeWeight: 5, blockfaceId: mapData[i].SlimBlockface.BlockFaceId })); mapBlockfacesLines[i].setMap(map); google.maps.event.addListener(mapBlockfacesLines[i], 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); blockfaceClickedHandler.execute(this.blockfaceId); }); } }, createMeterToggle = function () { // Create the DIV to hold the control var homeControlDiv = document.createElement('div'); // SOURCE - GOOGLE API // Set CSS styles for the DIV containing the control // Setting padding to 5 px will offset the control // from the edge of the map homeControlDiv.style.padding = '5px'; // Set CSS for the control border var controlUI = document.createElement('div'); controlUI.style.backgroundColor = 'white'; controlUI.style.borderStyle = 'solid'; controlUI.style.borderWidth = '1px'; controlUI.style.cursor = 'pointer'; controlUI.style.textAlign = 'center'; homeControlDiv.appendChild(controlUI); var tableCtrl = document.createElement('table'); controlUI.appendChild(tableCtrl); var tableRow = document.createElement('tr'); tableCtrl.appendChild(tableRow); var meterCell = document.createElement('td'); meterCell.style.fontFamily = 'Arial,sans-serif'; meterCell.style.fontSize = '12px'; meterCell.style.paddingLeft = '4px'; meterCell.style.paddingRight = '4px'; meterCell.innerHTML = 'Meters'; tableRow.appendChild(meterCell); var spaceCell = document.createElement('td'); spaceCell.style.fontFamily = 'Arial,sans-serif'; spaceCell.style.fontSize = '12px'; spaceCell.style.paddingLeft = '4px'; spaceCell.style.paddingRight = '4px'; spaceCell.style.backgroundColor = 'darkred'; spaceCell.style.color = 'white'; spaceCell.innerHTML = 'Spaces'; tableRow.appendChild(spaceCell); //update the index. homeControlDiv.index = 1; homeControlDiv.id = 'divShowMeterDiv'; //add the home control onto the map. map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv); flagMeterToggleRender = true; // Setup the click event listeners google.maps.event.addDomListener(meterCell, 'click', function () { //Hiding the side panel acc to US 63733 ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); if (isPanelOpen) { $('body').layout().close('east'); isPanelOpen = false; } // set default payment filter for meter view. //selectPaymentFilters(); //enable showing of meters. showMeters = true; //load map now. loadMap(); }); }, createSpaceToggle = function () { // Create the DIV to hold the control // $('.ui-layout-east').closeNow var homeControlDiv = document.createElement('div'); // SOURCE - GOOGLE API // Set CSS styles for the DIV containing the control // Setting padding to 5 px will offset the control // from the edge of the map homeControlDiv.style.padding = '5px'; // Set CSS for the control border var controlUI = document.createElement('div'); controlUI.style.backgroundColor = 'white'; controlUI.style.borderStyle = 'solid'; controlUI.style.borderWidth = '1px'; controlUI.style.cursor = 'pointer'; controlUI.style.textAlign = 'center'; controlUI.title = ''; homeControlDiv.appendChild(controlUI); var tableCtrl = document.createElement('table'); controlUI.appendChild(tableCtrl); var tableRow = document.createElement('tr'); tableCtrl.appendChild(tableRow); var meterCell = document.createElement('td'); meterCell.style.fontFamily = 'Arial,sans-serif'; meterCell.style.fontSize = '12px'; meterCell.style.paddingLeft = '4px'; meterCell.style.paddingRight = '4px'; meterCell.style.backgroundColor = 'darkred'; meterCell.style.color = 'white'; meterCell.innerHTML = 'Meters'; tableRow.appendChild(meterCell); var spaceCell = document.createElement('td'); spaceCell.style.fontFamily = 'Arial,sans-serif'; spaceCell.style.fontSize = '12px'; spaceCell.style.paddingLeft = '4px'; spaceCell.style.paddingRight = '4px'; spaceCell.innerHTML = 'Spaces'; tableRow.appendChild(spaceCell); //update the index. homeControlDiv.index = 1; homeControlDiv.id = 'divShowSpaceDiv'; //add the home control onto the map. map.controls[google.maps.ControlPosition.TOP_RIGHT].push(homeControlDiv); flagSpaceToggleRender = true; // Setup the click event listeners google.maps.event.addDomListener(spaceCell, 'click', function () { //Hiding the side panel acc to US 63733 ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); if (isPanelOpen) { $('body').layout().close('east'); isPanelOpen = false; } //set default occupancy filter for space view . //selectSpaceOccupancyFilters(); //enable showing of meters. showMeters = false; //load map now. loadMap(); }); }, renderPushPin = function () { var href = $(location).attr('href').split('/'); href = href[0] + '//' + href[2] + '/'; var SpecialEventParkingSpacesArray = []; var AllSpecialEventParkingSpacesArray = []; if (!flagMeterToggleRender) { if (getMapFilterType() == MapFilterTab.Policy || getMapFilterType() == MapFilterTab.SpecialEventPolicy) { //do nothing. } else { createMeterToggle(); } } for (var i = 0; i < mapData.length; i++) { var image = new google.maps.MarkerImage(mapData[i].Icon), myLatLng = new google.maps.LatLng(mapData[i].Lat, mapData[i].Long); var marker = new google.maps.Marker({ position: myLatLng, map: map, icon: image, title: mapData[i].Title }); if ($('#hdnSelectedParkingSpace').length > 0) { if ($('#hdnSelectedParkingSpace').val() != "") { SpecialEventParkingSpacesArray = $('#hdnSelectedParkingSpace').val().split(','); if ($('#hdnSelectedParkingSpaceLat').val() != "" && $('#hdnSelectedParkingSpaceLng').val() != "") { var selectedParkingSpacesLatLng = new google.maps.LatLng($('#hdnSelectedParkingSpaceLat').val(), $('#hdnSelectedParkingSpaceLng').val()); map.setCenter(selectedParkingSpacesLatLng); $('#hdnSelectedParkingSpaceLat').val(""); $('#hdnSelectedParkingSpaceLng').val(""); } if (SpecialEventParkingSpacesArray.length > 0) { for (var k = 0; k < SpecialEventParkingSpacesArray.length; k++) { if (SpecialEventParkingSpacesArray[k] != '' && SpecialEventParkingSpacesArray[k] != 'undefined' && SpecialEventParkingSpacesArray[k] != undefined) { if (mapData[i].ParkingSpaceId == SpecialEventParkingSpacesArray[k]) { marker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); marker.Position = myLatLng; if ($.inArray(mapData[i].ParkingSpaceId, mapSpecialEventParkingSpaces) === -1) { mapSpecialEventParkingSpaces.push(mapData[i].ParkingSpaceId); } break; } else { if ($.inArray(parseInt(SpecialEventParkingSpacesArray[k]), mapSpecialEventParkingSpaces) === -1) { mapSpecialEventParkingSpaces.push(parseInt(SpecialEventParkingSpacesArray[k])); } } } } } } } if ($('#hdnAllSelectedParkingSpace').length > 0) { if ($('#hdnAllSelectedParkingSpace').val() != "") { AllSpecialEventParkingSpacesArray = $('#hdnAllSelectedParkingSpace').val().split(','); if (AllSpecialEventParkingSpacesArray.length > 0) { for (var k = 0; k < AllSpecialEventParkingSpacesArray.length; k++) { if (mapData[i].ParkingSpaceId == AllSpecialEventParkingSpacesArray[k]) { marker.setIcon(href + '/Content/themes/images/iconIndicatorRed.png'); marker.setClickable(false); marker.Position = myLatLng; break; } } } } } if (mapSpecialEventParkingSpaces.length > 0) { for (var j = 0; j < mapSpecialEventParkingSpaces.length; j++) { if (mapData[i].ParkingSpaceId == mapSpecialEventParkingSpaces[j]) { marker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); marker.Position = myLatLng; break; } } } marker.MarkerId = mapData[i].Id; marker.ParkingSpaceId = mapData[i].ParkingSpaceId; mapMarkers.push(marker); google.maps.event.addListener(marker, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } //var MarkerToolTip = event.latLng.toString(); //MarkerToolTip = MarkerToolTip.substring(1, MarkerToolTip.length - 1); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); for (var ii = 0; ii < mapMarkers.length; ++ii) { var pos = mapMarkers[ii].getPosition(); if (pos.lat() == event.latLng.lat() && pos.lng() == event.latLng.lng()) { selectedMarker = mapMarkers[ii]; if ($("#addspecialEvent").length > 0) { var myEventLatLng = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng()); if (mapSpecialEventParkingSpaces.indexOf(selectedMarker.ParkingSpaceId) != -1) { var removeItem = mapSpecialEventParkingSpaces.indexOf(selectedMarker.ParkingSpaceId); mapSpecialEventParkingSpaces.splice(removeItem, 1); selectedMarker.setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); } else { selectedMarker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); selectedMarker.Position = myEventLatLng; if ($.inArray(selectedMarker.ParkingSpaceId, mapSpecialEventParkingSpaces) === -1) { mapSpecialEventParkingSpaces.push(selectedMarker.ParkingSpaceId); } } } else { ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadSidePanel(selectedMarker.ParkingSpaceId, selectedMarker.MarkerId); isPanelOpen = true; //US 63733 : set panel open to true when side panel is opened. //ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(selectedMarker.ParkingSpaceId, selectedMarker.MarkerId); } return; } } }); } }, renderPushPinByAssetGroup = function () { var href = $(location).attr('href').split('/'); href = href[0] + '//' + href[2] + '/'; var SpecialEventParkingSpacesArray = []; var AllSpecialEventParkingSpacesArray = []; if (!flagMeterToggleRender) { if (getMapFilterType() == MapFilterTab.Policy || getMapFilterType() == MapFilterTab.SpecialEventPolicy) { //do nothing. } else { createMeterToggle(); } } for (var i = 0; i < mapData.length; i++) { var myLatLng = new google.maps.LatLng(mapData[i].SlimParkingSpaceMarker.Lat, mapData[i].SlimParkingSpaceMarker.Long); var marker = new google.maps.Marker({ position: myLatLng, map: map, icon: { path: google.maps.SymbolPath.CIRCLE, scale: 6, strokeColor: '#FCF9F9', fillColor: (mapData[i].GroupColorCode === '') ? '#00000F' : mapData[i].GroupColorCode, fillOpacity: 2, strokeOpacity: 0.9, strokeWeight: 1, title: mapData[i].SlimParkingSpaceMarker.Title } }); if ($('#hdnSelectedParkingSpace').length > 0) { if ($('#hdnSelectedParkingSpace').val() != "") { SpecialEventParkingSpacesArray = $('#hdnSelectedParkingSpace').val().split(','); if ($('#hdnSelectedParkingSpaceLat').val() != "" && $('#hdnSelectedParkingSpaceLng').val() != "") { var selectedParkingSpacesLatLng = new google.maps.LatLng($('#hdnSelectedParkingSpaceLat').val(), $('#hdnSelectedParkingSpaceLng').val()); map.setCenter(selectedParkingSpacesLatLng); $('#hdnSelectedParkingSpaceLat').val(""); $('#hdnSelectedParkingSpaceLng').val(""); } if (SpecialEventParkingSpacesArray.length > 0) { for (var k = 0; k < SpecialEventParkingSpacesArray.length; k++) { if (SpecialEventParkingSpacesArray[k] != '' && SpecialEventParkingSpacesArray[k] != 'undefined' && SpecialEventParkingSpacesArray[k] != undefined) { if (mapData[i].SlimParkingSpaceMarker.ParkingSpaceId == SpecialEventParkingSpacesArray[k]) { marker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); marker.Position = myLatLng; if ($.inArray(mapData[i].SlimParkingSpaceMarker.ParkingSpaceId, mapSpecialEventParkingSpaces) === -1) { mapSpecialEventParkingSpaces.push(mapData[i].SlimParkingSpaceMarker.ParkingSpaceId); } break; } else { if ($.inArray(parseInt(SpecialEventParkingSpacesArray[k]), mapSpecialEventParkingSpaces) === -1) { mapSpecialEventParkingSpaces.push(parseInt(SpecialEventParkingSpacesArray[k])); } } } } } } } if ($('#hdnAllSelectedParkingSpace').length > 0) { if ($('#hdnAllSelectedParkingSpace').val() != "") { AllSpecialEventParkingSpacesArray = $('#hdnAllSelectedParkingSpace').val().split(','); if (AllSpecialEventParkingSpacesArray.length > 0) { for (var k = 0; k < AllSpecialEventParkingSpacesArray.length; k++) { if (mapData[i].SlimParkingSpaceMarker.ParkingSpaceId == AllSpecialEventParkingSpacesArray[k]) { marker.setIcon(href + '/Content/themes/images/iconIndicatorRed.png'); marker.setClickable(false); marker.Position = myLatLng; break; } } } } } if (mapSpecialEventParkingSpaces.length > 0) { for (var j = 0; j < mapSpecialEventParkingSpaces.length; j++) { if (mapData[i].SlimParkingSpaceMarker.ParkingSpaceId == mapSpecialEventParkingSpaces[j]) { marker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); marker.Position = myLatLng; break; } } } marker.MarkerId = mapData[i].SlimParkingSpaceMarker.Id; marker.ParkingSpaceId = mapData[i].SlimParkingSpaceMarker.ParkingSpaceId; mapMarkers.push(marker); google.maps.event.addListener(marker, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } //var MarkerToolTip = event.latLng.toString(); //MarkerToolTip = MarkerToolTip.substring(1, MarkerToolTip.length - 1); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); for (var ii = 0; ii < mapMarkers.length; ++ii) { var pos = mapMarkers[ii].getPosition(); if (pos.lat() == event.latLng.lat() && pos.lng() == event.latLng.lng()) { selectedMarker = mapMarkers[ii]; if ($("#addspecialEvent").length > 0) { var myEventLatLng = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng()); if (mapSpecialEventParkingSpaces.indexOf(selectedMarker.ParkingSpaceId) != -1) { var removeItem = mapSpecialEventParkingSpaces.indexOf(selectedMarker.ParkingSpaceId); mapSpecialEventParkingSpaces.splice(removeItem, 1); selectedMarker.setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); } else { selectedMarker.setIcon(href + '/Content/themes/images/iconIndicatorBlue.png'); selectedMarker.Position = myEventLatLng; if ($.inArray(selectedMarker.ParkingSpaceId, mapSpecialEventParkingSpaces) === -1) { mapSpecialEventParkingSpaces.push(selectedMarker.ParkingSpaceId); } } } else { ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadSidePanel(selectedMarker.ParkingSpaceId, selectedMarker.MarkerId); isPanelOpen = true; //US 63733 : set panel open to true when side panel is opened. //ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(selectedMarker.ParkingSpaceId, selectedMarker.MarkerId); } return; } } }); } }, renderMeters = function () { //$('#advanced-search').hide(); $('#navGroupBlockface, #navGroupPushpin').hide(); $('#navGroupMeter').show(); $('.grayLine').removeClass('grayLine').addClass('grayDot'); if (!flagSpaceToggleRender) { if (getMapFilterType() == MapFilterTab.Policy || getMapFilterType() == MapFilterTab.SpecialEventPolicy) { //do nothing. } else { createSpaceToggle(); } } for (var i = 0; i < mapData.length; i++) { mapData[i].isOriginalStatusWasSelected = mapData[i].selected; var image = new google.maps.MarkerImage(mapData[i].Icon), myLatLng = new google.maps.LatLng(mapData[i].Marker.Lat, mapData[i].Marker.Long); var marker = new google.maps.Marker({ position: myLatLng, map: map, icon: image, title: mapData[i].MeterNumber, IsSelected: false, IsUnSelected: false, IsEdited: false }); //var href = $(location).attr('href').split('/'); //href = href[0] + '//' + href[2] + '/'; //if (mapData[i].Icon.indexOf('Red') >= 0) { // marker.setIcon(href + '/Content/themes/images/iconIndicatorRed.png'); //} //else { // if (mapData[i].selected) { // marker.setIcon(href + '/Content/themes/images/iconIndicatorRed.png'); // } // else { // marker.setIcon(href + '/Content/themes/images/iconIndicatorGray.png'); // } //} marker.MarkerId = mapData[i].MeterId; mapMarkers.push(marker); google.maps.event.addListener(marker, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } //var MarkerToolTip = event.latLng.toString(); //MarkerToolTip = MarkerToolTip.substring(1, MarkerToolTip.length - 1); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); for (var ii = 0; ii < mapMarkers.length; ++ii) { var pos = mapMarkers[ii].getPosition(); if (pos.lat() == event.latLng.lat() && pos.lng() == event.latLng.lng()) { selectedMarker = mapMarkers[ii]; ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadSidePanel(-1, selectedMarker.MarkerId); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened //ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(-1, selectedMarker.MarkerId); return; } } }); } }, renderMetersByAssetGroup = function () { //$('#advanced-search').hide(); $('#navGroupBlockface, #navGroupPushpin').hide(); $('#navGroupMeter').show(); $('.grayLine').removeClass('grayLine').addClass('grayDot'); if (!flagSpaceToggleRender) { if (getMapFilterType() == MapFilterTab.Policy || getMapFilterType() == MapFilterTab.SpecialEventPolicy) { //do nothing. } else { createSpaceToggle(); } } for (var i = 0; i < mapData.length; i++) { mapData[i].SlimMeterMarker.isOriginalStatusWasSelected = mapData[i].SlimMeterMarker.selected; var image = new google.maps.MarkerImage(mapData[i].SlimMeterMarker.Icon), myLatLng = new google.maps.LatLng(mapData[i].SlimMeterMarker.Marker.Lat, mapData[i].SlimMeterMarker.Marker.Long); var marker = new google.maps.Marker({ position: myLatLng, map: map, icon: { path: google.maps.SymbolPath.CIRCLE, scale: 6, strokeColor: '#FCF9F9', fillColor: mapData[i].GroupColorCode, fillOpacity: 2, strokeOpacity: 0.9, strokeWeight: 1, }, scale: 10, title: mapData[i].SlimMeterMarker.MeterNumber, IsSelected: false, IsUnSelected: false, IsEdited: false }); marker.MarkerId = mapData[i].SlimMeterMarker.MeterId; mapMarkers.push(marker); google.maps.event.addListener(marker, 'click', function (event) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } //var MarkerToolTip = event.latLng.toString(); //MarkerToolTip = MarkerToolTip.substring(1, MarkerToolTip.length - 1); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = event.latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ position: event.latLng, map: map, title: MarkerToolTip }); for (var ii = 0; ii < mapMarkers.length; ++ii) { var pos = mapMarkers[ii].getPosition(); if (pos.lat() == event.latLng.lat() && pos.lng() == event.latLng.lng()) { selectedMarker = mapMarkers[ii]; ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadSidePanel(-1, selectedMarker.MarkerId); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened //ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(-1, selectedMarker.MarkerId); return; } } }); } }, loadAssetGroups = function () { $.ajax({ type: 'GET', url: '/AssetGroups/GetAssetGroupTypesList', dataType: 'json', cache: false, contentType: 'application/json', success: function (data) { $('#group').html(''); $('#group').append(''); $.each(data, function (i, c) { $('#group').append(''); }); $("#group option:first").attr('selected', 'selected'); }, error: function () { alert("Server Error!"); } }); }, loadAssetGroupDetails = function (groupId) { $.ajax({ type: 'POST', url: '/AssetGroups/GetAssetGroupsByType', //64518 - Controller method name was changed.hence changed here. data: JSON.stringify({ assetGroupTypeId: groupId }), dataType: 'html', contentType: 'application/json', success: function (resultData) { $('#sub-group').html(''); $('#sub-group').append(''); $.each($.parseJSON(resultData), function (idx, obj) { $('#sub-group').append(''); }); $("#sub-group option:first").attr('selected', 'selected'); }, error: function () { } }); }, getMapRenderType = function () { if (isHostedExternally) { return MapRenderType.Blockface; } if ($('#list_view').is(":visible")) { EnableDisableShoppingCart(false); if (map.getZoom() < showPushPinsZoomLevel) { listPushpin = false; } else { listPushpin = true; } return MapRenderType.ListView; } if (getMapFilterType() == MapFilterTab.Policy || getMapFilterType() == MapFilterTab.SpecialEventPolicy) { EnableDisableShoppingCart(false); return MapRenderType.Pushpin; } if (map.getZoom() < showPushPinsZoomLevel) { EnableDisableShoppingCart(true); return MapRenderType.Blockface; } //check if Meter View check box is selected on Meter Mgt. //if so, MapRenderType should be Meter. if (true == showMeters) { EnableDisableShoppingCart(true); return MapRenderType.Meter; } else if (!showMeters) { EnableDisableShoppingCart(false); return MapRenderType.Pushpin; } }, getMapFilterType = function () { var filterType = null; if ($('#mapFilters').find('#meterTab').hasClass('active')) { filterType = MapFilterTab.Meter; } if ($('#mapFilters').find('#policyTab').hasClass('active')) { filterType = MapFilterTab.Policy; } if ($('#mapFilters').find('#workTab').hasClass('active')) { filterType = MapFilterTab.Work; } if ($('#mapFilters').find('#assetTab').hasClass('active')) { filterType = MapFilterTab.Asset; } if ($('#mapFilters').find('#assetTab').hasClass('active')) { filterType = MapFilterTab.Asset; } if ($('#SpecialEventSection').hasClass('active')) { filterType = MapFilterTab.SpecialEventPolicy; } if ($('#ShoppingCartSection').hasClass('active')) { filterType = MapFilterTab.Meter; } return filterType; }, setMapDataUrl = function (url) { mapDataUrl = url; }, setMapRenderer = function (rendererName) { switch (rendererName) { case 'Occupancy': mapRenderer = Occupancy; break; case 'Payment': mapRenderer = Payment; break; case 'DerivedIndicators': mapRenderer = DerivedIndicators; break; case 'AdvancedSearch': mapRenderer = advancedSearch.SearchPanel; break; case 'Maintenance': mapRenderer = Maintenance; break; //Added new filter "MeterState" US 72737 case 'MeterState': mapRenderer = MeterState; break; // Added new filter "Priority" case 'PriorityMaintenance': mapRenderer = PriorityMaintenance; break; case 'SpecialEvent': mapRenderer = SpecialEvent; case 'AssetGroupType': mapRenderer = AssetGroupType; } }, loadOccupancyMap = function (obj) { widgetOptions = obj; setMapDataUrl(obj.Url); setMapRenderer('Occupancy'); isHostedExternally = true; loadMap(); }, loadSpecialEventMap = function (obj) { widgetOptions = obj; setMapDataUrl(obj.Url); setMapRenderer('SpecialEvent'); isHostedExternally = true; loadMap(); }, hideMapCanvasProgressIndicator = function () { if (isHostedExternally) { $("#mapCanvas").find("#mapCanvasProgress").remove(); $("input,button,a").removeAttr("disabled"); $("#slider").slider("enable"); } else { $("#layoutCenter").find("#mapCanvasProgress").remove(); $('#list_view').find("#mapCanvasProgress").remove(); $(".ui-layout-west").find("#mapFilter").remove(); } }, getSelectedMarker = function () { return selectedMarker; }, getMapSearchMarker = function () { return mapSearchMarker; }, setMapResizedExternally = function (val) { mapResizedExternally = val; }, advancedSearch = { SearchPanel: function () { var vendorSearch = function ($elem) { advancedSearchSection = $('#vendor-section'); advancedSearchSectionName = $elem.id; updateIndicator(); $('#vendor-legend').html($('#advanced-search-blockface').html()); $('#meter-type').val(0); $('#group').val(0); var subGroup = $('#sub-group'); subGroup.html(''); //$('#sub-group').html('').attr('disabled', 'disabled'); // data['GroupSearchType'] = 0; setSearchOptions(MapSearchType.Vendor, $elem.val(), null); }, groupSearch = function ($elem) { //alert('22'); advancedSearchSection = $('#group-section'); advancedSearchSectionName = $elem; updateIndicator(); $('#meter-type').val(0); $('#vendors').val(0); // showSubGroupOptions($elem); var subGroup = $('#sub-group'); //subGroup.attr('disabled', 'disabled'); subGroup.html(''); // data['GroupSearchType'] = 0; loadAssetGroupDetails($elem); subGroup.removeAttr('disabled'); setSearchOptions(MapSearchType.MeterType, $('#sub-group').val(), null); }, meterTypeSearch = function ($elem) { advancedSearchSection = $('#meter-section'); advancedSearchSectionName = $elem.id; updateIndicator(); $('#group').val(0); //$('#vendors').val(0); $('#sub-group').html('').attr('disabled', 'disabled'); // data['GroupSearchType'] = 0; setSearchOptions(MapSearchType.MeterType, $elem.val(), null); }; var setupPanel = function () { clearIndicators(); $('#group').change(function () { groupSearch($(this).val()); //if ($('#btnEditShoppingCart').html() == 'Save') { // groupChangeEvent = true; // subGroupChangeEvent = false; // addlgroupSearchVal = $(this).val(); // showModal('eventAssetGroupTypeChange'); // return false; //} //else { // groupChangeEvent = false; // subGroupChangeEvent = false; // groupSearch($(this).val()); // } }); $('#sub-group').change(function () { // var filterType = getFilterType($("#group option:selected").text().toLowerCase()); //setSearchOptions(filterType, $(this).val(), $('#group').val()); if ($('#btnEditShoppingCart').html() == 'Save') { subGroupChangeEvent = true; groupChangeEvent = false; showModal('eventAssetGroupTypeChange'); return false; } else { subGroupChangeEvent = false; groupChangeEvent = false; var filterType = getFilterType($("#group option:selected").text().toLowerCase()); setSearchOptions(filterType, $(this).val(), $('#group').val()); } }); $('#vendors').change(function () { vendorSearch($(this)); }); $('#meter-type').change(function () { meterTypeSearch($(this)); }); $("#btnYesGroupDDChange").live("click", function () { // if(groupChangeEvent) { // groupSearch($('#group').val()); //} //else $('#eventAssetGroupTypeChange').hide(); if (subGroupChangeEvent) { var filterType = getFilterType($('#group option:selected').text().toLowerCase()); setSearchOptions(filterType, $('#sub-group').val(), $('#group').val()); } }); $("#btnNoGroupDDChange").live("click", function () { $('#eventAssetGroupTypeChange').hide(); $('#sub-group').val(ddlSubGroupPrevVal); }); }, getFilterType = function (selectedValue) { switch (selectedValue) { case 'vendor': return MapSearchType.Vendor; case 'metertype': return MapSearchType.MeterType; case 'district': return MapSearchType.District; case 'zone': return MapSearchType.Zone; case 'maintenanceroute': return MapSearchType.Maintenance; case 'collectionroute': return MapSearchType.Collection; case 'enforcement': return MapSearchType.Enforcement; default: return selectedValue; } }, getSearchOptions = function (data, hasFilters) { var searchPane = $('#search-pane'); if (searchPane.is(":visible")) { data['SearchType'] = searchPane.attr("search-type"); data['SearchValue'] = searchPane.attr("search-value"); data['GroupSearchType'] = searchPane.attr("search-group"); if (!hasFilters) { setMapRenderer("AdvancedSearch"); setMapDataUrl(searchPane.attr('action')); } } else { var renderType = getMapRenderType(); var selectedFilter; if (renderType == MapRenderType.Blockface) { selectedFilter = $('#map-filters div.mapNavGroupContainer:visible').find('.mapNavGroup:not(.inactive)'); } else if (renderType == MapRenderType.Meter) { selectedFilter = $('#navGroupMeter').find('.mapNavGroup:not(.inactive)'); } else if (renderType == MapRenderType.Pushpin) { var filterTab = $('#mapFilters').find('.active'); //check the filter tab if its policy tab then do nothing. if (filterTab != undefined && filterTab.attr('id') != "policyTab") { selectedFilter = $('#navGroupPushpin').find('.mapNavGroup:not(.inactive)'); } } if (selectedFilter != undefined) { if (selectedFilter.attr('action') != undefined) { setMapDataUrl(selectedFilter.attr('action')); } } } return data; }, setSearchOptions = function (mapFilterType, searchTerms, searchgroup) { ListbelongsAssets = []; listDoesnotbelongAssets = []; selectedAssets = []; unselectedAssets = []; Assignedblface = []; unselectedblckface = []; Unassignedblockface = []; selectedblfce = []; partialBlockface = []; MapAssetModel = []; dashedBlockface = []; partialBlockfaceUnselected = []; partialBlockfaceMeters = []; var searchPane = $('#search-pane'); searchPane.attr('search-type', mapFilterType).attr('search-value', searchTerms).attr('search-group', searchgroup); if (!mapRenderer) { setMapRenderer("AdvancedSearch"); setMapDataUrl(searchPane.attr('action')); } if (refreshMap) { loadMap(); } refreshMap = true; }, showSubGroupOptions = function (group) { var subGroup = $('#sub-group'); var selectedValue = group; if (selectedValue != 0) { subGroup.removeAttr('disabled'); subGroup.html($('#sub-group').html()); } else { //subGroup.attr('disabled', 'disabled'); subGroup.html(''); loadAssetGroupDetails(group); } }, clearIndicators = function () { $('.active', '#status-filters').removeClass('active'); $('.legend').removeClass('grayDot').removeClass('grayLine').removeClass('blueDot'); }, updateIndicator = function () { if (!advancedSearchSection) { return; } clearIndicators(); var section = $('#' + advancedSearchSectionName + '-legend'); switch (getMapFilterType()) { case MapFilterTab.Meter: if (getMapRenderType() == MapRenderType.Blockface) { section.addClass('grayLine'); } else { section.addClass('grayDot'); } break; case MapFilterTab.Policy: section.addClass('blueDot'); } advancedSearchSection.addClass('active'); }, showPane = function (searchPane) { $(searchPane).fadeIn("slow", function () { var section = $('#search-pane').find('li.active'); if (section.html() == null) { // Nothing is selected by user, so set default selection vendorSearch($('#vendors')); } else { switch (section.attr('id')) { case 'group-section': groupSearch(section.find('#group')); break; case 'vendor-section': vendorSearch(section); break; case 'meter-section': meterTypeSearch(section); break; default: throw 'Argument exception: Invalid advanced filters section.'; } } }); }, hidePane = function (searchPane) { $(searchPane).fadeOut("fast", 0, function () { clearIndicators(); // bug 64571 $('#group-section').find('#group').val(0); $('#vendor-section').find('#vendors').val(0); $('#meter-section').find('#meter-type').val(0); var subGroup = $('#sub-group'); //subGroup.attr('disabled', 'disabled'); subGroup.html(''); RestoreMapFilters(); loadMap(); }); }, getBlockfaceLineColor = function () { return '#999999'; }; setupPanel(); return { updateIndicator: updateIndicator, showPane: showPane, hidePane: hidePane, getSearchOptions: getSearchOptions, getBlockfaceLineColor: getBlockfaceLineColor }; }() }, Search = { searchByAddress: function (addr) { var geocoder = new google.maps.Geocoder(); // Regex pattern for Latitude and Longitude. eg., -90 to 90 and -180 to 180 var latlngRegex = /^\s*\-?([0-8]?[0-9]|90)\.[0-9]{1,6}(\s*)?,\s*\-?((1?[0-7]?|[0-9]?)[0-9]|180)\.[0-9]{1,6}(\s*)?$/; // Validate the searching text either Latitude and Longitude or address if (latlngRegex.test(addr)) { // Split the Lat and long var arrayLatLong = addr.split(","); var latlng = new google.maps.LatLng(arrayLatLong[0].trim(), arrayLatLong[1].trim()); if (mapBounds.contains(latlng)) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } obj = { SearchedForAddress: $('#SearchAddress').val() }; source = '
Search Results
  • "{{SearchedForAddress}}"
'; template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); map.setCenter(latlng); mapSearchMarker = new google.maps.Marker({ map: map, position: latlng, title: latlng.toUrlValue().toString(), zoom: 18 }); } else { Search.displayNotFound($('#SearchAddress').val(), { display: 'Location' }); } } else { geocoder.geocode({ address: addr, bounds: mapBoundsCity }, function (results, status) { switch (status) { case google.maps.GeocoderStatus.OK: var obj; var source; var template; var resultCount = 0; var resultValue = 0; if (results.length > 1) { $('#advanced-search').hide(); source = '{{#if IsFirst}}
We Couldn\'t Find
"{{SearchedForAddress}}"
Did You Mean?
{{/if}}
{{Address}}
{{#if IsLast}}
{{/if}}'; template = Handlebars.compile(source); var html = ''; var firstMatch = false; for (var i = 0; i < results.length; ++i) { obj = { IsFirst: (i == 0), IsLast: (i == results.length - 1), Address: results[i].formatted_address }; if (obj.IsFirst) { obj.SearchedForAddress = addr; } var addThis = false; for (var j = 0; j < results[i].address_components.length; j++) { var aComp = results[i].address_components[j]; //var y = IsCityNameExist('WASHINGTON') //alert(y); if (2 == aComp.types.length) { //-- US # 59135 - Add City Serach Filter if (('locality' == aComp.types[0] && 'political' == aComp.types[1] && IsCityNameExist(aComp.long_name.toUpperCase()))) { addThis = true; resultCount = resultCount + 1; resultValue = i; if (i == 0) { firstMatch = true; } else if (i != 0 && obj.IsFirst == false && firstMatch == false) { obj.IsFirst = true; obj.SearchedForAddress = addr; firstMatch = true; } break; } } } if (addThis) { html += template(obj); } } if (resultCount == 1) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } obj = { SearchedForAddress: $('#SearchAddress').val() }; source = '
Search Results
  • "{{SearchedForAddress}}"
'; template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); map.setCenter(results[resultValue].geometry.location); var MarkerToolTip = results[resultValue].geometry.location.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ map: map, position: results[0].geometry.location, title: MarkerToolTip }); } else { didYouMeanHandler.execute(html); if (html == "") { Search.displayNotFound($('#SearchAddress').val(), { display: 'Location' }); break; } } } else { // Remove previous marker if exists for (var j = 0; j < results[0].address_components.length; j++) { var aComp = results[0].address_components[j]; if (2 == aComp.types.length) { // US # 59135 Add City Serach Filter if ('locality' == aComp.types[0] && 'political' == aComp.types[1] && IsCityNameExist(aComp.long_name.toUpperCase())) { addThis = true; break; } } } if (addThis) { if (mapSearchMarker) { mapSearchMarker.setMap(null); } obj = { SearchedForAddress: $('#SearchAddress').val() }; source = '
Search Results
  • "{{SearchedForAddress}}"
'; template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); map.setCenter(results[0].geometry.location); var MarkerToolTip = results[0].geometry.location.toUrlValue().toString(); //MarkerToolTip = MarkerToolTip.substring(1, MarkerToolTip.length - 1); mapSearchMarker = new google.maps.Marker({ map: map, position: results[0].geometry.location, title: MarkerToolTip }); } else { Search.displayNotFound($('#SearchAddress').val(), { display: 'Location' }); break; } } break; default: Search.displayNotFound($('#SearchAddress').val(), { display: 'Location' }); break; } }); } }, searchMeterPermitNumber: function (permitNumber, searchType) { var action = '/Map/SearchMeterPermitNumber'; var searchData = { permitNumber: permitNumber }; $.ajax({ type: 'POST', url: action, data: JSON.stringify(searchData), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if (0 != data.length) { var obj; var source; var template; if (data.length > 1) { $('#advanced-search').hide(); $('#mapSearchResults').show(); source = '{{#if IsFirst}}
We Couldn\'t Find
"{{SearchedForAddress}}"
Did You Mean?
{{/if}}
{{Address}}
{{#if IsLast}}
{{/if}}'; template = Handlebars.compile(source); var html = ''; for (var i = 0; i < data.length; ++i) { obj = { IsFirst: (i == 0), IsLast: (i == data.length - 1), Address: data[i].PermitNumber }; if (obj.IsFirst) { obj.SearchedForAddress = permitNumber; } html += template(obj); } didYouMeanHandler.execute(html); } else { // Remove previous marker if exists if (mapSearchMarker) { mapSearchMarker.setMap(null); } $('#IconSearchMapView').click(); //load east panel here. Search.displayMeterPermitResults(permitNumber, searchType, data[0]); } } else { Search.displayNotFound(permitNumber, searchType); } } }); }, searchMultipleMetersByNumber: function (addr, searchType) { var action = '/Map/SearchMultipleMetersByNumber'; var searchData = { searchValue: addr, searchType: searchType.value }; $.ajax({ type: 'POST', url: action, data: JSON.stringify(searchData), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if (data.length != 0) { var obj; var source; var template; if (data.length > 1) { $('#advanced-search').hide(); $('#mapSearchResults').show(); source = '{{#if IsFirst}}
We Couldn\'t Find
"{{SearchedForAddress}}"
Did You Mean?
{{/if}}
{{Address}}
{{#if IsLast}}
{{/if}}'; template = Handlebars.compile(source); var html = ''; for (var i = 0; i < data.length; ++i) { obj = { IsFirst: (i == 0), IsLast: (i == data.length - 1), Address: data[i].MeterNumber }; if (obj.IsFirst) { obj.SearchedForAddress = addr; } html += template(obj); } didYouMeanHandler.execute(html); } else { // Remove previous marker if exists $('#IconSearchMapView').click(); Search.displayResults(addr, searchType, data); } } else { Search.displayNotFound(addr, searchType); } } }); }, searchMultiplespacesByNumber: function (addr, searchType) { var action = '/Map/SearchMultiplespacesByNumber'; var searchData = { searchValue: addr, searchType: searchType.value }; $.ajax({ type: 'POST', url: action, data: JSON.stringify(searchData), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if (data.length != 0) { var obj; var source; var template; if (data.length > 1) { $('#advanced-search').hide(); $('#mapSearchResults').show(); source = '{{#if IsFirst}}
We Couldn\'t Find
"{{SearchedForAddress}}"
Did You Mean?
{{/if}}
{{Address}}
{{#if IsLast}}
{{/if}}'; template = Handlebars.compile(source); var html = ''; for (var i = 0; i < data.length; ++i) { obj = { IsFirst: (i == 0), IsLast: (i == data.length - 1), Address: data[i].ParkingSpaceNumber }; if (obj.IsFirst) { obj.SearchedForAddress = addr; } html += template(obj); } didYouMeanHandler.execute(html); } else { // Remove previous marker if exists $('#IconSearchMapView').click(); Search.displayResults(addr, searchType, data); } } else { Search.displayNotFound(addr, searchType); } } }); }, searchByMultipleBlockface: function (addr, searchType) { var searchData = { searchValue: addr, searchType: searchType.value }; $.ajax({ type: 'POST', url: urlMultipleBlockface, data: JSON.stringify(searchData), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { var dataObj = data.data; if (dataObj.length != 0) { var obj; var source; var template; if (dataObj.length >= 1 && data.ExactMatch == 'false') {//check if exact match is performed $('#advanced-search').hide(); $('#mapSearchResults').show(); source = '{{#if IsFirst}}
We Couldn\'t Find
"{{SearchedForAddress}}"
Did You Mean?
{{/if}}
{{Address}}
{{#if IsLast}}
{{/if}}'; template = Handlebars.compile(source); var html = ''; for (var i = 0; i < dataObj.length; ++i) { obj = { IsFirst: (i == 0), IsLast: (i == data.length - 1), Address: dataObj[i].BlockfaceName,//changed to display complete blockface Definition BlockfaceId: dataObj[i].BlockFaceId }; if (obj.IsFirst) { obj.SearchedForAddress = addr; } html += template(obj); } didYouMeanHandler.execute(html); } else { // Remove previous marker if exists if (mapSearchMarker) { mapSearchMarker.setMap(null); } Search.displayBlockfaceResults(addr, dataObj[0].BlockFaceId, searchType); } } else { Search.displayNotFound(addr, searchType); } } }); }, displayResults: function (searchTerms, searchType, data) { if (mapSearchMarker) { // Remove previous marker if exists mapSearchMarker.setMap(null); } var obj = { searchTerms: searchTerms, searchType: searchType.display }; var source = '
Search Results
  • {{searchType}}: {{searchTerms}}
'; var template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); var latLong = new google.maps.LatLng(data.lat, data.lng); // Bug - 61416, if co-ordinates having (0, 0), don't set Map as center if (data.lat != 0 && data.lng != 0) { map.setCenter(latLong); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = latLong.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ map: map, position: latLong, title: MarkerToolTip }); } if (searchType.value == MapSearchType.MeterNumber.value) { //set default meter view filter // selectPaymentFilters(); ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); // Bug - 61416, if co-ordinates having (0, 0), don't zoom the Map if (data.lat != 0 && data.lng != 0) { //$('body').layout().hide('east'); map.setZoom(showPushPinsZoomLevel); showMeters = true; } isPanelOpen = false; loadMap(); ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(-1, data.meterId); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened } else { var cDate = null; if (searchType.value == MapSearchType.CitationNumber.value) { ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); cDate = new Date(data.date); $("#selected_time").val(cDate); $("#datepicker").datepicker('setDate', cDate); } if (searchType.value == MapSearchType.SpaceNumber.value) { //set default space view filter selectSpaceOccupancyFilters(); // Bug - 61416, if co-ordinates having (0, 0), don't zoom the Map if (data.lat != 0 && data.lng != 0) { map.setZoom(showPushPinsZoomLevel); showMeters = false; } } isPanelOpen = false; loadMap(); ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(data.parkingSpaceId, data.meterId, cDate); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened } }, displayMeterPermitResults: function (permitNumber, searchType, data) { // Remove previous marker if exists if (mapSearchMarker) { mapSearchMarker.setMap(null); } var obj = { searchTerms: permitNumber, searchType: searchType.display }; var source = '
Search Results
  • {{searchType}}: {{searchTerms}}
'; var template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); if (0 != data.Meters.length) { //get the lat-lng for the first meter in the result. var latLng = new google.maps.LatLng(data.Meters[0].Latitude, data.Meters[0].Longitude); // if co-ordinates having (0, 0), don't set Map as center if (data.Meters[0].Latitude != 0 && data.Meters[0].Longitude != 0) { map.setCenter(latLng); //Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = latLng.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ map: map, position: latLng, title: MarkerToolTip }); } } //set default meter view filter ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); // Bug - 61416, if co-ordinates having (0, 0), don't zoom the Map if (data.Meters[0].Latitude != 0 && data.Meters[0].Longitude != 0) { map.setZoom(showPushPinsZoomLevel); showMeters = true; } isPanelOpen = false; loadMap(); ParkingManagement.Map.EastLayout.currentInstance.meterPermit.loadPanel(data); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened }, displayResults: function (searchTerms, searchType, data) { if (mapSearchMarker) { // Remove previous marker if exists mapSearchMarker.setMap(null); } var obj = { searchTerms: searchTerms, searchType: searchType.display }; var source = '
Search Results
  • {{searchType}}: {{searchTerms}}
'; var template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); var latLong = new google.maps.LatLng(data.lat, data.lng); // Bug - 61416, if co-ordinates having (0, 0), don't set Map as center if (data.lat != 0 && data.lng != 0) { map.setCenter(latLong); // Bug Fix # 59103 : Longitude Showing extra decimals var MarkerToolTip = latLong.toUrlValue().toString(); mapSearchMarker = new google.maps.Marker({ map: map, position: latLong, title: MarkerToolTip }); } if (searchType.value == MapSearchType.MeterNumber.value) { //set default meter view filter // selectPaymentFilters(); ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); // Bug - 61416, if co-ordinates having (0, 0), don't zoom the Map if (data.lat != 0 && data.lng != 0) { //$('body').layout().hide('east'); map.setZoom(showPushPinsZoomLevel); showMeters = true; } isPanelOpen = false; loadMap(); ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(-1, data.meterId); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened } else { var cDate = null; if (searchType.value == MapSearchType.CitationNumber.value) { ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); cDate = new Date(data.date); $("#selected_time").val(cDate); $("#datepicker").datepicker('setDate', cDate); } if (searchType.value == MapSearchType.SpaceNumber.value) { //set default space view filter selectSpaceOccupancyFilters(); // Bug - 61416, if co-ordinates having (0, 0), don't zoom the Map if (data.lat != 0 && data.lng != 0) { map.setZoom(showPushPinsZoomLevel); showMeters = false; } } isPanelOpen = false; loadMap(); ParkingManagement.Map.EastLayout.currentInstance.meterInformation.loadPanel(data.parkingSpaceId, data.meterId, cDate); isPanelOpen = true; //US 63733 : set panel open to true when Side panel is opened } }, displayBlockfaceResults: function (searchedTerm, data, searchType) { if (mapSearchMarker) { // Remove previous marker if exists mapSearchMarker.setMap(null); } var obj = { searchTerms: data, searchType: searchType.display }; var obj = { SearchedForAddress: $('#SearchAddress').val() }; source = '
Search Results
  • "{{SearchedForAddress}}"
'; template = Handlebars.compile(source); addressFoundHandler.execute(template(obj)); $('#map-filters').show(); $('#mapFilters').show(); loadBlockfaceSearchMap(searchedTerm, data); }, displayNotFound: function (searchTerms, searchType) { $('#mapSearchResults').show(); var obj = { searchTerms: searchTerms, searchType: searchType.display }; var source = '
Search Results
  • {{searchType}}: {{searchTerms}}
  • No results were found!
'; var template = Handlebars.compile(source); addressNotFoundHandler.execute(template(obj)); }, searchOther: function (searchValue, searchType) { var action = $('#search_other').attr('action'); var searchData = { searchValue: searchValue, searchType: searchType.value }; $.ajax({ type: 'POST', url: action, data: JSON.stringify(searchData), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if (data) { $('#IconSearchMapView').click(); Search.displayResults(searchValue, searchType, data); } else { Search.displayNotFound(searchValue, searchType); } } }); }, doSearch: function (searchTerms, blockfaceId) { $('#mapSearchResults').show(); var searchType = $('#search_other').val(); var action = $('#search_other').attr('action'); switch (searchType) { case undefined: case 'addr': if (CityName === undefined || CityName == "") { if ((typeof PortalWidget !== "undefined")) { urlGetCityName = PortalWidget.UrlGetCityName; } CityName = GetCityName(); if ((CityName === undefined || CityName == "") && (typeof PortalWidget !== "undefined")) { CityName = PortalWidget.CityName; } } Search.searchByAddress(searchTerms); break; case 'space': Search.searchOther(searchTerms, MapSearchType.SpaceNumber); break; case 'blockface': Search.displayBlockfaceResults(searchTerms, blockfaceId, MapSearchType.Blockface); break; case 'citation': Search.searchOther(searchTerms, MapSearchType.CitationNumber); break; case 'meter': Search.searchOther(searchTerms, MapSearchType.MeterNumber); break; case 'permit': Search.searchMeterPermitNumber(searchTerms, MapSearchType.MeterPermit); break; } }, onClickDidYouMean: function (addr, blockId) { $('#SearchAddress').val(addr); if (blockId !== undefined && blockId != 0) { Search.doSearch(addr, blockId); } else { Search.doSearch(addr, 0); } } }, addSearchHandler = function (handler) { didYouMeanHandler.addHandler(handler); }, addAddressFoundHandler = function (handler) { addressFoundHandler.addHandler(handler); }, addAddressNotFoundHandler = function (handler) { addressNotFoundHandler.addHandler(handler); }, addMapLoadedHandler = function (handler) { mapLoadedHandler.addHandler(handler); }, addGettingMapDataHandler = function (handler) { gettingMapDataHandler.addHandler(handler); }, addBlockfaceClickedHandler = function (handler) { blockfaceClickedHandler.addHandler(handler); }, displayDidYouMeanResult = function (html) { $('#mapSearchResults').html(html); $('#map-filters').hide(); $('#mapFilters').hide(); $('body').layout().hide('east'); }, displayAddressFoundResult = function (html) { $('#mapSearchResults').html(html); $('#map-filters').show(); $('#mapFilters').show(); }, displayAddressNotFoundResult = function (html) { $('#mapSearchResults').html(html); $('#map-filters').show(); $('#mapFilters').show(); }, displayGettingMapData = function () { var isListView = getMapRenderType() === MapRenderType.ListView; var overlay = isListView ? $('#list_view') : $('#layoutCenter'); var html = '
'; html += ''; html += '
'; if (isListView) { overlay.prepend(html); } else { overlay.append(html); } var layoutWestHeight = ($(".ui-layout-west").height() >= $('#map-filters').height() ? ($('.ui-layout-west').height() + 20) : ($('#map-filters').height() + 40)); html = '
'; $(".ui-layout-west").append(html); }, selectOccupancyFilters = function () { var section = $('#occupancySection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); //var searchPane = $('#search-pane'); //if (searchPane.is(":visible")) { // $('#advanced-search').click(); //} $('#DIndicatorCheckList').hide(); $('#MaintenancePriorityCheckList').hide(); $('#MeterStateCheckList').hide(); $('#PaymentCheckList').hide(); $('#MaintenanceStateCheckList').hide(); $('#SpaceDIndicatorCheckList').hide(); $('#SpaceOccupancyCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_O').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); loadMap(); }, selectderivedIndicatorsFilters = function () { var section = $('#derivedIndicatorsSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); $('#OccupancyCheckList').hide(); $('#MaintenancePriorityCheckList').hide(); $('#MeterStateCheckList').hide(); $('#PaymentCheckList').hide(); $('#MaintenanceStateCheckList').hide(); $('#SpaceDIndicatorCheckList').hide(); $('#SpaceOccupancyCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_d').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); loadMap(); }, selectMaintenanceFilters = function () { var section = $('#MaintenanceSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); $('#OccupancyCheckList').hide(); $('#MaintenancePriorityCheckList').hide(); $('#DIndicatorCheckList').hide(); $('#PaymentCheckList').hide(); $('#MaintenanceStateCheckList').hide(); $('#SpaceDIndicatorCheckList').hide(); $('#SpaceOccupancyCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_MS').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); loadMap(); }, //User Story 67407 : Activating payment filter as default in meter managemnt selectPaymentFilters = function () { var paymentFilterCheck = $('#paymentSection').hasClass('inactive'); var derivedIndicatorsFilterCheck = $('#derivedIndicatorsSection').hasClass('inactive'); var occupancySectionFilterCheck = $('#occupancySection').hasClass('inactive'); var MaintenanceFilterCheck = $('#MaintenanceSection').hasClass('inactive'); var AssetGroupTypeFilterCheck = $('#assetGroupTypeSection').hasClass('inactive'); if (paymentFilterCheck == false) { var section = $('#paymentSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); $('#DIndicatorCheckList').hide(); $('#MaintenancePriorityCheckList').hide(); $('#MeterStateCheckList').hide(); $('#OccupancyCheckList').hide(); $('#MaintenanceStateCheckList').hide(); $('#SpaceDIndicatorCheckList').hide(); $('#SpaceOccupancyCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); loadMap(); $('#toggle_P').toggleClass('icon-chevron-right').toggleClass('icon-chevron-down'); } else if (occupancySectionFilterCheck == false) { selectOccupancyFilters(); } else if (derivedIndicatorsFilterCheck == false) { selectderivedIndicatorsFilters(); } else if (MaintenanceFilterCheck == false) { selectMaintenanceFilters(); } else if (AssetGroupTypeFilterCheck == false) { selectAssetGroupTypeSectionFilters(); } if (IsMeterMapAssetGroupTypeEnabled == false) { $('.BlockfaceNavItemHR').hide(); //$('#BlockfaceNavItem').hide(); } else { $('.BlockfaceNavItemHR').show();} }, selectSpaceOccupancyFilters = function () { IsMeterMapAssetGroupTypeEnabled = false; var paymentFilterCheck = parseInt($('#spacePaymentSection').attr('order')); var derivedIndicatorsFilterCheck = parseInt($('#spaceDerivedIndicatorsSection').attr('order')); var occupancySectionFilterCheck = parseInt($('#spaceOccupancySection').attr('order')); var AssetGroupTypeFilterCheck = paymentFilterCheck + derivedIndicatorsFilterCheck + occupancySectionFilterCheck; var min = Math.min(paymentFilterCheck, derivedIndicatorsFilterCheck, occupancySectionFilterCheck, AssetGroupTypeFilterCheck); if (min == paymentFilterCheck) { setMapDataUrl($('#navGroupPushpin').children().siblings("#spacePaymentSection").attr('action')); setMapRenderer($('#navGroupPushpin').children().siblings("#spacePaymentSection").attr('rendererName')); //User Story 67407 : Activating payment filter as default $('#navGroupPushpin').children().siblings("#spacePaymentSection").removeClass('inactive'); $('#navGroupPushpin').children().siblings("#spacePaymentSection").find('input:checkbox').prop("checked", true).parent().addClass('active'); //Deactivate Occupancy section $('#navGroupPushpin').children().siblings("#spaceOccupancySection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#SpacePaymentCheckList').show(); $('#SpaceOccupancyCheckList').hide(); $('#AssetGroupTypeSpaceCheckList').hide(); $('#toggle_Psm').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_Os').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_ds').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == occupancySectionFilterCheck) { setMapDataUrl($('#navGroupPushpin').children().siblings("#spaceOccupancySection").attr('action')); setMapRenderer($('#navGroupPushpin').children().siblings("#spaceOccupancySection").attr('rendererName')); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").removeClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", true).parent().addClass('active'); //Deactivate Payment section $('#navGroupPushpin').children().siblings("#spacePaymentSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spacePaymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spacePaymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#SpaceOccupancyCheckList').show(); $('#SpacePaymentCheckList').hide(); $('#SpaceDIndicatorCheckList').hide(); $('#AssetGroupTypeSpaceCheckList').hide(); $('#toggle_Os').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_ds').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_Psm').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == derivedIndicatorsFilterCheck) { setMapDataUrl($('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").attr('action')); setMapRenderer($('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").attr('rendererName')); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").removeClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", true).parent().addClass('active'); //Deactivate Payment section $('#navGroupPushpin').children().siblings("#spacePaymentSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spacePaymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spacePaymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupPushpin').children().siblings("#spaceOccupancySection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#SpaceDIndicatorCheckList').show(); $('#SpaceOccupancyCheckList').hide(); $('#SpacePaymentCheckList').hide(); $('#AssetGroupTypeSpaceCheckList').hide(); $('#toggle_ds').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_Os').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_Psm').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } }, //Method triggers when Zoom out from Meterview to Blockfaceview selectBlockfaceOccupancyFilters = function () { IsMeterMapAssetGroupTypeEnabled = false; var maxValue = 100; var paymentOrderCheck = parseInt($('#paymentSection').attr('order')); var derivedIndicatorsOrderCheck = parseInt($('#derivedIndicatorsSection').attr('order')); var occupancySectionOrderCheck = parseInt($('#occupancySection').attr('order')); var MaintenanceOrderCheck = parseInt($('#MaintenanceSection').attr('order')); if (isNaN(paymentOrderCheck)) { paymentOrderCheck = maxValue; } if (isNaN(derivedIndicatorsOrderCheck)) { derivedIndicatorsOrderCheck = maxValue; } if (isNaN(occupancySectionOrderCheck)) { occupancySectionOrderCheck = maxValue; } if (isNaN(MaintenanceOrderCheck)) { MaintenanceOrderCheck = maxValue; } var AssetGroupTypeOrderCheck = paymentOrderCheck + derivedIndicatorsOrderCheck + occupancySectionOrderCheck + MaintenanceOrderCheck; var min = Math.min(paymentOrderCheck, derivedIndicatorsOrderCheck, occupancySectionOrderCheck, MaintenanceOrderCheck, AssetGroupTypeOrderCheck); if (min == paymentOrderCheck) { var section = $('#paymentSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); //Deactivate Maintenance section $('#navGroupBlockface').children().siblings("#MaintenanceSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Occupancy section $('#navGroupBlockface').children().siblings("#occupancySection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#DIndicatorCheckList').hide(); $('#MeterStateCheckList').hide(); $('#OccupancyCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_P').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_O').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_d').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGT').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == occupancySectionOrderCheck) { var section = $('#occupancySection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); //Deactivate Maintenance section $('#navGroupBlockface').children().siblings("#MaintenanceSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Payment section $('#navGroupBlockface').children().siblings("#paymentSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#DIndicatorCheckList').hide(); $('#MeterStateCheckList').hide(); $('#PaymentCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_O').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_P').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_d').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGT').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == derivedIndicatorsOrderCheck) { var section = $('#derivedIndicatorsSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); $('#navGroupBlockface').children().siblings("#MaintenanceSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Payment section $('#navGroupBlockface').children().siblings("#paymentSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Occupancy section $('#navGroupBlockface').children().siblings("#occupancySection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#OccupancyCheckList').hide(); $('#MeterStateCheckList').hide(); $('#PaymentCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_d').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_O').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_P').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGT').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == MaintenanceOrderCheck) { var section = $('#MaintenanceSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Payment section $('#navGroupBlockface').children().siblings("#paymentSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Occupancy section $('#navGroupBlockface').children().siblings("#occupancySection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#assetGroupTypeSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#OccupancyCheckList').hide(); $('#DIndicatorCheckList').hide(); $('#PaymentCheckList').hide(); $('#AssetGroupTypeCheckList').hide(); $('#toggle_MS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_d').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_O').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_P').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGT').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == AssetGroupTypeOrderCheck) { var section = $('#assetGroupTypeSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); //Deactivate Maintenance section $('#navGroupBlockface').children().siblings("#MaintenanceSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#MaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#derivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Payment section $('#navGroupBlockface').children().siblings("#paymentSection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#paymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Occupancy section $('#navGroupBlockface').children().siblings("#occupancySection").addClass('inactive'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupBlockface').children().siblings("#occupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#OccupancyCheckList').hide(); $('#DIndicatorCheckList').hide(); $('#PaymentCheckList').hide(); $('#DIndicatorCheckList').hide(); $('#toggle_MS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_d').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_O').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_P').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } }, //Method triggers when Zoom in from Blockfaceview to Meterview selectMeterPaymentFilters = function () { IsMeterMapAssetGroupTypeEnabled = false; var meterPaymentFilterCheck = parseInt($('#meterpaymentSection').attr('order')); var meterMaintenanceFilterCheck = parseInt($('#maintenanceSection').attr('order')); var meterPriorityMaintenanceFilterCheck = parseInt($('#priorityMaintenanceSection').attr('order')); var assetGroupTypeMeterSectionFilterCheck = meterPaymentFilterCheck + meterMaintenanceFilterCheck + meterPriorityMaintenanceFilterCheck; var min = Math.min(meterPaymentFilterCheck, meterMaintenanceFilterCheck, meterPriorityMaintenanceFilterCheck, assetGroupTypeMeterSectionFilterCheck); if (min == meterPaymentFilterCheck) { var section = $('#meterpaymentSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); if (mapDataUrl != null) { if (mapDataUrl.indexOf('Payment') > -1) { //Deactivate Maintainence section $('#navGroupMeter').children().siblings("#maintenanceSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#maintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#maintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); } } $('#AssetGroupTypeMeterCheckList').hide(); $('#MeterPaymentCheckList').show(); $('#MaintenanceStateCheckList').hide(); $('#MaintenancePriorityCheckList').hide(); $('#toggle_MP').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_MSC').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MPC').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTM').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } //meterMaintenanceFilterCheck == false || else if (min == meterMaintenanceFilterCheck) { var section = $('#maintenanceSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); if (mapDataUrl != null) { if (mapDataUrl.indexOf('Maintenance') > -1) { //Deactivate Maintainence section $('#navGroupMeter').children().siblings("#meterpaymentSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#meterpaymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#meterpaymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); } } $('#MeterPaymentCheckList').hide(); $('#MaintenanceStateCheckList').show(); $('#MaintenancePriorityCheckList').hide(); $('#AssetGroupTypeMeterCheckList').hide(); $('#toggle_MSC').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_MP').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MPC').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTM').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } else if (min == meterPriorityMaintenanceFilterCheck) { var section = $('#priorityMaintenanceSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); if (mapDataUrl != null) { if (mapDataUrl.indexOf('PriorityMaintenance') > -1) { //Deactivate Maintainence section $('#navGroupMeter').children().siblings("#meterpaymentSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#meterpaymentSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#meterpaymentSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#maintenanceSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#maintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#maintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#assetGroupTypeMeterSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); } } $('#MeterPaymentCheckList').hide(); $('#MaintenanceStateCheckList').hide(); $('#MaintenancePriorityCheckList').show(); $('#AssetGroupTypeMeterCheckList').hide(); //$('#toggle_APT').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MPC').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_MSC').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_MP').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTM').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } }, selectAssetGroupTypeSectionFilters = function () { var section = $('#assetGroupTypeMeterSection').removeClass('inactive'); section.find('input:checkbox').prop("checked", true).parent().addClass('active'); setMapDataUrl(section.attr('action')); setMapRenderer(section.attr('renderer')); if (mapDataUrl != null) { //alert(mapDataUrl); if (mapDataUrl.indexOf('AssetGroup') > -1) { //Deactivate Maintainence section $('#navGroupMeter').children().siblings("#maintenanceSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#maintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#maintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").addClass('inactive'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupMeter').children().siblings("#priorityMaintenanceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); } } }, //US 57438 loadIcon = function () { var html = '
Loading...
' $('#blockfaceDetails').html(html); } //Navigates to blockface editor navigateToBlockfaceEditor = function (blockfaceId) { ParkingManagement.Map.EastLayout.currentInstance.callout.hide(); $('#dms_details').hide(); $('#activity-panel-tabs').hide(); $('#tabs-nohdr').hide(); $('#black_bar').hide(); $('.activityPanelItem').hide(); //hide meter details east panel items. $('#tabsMeterEastPanelTabs').hide(); $('#tabsMeterEastPanel').hide(); $('#tabsMeterEastPanelBlackBar').hide(); $('#tabsMeterEastPanelDetailsPanel').hide(); $('#tabsMeterEastPanelNewDetailsPanel').hide(); $('#tabsPolicyPanel').hide(); $('#tabsMeterEastPanelAnalyticPanel').hide(); $('#meterPermitDetails').hide(); loadIcon(); $('#blockfaceDetails').load($('#east-panel').attr('blockfaceDetailsAction'), { blockfaceId: blockfaceId }, function () { $('#parking_space_id_temp')[0].value = '0'; }); $('body').layout().show('east'); // Show right panel isPanelOpen = true; //Set panel open to true 63733 isBlockfaceOpen = true; $('#blockfaceDetails').show(); $('#btn-edit-changeset').die(); $('#btn-edit-changeset').live('click', function () { var changeSetId = $('#changeset-id').find(':selected').val(); var policyApplied = $('#policyApplied').val(); if (changeSetId != null) { window.location.href = $(this).attr('data-action') + '&changesetId=' + $('#changeset-id').find(':selected').val(); return false; } else { alert('Please select or create a change set prior to editing.'); } //if (policyApplied.toLowerCase() == "false") { // showModal('NoPolicyAppliedOnBlockface'); // return false; //} //else { // if (changeSetId != null) { // window.location.href = $(this).attr('data-action') + '&changesetId=' + $('#changeset-id').find(':selected').val(); // return false; // } // else { // alert('Please select or create a change set prior to editing.'); // } //} }); }, selectSpacePaymentFiltersByDefault = function () { setMapDataUrl($('#navGroupPushpin').children().siblings("#spacePaymentSection").attr('action')); setMapRenderer($('#navGroupPushpin').children().siblings("#spacePaymentSection").attr('rendererName')); //Activating payment filter as default $('#navGroupPushpin').children().siblings("#spacePaymentSection").removeClass('inactive'); $('#navGroupPushpin').children().siblings("#spacePaymentSection").find('input:checkbox').prop("checked", true).parent().addClass('active'); //Deactivate Occupancy section $('#navGroupPushpin').children().siblings("#spaceOccupancySection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spaceOccupancySection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Derived Indicator section $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#spaceDerivedIndicatorsSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); //Deactivate Asset Group Type section $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").addClass('inactive'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().removeClass('active'); $('#navGroupPushpin').children().siblings("#assetGroupTypeSpaceSection").find('input:checkbox').prop("checked", false).parent().addClass('inactive'); $('#SpacePaymentCheckList').show(); $('#SpaceOccupancyCheckList').hide(); $('#SpaceDIndicatorCheckList').hide(); $('#AssetGroupTypeSpaceCheckList').hide(); $('#toggle_Psm').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-down'); $('#toggle_Os').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_ds').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); $('#toggle_AGTS').removeClass('icon-chevron-down').removeClass('icon-chevron-right').addClass('icon-chevron-right'); } SpecialEvent = function () { //====== SpecialEvent End } AssetGroupType = function () { renderType: 'AssetGroupType' } //======================================= // BEGIN: Occupancy related map rendering Occupancy = { renderType: 'Occupancy', getBlockfaceLineColor: function (availabilityStatus) { var hexValue; switch (availabilityStatus) { case 3: hexValue = (isHostedExternally ? '#9C9C9C' : '#FF2600'); break; case 0: hexValue = (isHostedExternally ? '#62D26F' : '#FF2600'); break; case 2: hexValue = (isHostedExternally ? '#FD612C' : '#F89406'); break; case 34: // Asset Group filter code Gary color hexValue = (isHostedExternally ? '#999999' : '#999999'); break; default: hexValue = (isHostedExternally ? '#FFDD2B' : '#46A546'); break; } return hexValue; } }, // END: Occupancy related map rendering //===================================== //======================================= // BEGIN: Payment related map rendering Payment = { renderType: 'Payment', getBlockfaceLineColor: function (paymentStatus) { var hexValue; switch (paymentStatus) { case 3: case 0: hexValue = '#FF2600'; break; case 2: hexValue = '#ffc40d'; break; case 34: // Asset Group filter code Gary color hexValue = (isHostedExternally ? '#999999' : '#999999'); break; default: hexValue = '#46a546'; break; } return hexValue; } }, // END: Payment related map rendering //======================================= /*BEGIN: MeterState related map rendering*/ //Added new filter "PriorityMaintenance" US 3893 PriorityMaintenance = { renderType: 'PriorityMaintenance', getMeterPriorityColor: function (maintenancePriority) { var hexValue; switch (maintenancePriority) { case 0://Blocking - Purple hexValue = '#CD00CD'; break; case 1://Critical- Red hexValue = '#FF2600'; break; case 2://High - Brown hexValue = '#8B4513'; break; case 3://Medium - Yellow hexValue = '#ffc40d'; break; case 4://Low - Green hexValue = '#46a546'; break; case 34: // Asset Group filter code Grey color hexValue = (isHostedExternally ? '#999999' : '#999999'); break; default: hexValue = '#FF2600'; break; } return hexValue; } }, /*BEGIN: MeterState related map rendering*/ //Added new filter "MeterState" US 72737 MeterState = { renderType: 'MeterState', getBlockfaceLineColor: function (maintenanceStatus) { var hexValue; switch (maintenanceStatus) { case 0://Unknown - Black hexValue = '#00000F'; break; case 1://Active - Green hexValue = '#46a546'; break; case 2://Inactive- Red hexValue = '#FF2600'; break; case 3://Active Needs Repair - Yellow hexValue = '#ffc40d'; break; case 4://Bagged - Purple hexValue = '#CD00CD'; // hexValue = '#BA55D3' break; case 5://Temp Removed - Brown hexValue = '#8B4513'; break; case 34: // Asset Group filter code Grey color hexValue = (isHostedExternally ? '#999999' : '#999999'); break; default: hexValue = '#FF2600'; break; } return hexValue; } }, /*END: MeterState related map rendering*/ // BEGIN: Maintenance related map rendering Maintenance = { renderType: 'Maintenance', getBlockfaceLineColor: function (maintenanceStatus) { var hexValue; switch (maintenanceStatus) { case 0: hexValue = '#FF2600'; break; case 1: hexValue = '#ABABAB'; break; case 34: // Asset Group filter code Grey color hexValue = (isHostedExternally ? '#999999' : '#999999'); break; default: hexValue = '#FF2600'; break; } return hexValue; } }, // BEGIN: Payment related map rendering DerivedIndicators = { renderType: 'DerivedIndicators', getBlockfaceLineColor: function (derivedIndicatorStatus) { var hexValue; switch (derivedIndicatorStatus) { case 0: hexValue = '#FF2600'; break; case 1: hexValue = '#ff9200'; break; case 2: hexValue = '#4F8E00'; break; case 3: hexValue = '#A8A8A8'; break; case 34: // Asset Group filter code Gary color hexValue = (isHostedExternally ? '#999999' : '#999999'); break; default: hexValue = '#46a546'; break; } return hexValue; } }; // END: Payment related map rendering //=================================== init(); return { loadOccupancyMap: loadOccupancyMap, renderMap: renderDisplay, getSelectedMarker: getSelectedMarker, getMapBounds: getMapBounds, addSearchHandler: addSearchHandler, displayDidYouMeanResult: displayDidYouMeanResult, addAddressFoundHandler: addAddressFoundHandler, addAddressNotFoundHandler: addAddressNotFoundHandler, addGettingMapDataHandler: addGettingMapDataHandler, displayAddressFoundResult: displayAddressFoundResult, displayAddressNotFoundResult: displayAddressNotFoundResult, addMapLoadedHandler: addMapLoadedHandler, addBlockfaceClickedHandler: addBlockfaceClickedHandler, urlGetCityName: urlGetCityName, CityName: CityName, //User Story 67407 : Activating payment filter as default selectPaymentFilters: selectPaymentFilters, loadOffstreetParking: loadOffstreetParking, displayOffstreetParking: displayOffstreetParking, loadDynamicSigns: loadDynamicSigns, displayDynamicSigns: displayDynamicSigns, displayGettingMapData: displayGettingMapData, removeOffstreetParking: removeOffstreetParking, loadPolicyMgmtMap: loadPolicyMgmtMap, navigateToBlockfaceEditor: navigateToBlockfaceEditor, getMap: map, getMapSearchMarker: getMapSearchMarker, setMapResizedExternally: setMapResizedExternally }; }; var MapRenderType = { Pushpin: 'Pushpin', Blockface: 'Blockface', ListView: 'ListView', Meter: 'Meter' }; var MapFilterTab = { Meter: 'Meter', Policy: 'Policy', Work: 'Work', Asset: 'Asset' }; var MapDisplayType = { Map: 'Map', List: 'List' }; var MapSearchType = { Vendor: 1, MeterType: 2, District: 3, Zone: 4, Maintenance: 5, Collection: 6, Enforcement: 7, CitationNumber: { value: 8, display: "Citation Number " }, SpaceNumber: { value: 9, display: "Space Number" }, Blockface: { value: 10, display: "Blockface " }, MeterNumber: { value: 11, display: "Meter Number" }, MeterPermit: { value: 12, display: "Meter Permit" } }; //===================== // BEGIN: Custom events function DidYouMeanResultEvent() { this.eventHandlers = new Array(); } DidYouMeanResultEvent.prototype.addHandler = function (eventHandler) { this.eventHandlers.push(eventHandler); }; DidYouMeanResultEvent.prototype.execute = function (args) { for (var i = 0; i < this.eventHandlers.length; i++) { this.eventHandlers[i](args); } }; function AddressFoundResultEvent() { this.eventHandlers = new Array(); } AddressFoundResultEvent.prototype.addHandler = function (eventHandler) { this.eventHandlers.push(eventHandler); }; AddressFoundResultEvent.prototype.execute = function (args) { for (var i = 0; i < this.eventHandlers.length; i++) { this.eventHandlers[i](args); } }; function AddressNotFoundResultEvent() { this.eventHandlers = new Array(); } AddressNotFoundResultEvent.prototype.addHandler = function (eventHandler) { this.eventHandlers.push(eventHandler); }; AddressNotFoundResultEvent.prototype.execute = function (args) { for (var i = 0; i < this.eventHandlers.length; i++) { this.eventHandlers[i](args); } }; function MapLoadedEvent() { this.eventHandlers = new Array(); } MapLoadedEvent.prototype.addHandler = function (eventHandler) { this.eventHandlers.push(eventHandler); }; MapLoadedEvent.prototype.execute = function (args) { for (var i = 0; i < this.eventHandlers.length; i++) { this.eventHandlers[i](args); } }; function BlockfaceClickedEvent() { this.eventHandlers = new Array(); } BlockfaceClickedEvent.prototype.addHandler = function (eventHandler) { this.eventHandlers.push(eventHandler); }; BlockfaceClickedEvent.prototype.execute = function (args) { for (var i = 0; i < this.eventHandlers.length; i++) { this.eventHandlers[i](args); } }; function GettingMapDataEvent() { this.eventHandlers = new Array(); }; GettingMapDataEvent.prototype.addHandler = function (eventHandler) { this.eventHandlers.push(eventHandler); }; GettingMapDataEvent.prototype.execute = function () { for (var i = 0; i < this.eventHandlers.length; i++) { this.eventHandlers[i](); } }; // END: Custom events //=================== //========== Special Event ===================== var specialEvents = function () { var init = function () { setBindings(); }, setBindings = function () { $('#btnSaveSpecialEvent').live('click', function () { var specialEventsId = $('#hdnSpecialEventId').val(); if (specialEventsId == "") { specialEventsId = 0; } var specailEventName = $.trim($('#txtSpecialEventName').val()); if (specailEventName == "") { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Please enter the special event name."); $('#divError').show().delay(5000).fadeOut(); return false; } var specialEventCategory = $('#txtCategoryName').val(); $('#divDatePicker').datepicker({ dateFormat: 'DD mm/dd/yy' }); var specialEventImplementationDate = new Date($('#divDatePicker').datepicker('getDate')); specialEventImplementationDate = specialEventImplementationDate.toDateString(); //IMplementation Date is a collection of assigned dates var assignedDates = $('#multseldate').val().split(','); var AssignedDates = new Date(assignedDates); specialEventImplementationDate = assignedDates; if ($('#multseldate').val() == null || $('#multseldate').val() == '' || $('#multseldate').val() == 'undefined') { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Assigned date(s) cannot be empty."); $('#divError').show().delay(5000).fadeOut(); return false; } for (var b = 0; b < assignedDates.length; b++) { var AssignedDates = new Date(assignedDates[b]); if (AssignedDates.getTime() < SelectedDate.getTime()) { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Select Date(s) greater than Event Date."); $('#divError').show().delay(5000).fadeOut(); return false; } } var specialEventsPolicyId = $('#lsSpecialEventPolicies').find('option:selected').val(); if (specialEventsPolicyId == "") { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Please select the special event policy."); $('#divError').show().delay(5000).fadeOut(); return false; } if ($('#effdate').val() == null || $('#effdate').val() == '') { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Effective date cannot be empty."); $('#divError').show().delay(5000).fadeOut(); return false; } var SEeffectiveDate = $('#effdate').val(); var EffDate = new Date(SEeffectiveDate); for (var g = 0; g < specialEventImplementationDate.length; g++) { var d2 = new Date(specialEventImplementationDate[g]); if (EffDate.getTime() > d2.getTime()) { $('#SEEffective-confirm').html('Effective date cannot be greater than any assigned date.'); showModal('SEEffectivedateModal'); return false; } } if (mapSpecialEventParkingSpaces.length == 0) { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Please select parking Spaces."); $('#divError').show().delay(5000).fadeOut(); return false; } //Check Duplicate Names bug 9279 if ($('#hdnAllSpecialEventNames').val() != '') { var allSEEventsNames = $('#hdnAllSpecialEventNames').val().split(","); if ($.inArray(specailEventName, allSEEventsNames) > 0) { $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Special event Name already exists."); $('#divError').show().delay(5000).fadeOut(); return false; } } var specialEventViewModel = { SpecialEventsId: specialEventsId, SpecialEventName: specailEventName, SpecialEventCategory: specialEventCategory, SpecialEventImplementationDate: specialEventImplementationDate, SpecialEventsPolicyId: specialEventsPolicyId, ParkingSpaceId: mapSpecialEventParkingSpaces, SpecialEventEffectiveDate: SEeffectiveDate }; $('#btnSaveSpecialEvent').html('Saving...'); $('#btnSaveSpecialEvent').attr('disabled', true); $.ajax({ type: 'POST', url: $(this).attr('action'), data: JSON.stringify(specialEventViewModel), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if ($("#ui-datepicker-div").is(":visible")) { $('#effdate').datepicker("hide"); $('#multseldate').datepicker("hide"); } $('#divSuccess').css('position', 'relative'); $('#divSuccess').css('visibility', 'visible'); $('#divSuccess').html("Special event saved successfully."); $('#divSuccess').show().delay(5000).fadeOut(); $('#divError').css('position', 'absolute'); $('#divError').css('visibility', 'hidden'); if ($('#specialEventSummary').length > 0) { var selectedDate = new Date($('#divDatePicker').datepicker('getDate')).toDateString(); $('#specialEventSummary').load($('#specialEventSummary').attr('specialEvent-summary-action'), { selectedDate: selectedDate }, function () { $("li.info-active").trigger('click'); setTimeout(function () { $('#btnSaveSpecialEvent').html('Save'); $('#btnSaveSpecialEvent').attr('disabled', false); }, 5000); }); // setTimeout(function () { $('#specialEventSummary').load($('#specialEventSummary').attr('specialEvent-summary-action'), { selectedDate: selectedDate }); }, 300); //setTimeout(function () { $("li.info-active").trigger('click'); }, 5000); } }, error: function () { $('#divSuccess').css('position', 'absolute'); $('#divSuccess').css('visibility', 'hidden'); $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Error in saving special event."); $('#btnSaveSpecialEvent').html('Save'); $('#btnSaveSpecialEvent').attr('disabled', false); $('#divError').show().delay(5000).fadeOut(); } }); }); //show delete Asset Group popup $('#SE-delete-confirm').live('click', function () { showModal('SERemove'); }); $('#SE-remove-confirm').live('click', function () { hideModal('SERemove'); var specialEventsId = $('#hdnSpecialEventId').val(); if (specialEventsId == "") { specialEventsId = 0; } var specailEventName = $('#txtSpecialEventName').val(); var specialEventCategory = $('#txtCategoryName').val(); $('#divDatePicker').datepicker({ dateFormat: 'DD mm/dd/yy' }); var specialEventImplementationDate = new Date($('#divDatePicker').datepicker('getDate')); var specialEventsPolicyId = $('#lsSpecialEventPolicies').find('option:selected').val(); if (mapSpecialEventParkingSpaces.length == 0) mapSpecialEventParkingSpaces.push(0); var specialEventViewModel = { SpecialEventsId: specialEventsId, SpecialEventName: specailEventName, SpecialEventCategory: specialEventCategory, SpecialEventImplementationDate: specialEventImplementationDate, SpecialEventsPolicyId: specialEventsPolicyId, ParkingSpaceId: mapSpecialEventParkingSpaces }; $.ajax({ type: 'POST', url: $('#SE-delete-confirm').attr('action'), data: JSON.stringify(specialEventViewModel), dataType: 'json', contentType: 'application/json; charset=utf-8', success: function (data) { if ($('#specialEventSummary').length > 0) { var selectedDate = new Date($('#divDatePicker').datepicker('getDate')).toDateString(); $('#txtSpecialEventName').val(""); $('#txtCategoryName').val(""); $('#lsSpecialEventPolicies').val(""); $('#hdnSelectedParkingSpace').val(""); $('#hdnAllSelectedParkingSpace').val(""); $('#specialEventSummary').load($('#specialEventSummary').attr('specialEvent-summary-action'), { selectedDate: selectedDate }, function () { $('#divCalender').trigger('click'); }); // setTimeout(function () { $('#specialEventSummary').load($('#specialEventSummary').attr('specialEvent-summary-action'), { selectedDate: selectedDate }); }, 300); // setTimeout(function () { $('#divCalender').trigger('click'); }, 300); } }, error: function () { $('#divSuccess').css('position', 'absolute'); $('#divSuccess').css('visibility', 'hidden'); $('#divError').css('position', 'relative'); $('#divError').css('visibility', 'visible'); $('#divError').html("Error in removing special event."); $('#divError').show().delay(5000).fadeOut(); } }); }); }; init(); }; //============ END Special Event var mapStyle = "[{\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#f5f5f5\"}]},{\"elementType\":\"labels.icon\",\"stylers\":[{\"visibility\":\"off\"}]},{\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#616161\"}]},{\"elementType\":\"labels.text.stroke\",\"stylers\":[{\"color\":\"#f5f5f5\"}]},{\"featureType\":\"administrative.land_parcel\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#bdbdbd\"}]},{\"featureType\":\"poi\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#eeeeee\"}]},{\"featureType\":\"poi\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#757575\"}]},{\"featureType\":\"poi.park\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#e5e5e5\"}]},{\"featureType\":\"poi.park\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]},{\"featureType\":\"road\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#ffffff\"}]},{\"featureType\":\"road.arterial\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#757575\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#dadada\"}]},{\"featureType\":\"road.highway\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#616161\"}]},{\"featureType\":\"road.local\",\"elementType\":\"labels.text\",\"stylers\":[{\"visibility\":\"on\"},{\"weight\":6}]},{\"featureType\":\"road.local\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]},{\"featureType\":\"transit.line\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#e5e5e5\"}]},{\"featureType\":\"transit.station\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#eeeeee\"}]},{\"featureType\":\"water\",\"elementType\":\"geometry\",\"stylers\":[{\"color\":\"#c9c9c9\"}]},{\"featureType\":\"water\",\"elementType\":\"labels.text.fill\",\"stylers\":[{\"color\":\"#9e9e9e\"}]}]"; var map = null, mapSearchMarker = null; var infoWindow = new google.maps.InfoWindow(); var isFirstRow = true; var hollywoodLat, hollywoodLng, downtownLat, downtownLng, veniceLat, veniceLng, westwoodLat, westwoodLng; var PortalWidget = { isAddressSearch: false, UrlGetCityName: 'https://management.la.mergeportal.com/Map/GetCityName', CityName : 'LOS ANGELES', Widget: function (renderTo, widgetOptions) { init = function () { setBindings(); widgetOptions.Height = 415; if (widgetOptions.Height == undefined) { widgetOptions.Height = 415; } var html = ' \ \ \ \ \ \ \ \
\
\
\
\
\ \
\
\
\
\ \
\
\ \
\
\
\
\ \
\ \ \ \ \
\
\
\ \ \
\ \
\
\
\
\
\
\
\
\
\ \ Park Me \ \ Google \
\
\
\
\ \
\

Low $

\
\
\
\

High $

\
\

Not
Known

\
\
\
\
\
\
\
\
\ \ \ \ \ '; $('#' + renderTo).html(html); $(function() { widgetOptions.MinZoom = 14; widgetOptions.MaxZoom = 20; hollywoodLat = 34.100013; hollywoodLng = -118.333551; downtownLat = 34.04261; downtownLng = -118.252643; veniceLat = 33.991073; veniceLng = -118.463895; westwoodLat = 34.061985; westwoodLng = -118.444735; if(mapStyle != undefined && mapStyle != ''){ widgetOptions.MapStyle = mapStyle; } if (widgetOptions.DefaultZoomLevel == undefined) { widgetOptions.DefaultZoomLevel = 17; } map = new MERGEMap("mapCanvas", widgetOptions, widgetOptions.DefaultZoomLevel); map.addSearchHandler(PortalWidget.displaySearchResult); map.addAddressFoundHandler(PortalWidget.displayAddressFoundResult); map.addAddressNotFoundHandler(PortalWidget.displayAddressNotFoundResult); map.addMapLoadedHandler(PortalWidget.mapLoadedCallback); map.addBlockfaceClickedHandler(PortalWidget.blockfaceClicked); map.addGettingMapDataHandler(PortalWidget.gettingMapData); //loadInstructions(); hideControls(); $('#parkingDateTime').val(getCurrentDateAndTime()); $('#parkingDateTime').datetimepicker({ ampm: true, onClose: function(dateText, inst) { getMaxPolicyRate(); } }); $("#slider").slider({ range: true, min: 0, max: 0, values: [0, 0], slide: function( event, ui ) { PortalWidget.setPriceRangeLabel(ui.values[0].toFixed(2), ui.values[1].toFixed(2)); }, stop: function(event, ui) { $('#minPay').val(ui.values[0]); $('#maxPay').val(ui.values[1]); loadWidgetMap(); } }); //$('.policyPanel').jScrollPane(); }); }, setBindings = function () { $('.garageToggle').live('click', function() { var $elem = $(this); if ($elem.hasClass('active')) { $elem.removeClass('active'); map.removeOffstreetParking(); } else { displayMapCanvasProgressIndicator(); $elem.addClass('active'); map.loadOffstreetParking(); } return false; }); $('.btn-group .btn').live('click', function() { $('.btn-group .btn').removeClass('active'); $(this).addClass('active'); getMaxPolicyRate(); }); $.ajaxSetup({ timeout: 306000, data: {}, error: function (jqXHR, textStatus, errorThrown) { hideMapCanvasProgressIndicator(); } }); $('#spCollapse').live('click', function(){ if($(this).hasClass('icon-remove')){ $('.sponsors').hide(); $('#mapSearchResults').hide(); $('#searchResultClose').hide(); } }); $('#searchPanelCollapse').live('click', function(){ if($(toggle_P).hasClass('icon-chevron-up')){ $(toggle_P).removeClass('icon-chevron-up').addClass('icon-chevron-down'); $('#searchPanel').hide(); $('.mapPanel').css('height', widgetOptions.Height + 125); $('.legendPanel').css('height', widgetOptions.Height + 125); $(this).attr('title', 'Expand'); } else{ $(toggle_P).removeClass('icon-chevron-down').addClass('icon-chevron-up'); $('#searchPanel').show(); $('.mapPanel').css('height', widgetOptions.Height); $('.legendPanel').css('height', widgetOptions.Height); $(this).attr('title', 'Collapse'); } map.setMapResizedExternally(true); }); $('#searchDowntown').live('click', function(){ var latlng = new google.maps.LatLng(downtownLat, downtownLng); map.getMap.setCenter(latlng); }); $('#searchHollywood').live('click', function(){ var latlng = new google.maps.LatLng(hollywoodLat, hollywoodLng); map.getMap.setCenter(latlng); }); $('#searchVenice').live('click', function(){ var latlng = new google.maps.LatLng(veniceLat, veniceLng); map.getMap.setCenter(latlng); }); $('#searchWestwood').live('click', function(){ var latlng = new google.maps.LatLng(westwoodLat, westwoodLng); map.getMap.setCenter(latlng); }); }, loadWidgetMap = function() { var obj = { Url: 'https://management.la.mergeportal.com/PolicyMap/GetMapDataAsJsonp', Duration: $('.btn-group .btn.active').attr('duration'), SelectedDateTime: getSelectedDate(), MinPay: $('#minPay').val(), MaxPay: $('#maxPay').val() }; map.loadOccupancyMap(obj); }, hideControls = function(){ $('#searchResultClose').hide(); $('.sponsors').hide(); $('#mapSearchResults').hide(); $('.mapPanel').css('width','92%'); }, loadInstructions = function() { var source = '
\

Plan your parking

\
    \
  1. Select the area of the city where you would like to park using the map or the search box above.
  2. \
  3. Select the date and time when you would like to park.
  4. \
  5. Select how long you would like to park.
  6. \
  7. As you change the selections for the amount you would like to pay, the available areas in the map will change. Select your preferred payment range to see which areas are available within your payment choice.
  8. \
\
'; $('.policyPanel').html(Handlebars.compile(source)); }, getCurrentDateAndTime = function() { var date = new Date() var result = ((date.getMonth()+1) < 10 ? '0' + (date.getMonth()+1) : date.getMonth()+1); // added +1 because javascript counts month from 0 result += '/' + (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()); result += '/' + date.getFullYear(); if (date.getHours() > 12) { var diff = (date.getHours() - 12); result += ' ' + (diff > 9 ? diff : ('0' + diff)); } else { result += ' ' + (date.getHours() == 0 ? '12' : date.getHours()); } result += ':' + (date.getMinutes() < 10 ? ('0' + date.getMinutes()) : date.getMinutes()); result += ' ' + (date.getHours() >= 12 ? 'pm' : 'am'); return result; }, getSelectedDateAsUTC = function() { var selectedDate = new Date($('#parkingDateTime').datepicker('getDate').toUTCString()); return selectedDate.toJSON(); }, getSelectedDate = function() { return $('#parkingDateTime').val(); }, getSelectedDateMidnight = function() { var selectedDate = $('#parkingDateTime').datepicker('getDate'); var midnight = new Date(selectedDate.toDateString()); var midnightUtc = new Date(midnight.toUTCString()); return midnightUtc.toJSON(); }, getMaxPolicyRate = function() { data = map.getMapBounds(); data['selectedDate'] = getSelectedDate(); $.ajax({ url: 'https://management.la.mergeportal.com/PolicyMap/GetMaxPolicyRateAsJsonp', cache: false, data: data, dataType: 'jsonp', jsonpCallback: 'setMaxPolicyRateCallback', error: function (jqHXR, textStatus, thrownException) { // alert(textStatus); } }); }, displayMapCanvasProgressIndicator = function() { var html = '
\ \
'; $("#mapCanvas").append(html); $("input,button,a").attr("disabled", "disabled"); $("#slider").slider("disable"); }, hideMapCanvasProgressIndicator = function() { $("#mapCanvas").find("#mapCanvasProgress").remove(); $("input,button,a").removeAttr("disabled"); $("#slider").slider("enable"); }, shouldUpdateSliderMaxPay = function(data) { if ($('#maxPay').val() == '') { return true; } if ($('#maxPay').val() > data) { return true; } if ($('#maxPay').val() == 0 && data > 0) { return true; } return false; } init(); }, updateSlider: function(data) { data = (data * parseInt($('.btn-group .btn.active').attr('duration'))); if (shouldUpdateSliderMaxPay(data)) { $('#maxPay').val(data.toFixed(2)); } if ($('#minPay').val() > data) { $('#minPay').val(0); } $("#slider").slider("option", "max", data); $("#slider").slider("option", "values", [$('#minPay').val(), $('#maxPay').val()]); var minPay = Number($('#minPay').val()); var maxPay = Number($('#maxPay').val()); PortalWidget.setPriceRangeLabel(minPay.toFixed(2), maxPay.toFixed(2)); //$('.policyPanel').jScrollPane(); loadWidgetMap(); }, displayBlockfacePolicy: function(data) { var source = '
\
Block Info:
{{BlockNumber}} {{StreetName}}
'; if (data.IsNow) { source += '
Estimated Availability: {{EstimatedAvailability}}
'; } source += '
Rates:
'; if (data.Policies.length > 0) { source += '{{#each Policies}} \
{{shortTimeString this.StartTime}} - {{shortTimeString this.EndTime}} : {{this.Description}}
\ {{/each}}'; } else { source += '
No Policy Available
'; } if(data.Permits.length > 0){ source += '
Temp Restrictions:
'; source += '{{#setIndex false}} {{/setIndex}} \ {{#each Permits}} \ {{#if this.PermitNumber}} {{#checkIndex this}}
{{/checkIndex}} {{#setIndex true}} {{/setIndex}}{{/if}} \ {{#if this.PermitPurpose}} \
{{this.PermitPurpose}}
\ {{/if}} \ {{#if this.PermitStart}} \
{{this.PermitStart}} - {{this.PermitEnd}}
\ {{/if}} \ {{/each}}'; } source += '
'; var template = Handlebars.compile(source); infoWindow.close(); infoWindow.setContent(template(data)); mapSearchMarker = map.getMapSearchMarker(); infoWindow.open(map, mapSearchMarker); //$('.policyPanel').html(template(data)); //$('.policyPanel').jScrollPane(); PortalWidget.isAddressSearch = false; $('#mapSearchResults').css('display', 'none').html(''); //$('.leftPanelContent').css('display', 'none'); }, setPriceRangeLabel: function(min, max) { $('#minPrice').html('$' + min); $('#maxPrice').html('$' + max); }, displaySearchResult: function(html) { $('#mapSearchResults').css('display', 'block').html('
' + html + '
'); $('#searchResultClose').show(); $('.sponsors').show(); }, displayAddressFoundResult: function(html) { PortalWidget.isAddressSearch = true; $('#mapSearchResults').css('display', 'block').html('
' + html + '
'); $('#searchResultClose').show(); $('.sponsors').show(); //$('.policyPanel').html('
' + html + '
'); }, displayAddressNotFoundResult: function(html) { html = '
\
We Couldn\'t Find
\
"' + $('#SearchAddress').val() + '"
\
'; $('.sponsors').show(); $('#mapSearchResults').html(html); $('#mapSearchResults').show(); $('#searchResultClose').show(); }, mapLoadedCallback: function() { getMaxPolicyRate(); }, blockfaceClicked: function(blockfaceId) { data = { blockfaceId: blockfaceId, selectedDate: getSelectedDateAsUTC(), midnight: getSelectedDateMidnight() }; mapSearchMarker = map.getMapSearchMarker(); $.ajax({ url: 'https://management.la.mergeportal.com/PolicyMap/GetBlockfacePolicyAsJsonp', data: data, cache: false, dataType: 'jsonp', jsonpCallback: 'displayBlockfacePolicyCallback', error: function (jqHXR, textStatus, thrownException) { // alert(textStatus); } }); }, loadMap: function(data) { if (!PortalWidget.isAddressSearch) { //loadInstructions(); } map.renderMap(data); hideMapCanvasProgressIndicator(); var $offstreetToggle = $('.garageToggle'); if ($offstreetToggle.hasClass('active')) { //map.removeOffstreetParking(); map.loadOffstreetParking(); } }, gettingMapData: function() { displayMapCanvasProgressIndicator(); }, slicePoliciesByDate: function(policies, selectedDateTime){ if(policies){ $.each(policies, function(i){ if((policies[i].StartTime).getDay() !== selectedDateTime.getDay()) { policies.splice(i,1); } }); } return policies; } }; Handlebars.registerHelper('shortTimeString', function(policyDate) { var date = new Date(policyDate); return date.toShortTimeString(); }); Handlebars.registerHelper('checkIndex', function (data, opts) { if (isFirstRow) { return opts.fn(this); } else { return opts.inverse(this); } return isFirstRow; }); Handlebars.registerHelper('setIndex', function (indexValue, opts) { isFirstRow = indexValue; return ""; }); Date.prototype.toShortTimeString = function () { var currentHour = this.getHours(); var currentMinute = this.getMinutes(); var amPm = "PM"; if (currentHour < 12) { amPm = "AM"; } if (currentHour == 0) { currentHour = 12; } if (currentHour > 12) { currentHour -= 12; } if (currentMinute < 10) { currentMinute = "0" + currentMinute.toString(); } return currentHour + ":" + currentMinute + " " + amPm; };