Commit a2aeb1dca2f2bd34a1f7df7e6b07053dd320baa4

Authored by Amrita Vishnoi
1 parent 6fe695b8

taken these files from develop

400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js
1 -'use strict';  
2 -  
3 -AIA.controller("TileViewListController", ["$scope", "$window", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout", "DA", "Modules", "$routeParams", "BodyRegions", "BodySystems", "ViewOrientations", "ImageTypes", "DataService", "ModuleService",  
4 -function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeout, DA, Modules, $routeParam, BodyRegions, BodySystems, ViewOrientations, ImageTypes, DataService, ModuleService) {  
5 -  
6 -  
7 - $rootScope.OpenedTileData = [];  
8 - var DISSECTIBLE_ANATOMY = 'Dissectible Anatomy';  
9 - var ATLAS_ANATOMY = 'Atlas Anatomy';  
10 - var CLINICAL_ILLUSTRATION = 'Clinical Illustrations';  
11 - var CLINICAL_ANIMATION = 'Clinical Animations';  
12 - $rootScope.closeBtnImgPath = "~/../content/images/speeachBubbleClose.png";  
13 - $rootScope.listArray = [];  
14 - //variables to bind Filter by Controls  
15 - $scope.searchAAListViewData = [];  
16 - $scope.SelectedAAthumbImage = [];  
17 - $scope.SelectedAAImage = [];  
18 - $scope.SelectedAASummary = [];  
19 - $scope.SelectedAAId = [];  
20 - $scope.SelectedAATitle = [];  
21 - $scope.selectedAAListViewData = [];  
22 - $scope.filterstring = false;  
23 - $scope.AllBodyRegion = [];  
24 - $scope.AllBodySystem = [];  
25 - $scope.AllOrientation = [];  
26 - $scope.AllImageType = [];  
27 - $rootScope.speechBubbleDimaensions = [];  
28 - $scope.runningSearchWorkers = [];  
29 - $scope.clickedPins = [];  
30 - $scope.sliderPercentValue = 1;  
31 - $scope.query = {  
32 - selectedbodyregion: '',  
33 - selectedbodysystem: '',  
34 - selectedorientation: '',  
35 - selectedimagetype: '',  
36 - };  
37 - $scope.activePinArray = [];  
38 - $scope.showTabButton = true;  
39 - $scope.isListViewDataLoaded = true;  
40 -  
41 - $scope.setActiveTab = function (tabToSet) {  
42 -  
43 - $scope.activeTab = tabToSet;  
44 - localStorage.setItem("activeTab", $scope.activeTab);  
45 - if ($scope.activeTab == 1) {  
46 - $('#grid-view').css("display", "block");  
47 - $('#list-view').css("display", "none");  
48 - $("#demoView").remove();  
49 - }  
50 - else {  
51 -  
52 - $('#grid-view').css("display", "none");  
53 - $('#list-view').css("display", "block");  
54 - }  
55 - };  
56 -  
57 - $scope.loadForModuleById = function (moduleId) {  
58 - $rootScope.openModules.push({ "ModuleId": 2 });  
59 - if ($rootScope.refreshcheck == null) {  
60 - $location.path('/');  
61 - }  
62 - $scope.moduleId = moduleId;  
63 - $scope.activeTab = 1;  
64 - console.log('loadForModuleById is called')  
65 - $rootScope.moduleName = Modules[moduleId].Name;  
66 - $rootScope.currentActiveModuleTitle = $rootScope.moduleName;  
67 - $scope.AllBodyRegion = BodyRegions;  
68 - $scope.AllBodySystem = BodySystems;  
69 - $scope.AllOrientation = ViewOrientations;  
70 - $scope.AllImageType = ImageTypes;  
71 - var promise = ModuleService.loadModuleDataBasedOnModuleName($scope.moduleName)  
72 - .then(  
73 - function (result) {  
74 -  
75 - $scope.moduleLandingData = result;  
76 - // setTimeout(function () { $('#' + $rootScope.highlightid).find('.thumbnail').addClass('hightlightstate'); }, 100);  
77 - setTimeout(function () {  
78 - if ($rootScope.getLocalStorageValue('AAGridViewHighlightThumbnail') !== null) {  
79 - $('#' + $rootScope.getLocalStorageValue("AAGridViewHighlightThumbnail")).find('.thumbnail').addClass('HightLightThumbnail');  
80 - }  
81 - if ($rootScope.getLocalStorageValue('AAGridViewScroll') !== null && $location.url() == "/tile-view-list") {  
82 - $('html, body').animate({ scrollTop: $rootScope.getLocalStorageValue('AAGridViewScroll') }, 'slow');  
83 - }  
84 - }, 100);  
85 - //console.log(JSON.stringify(result, null, 4));  
86 - },  
87 - function (error) {  
88 - // handle errors here  
89 - console.log(' error: ' + error.statusText);  
90 - }  
91 - )  
92 - $('#list-view').css('display', 'none');  
93 - }  
94 -  
95 - //$scope.$on('$viewContentLoaded', function (event) {  
96 -  
97 - // $scope.loadForModuleById();  
98 -  
99 - //});  
100 - $scope.isOpenBtnClicked = false;  
101 - $scope.openModuleItemView = function (event) {  
102 - $rootScope.MenuModuleName = "AA";  
103 - localStorage.setItem("activeTab", $scope.activeTab);  
104 - //0. Get selected Image Id  
105 - if ($scope.isListViewButtonClicked == true) {  
106 - if ($scope.isOpenBtnClicked == true) {  
107 -  
108 - var moduleItemDataToBeSaved = $("#demoText").text().trim();  
109 - $scope.isOpenBtnClicked = false;  
110 - }  
111 - else {  
112 - var moduleItemDataToBeSavedID = event.currentTarget.id;  
113 - localStorage.setItem("listViewSelectedID", moduleItemDataToBeSavedID);  
114 - var moduleItemDataToBeSaved = $("#list-view table tbody #" + moduleItemDataToBeSavedID).find('td:eq(0)').text().trim();  
115 - }  
116 - }  
117 - else {  
118 - var moduleItemDataToBeSaved = event.target.id;  
119 - localStorage.setItem("listViewSelectedID", event.currentTarget.id);  
120 - $scope.isListViewButtonClicked = false;  
121 - }  
122 -  
123 - //1.Filter selected module ietem data and get the pushed opened moduile array object  
124 - $rootScope.OpenedTileData = ModuleService.GetOpenedTileData(moduleItemDataToBeSaved, $scope.moduleLandingData);  
125 -  
126 - //2. Pick the image name to create a source to open  
127 - $rootScope.imageId = $rootScope.OpenedTileData[0];  
128 - $rootScope.imageName = $rootScope.OpenedTileData[3];  
129 - $rootScope.bodySystemName = $rootScope.OpenedTileData[2];  
130 - $rootScope.OpenItemImagePath = "../../../content/images/aa/images/" + $rootScope.OpenedTileData[3];  
131 - $scope.OpenItemImagePath = "../../../content/images/aa/images/" + $rootScope.OpenedTileData[3];  
132 - //$rootScope.listArray = [];  
133 - $rootScope.listArray.push({ "imageName": $rootScope.OpenItemImagePath, "text": moduleItemDataToBeSaved });  
134 - //3. set opened module item ti  
135 - localStorage.setItem("currentViewTitle", $rootScope.OpenedTileData[6]);  
136 - localStorage.setItem("AAGridViewScroll", $($window).scrollTop());  
137 - localStorage.setItem("AAGridViewHighlightThumbnail", $(event.target).parent().parent().parent().attr('id'));  
138 -  
139 - //3. Navigate to the Module-item-view  
140 - var u = $location.url();  
141 - $location.url('/module-item-view');  
142 - }  
143 -  
144 -  
145 - $scope.openListViewModuleItem = function (event) {  
146 - $("#demoView").remove();  
147 - var moduleItemDataToBeSavedID = event.currentTarget.id;  
148 - $("#list-view table tbody tr").removeClass("active");  
149 - localStorage.setItem("listViewSelectedID", moduleItemDataToBeSavedID);  
150 - $("#list-view table tbody #" + moduleItemDataToBeSavedID).addClass("active");  
151 - localStorage.setItem("AAListViewScroll", $("#list-view table tbody").scrollTop());  
152 - var moduleItemDataToBeSaved = $("#list-view table tbody #" + moduleItemDataToBeSavedID).find('td:eq(0)').text().trim();  
153 - $rootScope.OpenedTileData = ModuleService.GetOpenedTileData(moduleItemDataToBeSaved, $scope.moduleLandingData);  
154 - $rootScope.OpenItemImagePath = "../../../content/images/aa/images/" + $rootScope.OpenedTileData[3];  
155 - //$rootScope.listArray = [];  
156 - $rootScope.listArray.push({ "imageName": $rootScope.OpenItemImagePath, "text": moduleItemDataToBeSaved });  
157 - $("#viewList").append("<div class='col-xs-12 text-center' style='padding-top:15px;padding-bottom:15px;' id='demoView'><div class='col-xs-12' style='padding:15px;background-color:#fff;'><div class='col-xs-2' style='border:1px solid #000;padding:5px;color:#000;font-size:12px;'><div class='thumbnail' style='margin-bottom:10px;'><img style='width:auto;height:95px!important;' src=" + $rootScope.OpenItemImagePath + "></div><div class='col-xs-12' id='demoText' style='padding:0;'>" + moduleItemDataToBeSaved + "</div></div></div><a style='position:absolute;right:30px;bottom:34px;' onclick='openCurrentView(event)' href='javascript:void(0)' class='pull-right btn btn-primary'>Open</a></div>");  
158 - }  
159 -  
160 -  
161 - $scope.openModuleItem = function () {  
162 - if ($rootScope.refreshcheck == null) {  
163 - $location.path('/');  
164 - }  
165 - var jsContentURL;  
166 - var moduleItemViewDivId;  
167 -  
168 - //1. create a jsPanel and load the module item view  
169 - if ($rootScope.moduleName == ATLAS_ANATOMY) {  
170 -  
171 - jsContentURL = 'app/views/aa/atlas-anatomy-detail.html';  
172 - moduleItemViewDivId = 'aaDetailPageDiv';  
173 - }  
174 - else if ($rootScope.moduleName == CLINICAL_ANIMATION) {  
175 - //to do, in next phase of project  
176 -  
177 - }  
178 - else if ($rootScope.moduleName == CLINICAL_ILLUSTRATION) {  
179 - //to do, in next phase of project  
180 -  
181 - }  
182 -  
183 - //1. create a jsPanel and load the module item view  
184 - if ($rootScope.moduleName == ATLAS_ANATOMY) {  
185 - $.jsPanel({  
186 - id: 'ImagePanel',  
187 - selector: '.aaBodyView',  
188 - theme: 'success',  
189 - currentController: 'TileViewListController',  
190 - parentSlug: 'tile-view-list',  
191 - ajax: {  
192 - url: jsContentURL  
193 - },  
194 - title: $rootScope.getLocalStorageValue("currentViewTitle"),  
195 -  
196 - position: {  
197 - top: 70,  
198 - left: 1,  
199 - },  
200 -  
201 - size: { width: $(window).outerWidth() - 10, height: $(window).outerHeight() - 125 },  
202 -  
203 - });  
204 -  
205 - console.log('jsPanel loaded ImagePanel exist= ' + document.getElementById('ImagePanel'))  
206 -  
207 - //0.3  
208 - var aaViewElement = angular.element(document.getElementById(moduleItemViewDivId));  
209 -  
210 - //0.4 for Opening module item, load it into image  
211 - $rootScope.isLoading = true;  
212 - $('#spinner').css('visibility', 'visible');  
213 - var openedImage = new Image();  
214 - openedImage.id = 'modItemImage';  
215 - openedImage.name = $rootScope.OpenItemImagePath;  
216 -  
217 - openedImage.onload = function () {  
218 - $scope.imageWidth = this.width;  
219 - $scope.imageHeight = this.height;  
220 -  
221 -  
222 - $timeout(function () {  
223 - $compile(aaViewElement.contents())($scope);  
224 -  
225 - //if (document.getElementById('aaDetailPageDiv') != null) {  
226 - if (document.getElementById('aaBodyView') != null) {  
227 -  
228 - //0.4 added some stylesheets  
229 - $('#aaBodyView').css("height", $(window).outerHeight() - 65);  
230 -  
231 - $('#aaBodyView').css("width", $(window).outerWidth() - 15);  
232 -  
233 - $rootScope.canvasDivHeight = $('.jsPanel-content').height() - $('.main2 .stickey-area').height();  
234 -  
235 - $('.canvasDivClass').css("height", $rootScope.canvasDivHeight);  
236 -  
237 - $scope.currentTitleFromJson = $rootScope.getLocalStorageValue("currentViewTitle");  
238 - $("#modItemImage").attr('src', $rootScope.OpenItemImagePath);  
239 -  
240 -  
241 - $rootScope.ViewImageWidth = $("#modItemImage").width();  
242 - $scope.ViewImageWidth = $("#modItemImage").width();  
243 - $scope.ViewImageHeight = $("#modItemImage").height();  
244 -  
245 - $scope.relativeDimesion = 0;  
246 - $("#modItemImage").css("width", $rootScope.ViewImageWidth + "px");  
247 - //0.5 create canvas on the top of image so that I can draw a line over the canvas.  
248 - var canvas = document.createElement('canvas');  
249 - canvas.id = 'aaDetailViewCanvas';  
250 - canvas.className = '.aaCanvas'  
251 - canvas.height = parseInt(($scope.imageHeight));  
252 - canvas.width = parseInt($scope.imageWidth);  
253 - canvas.style.left = '0px';  
254 - canvas.style.top = '0px';  
255 - canvas.style.position = "absolute";  
256 - $("#canvasDiv").append(canvas);  
257 - $scope.context = canvas.getContext("2d")  
258 - //6. Show all pins on AA opened item  
259 - $scope.showAllPins();  
260 - //7. Highlight all system body list in left side  
261 - $scope.highlightBodySystemList();  
262 - }  
263 - $(".slider").slider({  
264 - min: 25,  
265 - max: 100,  
266 - value: 100,  
267 - range: "min",  
268 - orientation: "vertical",  
269 - slide: function (event, ui) {  
270 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
271 - scope.$apply(function () {  
272 - scope.sliderVal = ui.value;  
273 - scope.removeSpeechBubble();  
274 - var relativeWidth = 0;  
275 - var relativeHeight = 0;  
276 - if (ui.value == 25 || ui.value == 40 || ui.value == 55 || ui.value == 70 || ui.value == 85 || ui.value == 100) {  
277 - if (ui.value == 100) {  
278 - relativeWidth = scope.ViewImageWidth;  
279 - relativeHeight = scope.ViewImageHeight  
280 - scope.sliderPercentValue = 1.0;  
281 - }  
282 - else if (ui.value == 85) {  
283 - relativeWidth = scope.ViewImageWidth * 0.85;  
284 - relativeHeight = scope.ViewImageHeight * 0.85;  
285 - scope.sliderPercentValue = 0.85;  
286 -  
287 - } else if (ui.value == 70) {  
288 - relativeWidth = scope.ViewImageWidth * 0.70;  
289 - relativeHeight = scope.ViewImageHeight * 0.70;  
290 - scope.sliderPercentValue = 0.70;  
291 - } else if (ui.value == 55) {  
292 -  
293 - relativeWidth = scope.ViewImageWidth * 0.55;  
294 - relativeHeight = scope.ViewImageHeight * 0.55;  
295 - scope.sliderPercentValue = 0.55;  
296 -  
297 - } else if (ui.value == 40) {  
298 -  
299 - relativeWidth = scope.ViewImageWidth * 0.40;  
300 - relativeHeight = scope.ViewImageHeight * 0.40;  
301 - scope.sliderPercentValue = 0.40;  
302 -  
303 - } else if (ui.value == 25) {  
304 -  
305 - relativeWidth = scope.ViewImageWidth * 0.25;  
306 - relativeHeight = scope.ViewImageHeight * 0.25;  
307 - scope.sliderPercentValue = 0.25;  
308 -  
309 - }  
310 - }  
311 -  
312 - if (ui.value == 25 || ui.value == 40 || ui.value == 55 || ui.value == 70 || ui.value == 85 || ui.value == 100) {  
313 - $("#modItemImage").css("width", relativeWidth + "px");  
314 - $("#modItemImage").css("height", relativeHeight + "px");  
315 - $("#aaDetailViewCanvas").css("width", relativeWidth + "px");  
316 - $("#modItemImage").css("height", relativeHeight + "px");  
317 -  
318 - $("#modItemImage").attr('src', '');  
319 -  
320 -  
321 - $("#aaDetailViewCanvas").remove();  
322 - //0.5 create canvas on the top of image so that I can draw a line over the canvas.  
323 - var canvas = document.createElement('canvas');  
324 - canvas.id = 'aaDetailViewCanvas';  
325 - canvas.className = 'aaCanvas';  
326 - canvas.height = relativeHeight;  
327 - canvas.width = relativeWidth;  
328 - canvas.style.left = '0px';  
329 - canvas.style.top = '0px';  
330 - canvas.style.position = "absolute";  
331 -  
332 - $("#canvasDiv").append(canvas);  
333 - scope.context = canvas.getContext("2d")  
334 - $("#modItemImage").attr('src', scope.OpenItemImagePath);  
335 - scope.isSliderChange = true;  
336 - var btnID = '';  
337 - $("div.tools div:eq(1) div").each(function () {  
338 - if ($(this).find("button").hasClass("btn-primary")) {  
339 - btnID = $(this).find("button").attr("id");  
340 - $('#' + btnID).removeClass("btn-black");  
341 - $('#' + btnID).addClass("btn-primary");  
342 - }  
343 - });  
344 - scope.isSelectedPinBtnClickedAftrSliderCange = true;  
345 - switch (btnID) {  
346 -  
347 - case "hidePinBtn":  
348 - break;  
349 - case "allPinBtn":  
350 - scope.showAllPins();  
351 - break;  
352 - case "selectedPin":  
353 - scope.showAllPins();  
354 - setTimeout(function () {  
355 - console.log(scope.allPinDataArray);  
356 - scope.activePinOnSliderChange();  
357 - }, 1000);  
358 - break;  
359 - }  
360 - }  
361 -  
362 - });  
363 - }  
364 - })  
365 - .slider("pips", {  
366 - rest: "label",  
367 - step: "15"  
368 - });  
369 - }, 500);  
370 - }  
371 -  
372 - openedImage.onerror = loadFailure;  
373 - openedImage.src = $rootScope.OpenItemImagePath;  
374 - }  
375 -  
376 - }  
377 -  
378 - $scope.highlightBodySystemList = function () {  
379 - $rootScope.bodySystemNames = $rootScope.bodySystemName.trim().split(/\s*,\s*/);  
380 - var bodySystemListObj = document.getElementById("bodySystemList").getElementsByTagName("a");  
381 - var bodySystemListlength = bodySystemListObj.length;  
382 - for (var i = 0; i < bodySystemListlength; i++) {  
383 - //var boldTag = lis[i];  
384 - for (var j = 0; j < $rootScope.bodySystemNames.length; j++) {  
385 - if ((bodySystemListObj[i].innerHTML) == ($rootScope.bodySystemNames[j])) {  
386 - $("#" + i).parent().removeClass("disabledSelectedSystem");  
387 -  
388 - }  
389 - }  
390 -  
391 - }  
392 - }  
393 - function loadFailure() {  
394 - console.log('unable to load opened module ietem');  
395 - return true;  
396 - }  
397 -  
398 -  
399 - angular.element(document).ready(function (e) {  
400 - $("#ImagePanel").resize(function () {  
401 - $("#canvasDiv").scrollLeft($rootScope.CanvasDivLeftPosition);  
402 - $("#canvasDiv").scrollTop($rootScope.CanvasDivTopPosition);  
403 - });  
404 - $(document).on("click", "#ImagePanel .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function () {  
405 - $scope.setActiveTab(parseInt($rootScope.getLocalStorageValue("activeTab")));  
406 - $(".tools").css("z-index", "15000");  
407 - $rootScope.selectedBodySystemName = 'All';  
408 - $rootScope.selectedBodySystemId = 0;  
409 - $rootScope.searchSelectedText = '';  
410 -  
411 - });  
412 -  
413 - $(document).on("click", "#dvPrintPreview .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function () {  
414 -  
415 - if ($rootScope.isShowAllPinBtnActiveInPrintPreviewMode == true) {  
416 - $("#allPinBtn").trigger("click");  
417 - $rootScope.isShowAllPinBtnActiveInPrintPreviewMode = false;  
418 - }  
419 - if ($rootScope.isHidePinBtnActiveInPrintPreview == true) {  
420 - $("#hidePinBtn").trigger("click");  
421 - $rootScope.isHidePinBtnActiveInPrintPreview = false;  
422 - }  
423 - if($rootScope.isShowSelectedPinActiveInPrintPrevMode == true)  
424 - {  
425 - $("#selectedPin").trigger("click");  
426 - $rootScope.isShowSelectedPinActiveInPrintPrevMode = false;  
427 - }  
428 - });  
429 -  
430 - })  
431 - $rootScope.aaPinDataArray = [];  
432 - $scope.showAllPins = function () {  
433 -  
434 - $scope.allPinDataArray = [];  
435 - var promise = ModuleService.getPinDataForImage($rootScope.imageName)  
436 -  
437 - .then(  
438 - function (result) {  
439 -  
440 - //load navigator image  
441 - if (result.data.Root._NavigatorImage != undefined) {  
442 - document.getElementById('navimg').src = '~/../content/images/aa/images/navigator/' + result.data.Root._NavigatorImage;  
443 - }  
444 - else {  
445 - document.getElementById('navimg').style.visibility = 'hidden';  
446 - document.getElementById('navigatorBtn').style.visibility = 'hidden';  
447 - document.getElementById('navigatorDiv').style.visibility = 'hidden';  
448 -  
449 - }  
450 -  
451 - //draw pins  
452 - $scope.aaPinData = result.data.Root.Item;  
453 - if ($scope.aaPinData != null && $scope.aaPinData.length > 0) {  
454 - $rootScope.aaPinDataArray = $scope.aaPinData  
455 - angular.forEach($scope.aaPinData, function (value, key) {  
456 - $scope.allPinDataArray.push(value._PinId);  
457 - $scope.drawStaticPinsOnImage('aaDetailViewCanvas', value._PinId, value._PinX, value._PinY, value._HeadX, value._HeadY)  
458 - })  
459 -  
460 -  
461 -  
462 - //load search/vocab data  
463 - $rootScope.loadSearchData();  
464 - }  
465 - },  
466 - function (error) {  
467 -  
468 - console.log(' error in showAllPins: ' + error.statusText);  
469 - }  
470 - )  
471 - if ($scope.isSliderChange == true) {  
472 - $timeout(function () {  
473 - $scope.activePinOnLayerChange();  
474 - }, 1000);  
475 -  
476 - }  
477 -  
478 - }  
479 -  
480 -  
481 - $scope.FilterByImage = function (moduleId, query) {  
482 - $scope.moduleId = moduleId;  
483 - $scope.filterstring = true;  
484 -  
485 - console.log('loadForModuleById is called');  
486 -  
487 - $rootScope.moduleName = Modules[moduleId].Name;  
488 - while ($scope.searchAAListViewData.length) {  
489 - $scope.searchAAListViewData.pop();  
490 - }  
491 -  
492 - var filtercount = 0;  
493 - if (typeof (query.selectedbodyregion) !== "undefined" && (query.selectedbodyregion !== null && query.selectedbodyregion !== "")) {  
494 - filtercount = filtercount + 1;  
495 - localStorage.setItem("CurrentBodyRegion", query.selectedbodyregion);  
496 - }  
497 - else {  
498 - localStorage.setItem("CurrentBodyRegion", '');  
499 - }  
500 -  
501 - if (typeof (query.selectedbodysystem) !== "undefined" && (query.selectedbodysystem !== null && query.selectedbodysystem !== "")) {  
502 - filtercount = filtercount + 1;  
503 - localStorage.setItem("CurrentBodySystem", query.selectedbodysystem);  
504 - }  
505 - else {  
506 - localStorage.setItem("CurrentBodySystem", '');  
507 - }  
508 -  
509 - if (typeof (query.selectedorientation) !== "undefined" && (query.selectedorientation !== null && query.selectedorientation !== '')) {  
510 - filtercount = filtercount + 1;  
511 - localStorage.setItem("CurrentOrientation", query.selectedorientation);  
512 - }  
513 - else {  
514 - localStorage.setItem("CurrentOrientation", '');  
515 - }  
516 -  
517 - if (typeof (query.selectedimagetype) !== "undefined" && (query.selectedimagetype !== null && query.selectedimagetype !== '')) {  
518 - filtercount = filtercount + 1;  
519 - localStorage.setItem("CurrentImageType", query.selectedimagetype);  
520 - }  
521 - else {  
522 - localStorage.setItem("CurrentImageType", '');  
523 - }  
524 -  
525 - var promise = ModuleService.loadModuleDataBasedOnModuleName($scope.moduleName)  
526 - .then(  
527 - function (result) {  
528 - // alert(JSON.stringify($scope.moduleLandingData));  
529 - $scope.moduleLandingData = result;  
530 - $scope.selectedAAListViewData = new jinqJs()  
531 - .from($scope.moduleLandingData.data.root.Item)  
532 - .orderBy([{ field: '_Title', sort: 'asc' }])  
533 - .select();  
534 -  
535 - $('#grid-view').empty();  
536 - //alert(JSON.stringify($scope.selectedAAListViewData))  
537 - angular.forEach($scope.selectedAAListViewData, function (value, key) {  
538 -  
539 - var selectimg = true;  
540 - var count = 0;  
541 -  
542 -  
543 - if (typeof (query.selectedbodyregion) !== "undefined" && (query.selectedbodyregion !== null && query.selectedbodyregion !== "")) {  
544 - var posbodyregion = value._BodyRegion.indexOf((query.selectedbodyregion.trim()));  
545 - if (posbodyregion > -1) {  
546 - selectimg = true;  
547 - count = count + 1;  
548 - }  
549 - else {  
550 - selectimg = false;  
551 - count = count - 1;  
552 - }  
553 -  
554 - }  
555 -  
556 - if (typeof (query.selectedbodysystem) !== "undefined" && (query.selectedbodysystem !== null && query.selectedbodysystem !== "")) {  
557 - var posbodysystem = value._BodySystem.indexOf(query.selectedbodysystem);  
558 - if (posbodysystem > -1) {  
559 - count = count + 1;  
560 - selectimg = true;  
561 - } else {  
562 - selectimg = false;  
563 - count = count - 1;  
564 - }  
565 - }  
566 -  
567 - if (typeof (query.selectedorientation) !== "undefined" && (query.selectedorientation !== null && query.selectedorientation !== "")) {  
568 - var posorientation = value._ViewOrientation.indexOf(query.selectedorientation);  
569 - if (posorientation > -1) {  
570 - count = count + 1;  
571 - selectimg = true;  
572 -  
573 - } else {  
574 - selectimg = false;  
575 - count = count - 1;  
576 - }  
577 -  
578 - }  
579 -  
580 - if (typeof (query.selectedimagetype) !== "undefined" && (query.selectedimagetype !== null && query.selectedimagetype !== "")) {  
581 - var posimagetype = value._ImageType.indexOf(query.selectedimagetype);  
582 - if (posimagetype > -1) {  
583 - count = count + 1;  
584 - selectimg = true;  
585 -  
586 - } else {  
587 - selectimg = false;  
588 - count = count - 1;  
589 - }  
590 -  
591 - }  
592 -  
593 - if (selectimg === true && count >= filtercount) {  
594 -  
595 - $scope.imagePath = "../content/images/aa/thumbnails/" + value._TileImageName;  
596 -  
597 -  
598 - var $el = $('<div id="' + value._Title + '" class="col-sm-3 col-lg-2" title = "' + value._Title + '" data-ng-click="openModuleItemView($event)">'  
599 - + '<div class="thumbnail" ><a href="#">'  
600 - + '<img class="tinyImg" id="' + value._Title + '"ng-src="' + $scope.imagePath + '" alt="" title="" >'  
601 - + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');  
602 -  
603 -  
604 - $compile($el)($scope);  
605 -  
606 - $(".sidebar").mCustomScrollbar({  
607 - autoHideScrollbar: true,  
608 - //theme:"rounded"  
609 - });  
610 -  
611 -  
612 - $scope.searchAAListViewData.push(  
613 - {  
614 - "_Id": value._Id,  
615 - "_ImageId": value._ImageId,  
616 - "_Title": value._Title,  
617 - "_ImageName": value._contentImage,  
618 - "_TileImageName": value._ThumbnailImage,  
619 - "_BodySystem": value._BodySystem,  
620 - "_BodyRegion": value._BodyRegion,  
621 - "_ViewOrientation": value._ViewOrientation,  
622 - "_ImageType": value._ImageType  
623 - //"$$hashKey": value._Summary  
624 -  
625 - });  
626 - console.log($scope.searchAAListViewData);  
627 - if ($('#searchItem').length > 0)  
628 - $('#searchItem').remove();  
629 - }  
630 - });  
631 -  
632 - //Show Error Message in case of gridview/ ListView [if no data is found]  
633 - if ($scope.searchAAListViewData.length == 0) {  
634 - var $el = $('<div class="col-sm-12" style="padding-left:25px;padding-top:10px;"><strong style="color:white">No illustration found for the selected search criteria!</strong></div>').appendTo('#grid-view');  
635 - $compile($el)($scope);  
636 - $('table > #ListViewDiv > #searchItem').remove();  
637 -  
638 - $('#ListViewDiv').append('<tr id="searchItem"><td colspan="6"><strong style="color:black;">No illustration found for the selected search criteria!</strong></td></tr>');  
639 - }  
640 - //console.log(JSON.stringify(result, null, 4));  
641 - console.log('SearchAAListViewData--' + $scope.searchAAListViewData);  
642 - },  
643 - function (error) {  
644 - // handle errors here  
645 - console.log(' error: ' + error.statusText);  
646 - }  
647 - )  
648 - }  
649 -  
650 - $scope.Reset = function (moduleId, query) {  
651 -  
652 - query.selectedbodyregion = "";  
653 - query.selectedbodysystem = "";  
654 - query.selectedorientation = "";  
655 - query.selectedimagetype = "";  
656 - query.selectedspecialty = "";  
657 -  
658 -  
659 - //set localstorage values  
660 - localStorage.setItem("CurrentBodyRegion", '');  
661 - localStorage.setItem("CurrentBodySystem", '');  
662 - localStorage.setItem("CurrentOrientation", '');  
663 - localStorage.setItem("CurrentImageType", '');  
664 - //localStorage.setItem("CISelectedRowId", "");  
665 - //localStorage.setItem("CIListViewScroll", '');  
666 -  
667 - if ($('.selected').hasClass("selected")) { $('.selected').removeClass("selected"); }  
668 -  
669 - $('#ListViewDiv').scrollTop(0);  
670 -  
671 - if ($('#demoView').length > 0)  
672 - $('#demoView').remove();  
673 - // $scope.HideListViewDiv();  
674 -  
675 - $scope.filterstring = false;  
676 - //while ($scope.searchCIListViewData.length) {  
677 - // $scope.searchCIListViewData.pop();  
678 - //}  
679 -  
680 - $scope.FilterByImage(1, query);  
681 -  
682 - }  
683 -  
684 - $scope.showSelectedSystemPins = function (event) {  
685 - var bodySystemListObj = document.getElementById("bodySystemList").getElementsByTagName("a");  
686 - var bodySystemListlength = bodySystemListObj.length;  
687 - for (var i = 0; i < bodySystemListlength; i++) {  
688 -  
689 - $("#" + i).parent().removeClass("activeAASystemSelect");  
690 - }  
691 - $("#" + event.currentTarget.id).parent().addClass("activeAASystemSelect");  
692 -  
693 - $rootScope.isLoading = true;  
694 - $('#spinner').css('visibility', 'visible');  
695 -  
696 - $scope.removeSpeechBubble();  
697 - if (event.currentTarget.id == "0") {  
698 -  
699 - $scope.selectedSystemName = null;  
700 - if ($scope.isHidePinBtnClicked) {  
701 -  
702 - // $scope.showAllPinsAfterHide($scope.aaPinData);  
703 - $scope.showAllPinsAfterHide();  
704 - }  
705 - else {  
706 - $scope.showAllPins();  
707 - }  
708 - }  
709 - else {  
710 -  
711 - $scope.selectedSystemName = event.currentTarget.title;  
712 - // get termText info  
713 - var promise = ModuleService.getTermTextDataForPin($scope.moduleName)  
714 - .then(  
715 - function (response) {  
716 -  
717 - $scope.TermInfo = response.data.Terms.Term;  
718 -  
719 - //on gettng all required data, draw pins  
720 - if ($scope.aaPinData != null && $scope.aaPinData.length > 0) {  
721 -  
722 - $scope.selectedSystemPinData = new jinqJs()  
723 - .from($scope.aaPinData)  
724 - .where("_BodySystemName == " + $scope.selectedSystemName)  
725 - .select();  
726 - if ($scope.isHidePinBtnClicked) {  
727 - // $scope.showAllPinsAfterHide($scope.selectedSystemPinData);  
728 - $scope.showAllPinsAfterHide();  
729 -  
730 - }  
731 - else {  
732 - //remove other system pins  
733 - if ($scope.selectedSystemPinData != null && $scope.selectedSystemPinData.length > 0) {  
734 -  
735 - angular.forEach($scope.aaPinData, function (aaPinDataValue, aaPinDataKey) {  
736 -  
737 - if (aaPinDataValue._BodySystemName != $scope.selectedSystemName)  
738 - $scope.removePin('aaDetailViewCanvas', aaPinDataValue._PinId);  
739 - })  
740 -  
741 - angular.forEach($scope.selectedSystemPinData, function (value, key) {  
742 -  
743 -  
744 - $scope.drawStaticPinsOnImage('aaDetailViewCanvas', value._PinId, value._PinX, value._PinY, value._HeadX, value._HeadY)  
745 -  
746 - })  
747 - //show annotation on first pin of the sysyem  
748 - $scope.showAnnotation($scope.selectedSystemPinData, false, false, false);  
749 - }  
750 - }  
751 - }  
752 - },  
753 - function (error) {  
754 - // handle errors here  
755 - console.log(' error: ' + error.statusText);  
756 - }  
757 - )  
758 -  
759 - }  
760 - }  
761 -  
762 - $scope.showAnnotation = function (selectedPinData, isCtrlPressed, isPinClicked, isItemSearched) {  
763 - $scope.clickedPins = [];  
764 - $scope.selectedPin = [];  
765 - var isSameTermWithMultiPin = false;  
766 - var firstPinId = selectedPinData[0]._PinId;  
767 - var pinTermNumber = selectedPinData[0]._TermId;  
768 -  
769 - //check if other pin have same termNumber  
770 - if ($scope.aaPinData != null && $scope.aaPinData.length > 0) {  
771 -  
772 - var pinDataWithFirstTermNumber = new jinqJs()  
773 - .from($scope.aaPinData)  
774 - .where("_TermId == " + pinTermNumber)  
775 - .select();  
776 -  
777 - $scope.MultiLanguageAnnationArray = [];  
778 -  
779 - $scope.GetAnnotationBasedOnActualTermNo(pinTermNumber);  
780 -  
781 - if (isCtrlPressed) {  
782 -  
783 - }  
784 - else {  
785 - if (isPinClicked || isItemSearched) {  
786 - var existingSpeechBubble = $("div[id*='speechBubble']");  
787 - for (var i = 0; i < existingSpeechBubble.length; i++) {  
788 - existingSpeechBubble[i].parentNode.removeChild(existingSpeechBubble[i]);  
789 -  
790 - //make all pin heads grey  
791 - var radial = $('#aaDetailViewCanvas').createGradient({  
792 - x1: 50, y1: 50,  
793 - x2: 50, y2: 50,  
794 - r1: 10, r2: 30,  
795 - c1: 'rgba(100, 50, 0,0)',  
796 - c2: 'rgb(216, 216, 216)'  
797 - });  
798 -  
799 -  
800 - $('#aaDetailViewCanvas').setLayers({  
801 - fillStyle: radial,  
802 - }).drawLayers();  
803 - }  
804 -  
805 - var existingSpeechBubbleLine = $("div[id*='speechBubbleLine']");  
806 - for (var i = 0; i < existingSpeechBubbleLine.length; i++) {  
807 - existingSpeechBubbleLine[i].parentNode.removeChild(existingSpeechBubbleLine[i]);  
808 - }  
809 - var speechBubbleDraggedLine = $("div[id*='speechBubbleDraggedLine']");  
810 - for (var i = 0; i < speechBubbleDraggedLine.length; i++) {  
811 - speechBubbleDraggedLine[i].parentNode.removeChild(speechBubbleDraggedLine[i]);  
812 - }  
813 - }  
814 - }  
815 - if (pinDataWithFirstTermNumber.length > 1) {  
816 - isSameTermWithMultiPin = true;  
817 - }  
818 -  
819 - angular.forEach(pinDataWithFirstTermNumber, function (value, key) {  
820 - $scope.selectedPin.push(value._PinId);  
821 - $scope.clickedPins.push({ 'id': value._PinId });  
822 - var headX = (parseInt(value._HeadX));  
823 - var headY = (parseInt(value._HeadY));  
824 - $scope.createSpeechBubble(parseInt(headX) + 10, parseInt(headY) + 10, value._PinId, isCtrlPressed, isPinClicked, isSameTermWithMultiPin);  
825 - })  
826 -  
827 - }  
828 -  
829 - $rootScope.isLoading = false;  
830 - $('#spinner').css('visibility', 'hidden');  
831 - // $scope.MultiLanguageAnnationArray.push($rootScope.annotationText[i])  
832 - }  
833 -  
834 - $scope.removeSpeechBubble = function () {  
835 -  
836 -  
837 - //clear speech bubbles  
838 - var speechBubbles = $("div[id*='speechBubble']");  
839 - if (speechBubbles != null || speechBubbles != undefined && speechBubbles.length > 0) {  
840 - for (var j = 0; j < speechBubbles.length; j++) {  
841 -  
842 - speechBubbles[j].parentNode.removeChild(speechBubbles[j]);  
843 - }  
844 - }  
845 - var speechBubbleLines = $("div[id*='speechBubbleLine']");  
846 - if (speechBubbleLines != null || speechBubbleLines != undefined && speechBubbleLines.length > 0) {  
847 - for (var j = 0; j < speechBubbleLines.length; j++) {  
848 -  
849 - speechBubbleLines[j].parentNode.removeChild(speechBubbleLines[j]);  
850 - }  
851 - }  
852 -  
853 - var speechBubbleDraggedLines = $("div[id*='speechBubbleDraggedLine']");  
854 - if (speechBubbleDraggedLines != null || speechBubbleDraggedLines != undefined && speechBubbleDraggedLines.length > 0) {  
855 - for (var j = 0; j < speechBubbleDraggedLines.length; j++) {  
856 -  
857 - speechBubbleDraggedLines[j].parentNode.removeChild(speechBubbleDraggedLines[j]);  
858 - }  
859 - }  
860 - };  
861 -  
862 - $scope.showSpeechBubble = function () {  
863 -  
864 -  
865 - //clear speech bubbles  
866 - var speechBubbles = $("div[id*='speechBubble']");  
867 - if (speechBubbles != null || speechBubbles != undefined && speechBubbles.length > 0) {  
868 - for (var j = 0; j < speechBubbles.length; j++) {  
869 -  
870 - document.getElementById(speechBubbles[j].id).style.visibility = 'visible';  
871 - }  
872 - }  
873 - var speechBubbleLines = $("div[id*='speechBubbleLine']");  
874 - if (speechBubbleLines != null || speechBubbleLines != undefined && speechBubbleLines.length > 0) {  
875 - for (var j = 0; j < speechBubbleLines.length; j++) {  
876 -  
877 - document.getElementById(speechBubbleLines[j].id).style.visibility = 'visible';  
878 - }  
879 - }  
880 -  
881 - var speechBubbleDraggedLines = $("div[id*='speechBubbleDraggedLine']");  
882 - if (speechBubbleDraggedLines != null || speechBubbleDraggedLines != undefined && speechBubbleDraggedLines.length > 0) {  
883 - for (var j = 0; j < speechBubbleDraggedLines.length; j++) {  
884 -  
885 - document.getElementById(speechBubbleDraggedLines[j].id).style.visibility = 'visible';  
886 - }  
887 - }  
888 - };  
889 -  
890 - $scope.hideSpeechBubble = function () {  
891 -  
892 -  
893 - //clear speech bubbles  
894 - var speechBubbles = $("div[id*='speechBubble']");  
895 - if (speechBubbles != null || speechBubbles != undefined && speechBubbles.length > 0) {  
896 - for (var j = 0; j < speechBubbles.length; j++) {  
897 -  
898 - document.getElementById(speechBubbles[j].id).style.visibility = 'hidden';  
899 - }  
900 - }  
901 - var speechBubbleLines = $("div[id*='speechBubbleLine']");  
902 - if (speechBubbleLines != null || speechBubbleLines != undefined && speechBubbleLines.length > 0) {  
903 - for (var j = 0; j < speechBubbleLines.length; j++) {  
904 -  
905 - document.getElementById(speechBubbleLines[j].id).style.visibility = 'hidden';  
906 - }  
907 - }  
908 -  
909 - var speechBubbleDraggedLines = $("div[id*='speechBubbleDraggedLine']");  
910 - if (speechBubbleDraggedLines != null || speechBubbleDraggedLines != undefined && speechBubbleDraggedLines.length > 0) {  
911 - for (var j = 0; j < speechBubbleDraggedLines.length; j++) {  
912 -  
913 - document.getElementById(speechBubbleDraggedLines[j].id).style.visibility = 'hidden';  
914 - }  
915 - }  
916 - };  
917 -  
918 -  
919 - $scope.createSpeechBubble = function (x, y, PinId, isCtrlPressed, isPinClicked, isSameTermWithMultiPin) {  
920 -  
921 - $scope.longestAnnotation = $scope.MultiLanguageAnnationArray.reduce(function (firstAnnotation, seconAnnotation) { return firstAnnotation.length > seconAnnotation.length ? firstAnnotation : seconAnnotation; });  
922 -  
923 - $scope.createSpeechBubbleBasedOnAnnotationLength(x, y, PinId);  
924 -  
925 - $('#speechBubble').draggable(  
926 - {  
927 - drag: function (evt) {  
928 - $("#dot").css("visibility", "hidden");  
929 - var verticalScrollPosition = canvasDiv.scrollTop;  
930 - var horizontlScrollPosition = canvasDiv.scrollLeft;  
931 - $scope.angle(x * $scope.sliderPercentValue, y * $scope.sliderPercentValue, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, true);  
932 - },  
933 - });  
934 -  
935 - }  
936 - $scope.sliderVal = 100;  
937 - $scope.createSpeechBubbleBasedOnAnnotationLength = function (x, y, PinId) {  
938 -  
939 - x = x * $scope.sliderPercentValue;  
940 - y = y * $scope.sliderPercentValue;  
941 -  
942 - var speechBubbleHTML = '<div id="speechBubbleLine' + PinId + '" style="position:absolute;height:15px;width:35px;display:none;z-index:13000;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);"></div>'  
943 - + '<div id="speechBubble' + PinId + '" class="common-drag" style="height:auto!important;z-index:13000;margin-left:25px;border:1px solid #000;padding:5px 10px;position:absolute;color:#fff;text-align:left;font-size:12px;background-color:#19100e;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;font-weight:bold;">'  
944 - + '<span style="position:absolute;right:-3px;top:-4px;color:#ffffff;cursor:pointer;">'  
945 - + '<img id="closeBtn' + PinId + ' " class="crossDiv_temp" style="width:18px" src=' + $rootScope.closeBtnImgPath + '></span></div>'  
946 -  
947 - + '<div style="position:absolute;border:1px solid #000;display:none;z-index:12000;" id="speechBubbleDraggedLine' + PinId + '">'  
948 - + '</div>';  
949 -  
950 - //Issue #7286 :Undefined annotation should not appear  
951 - for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {  
952 - var MultipleLanguage = $scope.MultiLanguageAnnationArray[i];  
953 - }  
954 -  
955 - if (MultipleLanguage == undefined) {  
956 - console.log("No text is found");  
957 - } else {  
958 - $('#canvasDiv').append(speechBubbleHTML);  
959 -  
960 - if ($scope.MultiLanguageAnnationArray.length > 0) {  
961 - for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {  
962 - var MultipleLanguage = $scope.MultiLanguageAnnationArray[i];  
963 - $rootScope.clickedPinAnnotation = $scope.MultiLanguageAnnationArray[0];  
964 - $("#speechBubble" + PinId).append("<p style='margin-bottom:2px;'>" + MultipleLanguage + "</p>");  
965 - }  
966 - }  
967 - else {  
968 - console.log('MultiLanguageAnnationArray.length is :' + $scope.MultiLanguageAnnationArray.length)  
969 - }  
970 -  
971 -  
972 -  
973 -  
974 -  
975 - if ($scope.longestAnnotation != null || $scope.longestAnnotation != undefined) {  
976 - if ($scope.longestAnnotation.length <= 10) {  
977 -  
978 -  
979 - $("#speechBubble").css("width", "100px");  
980 -  
981 - }  
982 -  
983 - else if ($scope.longestAnnotation.length > 10 && $scope.longestAnnotation.length <= 17) {  
984 -  
985 -  
986 -  
987 - $("#speechBubble").css("width", "140px");  
988 -  
989 - }  
990 - else if ($scope.longestAnnotation.length > 17 && $scope.longestAnnotation.length <= 26) {  
991 -  
992 -  
993 - $("#speechBubble").css("width", "195px");  
994 -  
995 - }  
996 - else if ($scope.longestAnnotation.length > 26 && $scope.longestAnnotation.length <= 34) {  
997 -  
998 - $("#speechBubble").css("width", "248px");  
999 -  
1000 - }  
1001 - else if ($scope.longestAnnotation.length > 34 && $scope.longestAnnotation.length <= 44) {  
1002 -  
1003 -  
1004 - $("#speechBubble").css("width", "300px");  
1005 - }  
1006 -  
1007 - else if ($scope.longestAnnotation.length > 44 && $scope.longestAnnotation.length <= 54) {  
1008 -  
1009 - $("#speechBubble").css("width", "370px");  
1010 - }  
1011 -  
1012 - else if ($scope.longestAnnotation.length > 54 && $scope.longestAnnotation.length <= 69) {  
1013 - $("#speechBubble").css("width", "450px");  
1014 - }  
1015 - else if ($scope.longestAnnotation.length > 69 && $scope.longestAnnotation.length <= 75) {  
1016 - $("#speechBubble").css("width", "510px");  
1017 - }  
1018 - else {  
1019 - $("#speechBubble").css("width", ($scope.longestAnnotation.length) + "%");  
1020 - }  
1021 - }  
1022 - }  
1023 - var speechBubbleDims = [];  
1024 -  
1025 - $rootScope.speechBubbleDimaensions.push({ "currentX": x, "currentY": y, "id": PinId });  
1026 - speechBubbleDims.push({ currentX: x, currentY: y });  
1027 - document.getElementById('speechBubbleLine' + PinId + '').style.display = 'block';  
1028 - document.getElementById('speechBubbleLine' + PinId + '').style.left = ((speechBubbleDims[0].currentX - 12)) + 'px';  
1029 - if ($scope.sliderVal == 25) {  
1030 - document.getElementById('speechBubbleLine' + PinId + '').style.top = ((speechBubbleDims[0].currentY + 5)) + 'px';  
1031 - }  
1032 - else {  
1033 - document.getElementById('speechBubbleLine' + PinId + '').style.top = ((speechBubbleDims[0].currentY)) + 'px';  
1034 - }  
1035 - document.getElementById('speechBubble' + PinId + '').style.display = 'block';  
1036 - document.getElementById('speechBubble' + PinId + '').style.left = (speechBubbleDims[0].currentX - 4) + 'px';  
1037 - document.getElementById('speechBubble' + PinId + '').style.top = (speechBubbleDims[0].currentY) + 'px';  
1038 - $('.common-drag').draggable(  
1039 - {  
1040 -  
1041 - drag: function (evt) {  
1042 -  
1043 - var verticalScrollPosition = document.getElementById('canvasDiv').scrollTop;  
1044 - var horizontlScrollPosition = document.getElementById('canvasDiv').scrollLeft;  
1045 - var clickedSpeechBubbleId = $(this).attr("id");  
1046 -  
1047 - var clickedPinId = clickedSpeechBubbleId.substring(12, clickedSpeechBubbleId.length);  
1048 -  
1049 - $("#speechBubbleLine" + clickedPinId).css("visibility", "hidden");  
1050 - $("#speechBubbleLine" + clickedPinId).css("display", "none");  
1051 -  
1052 - for (var i = 0; i <= $rootScope.speechBubbleDimaensions.length - 1; i++) {  
1053 - if ($rootScope.speechBubbleDimaensions[i].id == clickedPinId) {  
1054 - $scope.angle(clickedPinId, $rootScope.speechBubbleDimaensions[i].currentX, $rootScope.speechBubbleDimaensions[i].currentY, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, true);  
1055 - }  
1056 - }  
1057 -  
1058 - },  
1059 - });  
1060 - $('.crossDiv_temp').on('click', function (evt) {  
1061 -  
1062 - var imgId = $(this).attr("id");  
1063 - var pinId = imgId.substring(8, imgId.length);  
1064 - $('#speechBubble' + pinId).remove();  
1065 - $("#speechBubbleDraggedLine" + pinId).remove();  
1066 - $("#speechBubbleLine" + pinId).remove();  
1067 -  
1068 - //make all pin heads grey  
1069 - var pinHeadName = 'PinArc_' + pinId;  
1070 - var radial = $('#aaDetailViewCanvas').createGradient({  
1071 - x1: 50, y1: 50,  
1072 - x2: 50, y2: 50,  
1073 - r1: 10, r2: 30,  
1074 - c1: 'rgba(100, 50, 0,0)',  
1075 - c2: 'rgb(216, 216, 216)'  
1076 - });  
1077 -  
1078 -  
1079 - $('#aaDetailViewCanvas').setLayer(pinHeadName, {  
1080 - fillStyle: radial,  
1081 - }).drawLayers();  
1082 - });  
1083 -  
1084 - //make the head green  
1085 - var radialAfterClick = $('#aaDetailViewCanvas').createGradient({  
1086 - x1: 50, y1: 50,  
1087 - x2: 50, y2: 50,  
1088 - r1: 10, r2: 30,  
1089 - c1: 'rgba(100, 50, 0,0)',  
1090 - c2: 'rgb(126, 187, 83)'  
1091 - });  
1092 - var pinHeadName = 'PinArc_' + PinId;  
1093 - var pin = $('#aaDetailViewCanvas').getLayer(pinHeadName);  
1094 - // pin.fillStyle = radialAfterClick;  
1095 -  
1096 - $('#aaDetailViewCanvas').setLayer(pinHeadName, {  
1097 - fillStyle: radialAfterClick,  
1098 - }).drawLayers();  
1099 - }  
1100 -  
1101 -  
1102 - $scope.angle = function (id, cx, cy, ex, ey, BoolValues) {  
1103 -  
1104 - var dy = ey - cy;  
1105 - var dx = ex - cx;  
1106 - var theta = 0;  
1107 - if (dx < 0) {  
1108 - theta = Math.atan(dy / dx) * (180 / Math.PI);  
1109 - theta = theta + 180;  
1110 -  
1111 - }  
1112 - else if (dy < 0) {  
1113 - theta = Math.atan(dy / dx) * (180 / Math.PI);  
1114 - theta = theta + 360;  
1115 -  
1116 - }  
1117 - else {  
1118 - theta = Math.atan(dy / dx) * (180 / Math.PI);  
1119 - }  
1120 -  
1121 - var d = Math.sqrt((cx - ex) * (cx - ex) + (cy - ey) * (cy - ey));  
1122 - var e = cy;  
1123 - var f = cx;  
1124 -  
1125 - if (BoolValues == true) {  
1126 - if ($scope.sliderVal == 40) {  
1127 - $("#speechBubbleDraggedLine" + id).css({ 'display': 'block', 'width': d + 'px', 'top': (e - 5) + 'px', 'left': (f - 5) + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });  
1128 - }  
1129 - else if ($scope.sliderVal == 25) {  
1130 - $("#speechBubbleDraggedLine" + id).css({ 'display': 'block', 'width': d + 'px', 'top': (e - 2) + 'px', 'left': (f - 2) + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });  
1131 - }  
1132 - else {  
1133 - $("#speechBubbleDraggedLine" + id).css({ 'display': 'block', 'width': d + 'px', 'top': (e - 10) + 'px', 'left': (f - 5) + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });  
1134 - }  
1135 -  
1136 - }  
1137 - else {  
1138 - $("#bord_annotation").css({ 'display': 'block', 'width': d + 'px', 'top': e + 'px', 'left': f + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });  
1139 - }  
1140 -  
1141 -  
1142 -  
1143 - }  
1144 -  
1145 -  
1146 - $scope.drawStaticPinsOnImage = function (canvasId, PinId, offsetX1, offsetY1, x, y) {  
1147 - $scope.clickedPins = [];  
1148 - // if ($scope.isSliderChange == true) {  
1149 - console.log('isSliderrChange')  
1150 - var radial = $('#' + canvasId).createGradient({  
1151 - x1: 50, y1: 50,  
1152 - x2: 50, y2: 50,  
1153 - r1: 10, r2: 30,  
1154 - c1: 'rgba(100, 50, 0,0)',  
1155 - c2: 'rgb(216, 216, 216)'  
1156 - });  
1157 - $('#' + canvasId).drawLine({  
1158 - layer: true,  
1159 - name: "Pin_" + PinId,  
1160 - groups: ["Pin_" + PinId],  
1161 - strokeStyle: '#565656',  
1162 - strokeWidth: 2,  
1163 - visible: true,  
1164 - x1: offsetX1 * $scope.sliderPercentValue, y1: offsetY1 * $scope.sliderPercentValue,  
1165 - x2: x * $scope.sliderPercentValue, y2: y * $scope.sliderPercentValue,  
1166 -  
1167 -  
1168 - }).drawArc({  
1169 - name: "PinArc_" + PinId,  
1170 - layer: true,  
1171 - groups: ["Pin_" + PinId],  
1172 - strokeStyle: 'grey',  
1173 - strokeWidth: 2,  
1174 - visible: true,  
1175 - fillStyle: radial,  
1176 - x: x * $scope.sliderPercentValue, y: y * $scope.sliderPercentValue,  
1177 - radius: 5 * $scope.sliderPercentValue,  
1178 -  
1179 - click: function (clickedPin) {  
1180 - if (clickedPin.event.ctrlKey == false) {  
1181 - $scope.clickedPins = [];  
1182 - }  
1183 - var pinID = (clickedPin.name).substring(7, (clickedPin.name).length);  
1184 - var pinData = new jinqJs()  
1185 - .from($scope.aaPinData)  
1186 - .where("_PinId == " + pinID)  
1187 - .select();  
1188 -  
1189 -  
1190 - var pinTermNumber = pinData[0]._TermId;  
1191 -  
1192 - var pinWithSameTerm = new jinqJs()  
1193 -  
1194 - .from($scope.aaPinData)  
1195 - .where("_TermId == " + pinTermNumber)  
1196 - .select();  
1197 -  
1198 -  
1199 - if (pinWithSameTerm != undefined && pinWithSameTerm != null && pinWithSameTerm.length > 0) {  
1200 -  
1201 - for (var i = 0; i < pinWithSameTerm.length; i++) {  
1202 -  
1203 - $scope.clickedPins.push({ 'id': pinWithSameTerm[i]._PinId })  
1204 - }  
1205 -  
1206 - }  
1207 - $scope.isSelectedPinBtnClickedAftrSliderCange = false;  
1208 - var selectedPinData = new jinqJs()  
1209 - .from($scope.aaPinData)  
1210 - .where("_PinId == " + pinID)  
1211 - .select();  
1212 - if (clickedPin.event.ctrlKey == true) {  
1213 -  
1214 - $scope.activePinArray.push(clickedPin.name);  
1215 - var radialAfterClick = $('#aaDetailViewCanvas').createGradient({  
1216 - x1: 50, y1: 50,  
1217 - x2: 50, y2: 50,  
1218 - r1: 10, r2: 30,  
1219 - c1: 'rgba(100, 50, 0,0)',  
1220 - c2: 'rgb(126, 187, 83)'  
1221 - });  
1222 - clickedPin.fillStyle = radialAfterClick;  
1223 - $scope.showAnnotation(selectedPinData, true, true, false);  
1224 - }  
1225 - else {  
1226 - $scope.activePinArray = [];  
1227 - $scope.activePinArray.push(clickedPin.name);  
1228 - var radial = $('#aaDetailViewCanvas').createGradient({  
1229 - x1: 50, y1: 50,  
1230 - x2: 50, y2: 50,  
1231 - r1: 10, r2: 30,  
1232 - c1: 'rgba(100, 50, 0,0)',  
1233 - c2: 'rgb(216, 216, 216)'  
1234 - });  
1235 -  
1236 -  
1237 - $('#aaDetailViewCanvas').setLayers({  
1238 - fillStyle: radial,  
1239 - }).drawLayers();  
1240 -  
1241 - //change the head color to green  
1242 - var radialAfterClick = $('#aaDetailViewCanvas').createGradient({  
1243 - x1: 50, y1: 50,  
1244 - x2: 50, y2: 50,  
1245 - r1: 10, r2: 30,  
1246 - c1: 'rgba(100, 50, 0,0)',  
1247 - c2: 'rgb(126, 187, 83)'  
1248 - });  
1249 -  
1250 - clickedPin.fillStyle = radialAfterClick;  
1251 - $scope.showAnnotation(selectedPinData, false, true, false);  
1252 -  
1253 - }  
1254 -  
1255 - }  
1256 -  
1257 - }).drawLayers();  
1258 - }  
1259 -  
1260 -  
1261 - $scope.getMousePos = function (evt) {  
1262 -  
1263 - return {  
1264 - x: Math.round(evt.pageX - $('#canvasDiv').offset().left),  
1265 - y: Math.round(evt.pageY - $('#canvasDiv').offset().top)  
1266 - }  
1267 - }  
1268 -  
1269 - $scope.removePin = function (canvasId, pinId) {  
1270 -  
1271 - var pinName = 'Pin_' + pinId;  
1272 - var pinArcName = 'PinArc_' + pinId;  
1273 - $('#' + canvasId).removeLayer(pinName).drawLayers();  
1274 - $('#' + canvasId).removeLayer(pinArcName).drawLayers();  
1275 -  
1276 - $scope.removeSpeechBubble();  
1277 -  
1278 - //$rootScope.isSliderChanged = true;  
1279 - //$('#aaDetailViewCanvas').removeLayers();  
1280 - }  
1281 -  
1282 - $rootScope.$on('annotationToolEvent', function (event, data) {  
1283 - $('#editstylebackgroundcolor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(255,255,255)")  
1284 - $('#editstylebackgroundcolor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });  
1285 - $('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(0,0,0)")  
1286 - $('#outlineColor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });  
1287 -  
1288 - $("#canvas").css("display", "block");  
1289 - $("#canvasPaint").css("display", "block");  
1290 - $rootScope.onDrawingCanvasClick();  
1291 - $rootScope.FreeStylePaint();  
1292 - });  
1293 -  
1294 - $rootScope.loadSearchData = function () {  
1295 -  
1296 - //$("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });  
1297 - var imageId = $rootScope.imageId;  
1298 - var promise = ModuleService.getTermTextDataForAAImage(imageId)  
1299 - .then(  
1300 - function (response) {  
1301 -  
1302 - $scope.AAPinTermData = response.data.PinTermData.TermData;  
1303 -  
1304 - $rootScope.isLoading = false;  
1305 - $('#setting-spinner').css('visibility', 'hidden');  
1306 -  
1307 - $scope.pinTermData = [];  
1308 - var primaryLexicon = $rootScope.lexiconLanguageArray[0].id;  
1309 - $scope.matchedLanguageTermData = new jinqJs()  
1310 - .from($scope.AAPinTermData)  
1311 - .where('_LanguageId == ' + primaryLexicon)  
1312 - .select();  
1313 - var sortedTermTextArray = [];  
1314 - for (var i = 0; i < $scope.matchedLanguageTermData.length; i++) {  
1315 - sortedTermTextArray.push($scope.matchedLanguageTermData[i]._TermText);  
1316 - sortedTermTextArray.sort();  
1317 - }  
1318 -  
1319 - for (var i = 0; i <= sortedTermTextArray.length - 1; i++) {  
1320 - for (var j = 0; j <= $scope.matchedLanguageTermData.length - 1; j++) {  
1321 - if ($scope.matchedLanguageTermData[j]._TermText == sortedTermTextArray[i]) {  
1322 - $scope.pinTermData.push({ "LanguageId": $scope.matchedLanguageTermData[j]._LanguageId, "TermNumber": $scope.matchedLanguageTermData[j]._TermNumber, "TermTxt": $scope.matchedLanguageTermData[j]._TermText });  
1323 - break;  
1324 - }  
1325 - }  
1326 - }  
1327 -  
1328 -  
1329 - $scope.$watch('$scope.pinTermData', function (newValue, oldValue, scope) {  
1330 -  
1331 - if (($('#termlistfilter').html() != ""))  
1332 -  
1333 - $('#termlistfilter').empty();  
1334 - if ($scope.pinTermData.length > 0) {  
1335 - $timeout(function () {  
1336 - console.log('pinTermData= ' + $scope.pinTermData.length);  
1337 - $('#termList').empty();  
1338 - $('#termlistfilter').empty();  
1339 - for (var j = 0; j < $scope.pinTermData.length; j++) {  
1340 - var $el = $('<li><a id= "' + $scope.pinTermData[j].TermNumber + '" href="" onclick="onSearchItemSelection(this.id)" >' + $scope.pinTermData[j].TermTxt + '</a></li>').appendTo('#termlistfilter')  
1341 - //var $el = $('<li><a id= "' + $scope.pinTermData[j].TermNumber + '" href="" >' + $scope.pinTermData[j].TermTxt + '</a></li>').appendTo('#termlistfilter')  
1342 - $compile($el)($scope);  
1343 - var $selectedOptions = $('<option title= "' + $scope.pinTermData[j].TermTxt + '" id= "' + $scope.pinTermData[j].TermNumber + '" >' + $scope.pinTermData[j].TermTxt + '</option>').appendTo("#termList")  
1344 -  
1345 - $compile($selectedOptions)($scope);  
1346 -  
1347 - $("#AABodySystems").empty();  
1348 - $("#bodySystems").css("display", "none");  
1349 - $("#AABodySystems").css("display", "block");  
1350 - $("#bodySystemList li a").each(function (key, value) {  
1351 - var $systemOptions = $('<option id=' + $(this).attr('id') + ' >' + $(this).text() + '</option>').appendTo("#AABodySystems")  
1352 - $compile($systemOptions)($scope);  
1353 - });  
1354 - }  
1355 - }, 500);  
1356 - }  
1357 - })  
1358 - },  
1359 - function (error) {  
1360 - // handle errors here  
1361 - console.log(' error: ' + error.statusText);  
1362 - }  
1363 - )  
1364 - }  
1365 -  
1366 -  
1367 -  
1368 -  
1369 - $scope.$on('listManagerEvent', function (event, data) {  
1370 -  
1371 - $("#viewName").empty();  
1372 -  
1373 - var currentView = $rootScope.getLocalStorageValue("currentViewTitle");  
1374 - var viewNmeHtml = '<option>' + currentView + '</option>'  
1375 - $('#viewName').append(viewNmeHtml);  
1376 - //$("#viewName").append("<option>" + $rootScope.listArray[0].text + "</option>");  
1377 - $rootScope.isLoading = false;  
1378 - $('#spinner').css('visibility', 'hidden');  
1379 -  
1380 - if ($rootScope.bodySystemSeletedId == null) {  
1381 -  
1382 - $rootScope.loadSearchData();  
1383 - }  
1384 - else {  
1385 -  
1386 - $rootScope.refreshTermListOnAASystemSelection($rootScope.bodySystemSeletedId);  
1387 - }  
1388 - $timeout(function () {  
1389 - $("#totalTerms").empty();  
1390 - $("#totalTerms").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");  
1391 - }, 1000);  
1392 - });  
1393 -  
1394 -  
1395 -  
1396 - $rootScope.refreshTermListOnAASystemSelection = function (bodySystemId) {  
1397 - $rootScope.bodySystemSeletedId = bodySystemId;  
1398 - $('#termList').empty();  
1399 - var bodySystemName = $("#AABodySystems #" + bodySystemId).val();  
1400 - if (bodySystemName == "All") {  
1401 - for (var j = 0; j <= $scope.pinTermData.length - 1; j++) {  
1402 - var $selectedOptions = $('<option title= "' + $scope.pinTermData[j].TermTxt + '" id= "' + $scope.pinTermData[j].TermNumber + '">' + $scope.pinTermData[j].TermTxt + '</option>').appendTo("#termList")  
1403 -  
1404 - $compile($selectedOptions)($scope);  
1405 - }  
1406 - $("#totalTerms").empty();  
1407 - $("#totalTerms").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");  
1408 - }  
1409 - else {  
1410 - var imageId = $rootScope.imageId;  
1411 - $scope.pinDataUrl = "aa_dat_pinterm_" + imageId;  
1412 - $rootScope.bodySystemTermArray = [];  
1413 - $rootScope.sortedListArray = [];  
1414 - $rootScope.duplicateListArray = [];  
1415 - $.ajax({  
1416 - url: '~/../content/data/json/aa/aa_pinterm/' + $scope.pinDataUrl + '.json',  
1417 - type: 'GET',  
1418 - dataType: "json",  
1419 - async: false,  
1420 - success: function (result) {  
1421 - $(result.PinTermData.TermData).each(function (key, value) {  
1422 - $rootScope.bodySystemTermArray.push({ "termNumbr": result.PinTermData.TermData[key]._TermNumber, "text": result.PinTermData.TermData[key]._TermText, "language": result.PinTermData.TermData[key]._LanguageId });  
1423 - });  
1424 - for (var i = 0; i <= $scope.aaPinData.length - 1; i++) {  
1425 - if ($scope.aaPinData[i]._BodySystemName.toLowerCase() == bodySystemName.toLowerCase()) {  
1426 - for (var j = 0 ; j <= $rootScope.bodySystemTermArray.length - 1; j++) {  
1427 - if ($scope.aaPinData[i]._TermId == $rootScope.bodySystemTermArray[j].termNumbr) {  
1428 - if ($rootScope.bodySystemTermArray[j].language == $rootScope.lexiconLanguageArray[0].id) {  
1429 - console.log($rootScope.bodySystemTermArray[j].text);  
1430 - $rootScope.duplicateListArray.push({ "title": $rootScope.bodySystemTermArray[j].text, "id": $rootScope.bodySystemTermArray[j].termNumbr });  
1431 - }  
1432 - }  
1433 - }  
1434 - }  
1435 - }  
1436 - var temp = [];  
1437 - for (var i = 0; i <= $rootScope.duplicateListArray.length - 1; i++) {  
1438 - var termID = $rootScope.duplicateListArray[i].id;  
1439 - if ($.inArray(termID, temp) == -1) {  
1440 - temp.push(termID);  
1441 - $rootScope.sortedListArray.push({ "title": $rootScope.duplicateListArray[i].title, "id": termID });  
1442 - }  
1443 - }  
1444 -  
1445 - for (var i = 0; i <= $rootScope.sortedListArray.length - 1; i++) {  
1446 -  
1447 - for (j = i + 1; j <= $rootScope.sortedListArray.length - 1; j++) {  
1448 -  
1449 - if ($rootScope.sortedListArray[i].title.substr(0, 1) > $rootScope.sortedListArray[j].title.substr(0, 1)) {  
1450 -  
1451 - var termText = $rootScope.sortedListArray[i].title;  
1452 - var termNumbr = $rootScope.sortedListArray[i].termNumbr;  
1453 - var termLanguage = $rootScope.sortedListArray[i].language;  
1454 -  
1455 - $rootScope.sortedListArray[i].title = $rootScope.sortedListArray[j].title;  
1456 - $rootScope.sortedListArray[i].termNumbr = $rootScope.sortedListArray[j].termNumbr;  
1457 - $rootScope.sortedListArray[i].language = $rootScope.sortedListArray[j].language;  
1458 -  
1459 - $rootScope.sortedListArray[j].title = termText;  
1460 - $rootScope.sortedListArray[j].termNumbr = termNumbr;  
1461 - $rootScope.sortedListArray[j].language = termLanguage;  
1462 - }  
1463 - }  
1464 - }  
1465 -  
1466 - for (var j = 0; j <= $rootScope.sortedListArray.length - 1; j++) {  
1467 - var $selectedOptions = $('<option title= "' + $rootScope.sortedListArray[j].title + '" id= "' + $rootScope.sortedListArray[j].id + '" >' + $rootScope.sortedListArray[j].title + '</option>').appendTo("#termList")  
1468 - $compile($selectedOptions)($scope);  
1469 - }  
1470 - }  
1471 - });  
1472 - $("#totalTerms").empty();  
1473 - $("#totalTerms").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");  
1474 - }  
1475 - }  
1476 - $scope.GetAnnotationBasedOnActualTermNo = function (actualTermNo) {  
1477 -  
1478 -  
1479 - var languageArray = $rootScope.lexiconLanguageArray;  
1480 -  
1481 - if ($scope.AAPinTermData != null || $scope.AAPinTermData != undefined) {  
1482 -  
1483 - $scope.matchedTermNoData = new jinqJs()  
1484 - .from($scope.AAPinTermData)  
1485 - .where('_TermNumber == ' + actualTermNo)  
1486 - .select();  
1487 -  
1488 - if ($scope.matchedTermNoData != null || $scope.matchedTermNoData != undefined) {  
1489 -  
1490 - for (var j = 0; j <= languageArray.length - 1; j++) {  
1491 -  
1492 - $scope.matchedLanguageTermNoData = new jinqJs()  
1493 - .from($scope.matchedTermNoData)  
1494 - .where('_LanguageId == ' + languageArray[j].id)  
1495 - .select();  
1496 - var termText = $scope.matchedLanguageTermNoData[0]._TermText;  
1497 - $scope.MultiLanguageAnnationArray.push(termText);  
1498 - };  
1499 - }  
1500 - }  
1501 - }  
1502 -  
1503 - $rootScope.hidePins = function () {  
1504 - $("#dropdownMenu221").addClass("aaSystemDisable");  
1505 - $rootScope.isLoading = true;  
1506 - $('#spinner').css('visibility', 'visible');  
1507 - $scope.hideSpeechBubble();  
1508 -  
1509 - $scope.isHidePinBtnClicked = true;  
1510 - angular.forEach($scope.aaPinData, function (aaPinDataValue, aaPinDataKey) {  
1511 -  
1512 - var pinName = 'Pin_' + aaPinDataValue._PinId;  
1513 - var pinArcName = 'PinArc_' + aaPinDataValue._PinId;  
1514 -  
1515 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1516 - visible: false // set to true instead to show the layer again  
1517 - }).drawLayers();  
1518 -  
1519 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1520 - visible: false // set to true instead to show the layer again  
1521 - }).drawLayers();  
1522 - })  
1523 -  
1524 - $rootScope.isLoading = false;  
1525 - $('#spinner').css('visibility', 'hidden');  
1526 - $(".tooltip-custom").removeClass("btn-primary");  
1527 - $(".tooltip-custom").addClass("btn-black");  
1528 - $("#hidePinBtn").addClass("btn-primary");  
1529 - $("#hidePinBtn").removeClass("btn-black");  
1530 - }  
1531 -  
1532 - $scope.showAllPinsAfterHide = function (event) {  
1533 - if ($("#dropdownMenu221").hasClass("aaSystemDisable")) {  
1534 - $("#dropdownMenu221").removeClass("aaSystemDisable");  
1535 - }  
1536 - $rootScope.isLoading = true;  
1537 - $('#spinner').css('visibility', 'visible');  
1538 - $scope.isHidePinBtnClicked = false;  
1539 - $rootScope.isshowAllPinsBtnAfterHideClicked = true;  
1540 - if ($scope.selectedSystemName != null && $scope.selectedSystemName != undefined) {  
1541 -  
1542 - $scope.showSystemPins($scope.selectedSystemPinData, false);  
1543 -  
1544 - } else {  
1545 -  
1546 - $scope.showSystemPins($scope.aaPinData, false);  
1547 - }  
1548 - $scope.showSpeechBubble();  
1549 - $(".tooltip-custom").removeClass("btn-primary");  
1550 - $(".tooltip-custom").addClass("btn-black");  
1551 - $("#allPinBtn").addClass("btn-primary");  
1552 - $("#allPinBtn").removeClass("btn-black");  
1553 - if ($scope.isSliderChange == true) {  
1554 - $scope.isSliderChange = false;  
1555 - $scope.showAllPins();  
1556 -  
1557 - }  
1558 - };  
1559 -  
1560 -  
1561 - $scope.showSelectedPins = function () {  
1562 - $("#dropdownMenu221").addClass("aaSystemDisable");  
1563 - $rootScope.isLoading = true;  
1564 - $('#spinner').css('visibility', 'visible');  
1565 -  
1566 - $scope.isHidePinBtnClicked = false;  
1567 -  
1568 - if ($scope.selectedSystemName != null && $scope.selectedSystemName != undefined) {  
1569 -  
1570 - $scope.showSystemPins($scope.selectedSystemPinData, true);  
1571 -  
1572 - }  
1573 - else {  
1574 - $scope.showSystemPins($scope.aaPinData, true);  
1575 -  
1576 - }  
1577 - $scope.showSpeechBubble();  
1578 - $(".tooltip-custom").removeClass("btn-primary");  
1579 - $(".tooltip-custom").addClass("btn-black");  
1580 - $("#selectedPin").addClass("btn-primary");  
1581 - $("#selectedPin").removeClass("btn-black");  
1582 -  
1583 - if ($scope.isSelectedPinBtnClickedAftrSliderCange == true) {  
1584 -  
1585 - for (var i = 0; i <= $scope.activePinArray.length - 1; i++) {  
1586 - var pinName = $scope.activePinArray[i].split("_");  
1587 - var activePinName = 'Pin_' + pinName[1];  
1588 - var pinArcName = 'PinArc_' + pinName[1];  
1589 - $('#aaDetailViewCanvas').setLayer(activePinName, {  
1590 - visible: true // set to true instead to show the layer again  
1591 - }).drawLayers();  
1592 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1593 - visible: true // set to true instead to show the layer again  
1594 - }).drawLayers();  
1595 - }  
1596 -  
1597 - }  
1598 -  
1599 - };  
1600 -  
1601 -  
1602 - $scope.showSystemPins = function (seletedSystemPinData, isShowSelectedPins) {  
1603 -  
1604 - if (isShowSelectedPins) {  
1605 -  
1606 - angular.forEach($scope.clickedPins, function (value, key) {  
1607 -  
1608 - seletedSystemPinData = new jinqJs()  
1609 - .from(seletedSystemPinData)  
1610 - .where('_PinId != ' + value.id)  
1611 - .select();  
1612 - })  
1613 - angular.forEach($scope.clickedPins, function (value1, key1) {  
1614 -  
1615 - // if (aaPinDataValue._PinId != value.id) {  
1616 - var pinName = 'Pin_' + value1.id;  
1617 - var pinArcName = 'PinArc_' + value1.id;  
1618 -  
1619 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1620 - visible: true // set to true instead to show the layer again  
1621 - }).drawLayers();  
1622 -  
1623 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1624 - visible: true // set to true instead to show the layer again  
1625 - }).drawLayers();  
1626 - // }  
1627 - })  
1628 -  
1629 - angular.forEach(seletedSystemPinData, function (aaPinDataValue, aaPinDataKey) {  
1630 -  
1631 - var pinName = 'Pin_' + aaPinDataValue._PinId;  
1632 - var pinArcName = 'PinArc_' + aaPinDataValue._PinId;  
1633 -  
1634 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1635 - visible: false // set to true instead to show the layer again  
1636 - }).drawLayers();  
1637 -  
1638 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1639 - visible: false // set to true instead to show the layer again  
1640 - }).drawLayers();  
1641 - })  
1642 -  
1643 - }  
1644 -  
1645 - else {  
1646 - angular.forEach(seletedSystemPinData, function (aaPinDataValue, aaPinDataKey) {  
1647 -  
1648 - var pinName = 'Pin_' + aaPinDataValue._PinId;  
1649 - var pinArcName = 'PinArc_' + aaPinDataValue._PinId;  
1650 -  
1651 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1652 - visible: true // set to true instead to show the layer again  
1653 - }).drawLayers();  
1654 -  
1655 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1656 - visible: true // set to true instead to show the layer again  
1657 - }).drawLayers();  
1658 - })  
1659 - }  
1660 -  
1661 - $rootScope.isLoading = false;  
1662 - $('#spinner').css('visibility', 'hidden');  
1663 -  
1664 -  
1665 - }  
1666 - $rootScope.isshowAllPinsBtnAfterHideClicked = true;  
1667 - $scope.showItemsForSearch = function () {  
1668 - if($rootScope.isshowAllPinsBtnAfterHideClicked == true){  
1669 - console.log('showItemsForSearch is called');  
1670 - //this check is for log only because we are writing length so need to check if its not null or undefined  
1671 -  
1672 -  
1673 - $timeout(function () {  
1674 - if (($scope.AAPinTermData != null || $scope.AAPinTermData != undefined) && ($scope.AAPinTermData.length > 0)) {  
1675 -  
1676 - $scope.IsSearchVisible = true;  
1677 - document.getElementById("termlistfilter").style.display = "block";  
1678 - }  
1679 - else {  
1680 - $rootScope.loadSearchData();  
1681 - if ($scope.AAPinTermData.length > 0) {  
1682 - $scope.showItemsForSearch();  
1683 - }  
1684 - }  
1685 -  
1686 - if ($rootScope.isSearchInputClicked == true) {  
1687 - $rootScope.isSearchInputClicked = false;  
1688 - $rootScope.searchListArray = [];  
1689 - $("#backdrop > #searchListDivAA > #termlistfilter > li").each(function (key, value) {  
1690 - $rootScope.searchListArray.push({ "name": $(this).find("a").html(), "id": $(this).find("a").attr("id") });  
1691 - });  
1692 -  
1693 - }  
1694 -  
1695 - }, 500);  
1696 - }  
1697 - }  
1698 -  
1699 -  
1700 - $scope.HideSearchList = function () {  
1701 -  
1702 - $timeout(function () {  
1703 -  
1704 - $("#termlistfilter").css("display", "none");  
1705 -  
1706 -  
1707 - }, 1000);  
1708 -  
1709 - }  
1710 -  
1711 - $scope.highlightPinBasedOnSerachItem = function (id) {  
1712 - $scope.searchItemId = id;  
1713 - $scope.searchItemText = $("#" + id).text();  
1714 - $rootScope.searchSelectedText = $("#" + id).text();  
1715 - $('#termList option[selected="selected"]').prop("selected", false);  
1716 - $('#termList option[value="' + $rootScope.searchSelectedText + '"]').prop("selected", true);  
1717 - $("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });  
1718 - $('#termList option[value="' + $rootScope.searchSelectedText + '"]').css({ "background-color": "#3399FF", "color": "#ffffff" });  
1719 -  
1720 - $("#termlistfilter li a").css({ "background-color": "#ffffff", "color": "#000000" });  
1721 - $("#termlistfilter li #" + $scope.searchItemId).css({ "background-color": "#3399FF", "color": "#ffffff" });  
1722 - $scope.searchFilter = $("#" + id).text();  
1723 - //selectedTermName.placeholder = $("#" + id).text();  
1724 - selectedTermName.value = $("#" + id).text();  
1725 - selectedTermName.placeholder = "search... ";  
1726 -  
1727 - //get data from pindata for this trem  
1728 -  
1729 - var pinDataForTerm = new jinqJs()  
1730 - .from($scope.aaPinData)  
1731 - .where("_TermId == " + $scope.searchItemId)  
1732 - .select();  
1733 -  
1734 - $scope.showAnnotation(pinDataForTerm, false, false, true);  
1735 - // maintaing scroll position on selection of options in list manager.  
1736 - var annotationTopPos = $(".common-drag").css("top").split("p");  
1737 - $("#canvasDiv").scrollTop(annotationTopPos[0]);  
1738 -  
1739 - $scope.IsSearchVisible = false;  
1740 - }  
1741 -  
1742 - $rootScope.isShowHideButtonClicked = true;  
1743 - $scope.ShowHideAnnotation = function () {  
1744 - if ($rootScope.isShowHideButtonClicked == true) {  
1745 - $rootScope.annotationArray = [];  
1746 - $("#canvasDiv").find(".common-drag").each(function () {  
1747 - var speechBubbleID = $(this).attr("id");  
1748 - var sppechBubbleId = $(this).attr("id").substring(12);  
1749 - var b = $("#speechBubbleDraggedLine" + sppechBubbleId).css("display");  
1750 - var speechBubbleLineDispProp = $("#speechBubbleLine" + sppechBubbleId).css("display");  
1751 - var speechBubbleLineID = "speechBubbleLine" + sppechBubbleId;  
1752 - var speechBubbleDraggedLineID = "speechBubbleDraggedLine" + sppechBubbleId;  
1753 - $("#comment-box").addClass("btn-primary");  
1754 - $("#comment-box").removeClass("btn-black");  
1755 -  
1756 - if (speechBubbleLineDispProp == "block") {  
1757 - $rootScope.annotationArray.push({ "speechBuubleId": speechBubbleID, "speechBubbleLineId": speechBubbleLineID });  
1758 - }  
1759 - else {  
1760 - $rootScope.annotationArray.push({ "speechBuubleId": speechBubbleID, "speechBubbleLineId": speechBubbleDraggedLineID });  
1761 - }  
1762 - });  
1763 - $rootScope.isShowHideButtonClicked = false;  
1764 - for (var i = 0; i <= $rootScope.annotationArray.length - 1; i++) {  
1765 - $("#" + $rootScope.annotationArray[i].speechBuubleId).css("display", "none");  
1766 - $("#" + $rootScope.annotationArray[i].speechBubbleLineId).css("display", "none");  
1767 - }  
1768 - }  
1769 - else {  
1770 - $rootScope.isShowHideButtonClicked = true;  
1771 - for (var i = 0; i <= $rootScope.annotationArray.length - 1; i++) {  
1772 - $("#" + $rootScope.annotationArray[i].speechBuubleId).css("display", "block");  
1773 - $("#" + $rootScope.annotationArray[i].speechBubbleLineId).css("display", "block");  
1774 - }  
1775 -  
1776 - $("#comment-box").removeClass("btn-primary");  
1777 - $("#comment-box").addClass("btn-black");  
1778 -  
1779 - }  
1780 - }  
1781 - $scope.activePinOnLayerChange = function () {  
1782 - for (var i = 0; i <= $scope.activePinArray.length - 1; i++) {  
1783 - var radialAfterClick = $('#aaDetailViewCanvas').createGradient({  
1784 - x1: 50, y1: 50,  
1785 - x2: 50, y2: 50,  
1786 - r1: 10, r2: 30,  
1787 - c1: 'rgba(100, 50, 0,0)',  
1788 - c2: 'rgb(126, 187, 83)'  
1789 - });  
1790 - var clickedPin = $scope.activePinArray[i];  
1791 - $('#aaDetailViewCanvas').setLayer(clickedPin, {  
1792 - fillStyle: radialAfterClick  
1793 - }).drawLayers();  
1794 -  
1795 - }  
1796 - }  
1797 -  
1798 - $scope.activePinOnSliderChange = function () {  
1799 - if ($scope.activePinArray.length == 1) {  
1800 - for (var i = 0; i <= $scope.allPinDataArray.length - 1; i++) {  
1801 - var activeArc = $scope.activePinArray[0].split("_");  
1802 - if ($scope.allPinDataArray[i] == activeArc[1]) {  
1803 - var pinName = 'Pin_' + $scope.allPinDataArray[i];  
1804 - var pinArcName = 'PinArc_' + $scope.allPinDataArray[i];  
1805 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1806 - visible: true // set to true instead to show the layer again  
1807 - }).drawLayers();  
1808 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1809 - visible: true // set to true instead to show the layer again  
1810 - }).drawLayers();  
1811 - }  
1812 - else {  
1813 - var pinName = 'Pin_' + $scope.allPinDataArray[i];  
1814 - var pinArcName = 'PinArc_' + $scope.allPinDataArray[i];  
1815 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1816 - visible: false // set to true instead to show the layer again  
1817 - }).drawLayers();  
1818 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1819 - visible: false // set to true instead to show the layer again  
1820 - }).drawLayers();  
1821 - }  
1822 - }  
1823 - }  
1824 - else {  
1825 - var seletedSystemPinData;  
1826 - angular.forEach($scope.activePinArray, function (value, key) {  
1827 - var pinID = value.split("_");  
1828 - seletedSystemPinData = new jinqJs()  
1829 - .from($scope.allPinDataArray)  
1830 - .where('_PinId != ' + pinID[1])  
1831 - .select();  
1832 - })  
1833 -  
1834 - angular.forEach(seletedSystemPinData, function (aaPinDataValue, aaPinDataKey) {  
1835 -  
1836 - var pinName = 'Pin_' + aaPinDataValue;  
1837 - var pinArcName = 'PinArc_' + aaPinDataValue;  
1838 -  
1839 - $('#aaDetailViewCanvas').setLayer(pinName, {  
1840 - visible: false // set to true instead to show the layer again  
1841 - }).drawLayers();  
1842 -  
1843 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1844 - visible: false // set to true instead to show the layer again  
1845 - }).drawLayers();  
1846 -  
1847 - })  
1848 - for (var i = 0; i <= $scope.activePinArray.length - 1; i++) {  
1849 - var pinName = $scope.activePinArray[i].split("_");  
1850 - var activePinName = 'Pin_' + pinName[1];  
1851 - var pinArcName = 'PinArc_' + pinName[1];  
1852 - $('#aaDetailViewCanvas').setLayer(activePinName, {  
1853 - visible: true // set to true instead to show the layer again  
1854 - }).drawLayers();  
1855 - $('#aaDetailViewCanvas').setLayer(pinArcName, {  
1856 - visible: true // set to true instead to show the layer again  
1857 - }).drawLayers();  
1858 - }  
1859 - }  
1860 - }  
1861 - $(document).ready(function () {  
1862 - var $ua = navigator.userAgent;  
1863 - if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {  
1864 -  
1865 - var jspanelContainerWidth = $(".jsPanel-content").css("width");  
1866 - $(".jsPanel-content").css({ "width": "100%", "min-width": jspanelContainerWidth });  
1867 - $("#ImagePanel").css("width", "100%");  
1868 -  
1869 - //hide pin button clicked  
1870 - $("#hidePinBtn").removeAttr("onclick");  
1871 - $("#hidePinBtn").on("touchstart", function () {  
1872 - var rootScope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1873 - rootScope.$apply(function () {  
1874 - rootScope.hidePins(event);  
1875 - });  
1876 - });  
1877 - //selected pin button clicked  
1878 - $("#selectedPin").removeAttr("onclick");  
1879 - $("#selectedPin").on("touchstart", function () {  
1880 - console.log('showSelectedPins is called')  
1881 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1882 - scope.$apply(function () {  
1883 - scope.showSelectedPins(event);  
1884 - });  
1885 - });  
1886 - //all pin button clicked  
1887 - $("#allPinBtn").removeAttr("onclick");  
1888 - $("#allPinBtn").on("touchstart", function () {  
1889 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1890 - scope.$apply(function () {  
1891 - scope.showAllPinsAfterHide(event);  
1892 - });  
1893 - });  
1894 - //comment-box button clicked  
1895 - $("#comment-box").removeAttr("onclick");  
1896 - $("#comment-box").on("touchstart", function () {  
1897 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1898 - scope.$apply(function () {  
1899 - scope.ShowHideAnnotation(event);  
1900 - });  
1901 - });  
1902 -  
1903 - }  
1904 -  
1905 - });  
1906 -}]);  
1907 -  
1908 -  
1909 -function refreshTermListOnSystemSel(bodySystemId) {  
1910 - var rootScope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1911 - rootScope.$apply(function () {  
1912 - rootScope.refreshTermListOnAASystemSelection(bodySystemId);  
1913 - });  
1914 -}  
1915 -  
1916 -  
1917 -function showSelectedSystemPins(event) {  
1918 - console.log('OnBodySystem chnaged is called outside ');  
1919 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1920 - scope.$apply(function () {  
1921 - scope.showSelectedSystemPins(event);  
1922 - });  
1923 -}  
1924 -  
1925 -function hidePins(event) {  
1926 -  
1927 - var rootScope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1928 - rootScope.$apply(function () {  
1929 - rootScope.hidePins(event);  
1930 - });  
1931 -}  
1932 -  
1933 -function showAllPins(event) {  
1934 -  
1935 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1936 - scope.$apply(function () {  
1937 - scope.showAllPinsAfterHide(event);  
1938 - });  
1939 -}  
1940 -  
1941 -function onSearchAA(event) {  
1942 - console.log('AA search is called')  
1943 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1944 - scope.$apply(function () {  
1945 - scope.showItemsForSearch();  
1946 - });  
1947 -}  
1948 -  
1949 -function hideSearchList(event) {  
1950 - console.log('AA hide search is called')  
1951 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1952 - scope.$apply(function () {  
1953 - scope.HideSearchList();  
1954 - });  
1955 -}  
1956 -  
1957 -function onSearchItemSelection(id) {  
1958 -  
1959 - console.log('AA hide search is called');  
1960 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1961 - scope.$apply(function () {  
1962 - scope.highlightPinBasedOnSerachItem(id);  
1963 - });  
1964 -}  
1965 -  
1966 -//function onListManagerTermSelection(event) {  
1967 -// var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1968 -// scope.isTermListOptionClicked = true;  
1969 -// scope.$apply(function () {  
1970 -// scope.highlightPinBasedOnSerachItem1(event);  
1971 -// });  
1972 -  
1973 -//}  
1974 -  
1975 -  
1976 -function showHideAnnotation(event) {  
1977 -  
1978 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1979 - scope.$apply(function () {  
1980 - scope.ShowHideAnnotation(event);  
1981 - });  
1982 -}  
1983 -  
1984 -function showSelectedPins(event) {  
1985 -  
1986 - console.log('showSelectedPins is called')  
1987 - var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();  
1988 - scope.$apply(function () {  
1989 - scope.showSelectedPins(event);  
1990 - });  
1991 -}  
1992 -  
1993 -  
1994 -function openModuleItemView(event) {  
1995 - var scope = angular.element(document.getElementById("list-view")).scope();  
1996 - scope.isListViewButtonClicked = true;  
1997 - scope.$apply(function () {  
1998 - scope.openModuleItemView(event);  
1999 - });  
2000 -}  
2001 -  
2002 -function openListViewModuleItem(event) {  
2003 -  
2004 - var scope = angular.element(document.getElementById("list-view")).scope();  
2005 - scope.isListViewButtonClicked = true;  
2006 - scope.$apply(function () {  
2007 - scope.openListViewModuleItem(event);  
2008 - });  
2009 -}  
2010 -  
2011 -function openCurrentView(event) {  
2012 - var scope = angular.element(document.getElementById("list-view")).scope();  
2013 - scope.isListViewButtonClicked = true;  
2014 - scope.isOpenBtnClicked = true;  
2015 - scope.$apply(function () {  
2016 - scope.openModuleItemView(event);  
2017 - });  
2018 -  
2019 -}  
2020 -  
2021 -function onZoom(scope) {  
2022 -  
2023 - //$(".common-drag").remove();  
2024 - //$(".commonDot").remove();  
2025 - //$(".commonDraggedLine").remove();  
2026 - //var radial = $('#aaDetailViewCanvas').createGradient({  
2027 - // x1: 50, y1: 50,  
2028 - // x2: 50, y2: 50,  
2029 - // r1: 10, r2: 30,  
2030 - // c1: 'rgba(100, 50, 0,0)',  
2031 - // c2: 'rgb(216, 216, 216)'  
2032 - //});  
2033 - //$('#aaDetailViewCanvas').setLayers({  
2034 - // fillStyle: radial,  
2035 - //}).drawLayers();  
2036 - // scope.removePin();  
2037 - // scope.showAllPins();  
2038 -  
2039 -  
2040 - //6. Show all pins on AA opened item  
2041 -}  
2042 -  
2043 - 1 +'use strict';
  2 +
  3 +AIA.controller("TileViewListController", ["$scope", "$window", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout", "DA", "Modules", "$routeParams", "BodyRegions", "BodySystems", "ViewOrientations", "ImageTypes", "DataService", "ModuleService",
  4 +function ($scope, $window, $rootScope, $compile, $http, $log, $location, $timeout, DA, Modules, $routeParam, BodyRegions, BodySystems, ViewOrientations, ImageTypes, DataService, ModuleService) {
  5 +
  6 +
  7 + $rootScope.OpenedTileData = [];
  8 + var DISSECTIBLE_ANATOMY = 'Dissectible Anatomy';
  9 + var ATLAS_ANATOMY = 'Atlas Anatomy';
  10 + var CLINICAL_ILLUSTRATION = 'Clinical Illustrations';
  11 + var CLINICAL_ANIMATION = 'Clinical Animations';
  12 + $rootScope.closeBtnImgPath = "~/../content/images/speeachBubbleClose.png";
  13 + $rootScope.listArray = [];
  14 + //variables to bind Filter by Controls
  15 + $scope.searchAAListViewData = [];
  16 + $scope.SelectedAAthumbImage = [];
  17 + $scope.SelectedAAImage = [];
  18 + $scope.SelectedAASummary = [];
  19 + $scope.SelectedAAId = [];
  20 + $scope.SelectedAATitle = [];
  21 + $scope.selectedAAListViewData = [];
  22 + $scope.filterstring = false;
  23 + $scope.AllBodyRegion = [];
  24 + $scope.AllBodySystem = [];
  25 + $scope.AllOrientation = [];
  26 + $scope.AllImageType = [];
  27 + $rootScope.speechBubbleDimaensions = [];
  28 + $scope.runningSearchWorkers = [];
  29 + $scope.clickedPins = [];
  30 + $scope.sliderPercentValue = 1;
  31 + $scope.query = {
  32 + selectedbodyregion: '',
  33 + selectedbodysystem: '',
  34 + selectedorientation: '',
  35 + selectedimagetype: '',
  36 + };
  37 + $scope.activePinArray = [];
  38 + $scope.showTabButton = true;
  39 + $scope.isListViewDataLoaded = true;
  40 +
  41 + $scope.setActiveTab = function (tabToSet) {
  42 +
  43 + $scope.activeTab = tabToSet;
  44 + localStorage.setItem("activeTab", $scope.activeTab);
  45 + if ($scope.activeTab == 1) {
  46 + $('#grid-view').css("display", "block");
  47 + $('#list-view').css("display", "none");
  48 + $("#demoView").remove();
  49 + }
  50 + else {
  51 +
  52 + $('#grid-view').css("display", "none");
  53 + $('#list-view').css("display", "block");
  54 + }
  55 + };
  56 +
  57 + $scope.loadForModuleById = function (moduleId) {
  58 + $rootScope.openModules.push({ "ModuleId": 2 });
  59 + if ($rootScope.refreshcheck == null) {
  60 + $location.path('/');
  61 + }
  62 + $scope.moduleId = moduleId;
  63 + $scope.activeTab = 1;
  64 + console.log('loadForModuleById is called')
  65 + $rootScope.moduleName = Modules[moduleId].Name;
  66 + $rootScope.currentActiveModuleTitle = $rootScope.moduleName;
  67 + $scope.AllBodyRegion = BodyRegions;
  68 + $scope.AllBodySystem = BodySystems;
  69 + $scope.AllOrientation = ViewOrientations;
  70 + $scope.AllImageType = ImageTypes;
  71 + var promise = ModuleService.loadModuleDataBasedOnModuleName($scope.moduleName)
  72 + .then(
  73 + function (result) {
  74 +
  75 + $scope.moduleLandingData = result;
  76 + // setTimeout(function () { $('#' + $rootScope.highlightid).find('.thumbnail').addClass('hightlightstate'); }, 100);
  77 + setTimeout(function () {
  78 + if ($rootScope.getLocalStorageValue('AAGridViewHighlightThumbnail') !== null) {
  79 + $('#' + $rootScope.getLocalStorageValue("AAGridViewHighlightThumbnail")).find('.thumbnail').addClass('HightLightThumbnail');
  80 + }
  81 + if ($rootScope.getLocalStorageValue('AAGridViewScroll') !== null && $location.url() == "/tile-view-list") {
  82 + $('html, body').animate({ scrollTop: $rootScope.getLocalStorageValue('AAGridViewScroll') }, 'slow');
  83 + }
  84 + }, 100);
  85 + //console.log(JSON.stringify(result, null, 4));
  86 + },
  87 + function (error) {
  88 + // handle errors here
  89 + console.log(' error: ' + error.statusText);
  90 + }
  91 + )
  92 + $('#list-view').css('display', 'none');
  93 + }
  94 +
  95 + //$scope.$on('$viewContentLoaded', function (event) {
  96 +
  97 + // $scope.loadForModuleById();
  98 +
  99 + //});
  100 + $scope.isOpenBtnClicked = false;
  101 + $scope.openModuleItemView = function (event) {
  102 + $rootScope.MenuModuleName = "AA";
  103 + localStorage.setItem("activeTab", $scope.activeTab);
  104 + //0. Get selected Image Id
  105 + if ($scope.isListViewButtonClicked == true) {
  106 + if ($scope.isOpenBtnClicked == true) {
  107 +
  108 + var moduleItemDataToBeSaved = $("#demoText").text().trim();
  109 + $scope.isOpenBtnClicked = false;
  110 + }
  111 + else {
  112 + var moduleItemDataToBeSavedID = event.currentTarget.id;
  113 + localStorage.setItem("listViewSelectedID", moduleItemDataToBeSavedID);
  114 + var moduleItemDataToBeSaved = $("#list-view table tbody #" + moduleItemDataToBeSavedID).find('td:eq(0)').text().trim();
  115 + }
  116 + }
  117 + else {
  118 + var moduleItemDataToBeSaved = event.target.id;
  119 + localStorage.setItem("listViewSelectedID", event.currentTarget.id);
  120 + $scope.isListViewButtonClicked = false;
  121 + }
  122 +
  123 + //1.Filter selected module ietem data and get the pushed opened moduile array object
  124 + $rootScope.OpenedTileData = ModuleService.GetOpenedTileData(moduleItemDataToBeSaved, $scope.moduleLandingData);
  125 +
  126 + //2. Pick the image name to create a source to open
  127 + $rootScope.imageId = $rootScope.OpenedTileData[0];
  128 + $rootScope.imageName = $rootScope.OpenedTileData[3];
  129 + $rootScope.bodySystemName = $rootScope.OpenedTileData[2];
  130 + $rootScope.OpenItemImagePath = "../../../content/images/aa/images/" + $rootScope.OpenedTileData[3];
  131 + $scope.OpenItemImagePath = "../../../content/images/aa/images/" + $rootScope.OpenedTileData[3];
  132 + //$rootScope.listArray = [];
  133 + $rootScope.listArray.push({ "imageName": $rootScope.OpenItemImagePath, "text": moduleItemDataToBeSaved });
  134 + //3. set opened module item ti
  135 + localStorage.setItem("currentViewTitle", $rootScope.OpenedTileData[6]);
  136 + localStorage.setItem("AAGridViewScroll", $($window).scrollTop());
  137 + localStorage.setItem("AAGridViewHighlightThumbnail", $(event.target).parent().parent().parent().attr('id'));
  138 +
  139 + //3. Navigate to the Module-item-view
  140 + var u = $location.url();
  141 + $location.url('/module-item-view');
  142 + }
  143 +
  144 +
  145 + $scope.openListViewModuleItem = function (event) {
  146 + $("#demoView").remove();
  147 + var moduleItemDataToBeSavedID = event.currentTarget.id;
  148 + $("#list-view table tbody tr").removeClass("active");
  149 + localStorage.setItem("listViewSelectedID", moduleItemDataToBeSavedID);
  150 + $("#list-view table tbody #" + moduleItemDataToBeSavedID).addClass("active");
  151 + localStorage.setItem("AAListViewScroll", $("#list-view table tbody").scrollTop());
  152 + var moduleItemDataToBeSaved = $("#list-view table tbody #" + moduleItemDataToBeSavedID).find('td:eq(0)').text().trim();
  153 + $rootScope.OpenedTileData = ModuleService.GetOpenedTileData(moduleItemDataToBeSaved, $scope.moduleLandingData);
  154 + $rootScope.OpenItemImagePath = "../../../content/images/aa/images/" + $rootScope.OpenedTileData[3];
  155 + //$rootScope.listArray = [];
  156 + $rootScope.listArray.push({ "imageName": $rootScope.OpenItemImagePath, "text": moduleItemDataToBeSaved });
  157 + $("#viewList").append("<div class='col-xs-12 text-center' style='padding-top:15px;padding-bottom:15px;' id='demoView'><div class='col-xs-12' style='padding:15px;background-color:#fff;'><div class='col-xs-2' style='border:1px solid #000;padding:5px;color:#000;font-size:12px;'><div class='thumbnail' style='margin-bottom:10px;'><img style='width:auto;height:95px!important;' src=" + $rootScope.OpenItemImagePath + "></div><div class='col-xs-12' id='demoText' style='padding:0;'>" + moduleItemDataToBeSaved + "</div></div></div><a style='position:absolute;right:30px;bottom:34px;' onclick='openCurrentView(event)' href='javascript:void(0)' class='pull-right btn btn-primary'>Open</a></div>");
  158 + }
  159 +
  160 +
  161 + $scope.openModuleItem = function () {
  162 + if ($rootScope.refreshcheck == null) {
  163 + $location.path('/');
  164 + }
  165 + var jsContentURL;
  166 + var moduleItemViewDivId;
  167 +
  168 + //1. create a jsPanel and load the module item view
  169 + if ($rootScope.moduleName == ATLAS_ANATOMY) {
  170 +
  171 + jsContentURL = 'app/views/aa/atlas-anatomy-detail.html';
  172 + moduleItemViewDivId = 'aaDetailPageDiv';
  173 + }
  174 + else if ($rootScope.moduleName == CLINICAL_ANIMATION) {
  175 + //to do, in next phase of project
  176 +
  177 + }
  178 + else if ($rootScope.moduleName == CLINICAL_ILLUSTRATION) {
  179 + //to do, in next phase of project
  180 +
  181 + }
  182 +
  183 + //1. create a jsPanel and load the module item view
  184 + if ($rootScope.moduleName == ATLAS_ANATOMY) {
  185 + $.jsPanel({
  186 + id: 'ImagePanel',
  187 + selector: '.aaBodyView',
  188 + theme: 'success',
  189 + currentController: 'TileViewListController',
  190 + parentSlug: 'tile-view-list',
  191 + ajax: {
  192 + url: jsContentURL
  193 + },
  194 + title: $rootScope.getLocalStorageValue("currentViewTitle"),
  195 +
  196 + position: {
  197 + top: 70,
  198 + left: 1,
  199 + },
  200 +
  201 + size: { width: $(window).outerWidth() - 10, height: $(window).outerHeight() - 125 },
  202 +
  203 + });
  204 +
  205 + console.log('jsPanel loaded ImagePanel exist= ' + document.getElementById('ImagePanel'))
  206 +
  207 + //0.3
  208 + var aaViewElement = angular.element(document.getElementById(moduleItemViewDivId));
  209 +
  210 + //0.4 for Opening module item, load it into image
  211 + $rootScope.isLoading = true;
  212 + $('#spinner').css('visibility', 'visible');
  213 + var openedImage = new Image();
  214 + openedImage.id = 'modItemImage';
  215 + openedImage.name = $rootScope.OpenItemImagePath;
  216 +
  217 + openedImage.onload = function () {
  218 + $scope.imageWidth = this.width;
  219 + $scope.imageHeight = this.height;
  220 +
  221 +
  222 + $timeout(function () {
  223 + $compile(aaViewElement.contents())($scope);
  224 +
  225 + //if (document.getElementById('aaDetailPageDiv') != null) {
  226 + if (document.getElementById('aaBodyView') != null) {
  227 +
  228 + //0.4 added some stylesheets
  229 + $('#aaBodyView').css("height", $(window).outerHeight() - 65);
  230 +
  231 + $('#aaBodyView').css("width", $(window).outerWidth() - 15);
  232 +
  233 + $rootScope.canvasDivHeight = $('.jsPanel-content').height() - $('.main2 .stickey-area').height();
  234 +
  235 + $('.canvasDivClass').css("height", $rootScope.canvasDivHeight);
  236 +
  237 + $scope.currentTitleFromJson = $rootScope.getLocalStorageValue("currentViewTitle");
  238 + $("#modItemImage").attr('src', $rootScope.OpenItemImagePath);
  239 +
  240 +
  241 + $rootScope.ViewImageWidth = $("#modItemImage").width();
  242 + $scope.ViewImageWidth = $("#modItemImage").width();
  243 + $scope.ViewImageHeight = $("#modItemImage").height();
  244 +
  245 + $scope.relativeDimesion = 0;
  246 + $("#modItemImage").css("width", $rootScope.ViewImageWidth + "px");
  247 + //0.5 create canvas on the top of image so that I can draw a line over the canvas.
  248 + var canvas = document.createElement('canvas');
  249 + canvas.id = 'aaDetailViewCanvas';
  250 + canvas.className = '.aaCanvas'
  251 + canvas.height = parseInt(($scope.imageHeight));
  252 + canvas.width = parseInt($scope.imageWidth);
  253 + canvas.style.left = '0px';
  254 + canvas.style.top = '0px';
  255 + canvas.style.position = "absolute";
  256 + $("#canvasDiv").append(canvas);
  257 + $scope.context = canvas.getContext("2d")
  258 + //6. Show all pins on AA opened item
  259 + $scope.showAllPins();
  260 + //7. Highlight all system body list in left side
  261 + $scope.highlightBodySystemList();
  262 + }
  263 + $(".slider").slider({
  264 + min: 25,
  265 + max: 100,
  266 + value: 100,
  267 + range: "min",
  268 + orientation: "vertical",
  269 + slide: function (event, ui) {
  270 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  271 + scope.$apply(function () {
  272 + scope.sliderVal = ui.value;
  273 + scope.removeSpeechBubble();
  274 + var relativeWidth = 0;
  275 + var relativeHeight = 0;
  276 + if (ui.value == 25 || ui.value == 40 || ui.value == 55 || ui.value == 70 || ui.value == 85 || ui.value == 100) {
  277 + if (ui.value == 100) {
  278 + relativeWidth = scope.ViewImageWidth;
  279 + relativeHeight = scope.ViewImageHeight
  280 + scope.sliderPercentValue = 1.0;
  281 + }
  282 + else if (ui.value == 85) {
  283 + relativeWidth = scope.ViewImageWidth * 0.85;
  284 + relativeHeight = scope.ViewImageHeight * 0.85;
  285 + scope.sliderPercentValue = 0.85;
  286 +
  287 + } else if (ui.value == 70) {
  288 + relativeWidth = scope.ViewImageWidth * 0.70;
  289 + relativeHeight = scope.ViewImageHeight * 0.70;
  290 + scope.sliderPercentValue = 0.70;
  291 + } else if (ui.value == 55) {
  292 +
  293 + relativeWidth = scope.ViewImageWidth * 0.55;
  294 + relativeHeight = scope.ViewImageHeight * 0.55;
  295 + scope.sliderPercentValue = 0.55;
  296 +
  297 + } else if (ui.value == 40) {
  298 +
  299 + relativeWidth = scope.ViewImageWidth * 0.40;
  300 + relativeHeight = scope.ViewImageHeight * 0.40;
  301 + scope.sliderPercentValue = 0.40;
  302 +
  303 + } else if (ui.value == 25) {
  304 +
  305 + relativeWidth = scope.ViewImageWidth * 0.25;
  306 + relativeHeight = scope.ViewImageHeight * 0.25;
  307 + scope.sliderPercentValue = 0.25;
  308 +
  309 + }
  310 + }
  311 +
  312 + if (ui.value == 25 || ui.value == 40 || ui.value == 55 || ui.value == 70 || ui.value == 85 || ui.value == 100) {
  313 + $("#modItemImage").css("width", relativeWidth + "px");
  314 + $("#modItemImage").css("height", relativeHeight + "px");
  315 + $("#aaDetailViewCanvas").css("width", relativeWidth + "px");
  316 + $("#modItemImage").css("height", relativeHeight + "px");
  317 +
  318 + $("#modItemImage").attr('src', '');
  319 +
  320 +
  321 + $("#aaDetailViewCanvas").remove();
  322 + //0.5 create canvas on the top of image so that I can draw a line over the canvas.
  323 + var canvas = document.createElement('canvas');
  324 + canvas.id = 'aaDetailViewCanvas';
  325 + canvas.className = 'aaCanvas';
  326 + canvas.height = relativeHeight;
  327 + canvas.width = relativeWidth;
  328 + canvas.style.left = '0px';
  329 + canvas.style.top = '0px';
  330 + canvas.style.position = "absolute";
  331 +
  332 + $("#canvasDiv").append(canvas);
  333 + scope.context = canvas.getContext("2d")
  334 + $("#modItemImage").attr('src', scope.OpenItemImagePath);
  335 + scope.isSliderChange = true;
  336 + var btnID = '';
  337 + $("div.tools div:eq(1) div").each(function () {
  338 + if ($(this).find("button").hasClass("btn-primary")) {
  339 + btnID = $(this).find("button").attr("id");
  340 + $('#' + btnID).removeClass("btn-black");
  341 + $('#' + btnID).addClass("btn-primary");
  342 + }
  343 + });
  344 + scope.isSelectedPinBtnClickedAftrSliderCange = true;
  345 + switch (btnID) {
  346 +
  347 + case "hidePinBtn":
  348 + break;
  349 + case "allPinBtn":
  350 + scope.showAllPins();
  351 + break;
  352 + case "selectedPin":
  353 + scope.showAllPins();
  354 + setTimeout(function () {
  355 + console.log(scope.allPinDataArray);
  356 + scope.activePinOnSliderChange();
  357 + }, 1000);
  358 + break;
  359 + }
  360 + }
  361 +
  362 + });
  363 + }
  364 + })
  365 + .slider("pips", {
  366 + rest: "label",
  367 + step: "15"
  368 + });
  369 + }, 500);
  370 + }
  371 +
  372 + openedImage.onerror = loadFailure;
  373 + openedImage.src = $rootScope.OpenItemImagePath;
  374 + }
  375 +
  376 + }
  377 +
  378 + $scope.highlightBodySystemList = function () {
  379 + $rootScope.bodySystemNames = $rootScope.bodySystemName.trim().split(/\s*,\s*/);
  380 + var bodySystemListObj = document.getElementById("bodySystemList").getElementsByTagName("a");
  381 + var bodySystemListlength = bodySystemListObj.length;
  382 + for (var i = 0; i < bodySystemListlength; i++) {
  383 + //var boldTag = lis[i];
  384 + for (var j = 0; j < $rootScope.bodySystemNames.length; j++) {
  385 + if ((bodySystemListObj[i].innerHTML) == ($rootScope.bodySystemNames[j])) {
  386 + $("#" + i).parent().removeClass("disabledSelectedSystem");
  387 +
  388 + }
  389 + }
  390 +
  391 + }
  392 + }
  393 + function loadFailure() {
  394 + console.log('unable to load opened module ietem');
  395 + return true;
  396 + }
  397 +
  398 +
  399 + angular.element(document).ready(function (e) {
  400 + $("#ImagePanel").resize(function () {
  401 + $("#canvasDiv").scrollLeft($rootScope.CanvasDivLeftPosition);
  402 + $("#canvasDiv").scrollTop($rootScope.CanvasDivTopPosition);
  403 + });
  404 + $(document).on("click", "#ImagePanel .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function () {
  405 + $scope.setActiveTab(parseInt($rootScope.getLocalStorageValue("activeTab")));
  406 + $(".tools").css("z-index", "15000");
  407 + $rootScope.selectedBodySystemName = 'All';
  408 + $rootScope.selectedBodySystemId = 0;
  409 + $rootScope.searchSelectedText = '';
  410 +
  411 + });
  412 +
  413 + $(document).on("click", "#dvPrintPreview .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function () {
  414 +
  415 + if ($rootScope.isShowAllPinBtnActiveInPrintPreviewMode == true) {
  416 + $("#allPinBtn").trigger("click");
  417 + $rootScope.isShowAllPinBtnActiveInPrintPreviewMode = false;
  418 + }
  419 + if ($rootScope.isHidePinBtnActiveInPrintPreview == true) {
  420 + $("#hidePinBtn").trigger("click");
  421 + $rootScope.isHidePinBtnActiveInPrintPreview = false;
  422 + }
  423 + if($rootScope.isShowSelectedPinActiveInPrintPrevMode == true)
  424 + {
  425 + $("#selectedPin").trigger("click");
  426 + $rootScope.isShowSelectedPinActiveInPrintPrevMode = false;
  427 + }
  428 + });
  429 +
  430 + })
  431 + $rootScope.aaPinDataArray = [];
  432 + $scope.showAllPins = function () {
  433 +
  434 + $scope.allPinDataArray = [];
  435 + var promise = ModuleService.getPinDataForImage($rootScope.imageName)
  436 +
  437 + .then(
  438 + function (result) {
  439 +
  440 + //load navigator image
  441 + if (result.data.Root._NavigatorImage != undefined) {
  442 + document.getElementById('navimg').src = '~/../content/images/aa/images/navigator/' + result.data.Root._NavigatorImage;
  443 + }
  444 + else {
  445 + document.getElementById('navimg').style.visibility = 'hidden';
  446 + document.getElementById('navigatorBtn').style.visibility = 'hidden';
  447 + document.getElementById('navigatorDiv').style.visibility = 'hidden';
  448 +
  449 + }
  450 +
  451 + //draw pins
  452 + $scope.aaPinData = result.data.Root.Item;
  453 + if ($scope.aaPinData != null && $scope.aaPinData.length > 0) {
  454 + $rootScope.aaPinDataArray = $scope.aaPinData
  455 + angular.forEach($scope.aaPinData, function (value, key) {
  456 + $scope.allPinDataArray.push(value._PinId);
  457 + $scope.drawStaticPinsOnImage('aaDetailViewCanvas', value._PinId, value._PinX, value._PinY, value._HeadX, value._HeadY)
  458 + })
  459 +
  460 +
  461 +
  462 + //load search/vocab data
  463 + $rootScope.loadSearchData();
  464 + }
  465 + },
  466 + function (error) {
  467 +
  468 + console.log(' error in showAllPins: ' + error.statusText);
  469 + }
  470 + )
  471 + if ($scope.isSliderChange == true) {
  472 + $timeout(function () {
  473 + $scope.activePinOnLayerChange();
  474 + }, 1000);
  475 +
  476 + }
  477 +
  478 + }
  479 +
  480 +
  481 + $scope.FilterByImage = function (moduleId, query) {
  482 + $scope.moduleId = moduleId;
  483 + $scope.filterstring = true;
  484 +
  485 + console.log('loadForModuleById is called');
  486 +
  487 + $rootScope.moduleName = Modules[moduleId].Name;
  488 + while ($scope.searchAAListViewData.length) {
  489 + $scope.searchAAListViewData.pop();
  490 + }
  491 +
  492 + var filtercount = 0;
  493 + if (typeof (query.selectedbodyregion) !== "undefined" && (query.selectedbodyregion !== null && query.selectedbodyregion !== "")) {
  494 + filtercount = filtercount + 1;
  495 + localStorage.setItem("CurrentBodyRegion", query.selectedbodyregion);
  496 + }
  497 + else {
  498 + localStorage.setItem("CurrentBodyRegion", '');
  499 + }
  500 +
  501 + if (typeof (query.selectedbodysystem) !== "undefined" && (query.selectedbodysystem !== null && query.selectedbodysystem !== "")) {
  502 + filtercount = filtercount + 1;
  503 + localStorage.setItem("CurrentBodySystem", query.selectedbodysystem);
  504 + }
  505 + else {
  506 + localStorage.setItem("CurrentBodySystem", '');
  507 + }
  508 +
  509 + if (typeof (query.selectedorientation) !== "undefined" && (query.selectedorientation !== null && query.selectedorientation !== '')) {
  510 + filtercount = filtercount + 1;
  511 + localStorage.setItem("CurrentOrientation", query.selectedorientation);
  512 + }
  513 + else {
  514 + localStorage.setItem("CurrentOrientation", '');
  515 + }
  516 +
  517 + if (typeof (query.selectedimagetype) !== "undefined" && (query.selectedimagetype !== null && query.selectedimagetype !== '')) {
  518 + filtercount = filtercount + 1;
  519 + localStorage.setItem("CurrentImageType", query.selectedimagetype);
  520 + }
  521 + else {
  522 + localStorage.setItem("CurrentImageType", '');
  523 + }
  524 +
  525 + var promise = ModuleService.loadModuleDataBasedOnModuleName($scope.moduleName)
  526 + .then(
  527 + function (result) {
  528 + // alert(JSON.stringify($scope.moduleLandingData));
  529 + $scope.moduleLandingData = result;
  530 + $scope.selectedAAListViewData = new jinqJs()
  531 + .from($scope.moduleLandingData.data.root.Item)
  532 + .orderBy([{ field: '_Title', sort: 'asc' }])
  533 + .select();
  534 +
  535 + $('#grid-view').empty();
  536 + //alert(JSON.stringify($scope.selectedAAListViewData))
  537 + angular.forEach($scope.selectedAAListViewData, function (value, key) {
  538 +
  539 + var selectimg = true;
  540 + var count = 0;
  541 +
  542 +
  543 + if (typeof (query.selectedbodyregion) !== "undefined" && (query.selectedbodyregion !== null && query.selectedbodyregion !== "")) {
  544 + var posbodyregion = value._BodyRegion.indexOf((query.selectedbodyregion.trim()));
  545 + if (posbodyregion > -1) {
  546 + selectimg = true;
  547 + count = count + 1;
  548 + }
  549 + else {
  550 + selectimg = false;
  551 + count = count - 1;
  552 + }
  553 +
  554 + }
  555 +
  556 + if (typeof (query.selectedbodysystem) !== "undefined" && (query.selectedbodysystem !== null && query.selectedbodysystem !== "")) {
  557 + var posbodysystem = value._BodySystem.indexOf(query.selectedbodysystem);
  558 + if (posbodysystem > -1) {
  559 + count = count + 1;
  560 + selectimg = true;
  561 + } else {
  562 + selectimg = false;
  563 + count = count - 1;
  564 + }
  565 + }
  566 +
  567 + if (typeof (query.selectedorientation) !== "undefined" && (query.selectedorientation !== null && query.selectedorientation !== "")) {
  568 + var posorientation = value._ViewOrientation.indexOf(query.selectedorientation);
  569 + if (posorientation > -1) {
  570 + count = count + 1;
  571 + selectimg = true;
  572 +
  573 + } else {
  574 + selectimg = false;
  575 + count = count - 1;
  576 + }
  577 +
  578 + }
  579 +
  580 + if (typeof (query.selectedimagetype) !== "undefined" && (query.selectedimagetype !== null && query.selectedimagetype !== "")) {
  581 + var posimagetype = value._ImageType.indexOf(query.selectedimagetype);
  582 + if (posimagetype > -1) {
  583 + count = count + 1;
  584 + selectimg = true;
  585 +
  586 + } else {
  587 + selectimg = false;
  588 + count = count - 1;
  589 + }
  590 +
  591 + }
  592 +
  593 + if (selectimg === true && count >= filtercount) {
  594 +
  595 + $scope.imagePath = "../content/images/aa/thumbnails/" + value._TileImageName;
  596 +
  597 +
  598 + var $el = $('<div id="' + value._Title + '" class="col-sm-3 col-lg-2" title = "' + value._Title + '" data-ng-click="openModuleItemView($event)">'
  599 + + '<div class="thumbnail" ><a href="#">'
  600 + + '<img class="tinyImg" id="' + value._Title + '"ng-src="' + $scope.imagePath + '" alt="" title="" >'
  601 + + '<div class="caption"><p>' + value._Title + '</p></div></a></div></div>').appendTo('#grid-view');
  602 +
  603 +
  604 + $compile($el)($scope);
  605 +
  606 + $(".sidebar").mCustomScrollbar({
  607 + autoHideScrollbar: true,
  608 + //theme:"rounded"
  609 + });
  610 +
  611 +
  612 + $scope.searchAAListViewData.push(
  613 + {
  614 + "_Id": value._Id,
  615 + "_ImageId": value._ImageId,
  616 + "_Title": value._Title,
  617 + "_ImageName": value._contentImage,
  618 + "_TileImageName": value._ThumbnailImage,
  619 + "_BodySystem": value._BodySystem,
  620 + "_BodyRegion": value._BodyRegion,
  621 + "_ViewOrientation": value._ViewOrientation,
  622 + "_ImageType": value._ImageType
  623 + //"$$hashKey": value._Summary
  624 +
  625 + });
  626 + console.log($scope.searchAAListViewData);
  627 + if ($('#searchItem').length > 0)
  628 + $('#searchItem').remove();
  629 + }
  630 + });
  631 +
  632 + //Show Error Message in case of gridview/ ListView [if no data is found]
  633 + if ($scope.searchAAListViewData.length == 0) {
  634 + var $el = $('<div class="col-sm-12" style="padding-left:25px;padding-top:10px;"><strong style="color:white">No illustration found for the selected search criteria!</strong></div>').appendTo('#grid-view');
  635 + $compile($el)($scope);
  636 + $('table > #ListViewDiv > #searchItem').remove();
  637 +
  638 + $('#ListViewDiv').append('<tr id="searchItem"><td colspan="6"><strong style="color:black;">No illustration found for the selected search criteria!</strong></td></tr>');
  639 + }
  640 + //console.log(JSON.stringify(result, null, 4));
  641 + console.log('SearchAAListViewData--' + $scope.searchAAListViewData);
  642 + },
  643 + function (error) {
  644 + // handle errors here
  645 + console.log(' error: ' + error.statusText);
  646 + }
  647 + )
  648 + }
  649 +
  650 + $scope.Reset = function (moduleId, query) {
  651 +
  652 + query.selectedbodyregion = "";
  653 + query.selectedbodysystem = "";
  654 + query.selectedorientation = "";
  655 + query.selectedimagetype = "";
  656 + query.selectedspecialty = "";
  657 +
  658 +
  659 + //set localstorage values
  660 + localStorage.setItem("CurrentBodyRegion", '');
  661 + localStorage.setItem("CurrentBodySystem", '');
  662 + localStorage.setItem("CurrentOrientation", '');
  663 + localStorage.setItem("CurrentImageType", '');
  664 + //localStorage.setItem("CISelectedRowId", "");
  665 + //localStorage.setItem("CIListViewScroll", '');
  666 +
  667 + if ($('.selected').hasClass("selected")) { $('.selected').removeClass("selected"); }
  668 +
  669 + $('#ListViewDiv').scrollTop(0);
  670 +
  671 + if ($('#demoView').length > 0)
  672 + $('#demoView').remove();
  673 + // $scope.HideListViewDiv();
  674 +
  675 + $scope.filterstring = false;
  676 + //while ($scope.searchCIListViewData.length) {
  677 + // $scope.searchCIListViewData.pop();
  678 + //}
  679 +
  680 + $scope.FilterByImage(1, query);
  681 +
  682 + }
  683 +
  684 + $scope.showSelectedSystemPins = function (event) {
  685 + var bodySystemListObj = document.getElementById("bodySystemList").getElementsByTagName("a");
  686 + var bodySystemListlength = bodySystemListObj.length;
  687 + for (var i = 0; i < bodySystemListlength; i++) {
  688 +
  689 + $("#" + i).parent().removeClass("activeAASystemSelect");
  690 + }
  691 + $("#" + event.currentTarget.id).parent().addClass("activeAASystemSelect");
  692 +
  693 + $rootScope.isLoading = true;
  694 + $('#spinner').css('visibility', 'visible');
  695 +
  696 + $scope.removeSpeechBubble();
  697 + if (event.currentTarget.id == "0") {
  698 +
  699 + $scope.selectedSystemName = null;
  700 + if ($scope.isHidePinBtnClicked) {
  701 +
  702 + // $scope.showAllPinsAfterHide($scope.aaPinData);
  703 + $scope.showAllPinsAfterHide();
  704 + }
  705 + else {
  706 + $scope.showAllPins();
  707 + }
  708 + }
  709 + else {
  710 +
  711 + $scope.selectedSystemName = event.currentTarget.title;
  712 + // get termText info
  713 + var promise = ModuleService.getTermTextDataForPin($scope.moduleName)
  714 + .then(
  715 + function (response) {
  716 +
  717 + $scope.TermInfo = response.data.Terms.Term;
  718 +
  719 + //on gettng all required data, draw pins
  720 + if ($scope.aaPinData != null && $scope.aaPinData.length > 0) {
  721 +
  722 + $scope.selectedSystemPinData = new jinqJs()
  723 + .from($scope.aaPinData)
  724 + .where("_BodySystemName == " + $scope.selectedSystemName)
  725 + .select();
  726 + if ($scope.isHidePinBtnClicked) {
  727 + // $scope.showAllPinsAfterHide($scope.selectedSystemPinData);
  728 + $scope.showAllPinsAfterHide();
  729 +
  730 + }
  731 + else {
  732 + //remove other system pins
  733 + if ($scope.selectedSystemPinData != null && $scope.selectedSystemPinData.length > 0) {
  734 +
  735 + angular.forEach($scope.aaPinData, function (aaPinDataValue, aaPinDataKey) {
  736 +
  737 + if (aaPinDataValue._BodySystemName != $scope.selectedSystemName)
  738 + $scope.removePin('aaDetailViewCanvas', aaPinDataValue._PinId);
  739 + })
  740 +
  741 + angular.forEach($scope.selectedSystemPinData, function (value, key) {
  742 +
  743 +
  744 + $scope.drawStaticPinsOnImage('aaDetailViewCanvas', value._PinId, value._PinX, value._PinY, value._HeadX, value._HeadY)
  745 +
  746 + })
  747 + //show annotation on first pin of the sysyem
  748 + $scope.showAnnotation($scope.selectedSystemPinData, false, false, false);
  749 + }
  750 + }
  751 + }
  752 + },
  753 + function (error) {
  754 + // handle errors here
  755 + console.log(' error: ' + error.statusText);
  756 + }
  757 + )
  758 +
  759 + }
  760 + }
  761 +
  762 + $scope.showAnnotation = function (selectedPinData, isCtrlPressed, isPinClicked, isItemSearched) {
  763 + $scope.clickedPins = [];
  764 + $scope.selectedPin = [];
  765 + var isSameTermWithMultiPin = false;
  766 + var firstPinId = selectedPinData[0]._PinId;
  767 + var pinTermNumber = selectedPinData[0]._TermId;
  768 +
  769 + //check if other pin have same termNumber
  770 + if ($scope.aaPinData != null && $scope.aaPinData.length > 0) {
  771 +
  772 + var pinDataWithFirstTermNumber = new jinqJs()
  773 + .from($scope.aaPinData)
  774 + .where("_TermId == " + pinTermNumber)
  775 + .select();
  776 +
  777 + $scope.MultiLanguageAnnationArray = [];
  778 +
  779 + $scope.GetAnnotationBasedOnActualTermNo(pinTermNumber);
  780 +
  781 + if (isCtrlPressed) {
  782 +
  783 + }
  784 + else {
  785 + if (isPinClicked || isItemSearched) {
  786 + var existingSpeechBubble = $("div[id*='speechBubble']");
  787 + for (var i = 0; i < existingSpeechBubble.length; i++) {
  788 + existingSpeechBubble[i].parentNode.removeChild(existingSpeechBubble[i]);
  789 +
  790 + //make all pin heads grey
  791 + var radial = $('#aaDetailViewCanvas').createGradient({
  792 + x1: 50, y1: 50,
  793 + x2: 50, y2: 50,
  794 + r1: 10, r2: 30,
  795 + c1: 'rgba(100, 50, 0,0)',
  796 + c2: 'rgb(216, 216, 216)'
  797 + });
  798 +
  799 +
  800 + $('#aaDetailViewCanvas').setLayers({
  801 + fillStyle: radial,
  802 + }).drawLayers();
  803 + }
  804 +
  805 + var existingSpeechBubbleLine = $("div[id*='speechBubbleLine']");
  806 + for (var i = 0; i < existingSpeechBubbleLine.length; i++) {
  807 + existingSpeechBubbleLine[i].parentNode.removeChild(existingSpeechBubbleLine[i]);
  808 + }
  809 + var speechBubbleDraggedLine = $("div[id*='speechBubbleDraggedLine']");
  810 + for (var i = 0; i < speechBubbleDraggedLine.length; i++) {
  811 + speechBubbleDraggedLine[i].parentNode.removeChild(speechBubbleDraggedLine[i]);
  812 + }
  813 + }
  814 + }
  815 + if (pinDataWithFirstTermNumber.length > 1) {
  816 + isSameTermWithMultiPin = true;
  817 + }
  818 +
  819 + angular.forEach(pinDataWithFirstTermNumber, function (value, key) {
  820 + $scope.selectedPin.push(value._PinId);
  821 + $scope.clickedPins.push({ 'id': value._PinId });
  822 + var headX = (parseInt(value._HeadX));
  823 + var headY = (parseInt(value._HeadY));
  824 + $scope.createSpeechBubble(parseInt(headX) + 10, parseInt(headY) + 10, value._PinId, isCtrlPressed, isPinClicked, isSameTermWithMultiPin);
  825 + })
  826 +
  827 + }
  828 +
  829 + $rootScope.isLoading = false;
  830 + $('#spinner').css('visibility', 'hidden');
  831 + // $scope.MultiLanguageAnnationArray.push($rootScope.annotationText[i])
  832 + }
  833 +
  834 + $scope.removeSpeechBubble = function () {
  835 +
  836 +
  837 + //clear speech bubbles
  838 + var speechBubbles = $("div[id*='speechBubble']");
  839 + if (speechBubbles != null || speechBubbles != undefined && speechBubbles.length > 0) {
  840 + for (var j = 0; j < speechBubbles.length; j++) {
  841 +
  842 + speechBubbles[j].parentNode.removeChild(speechBubbles[j]);
  843 + }
  844 + }
  845 + var speechBubbleLines = $("div[id*='speechBubbleLine']");
  846 + if (speechBubbleLines != null || speechBubbleLines != undefined && speechBubbleLines.length > 0) {
  847 + for (var j = 0; j < speechBubbleLines.length; j++) {
  848 +
  849 + speechBubbleLines[j].parentNode.removeChild(speechBubbleLines[j]);
  850 + }
  851 + }
  852 +
  853 + var speechBubbleDraggedLines = $("div[id*='speechBubbleDraggedLine']");
  854 + if (speechBubbleDraggedLines != null || speechBubbleDraggedLines != undefined && speechBubbleDraggedLines.length > 0) {
  855 + for (var j = 0; j < speechBubbleDraggedLines.length; j++) {
  856 +
  857 + speechBubbleDraggedLines[j].parentNode.removeChild(speechBubbleDraggedLines[j]);
  858 + }
  859 + }
  860 + };
  861 +
  862 + $scope.showSpeechBubble = function () {
  863 +
  864 +
  865 + //clear speech bubbles
  866 + var speechBubbles = $("div[id*='speechBubble']");
  867 + if (speechBubbles != null || speechBubbles != undefined && speechBubbles.length > 0) {
  868 + for (var j = 0; j < speechBubbles.length; j++) {
  869 +
  870 + document.getElementById(speechBubbles[j].id).style.visibility = 'visible';
  871 + }
  872 + }
  873 + var speechBubbleLines = $("div[id*='speechBubbleLine']");
  874 + if (speechBubbleLines != null || speechBubbleLines != undefined && speechBubbleLines.length > 0) {
  875 + for (var j = 0; j < speechBubbleLines.length; j++) {
  876 +
  877 + document.getElementById(speechBubbleLines[j].id).style.visibility = 'visible';
  878 + }
  879 + }
  880 +
  881 + var speechBubbleDraggedLines = $("div[id*='speechBubbleDraggedLine']");
  882 + if (speechBubbleDraggedLines != null || speechBubbleDraggedLines != undefined && speechBubbleDraggedLines.length > 0) {
  883 + for (var j = 0; j < speechBubbleDraggedLines.length; j++) {
  884 +
  885 + document.getElementById(speechBubbleDraggedLines[j].id).style.visibility = 'visible';
  886 + }
  887 + }
  888 + };
  889 +
  890 + $scope.hideSpeechBubble = function () {
  891 +
  892 +
  893 + //clear speech bubbles
  894 + var speechBubbles = $("div[id*='speechBubble']");
  895 + if (speechBubbles != null || speechBubbles != undefined && speechBubbles.length > 0) {
  896 + for (var j = 0; j < speechBubbles.length; j++) {
  897 +
  898 + document.getElementById(speechBubbles[j].id).style.visibility = 'hidden';
  899 + }
  900 + }
  901 + var speechBubbleLines = $("div[id*='speechBubbleLine']");
  902 + if (speechBubbleLines != null || speechBubbleLines != undefined && speechBubbleLines.length > 0) {
  903 + for (var j = 0; j < speechBubbleLines.length; j++) {
  904 +
  905 + document.getElementById(speechBubbleLines[j].id).style.visibility = 'hidden';
  906 + }
  907 + }
  908 +
  909 + var speechBubbleDraggedLines = $("div[id*='speechBubbleDraggedLine']");
  910 + if (speechBubbleDraggedLines != null || speechBubbleDraggedLines != undefined && speechBubbleDraggedLines.length > 0) {
  911 + for (var j = 0; j < speechBubbleDraggedLines.length; j++) {
  912 +
  913 + document.getElementById(speechBubbleDraggedLines[j].id).style.visibility = 'hidden';
  914 + }
  915 + }
  916 + };
  917 +
  918 +
  919 + $scope.createSpeechBubble = function (x, y, PinId, isCtrlPressed, isPinClicked, isSameTermWithMultiPin) {
  920 +
  921 + $scope.longestAnnotation = $scope.MultiLanguageAnnationArray.reduce(function (firstAnnotation, seconAnnotation) { return firstAnnotation.length > seconAnnotation.length ? firstAnnotation : seconAnnotation; });
  922 +
  923 + $scope.createSpeechBubbleBasedOnAnnotationLength(x, y, PinId);
  924 +
  925 + $('#speechBubble').draggable(
  926 + {
  927 + drag: function (evt) {
  928 + $("#dot").css("visibility", "hidden");
  929 + var verticalScrollPosition = canvasDiv.scrollTop;
  930 + var horizontlScrollPosition = canvasDiv.scrollLeft;
  931 + $scope.angle(x * $scope.sliderPercentValue, y * $scope.sliderPercentValue, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, true);
  932 + },
  933 + });
  934 +
  935 + }
  936 + $scope.sliderVal = 100;
  937 + $scope.createSpeechBubbleBasedOnAnnotationLength = function (x, y, PinId) {
  938 +
  939 + x = x * $scope.sliderPercentValue;
  940 + y = y * $scope.sliderPercentValue;
  941 +
  942 + var speechBubbleHTML = '<div id="speechBubbleLine' + PinId + '" style="position:absolute;height:15px;width:35px;display:none;z-index:13000;border-top:2px solid #000;transform:rotate(40deg);-moz-transform:rotate(40deg);-o-transform:rotate(40deg);-ms-transform:rotate(40deg);-webkit-transform:rotate(40deg);"></div>'
  943 + + '<div id="speechBubble' + PinId + '" class="common-drag" style="height:auto!important;z-index:13000;margin-left:25px;border:1px solid #000;padding:5px 10px;position:absolute;color:#fff;text-align:left;font-size:12px;background-color:#19100e;border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;-o-border-radius:5px;-ms-border-radius:5px;font-weight:bold;">'
  944 + + '<span style="position:absolute;right:-3px;top:-4px;color:#ffffff;cursor:pointer;">'
  945 + + '<img id="closeBtn' + PinId + ' " class="crossDiv_temp" style="width:18px" src=' + $rootScope.closeBtnImgPath + '></span></div>'
  946 +
  947 + + '<div style="position:absolute;border:1px solid #000;display:none;z-index:12000;" id="speechBubbleDraggedLine' + PinId + '">'
  948 + + '</div>';
  949 +
  950 + //Issue #7286 :Undefined annotation should not appear
  951 + for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
  952 + var MultipleLanguage = $scope.MultiLanguageAnnationArray[i];
  953 + }
  954 +
  955 + if (MultipleLanguage == undefined) {
  956 + console.log("No text is found");
  957 + } else {
  958 + $('#canvasDiv').append(speechBubbleHTML);
  959 +
  960 + if ($scope.MultiLanguageAnnationArray.length > 0) {
  961 + for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
  962 + var MultipleLanguage = $scope.MultiLanguageAnnationArray[i];
  963 + $rootScope.clickedPinAnnotation = $scope.MultiLanguageAnnationArray[0];
  964 + $("#speechBubble" + PinId).append("<p style='margin-bottom:2px;'>" + MultipleLanguage + "</p>");
  965 + }
  966 + }
  967 + else {
  968 + console.log('MultiLanguageAnnationArray.length is :' + $scope.MultiLanguageAnnationArray.length)
  969 + }
  970 +
  971 +
  972 +
  973 +
  974 +
  975 + if ($scope.longestAnnotation != null || $scope.longestAnnotation != undefined) {
  976 + if ($scope.longestAnnotation.length <= 10) {
  977 +
  978 +
  979 + $("#speechBubble").css("width", "100px");
  980 +
  981 + }
  982 +
  983 + else if ($scope.longestAnnotation.length > 10 && $scope.longestAnnotation.length <= 17) {
  984 +
  985 +
  986 +
  987 + $("#speechBubble").css("width", "140px");
  988 +
  989 + }
  990 + else if ($scope.longestAnnotation.length > 17 && $scope.longestAnnotation.length <= 26) {
  991 +
  992 +
  993 + $("#speechBubble").css("width", "195px");
  994 +
  995 + }
  996 + else if ($scope.longestAnnotation.length > 26 && $scope.longestAnnotation.length <= 34) {
  997 +
  998 + $("#speechBubble").css("width", "248px");
  999 +
  1000 + }
  1001 + else if ($scope.longestAnnotation.length > 34 && $scope.longestAnnotation.length <= 44) {
  1002 +
  1003 +
  1004 + $("#speechBubble").css("width", "300px");
  1005 + }
  1006 +
  1007 + else if ($scope.longestAnnotation.length > 44 && $scope.longestAnnotation.length <= 54) {
  1008 +
  1009 + $("#speechBubble").css("width", "370px");
  1010 + }
  1011 +
  1012 + else if ($scope.longestAnnotation.length > 54 && $scope.longestAnnotation.length <= 69) {
  1013 + $("#speechBubble").css("width", "450px");
  1014 + }
  1015 + else if ($scope.longestAnnotation.length > 69 && $scope.longestAnnotation.length <= 75) {
  1016 + $("#speechBubble").css("width", "510px");
  1017 + }
  1018 + else {
  1019 + $("#speechBubble").css("width", ($scope.longestAnnotation.length) + "%");
  1020 + }
  1021 + }
  1022 + }
  1023 + var speechBubbleDims = [];
  1024 +
  1025 + $rootScope.speechBubbleDimaensions.push({ "currentX": x, "currentY": y, "id": PinId });
  1026 + speechBubbleDims.push({ currentX: x, currentY: y });
  1027 + document.getElementById('speechBubbleLine' + PinId + '').style.display = 'block';
  1028 + document.getElementById('speechBubbleLine' + PinId + '').style.left = ((speechBubbleDims[0].currentX - 12)) + 'px';
  1029 + if ($scope.sliderVal == 25) {
  1030 + document.getElementById('speechBubbleLine' + PinId + '').style.top = ((speechBubbleDims[0].currentY + 5)) + 'px';
  1031 + }
  1032 + else {
  1033 + document.getElementById('speechBubbleLine' + PinId + '').style.top = ((speechBubbleDims[0].currentY)) + 'px';
  1034 + }
  1035 + document.getElementById('speechBubble' + PinId + '').style.display = 'block';
  1036 + document.getElementById('speechBubble' + PinId + '').style.left = (speechBubbleDims[0].currentX - 4) + 'px';
  1037 + document.getElementById('speechBubble' + PinId + '').style.top = (speechBubbleDims[0].currentY) + 'px';
  1038 + $('.common-drag').draggable(
  1039 + {
  1040 +
  1041 + drag: function (evt) {
  1042 +
  1043 + var verticalScrollPosition = document.getElementById('canvasDiv').scrollTop;
  1044 + var horizontlScrollPosition = document.getElementById('canvasDiv').scrollLeft;
  1045 + var clickedSpeechBubbleId = $(this).attr("id");
  1046 +
  1047 + var clickedPinId = clickedSpeechBubbleId.substring(12, clickedSpeechBubbleId.length);
  1048 +
  1049 + $("#speechBubbleLine" + clickedPinId).css("visibility", "hidden");
  1050 + $("#speechBubbleLine" + clickedPinId).css("display", "none");
  1051 +
  1052 + for (var i = 0; i <= $rootScope.speechBubbleDimaensions.length - 1; i++) {
  1053 + if ($rootScope.speechBubbleDimaensions[i].id == clickedPinId) {
  1054 + $scope.angle(clickedPinId, $rootScope.speechBubbleDimaensions[i].currentX, $rootScope.speechBubbleDimaensions[i].currentY, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, true);
  1055 + }
  1056 + }
  1057 +
  1058 + },
  1059 + });
  1060 + $('.crossDiv_temp').on('click', function (evt) {
  1061 +
  1062 + var imgId = $(this).attr("id");
  1063 + var pinId = imgId.substring(8, imgId.length);
  1064 + $('#speechBubble' + pinId).remove();
  1065 + $("#speechBubbleDraggedLine" + pinId).remove();
  1066 + $("#speechBubbleLine" + pinId).remove();
  1067 +
  1068 + //make all pin heads grey
  1069 + var pinHeadName = 'PinArc_' + pinId;
  1070 + var radial = $('#aaDetailViewCanvas').createGradient({
  1071 + x1: 50, y1: 50,
  1072 + x2: 50, y2: 50,
  1073 + r1: 10, r2: 30,
  1074 + c1: 'rgba(100, 50, 0,0)',
  1075 + c2: 'rgb(216, 216, 216)'
  1076 + });
  1077 +
  1078 +
  1079 + $('#aaDetailViewCanvas').setLayer(pinHeadName, {
  1080 + fillStyle: radial,
  1081 + }).drawLayers();
  1082 + });
  1083 +
  1084 + //make the head green
  1085 + var radialAfterClick = $('#aaDetailViewCanvas').createGradient({
  1086 + x1: 50, y1: 50,
  1087 + x2: 50, y2: 50,
  1088 + r1: 10, r2: 30,
  1089 + c1: 'rgba(100, 50, 0,0)',
  1090 + c2: 'rgb(126, 187, 83)'
  1091 + });
  1092 + var pinHeadName = 'PinArc_' + PinId;
  1093 + var pin = $('#aaDetailViewCanvas').getLayer(pinHeadName);
  1094 + // pin.fillStyle = radialAfterClick;
  1095 +
  1096 + $('#aaDetailViewCanvas').setLayer(pinHeadName, {
  1097 + fillStyle: radialAfterClick,
  1098 + }).drawLayers();
  1099 + }
  1100 +
  1101 +
  1102 + $scope.angle = function (id, cx, cy, ex, ey, BoolValues) {
  1103 +
  1104 + var dy = ey - cy;
  1105 + var dx = ex - cx;
  1106 + var theta = 0;
  1107 + if (dx < 0) {
  1108 + theta = Math.atan(dy / dx) * (180 / Math.PI);
  1109 + theta = theta + 180;
  1110 +
  1111 + }
  1112 + else if (dy < 0) {
  1113 + theta = Math.atan(dy / dx) * (180 / Math.PI);
  1114 + theta = theta + 360;
  1115 +
  1116 + }
  1117 + else {
  1118 + theta = Math.atan(dy / dx) * (180 / Math.PI);
  1119 + }
  1120 +
  1121 + var d = Math.sqrt((cx - ex) * (cx - ex) + (cy - ey) * (cy - ey));
  1122 + var e = cy;
  1123 + var f = cx;
  1124 +
  1125 + if (BoolValues == true) {
  1126 + if ($scope.sliderVal == 40) {
  1127 + $("#speechBubbleDraggedLine" + id).css({ 'display': 'block', 'width': d + 'px', 'top': (e - 5) + 'px', 'left': (f - 5) + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });
  1128 + }
  1129 + else if ($scope.sliderVal == 25) {
  1130 + $("#speechBubbleDraggedLine" + id).css({ 'display': 'block', 'width': d + 'px', 'top': (e - 2) + 'px', 'left': (f - 2) + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });
  1131 + }
  1132 + else {
  1133 + $("#speechBubbleDraggedLine" + id).css({ 'display': 'block', 'width': d + 'px', 'top': (e - 10) + 'px', 'left': (f - 5) + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });
  1134 + }
  1135 +
  1136 + }
  1137 + else {
  1138 + $("#bord_annotation").css({ 'display': 'block', 'width': d + 'px', 'top': e + 'px', 'left': f + 'px', 'transform': 'rotate(' + theta + 'deg)', '-moz-transform': 'rotate(' + theta + 'deg)', '-webkit-transform': 'rotate(' + theta + 'deg)', 'transform-origin': '0% 0%' });
  1139 + }
  1140 +
  1141 +
  1142 +
  1143 + }
  1144 +
  1145 +
  1146 + $scope.drawStaticPinsOnImage = function (canvasId, PinId, offsetX1, offsetY1, x, y) {
  1147 + $scope.clickedPins = [];
  1148 + // if ($scope.isSliderChange == true) {
  1149 + console.log('isSliderrChange')
  1150 + var radial = $('#' + canvasId).createGradient({
  1151 + x1: 50, y1: 50,
  1152 + x2: 50, y2: 50,
  1153 + r1: 10, r2: 30,
  1154 + c1: 'rgba(100, 50, 0,0)',
  1155 + c2: 'rgb(216, 216, 216)'
  1156 + });
  1157 + $('#' + canvasId).drawLine({
  1158 + layer: true,
  1159 + name: "Pin_" + PinId,
  1160 + groups: ["Pin_" + PinId],
  1161 + strokeStyle: '#565656',
  1162 + strokeWidth: 2,
  1163 + visible: true,
  1164 + x1: offsetX1 * $scope.sliderPercentValue, y1: offsetY1 * $scope.sliderPercentValue,
  1165 + x2: x * $scope.sliderPercentValue, y2: y * $scope.sliderPercentValue,
  1166 +
  1167 +
  1168 + }).drawArc({
  1169 + name: "PinArc_" + PinId,
  1170 + layer: true,
  1171 + groups: ["Pin_" + PinId],
  1172 + strokeStyle: 'grey',
  1173 + strokeWidth: 2,
  1174 + visible: true,
  1175 + fillStyle: radial,
  1176 + x: x * $scope.sliderPercentValue, y: y * $scope.sliderPercentValue,
  1177 + radius: 5 * $scope.sliderPercentValue,
  1178 +
  1179 + click: function (clickedPin) {
  1180 + if (clickedPin.event.ctrlKey == false) {
  1181 + $scope.clickedPins = [];
  1182 + }
  1183 + var pinID = (clickedPin.name).substring(7, (clickedPin.name).length);
  1184 + var pinData = new jinqJs()
  1185 + .from($scope.aaPinData)
  1186 + .where("_PinId == " + pinID)
  1187 + .select();
  1188 +
  1189 +
  1190 + var pinTermNumber = pinData[0]._TermId;
  1191 +
  1192 + var pinWithSameTerm = new jinqJs()
  1193 +
  1194 + .from($scope.aaPinData)
  1195 + .where("_TermId == " + pinTermNumber)
  1196 + .select();
  1197 +
  1198 +
  1199 + if (pinWithSameTerm != undefined && pinWithSameTerm != null && pinWithSameTerm.length > 0) {
  1200 +
  1201 + for (var i = 0; i < pinWithSameTerm.length; i++) {
  1202 +
  1203 + $scope.clickedPins.push({ 'id': pinWithSameTerm[i]._PinId })
  1204 + }
  1205 +
  1206 + }
  1207 + $scope.isSelectedPinBtnClickedAftrSliderCange = false;
  1208 + var selectedPinData = new jinqJs()
  1209 + .from($scope.aaPinData)
  1210 + .where("_PinId == " + pinID)
  1211 + .select();
  1212 + if (clickedPin.event.ctrlKey == true) {
  1213 +
  1214 + $scope.activePinArray.push(clickedPin.name);
  1215 + var radialAfterClick = $('#aaDetailViewCanvas').createGradient({
  1216 + x1: 50, y1: 50,
  1217 + x2: 50, y2: 50,
  1218 + r1: 10, r2: 30,
  1219 + c1: 'rgba(100, 50, 0,0)',
  1220 + c2: 'rgb(126, 187, 83)'
  1221 + });
  1222 + clickedPin.fillStyle = radialAfterClick;
  1223 + $scope.showAnnotation(selectedPinData, true, true, false);
  1224 + }
  1225 + else {
  1226 + $scope.activePinArray = [];
  1227 + $scope.activePinArray.push(clickedPin.name);
  1228 + var radial = $('#aaDetailViewCanvas').createGradient({
  1229 + x1: 50, y1: 50,
  1230 + x2: 50, y2: 50,
  1231 + r1: 10, r2: 30,
  1232 + c1: 'rgba(100, 50, 0,0)',
  1233 + c2: 'rgb(216, 216, 216)'
  1234 + });
  1235 +
  1236 +
  1237 + $('#aaDetailViewCanvas').setLayers({
  1238 + fillStyle: radial,
  1239 + }).drawLayers();
  1240 +
  1241 + //change the head color to green
  1242 + var radialAfterClick = $('#aaDetailViewCanvas').createGradient({
  1243 + x1: 50, y1: 50,
  1244 + x2: 50, y2: 50,
  1245 + r1: 10, r2: 30,
  1246 + c1: 'rgba(100, 50, 0,0)',
  1247 + c2: 'rgb(126, 187, 83)'
  1248 + });
  1249 +
  1250 + clickedPin.fillStyle = radialAfterClick;
  1251 + $scope.showAnnotation(selectedPinData, false, true, false);
  1252 +
  1253 + }
  1254 +
  1255 + }
  1256 +
  1257 + }).drawLayers();
  1258 + }
  1259 +
  1260 +
  1261 + $scope.getMousePos = function (evt) {
  1262 +
  1263 + return {
  1264 + x: Math.round(evt.pageX - $('#canvasDiv').offset().left),
  1265 + y: Math.round(evt.pageY - $('#canvasDiv').offset().top)
  1266 + }
  1267 + }
  1268 +
  1269 + $scope.removePin = function (canvasId, pinId) {
  1270 +
  1271 + var pinName = 'Pin_' + pinId;
  1272 + var pinArcName = 'PinArc_' + pinId;
  1273 + $('#' + canvasId).removeLayer(pinName).drawLayers();
  1274 + $('#' + canvasId).removeLayer(pinArcName).drawLayers();
  1275 +
  1276 + $scope.removeSpeechBubble();
  1277 +
  1278 + //$rootScope.isSliderChanged = true;
  1279 + //$('#aaDetailViewCanvas').removeLayers();
  1280 + }
  1281 +
  1282 + $rootScope.$on('annotationToolEvent', function (event, data) {
  1283 + $('#editstylebackgroundcolor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(255,255,255)")
  1284 + $('#editstylebackgroundcolor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });
  1285 + $('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(0,0,0)")
  1286 + $('#outlineColor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });
  1287 +
  1288 + $("#canvas").css("display", "block");
  1289 + $("#canvasPaint").css("display", "block");
  1290 + $rootScope.onDrawingCanvasClick();
  1291 + $rootScope.FreeStylePaint();
  1292 + });
  1293 +
  1294 + $rootScope.loadSearchData = function () {
  1295 +
  1296 + //$("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });
  1297 + var imageId = $rootScope.imageId;
  1298 + var promise = ModuleService.getTermTextDataForAAImage(imageId)
  1299 + .then(
  1300 + function (response) {
  1301 +
  1302 + $scope.AAPinTermData = response.data.PinTermData.TermData;
  1303 +
  1304 + $rootScope.isLoading = false;
  1305 + $('#setting-spinner').css('visibility', 'hidden');
  1306 +
  1307 + $scope.pinTermData = [];
  1308 + var primaryLexicon = $rootScope.lexiconLanguageArray[0].id;
  1309 + $scope.matchedLanguageTermData = new jinqJs()
  1310 + .from($scope.AAPinTermData)
  1311 + .where('_LanguageId == ' + primaryLexicon)
  1312 + .select();
  1313 + var sortedTermTextArray = [];
  1314 + for (var i = 0; i < $scope.matchedLanguageTermData.length; i++) {
  1315 + sortedTermTextArray.push($scope.matchedLanguageTermData[i]._TermText);
  1316 + sortedTermTextArray.sort();
  1317 + }
  1318 +
  1319 + for (var i = 0; i <= sortedTermTextArray.length - 1; i++) {
  1320 + for (var j = 0; j <= $scope.matchedLanguageTermData.length - 1; j++) {
  1321 + if ($scope.matchedLanguageTermData[j]._TermText == sortedTermTextArray[i]) {
  1322 + $scope.pinTermData.push({ "LanguageId": $scope.matchedLanguageTermData[j]._LanguageId, "TermNumber": $scope.matchedLanguageTermData[j]._TermNumber, "TermTxt": $scope.matchedLanguageTermData[j]._TermText });
  1323 + break;
  1324 + }
  1325 + }
  1326 + }
  1327 +
  1328 +
  1329 + $scope.$watch('$scope.pinTermData', function (newValue, oldValue, scope) {
  1330 +
  1331 + if (($('#termlistfilter').html() != ""))
  1332 +
  1333 + $('#termlistfilter').empty();
  1334 + if ($scope.pinTermData.length > 0) {
  1335 + $timeout(function () {
  1336 + console.log('pinTermData= ' + $scope.pinTermData.length);
  1337 + $('#termList').empty();
  1338 + $('#termlistfilter').empty();
  1339 + for (var j = 0; j < $scope.pinTermData.length; j++) {
  1340 + var $el = $('<li><a id= "' + $scope.pinTermData[j].TermNumber + '" href="" onclick="onSearchItemSelection(this.id)" >' + $scope.pinTermData[j].TermTxt + '</a></li>').appendTo('#termlistfilter')
  1341 + //var $el = $('<li><a id= "' + $scope.pinTermData[j].TermNumber + '" href="" >' + $scope.pinTermData[j].TermTxt + '</a></li>').appendTo('#termlistfilter')
  1342 + $compile($el)($scope);
  1343 + var $selectedOptions = $('<option title= "' + $scope.pinTermData[j].TermTxt + '" id= "' + $scope.pinTermData[j].TermNumber + '" >' + $scope.pinTermData[j].TermTxt + '</option>').appendTo("#termList")
  1344 +
  1345 + $compile($selectedOptions)($scope);
  1346 +
  1347 + $("#AABodySystems").empty();
  1348 + $("#bodySystems").css("display", "none");
  1349 + $("#AABodySystems").css("display", "block");
  1350 + $("#bodySystemList li a").each(function (key, value) {
  1351 + var $systemOptions = $('<option id=' + $(this).attr('id') + ' >' + $(this).text() + '</option>').appendTo("#AABodySystems")
  1352 + $compile($systemOptions)($scope);
  1353 + });
  1354 + }
  1355 + }, 500);
  1356 + }
  1357 + })
  1358 + },
  1359 + function (error) {
  1360 + // handle errors here
  1361 + console.log(' error: ' + error.statusText);
  1362 + }
  1363 + )
  1364 + }
  1365 +
  1366 +
  1367 +
  1368 +
  1369 + $scope.$on('listManagerEvent', function (event, data) {
  1370 +
  1371 + $("#viewName").empty();
  1372 +
  1373 + var currentView = $rootScope.getLocalStorageValue("currentViewTitle");
  1374 + var viewNmeHtml = '<option>' + currentView + '</option>'
  1375 + $('#viewName').append(viewNmeHtml);
  1376 + //$("#viewName").append("<option>" + $rootScope.listArray[0].text + "</option>");
  1377 + $rootScope.isLoading = false;
  1378 + $('#spinner').css('visibility', 'hidden');
  1379 +
  1380 + if ($rootScope.bodySystemSeletedId == null) {
  1381 +
  1382 + $rootScope.loadSearchData();
  1383 + }
  1384 + else {
  1385 +
  1386 + $rootScope.refreshTermListOnAASystemSelection($rootScope.bodySystemSeletedId);
  1387 + }
  1388 + $timeout(function () {
  1389 + $("#totalTerms").empty();
  1390 + $("#totalTerms").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");
  1391 + }, 1000);
  1392 + });
  1393 +
  1394 +
  1395 +
  1396 + $rootScope.refreshTermListOnAASystemSelection = function (bodySystemId) {
  1397 + $rootScope.bodySystemSeletedId = bodySystemId;
  1398 + $('#termList').empty();
  1399 + var bodySystemName = $("#AABodySystems #" + bodySystemId).val();
  1400 + if (bodySystemName == "All") {
  1401 + for (var j = 0; j <= $scope.pinTermData.length - 1; j++) {
  1402 + var $selectedOptions = $('<option title= "' + $scope.pinTermData[j].TermTxt + '" id= "' + $scope.pinTermData[j].TermNumber + '">' + $scope.pinTermData[j].TermTxt + '</option>').appendTo("#termList")
  1403 +
  1404 + $compile($selectedOptions)($scope);
  1405 + }
  1406 + $("#totalTerms").empty();
  1407 + $("#totalTerms").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");
  1408 + }
  1409 + else {
  1410 + var imageId = $rootScope.imageId;
  1411 + $scope.pinDataUrl = "aa_dat_pinterm_" + imageId;
  1412 + $rootScope.bodySystemTermArray = [];
  1413 + $rootScope.sortedListArray = [];
  1414 + $rootScope.duplicateListArray = [];
  1415 + $.ajax({
  1416 + url: '~/../content/data/json/aa/aa_pinterm/' + $scope.pinDataUrl + '.json',
  1417 + type: 'GET',
  1418 + dataType: "json",
  1419 + async: false,
  1420 + success: function (result) {
  1421 + $(result.PinTermData.TermData).each(function (key, value) {
  1422 + $rootScope.bodySystemTermArray.push({ "termNumbr": result.PinTermData.TermData[key]._TermNumber, "text": result.PinTermData.TermData[key]._TermText, "language": result.PinTermData.TermData[key]._LanguageId });
  1423 + });
  1424 + for (var i = 0; i <= $scope.aaPinData.length - 1; i++) {
  1425 + if ($scope.aaPinData[i]._BodySystemName.toLowerCase() == bodySystemName.toLowerCase()) {
  1426 + for (var j = 0 ; j <= $rootScope.bodySystemTermArray.length - 1; j++) {
  1427 + if ($scope.aaPinData[i]._TermId == $rootScope.bodySystemTermArray[j].termNumbr) {
  1428 + if ($rootScope.bodySystemTermArray[j].language == $rootScope.lexiconLanguageArray[0].id) {
  1429 + console.log($rootScope.bodySystemTermArray[j].text);
  1430 + $rootScope.duplicateListArray.push({ "title": $rootScope.bodySystemTermArray[j].text, "id": $rootScope.bodySystemTermArray[j].termNumbr });
  1431 + }
  1432 + }
  1433 + }
  1434 + }
  1435 + }
  1436 + var temp = [];
  1437 + for (var i = 0; i <= $rootScope.duplicateListArray.length - 1; i++) {
  1438 + var termID = $rootScope.duplicateListArray[i].id;
  1439 + if ($.inArray(termID, temp) == -1) {
  1440 + temp.push(termID);
  1441 + $rootScope.sortedListArray.push({ "title": $rootScope.duplicateListArray[i].title, "id": termID });
  1442 + }
  1443 + }
  1444 +
  1445 + for (var i = 0; i <= $rootScope.sortedListArray.length - 1; i++) {
  1446 +
  1447 + for (j = i + 1; j <= $rootScope.sortedListArray.length - 1; j++) {
  1448 +
  1449 + if ($rootScope.sortedListArray[i].title.substr(0, 1) > $rootScope.sortedListArray[j].title.substr(0, 1)) {
  1450 +
  1451 + var termText = $rootScope.sortedListArray[i].title;
  1452 + var termNumbr = $rootScope.sortedListArray[i].termNumbr;
  1453 + var termLanguage = $rootScope.sortedListArray[i].language;
  1454 +
  1455 + $rootScope.sortedListArray[i].title = $rootScope.sortedListArray[j].title;
  1456 + $rootScope.sortedListArray[i].termNumbr = $rootScope.sortedListArray[j].termNumbr;
  1457 + $rootScope.sortedListArray[i].language = $rootScope.sortedListArray[j].language;
  1458 +
  1459 + $rootScope.sortedListArray[j].title = termText;
  1460 + $rootScope.sortedListArray[j].termNumbr = termNumbr;
  1461 + $rootScope.sortedListArray[j].language = termLanguage;
  1462 + }
  1463 + }
  1464 + }
  1465 +
  1466 + for (var j = 0; j <= $rootScope.sortedListArray.length - 1; j++) {
  1467 + var $selectedOptions = $('<option title= "' + $rootScope.sortedListArray[j].title + '" id= "' + $rootScope.sortedListArray[j].id + '" >' + $rootScope.sortedListArray[j].title + '</option>').appendTo("#termList")
  1468 + $compile($selectedOptions)($scope);
  1469 + }
  1470 + }
  1471 + });
  1472 + $("#totalTerms").empty();
  1473 + $("#totalTerms").html("<span class='pull-left marginTop5'>" + $("#termList option").length + " Structures</span>");
  1474 + }
  1475 + }
  1476 + $scope.GetAnnotationBasedOnActualTermNo = function (actualTermNo) {
  1477 +
  1478 +
  1479 + var languageArray = $rootScope.lexiconLanguageArray;
  1480 +
  1481 + if ($scope.AAPinTermData != null || $scope.AAPinTermData != undefined) {
  1482 +
  1483 + $scope.matchedTermNoData = new jinqJs()
  1484 + .from($scope.AAPinTermData)
  1485 + .where('_TermNumber == ' + actualTermNo)
  1486 + .select();
  1487 +
  1488 + if ($scope.matchedTermNoData != null || $scope.matchedTermNoData != undefined) {
  1489 +
  1490 + for (var j = 0; j <= languageArray.length - 1; j++) {
  1491 +
  1492 + $scope.matchedLanguageTermNoData = new jinqJs()
  1493 + .from($scope.matchedTermNoData)
  1494 + .where('_LanguageId == ' + languageArray[j].id)
  1495 + .select();
  1496 + var termText = $scope.matchedLanguageTermNoData[0]._TermText;
  1497 + $scope.MultiLanguageAnnationArray.push(termText);
  1498 + };
  1499 + }
  1500 + }
  1501 + }
  1502 +
  1503 + $rootScope.hidePins = function () {
  1504 + $("#dropdownMenu221").addClass("aaSystemDisable");
  1505 + $rootScope.isLoading = true;
  1506 + $('#spinner').css('visibility', 'visible');
  1507 + $scope.hideSpeechBubble();
  1508 +
  1509 + $scope.isHidePinBtnClicked = true;
  1510 + angular.forEach($scope.aaPinData, function (aaPinDataValue, aaPinDataKey) {
  1511 +
  1512 + var pinName = 'Pin_' + aaPinDataValue._PinId;
  1513 + var pinArcName = 'PinArc_' + aaPinDataValue._PinId;
  1514 +
  1515 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1516 + visible: false // set to true instead to show the layer again
  1517 + }).drawLayers();
  1518 +
  1519 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1520 + visible: false // set to true instead to show the layer again
  1521 + }).drawLayers();
  1522 + })
  1523 +
  1524 + $rootScope.isLoading = false;
  1525 + $('#spinner').css('visibility', 'hidden');
  1526 + $(".tooltip-custom").removeClass("btn-primary");
  1527 + $(".tooltip-custom").addClass("btn-black");
  1528 + $("#hidePinBtn").addClass("btn-primary");
  1529 + $("#hidePinBtn").removeClass("btn-black");
  1530 + }
  1531 +
  1532 + $scope.showAllPinsAfterHide = function (event) {
  1533 + if ($("#dropdownMenu221").hasClass("aaSystemDisable")) {
  1534 + $("#dropdownMenu221").removeClass("aaSystemDisable");
  1535 + }
  1536 + $rootScope.isLoading = true;
  1537 + $('#spinner').css('visibility', 'visible');
  1538 + $scope.isHidePinBtnClicked = false;
  1539 + $rootScope.isshowAllPinsBtnAfterHideClicked = true;
  1540 + if ($scope.selectedSystemName != null && $scope.selectedSystemName != undefined) {
  1541 +
  1542 + $scope.showSystemPins($scope.selectedSystemPinData, false);
  1543 +
  1544 + } else {
  1545 +
  1546 + $scope.showSystemPins($scope.aaPinData, false);
  1547 + }
  1548 + $scope.showSpeechBubble();
  1549 + $(".tooltip-custom").removeClass("btn-primary");
  1550 + $(".tooltip-custom").addClass("btn-black");
  1551 + $("#allPinBtn").addClass("btn-primary");
  1552 + $("#allPinBtn").removeClass("btn-black");
  1553 + if ($scope.isSliderChange == true) {
  1554 + $scope.isSliderChange = false;
  1555 + $scope.showAllPins();
  1556 +
  1557 + }
  1558 + };
  1559 +
  1560 +
  1561 + $scope.showSelectedPins = function () {
  1562 + $("#dropdownMenu221").addClass("aaSystemDisable");
  1563 + $rootScope.isLoading = true;
  1564 + $('#spinner').css('visibility', 'visible');
  1565 +
  1566 + $scope.isHidePinBtnClicked = false;
  1567 +
  1568 + if ($scope.selectedSystemName != null && $scope.selectedSystemName != undefined) {
  1569 +
  1570 + $scope.showSystemPins($scope.selectedSystemPinData, true);
  1571 +
  1572 + }
  1573 + else {
  1574 + $scope.showSystemPins($scope.aaPinData, true);
  1575 +
  1576 + }
  1577 + $scope.showSpeechBubble();
  1578 + $(".tooltip-custom").removeClass("btn-primary");
  1579 + $(".tooltip-custom").addClass("btn-black");
  1580 + $("#selectedPin").addClass("btn-primary");
  1581 + $("#selectedPin").removeClass("btn-black");
  1582 +
  1583 + if ($scope.isSelectedPinBtnClickedAftrSliderCange == true) {
  1584 +
  1585 + for (var i = 0; i <= $scope.activePinArray.length - 1; i++) {
  1586 + var pinName = $scope.activePinArray[i].split("_");
  1587 + var activePinName = 'Pin_' + pinName[1];
  1588 + var pinArcName = 'PinArc_' + pinName[1];
  1589 + $('#aaDetailViewCanvas').setLayer(activePinName, {
  1590 + visible: true // set to true instead to show the layer again
  1591 + }).drawLayers();
  1592 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1593 + visible: true // set to true instead to show the layer again
  1594 + }).drawLayers();
  1595 + }
  1596 +
  1597 + }
  1598 +
  1599 + };
  1600 +
  1601 +
  1602 + $scope.showSystemPins = function (seletedSystemPinData, isShowSelectedPins) {
  1603 +
  1604 + if (isShowSelectedPins) {
  1605 +
  1606 + angular.forEach($scope.clickedPins, function (value, key) {
  1607 +
  1608 + seletedSystemPinData = new jinqJs()
  1609 + .from(seletedSystemPinData)
  1610 + .where('_PinId != ' + value.id)
  1611 + .select();
  1612 + })
  1613 + angular.forEach($scope.clickedPins, function (value1, key1) {
  1614 +
  1615 + // if (aaPinDataValue._PinId != value.id) {
  1616 + var pinName = 'Pin_' + value1.id;
  1617 + var pinArcName = 'PinArc_' + value1.id;
  1618 +
  1619 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1620 + visible: true // set to true instead to show the layer again
  1621 + }).drawLayers();
  1622 +
  1623 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1624 + visible: true // set to true instead to show the layer again
  1625 + }).drawLayers();
  1626 + // }
  1627 + })
  1628 +
  1629 + angular.forEach(seletedSystemPinData, function (aaPinDataValue, aaPinDataKey) {
  1630 +
  1631 + var pinName = 'Pin_' + aaPinDataValue._PinId;
  1632 + var pinArcName = 'PinArc_' + aaPinDataValue._PinId;
  1633 +
  1634 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1635 + visible: false // set to true instead to show the layer again
  1636 + }).drawLayers();
  1637 +
  1638 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1639 + visible: false // set to true instead to show the layer again
  1640 + }).drawLayers();
  1641 + })
  1642 +
  1643 + }
  1644 +
  1645 + else {
  1646 + angular.forEach(seletedSystemPinData, function (aaPinDataValue, aaPinDataKey) {
  1647 +
  1648 + var pinName = 'Pin_' + aaPinDataValue._PinId;
  1649 + var pinArcName = 'PinArc_' + aaPinDataValue._PinId;
  1650 +
  1651 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1652 + visible: true // set to true instead to show the layer again
  1653 + }).drawLayers();
  1654 +
  1655 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1656 + visible: true // set to true instead to show the layer again
  1657 + }).drawLayers();
  1658 + })
  1659 + }
  1660 +
  1661 + $rootScope.isLoading = false;
  1662 + $('#spinner').css('visibility', 'hidden');
  1663 +
  1664 +
  1665 + }
  1666 + $rootScope.isshowAllPinsBtnAfterHideClicked = true;
  1667 + $scope.showItemsForSearch = function () {
  1668 + if($rootScope.isshowAllPinsBtnAfterHideClicked == true){
  1669 + console.log('showItemsForSearch is called');
  1670 + //this check is for log only because we are writing length so need to check if its not null or undefined
  1671 +
  1672 +
  1673 + $timeout(function () {
  1674 + if (($scope.AAPinTermData != null || $scope.AAPinTermData != undefined) && ($scope.AAPinTermData.length > 0)) {
  1675 +
  1676 + $scope.IsSearchVisible = true;
  1677 + document.getElementById("termlistfilter").style.display = "block";
  1678 + }
  1679 + else {
  1680 + $rootScope.loadSearchData();
  1681 + if ($scope.AAPinTermData.length > 0) {
  1682 + $scope.showItemsForSearch();
  1683 + }
  1684 + }
  1685 +
  1686 + if ($rootScope.isSearchInputClicked == true) {
  1687 + $rootScope.isSearchInputClicked = false;
  1688 + $rootScope.searchListArray = [];
  1689 + $("#backdrop > #searchListDivAA > #termlistfilter > li").each(function (key, value) {
  1690 + $rootScope.searchListArray.push({ "name": $(this).find("a").html(), "id": $(this).find("a").attr("id") });
  1691 + });
  1692 +
  1693 + }
  1694 +
  1695 + }, 500);
  1696 + }
  1697 + }
  1698 +
  1699 +
  1700 + $scope.HideSearchList = function () {
  1701 +
  1702 + $timeout(function () {
  1703 +
  1704 + $("#termlistfilter").css("display", "none");
  1705 +
  1706 +
  1707 + }, 1000);
  1708 +
  1709 + }
  1710 +
  1711 + $scope.highlightPinBasedOnSerachItem = function (id) {
  1712 + $scope.searchItemId = id;
  1713 + $scope.searchItemText = $("#" + id).text();
  1714 + $rootScope.searchSelectedText = $("#" + id).text();
  1715 + $('#termList option[selected="selected"]').prop("selected", false);
  1716 + $('#termList option[value="' + $rootScope.searchSelectedText + '"]').prop("selected", true);
  1717 + $("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });
  1718 + $('#termList option[value="' + $rootScope.searchSelectedText + '"]').css({ "background-color": "#3399FF", "color": "#ffffff" });
  1719 +
  1720 + $("#termlistfilter li a").css({ "background-color": "#ffffff", "color": "#000000" });
  1721 + $("#termlistfilter li #" + $scope.searchItemId).css({ "background-color": "#3399FF", "color": "#ffffff" });
  1722 + $scope.searchFilter = $("#" + id).text();
  1723 + //selectedTermName.placeholder = $("#" + id).text();
  1724 + selectedTermName.value = $("#" + id).text();
  1725 + selectedTermName.placeholder = "search... ";
  1726 +
  1727 + //get data from pindata for this trem
  1728 +
  1729 + var pinDataForTerm = new jinqJs()
  1730 + .from($scope.aaPinData)
  1731 + .where("_TermId == " + $scope.searchItemId)
  1732 + .select();
  1733 +
  1734 + $scope.showAnnotation(pinDataForTerm, false, false, true);
  1735 + // maintaing scroll position on selection of options in list manager.
  1736 + var annotationTopPos = $(".common-drag").css("top").split("p");
  1737 + $("#canvasDiv").scrollTop(annotationTopPos[0]);
  1738 +
  1739 + $scope.IsSearchVisible = false;
  1740 + }
  1741 +
  1742 + $rootScope.isShowHideButtonClicked = true;
  1743 + $scope.ShowHideAnnotation = function () {
  1744 + if ($rootScope.isShowHideButtonClicked == true) {
  1745 + $rootScope.annotationArray = [];
  1746 + $("#canvasDiv").find(".common-drag").each(function () {
  1747 + var speechBubbleID = $(this).attr("id");
  1748 + var sppechBubbleId = $(this).attr("id").substring(12);
  1749 + var b = $("#speechBubbleDraggedLine" + sppechBubbleId).css("display");
  1750 + var speechBubbleLineDispProp = $("#speechBubbleLine" + sppechBubbleId).css("display");
  1751 + var speechBubbleLineID = "speechBubbleLine" + sppechBubbleId;
  1752 + var speechBubbleDraggedLineID = "speechBubbleDraggedLine" + sppechBubbleId;
  1753 + $("#comment-box").addClass("btn-primary");
  1754 + $("#comment-box").removeClass("btn-black");
  1755 +
  1756 + if (speechBubbleLineDispProp == "block") {
  1757 + $rootScope.annotationArray.push({ "speechBuubleId": speechBubbleID, "speechBubbleLineId": speechBubbleLineID });
  1758 + }
  1759 + else {
  1760 + $rootScope.annotationArray.push({ "speechBuubleId": speechBubbleID, "speechBubbleLineId": speechBubbleDraggedLineID });
  1761 + }
  1762 + });
  1763 + $rootScope.isShowHideButtonClicked = false;
  1764 + for (var i = 0; i <= $rootScope.annotationArray.length - 1; i++) {
  1765 + $("#" + $rootScope.annotationArray[i].speechBuubleId).css("display", "none");
  1766 + $("#" + $rootScope.annotationArray[i].speechBubbleLineId).css("display", "none");
  1767 + }
  1768 + }
  1769 + else {
  1770 + $rootScope.isShowHideButtonClicked = true;
  1771 + for (var i = 0; i <= $rootScope.annotationArray.length - 1; i++) {
  1772 + $("#" + $rootScope.annotationArray[i].speechBuubleId).css("display", "block");
  1773 + $("#" + $rootScope.annotationArray[i].speechBubbleLineId).css("display", "block");
  1774 + }
  1775 +
  1776 + $("#comment-box").removeClass("btn-primary");
  1777 + $("#comment-box").addClass("btn-black");
  1778 +
  1779 + }
  1780 + }
  1781 + $scope.activePinOnLayerChange = function () {
  1782 + for (var i = 0; i <= $scope.activePinArray.length - 1; i++) {
  1783 + var radialAfterClick = $('#aaDetailViewCanvas').createGradient({
  1784 + x1: 50, y1: 50,
  1785 + x2: 50, y2: 50,
  1786 + r1: 10, r2: 30,
  1787 + c1: 'rgba(100, 50, 0,0)',
  1788 + c2: 'rgb(126, 187, 83)'
  1789 + });
  1790 + var clickedPin = $scope.activePinArray[i];
  1791 + $('#aaDetailViewCanvas').setLayer(clickedPin, {
  1792 + fillStyle: radialAfterClick
  1793 + }).drawLayers();
  1794 +
  1795 + }
  1796 + }
  1797 +
  1798 + $scope.activePinOnSliderChange = function () {
  1799 + if ($scope.activePinArray.length == 1) {
  1800 + for (var i = 0; i <= $scope.allPinDataArray.length - 1; i++) {
  1801 + var activeArc = $scope.activePinArray[0].split("_");
  1802 + if ($scope.allPinDataArray[i] == activeArc[1]) {
  1803 + var pinName = 'Pin_' + $scope.allPinDataArray[i];
  1804 + var pinArcName = 'PinArc_' + $scope.allPinDataArray[i];
  1805 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1806 + visible: true // set to true instead to show the layer again
  1807 + }).drawLayers();
  1808 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1809 + visible: true // set to true instead to show the layer again
  1810 + }).drawLayers();
  1811 + }
  1812 + else {
  1813 + var pinName = 'Pin_' + $scope.allPinDataArray[i];
  1814 + var pinArcName = 'PinArc_' + $scope.allPinDataArray[i];
  1815 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1816 + visible: false // set to true instead to show the layer again
  1817 + }).drawLayers();
  1818 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1819 + visible: false // set to true instead to show the layer again
  1820 + }).drawLayers();
  1821 + }
  1822 + }
  1823 + }
  1824 + else {
  1825 + var seletedSystemPinData;
  1826 + angular.forEach($scope.activePinArray, function (value, key) {
  1827 + var pinID = value.split("_");
  1828 + seletedSystemPinData = new jinqJs()
  1829 + .from($scope.allPinDataArray)
  1830 + .where('_PinId != ' + pinID[1])
  1831 + .select();
  1832 + })
  1833 +
  1834 + angular.forEach(seletedSystemPinData, function (aaPinDataValue, aaPinDataKey) {
  1835 +
  1836 + var pinName = 'Pin_' + aaPinDataValue;
  1837 + var pinArcName = 'PinArc_' + aaPinDataValue;
  1838 +
  1839 + $('#aaDetailViewCanvas').setLayer(pinName, {
  1840 + visible: false // set to true instead to show the layer again
  1841 + }).drawLayers();
  1842 +
  1843 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1844 + visible: false // set to true instead to show the layer again
  1845 + }).drawLayers();
  1846 +
  1847 + })
  1848 + for (var i = 0; i <= $scope.activePinArray.length - 1; i++) {
  1849 + var pinName = $scope.activePinArray[i].split("_");
  1850 + var activePinName = 'Pin_' + pinName[1];
  1851 + var pinArcName = 'PinArc_' + pinName[1];
  1852 + $('#aaDetailViewCanvas').setLayer(activePinName, {
  1853 + visible: true // set to true instead to show the layer again
  1854 + }).drawLayers();
  1855 + $('#aaDetailViewCanvas').setLayer(pinArcName, {
  1856 + visible: true // set to true instead to show the layer again
  1857 + }).drawLayers();
  1858 + }
  1859 + }
  1860 + }
  1861 + $(document).ready(function () {
  1862 + var $ua = navigator.userAgent;
  1863 + if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
  1864 +
  1865 + var jspanelContainerWidth = $(".jsPanel-content").css("width");
  1866 + $(".jsPanel-content").css({ "width": "100%", "min-width": jspanelContainerWidth });
  1867 + $("#ImagePanel").css("width", "100%");
  1868 +
  1869 + //hide pin button clicked
  1870 + $("#hidePinBtn").removeAttr("onclick");
  1871 + $("#hidePinBtn").on("touchstart", function () {
  1872 + var rootScope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1873 + rootScope.$apply(function () {
  1874 + rootScope.hidePins(event);
  1875 + });
  1876 + });
  1877 + //selected pin button clicked
  1878 + $("#selectedPin").removeAttr("onclick");
  1879 + $("#selectedPin").on("touchstart", function () {
  1880 + console.log('showSelectedPins is called')
  1881 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1882 + scope.$apply(function () {
  1883 + scope.showSelectedPins(event);
  1884 + });
  1885 + });
  1886 + //all pin button clicked
  1887 + $("#allPinBtn").removeAttr("onclick");
  1888 + $("#allPinBtn").on("touchstart", function () {
  1889 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1890 + scope.$apply(function () {
  1891 + scope.showAllPinsAfterHide(event);
  1892 + });
  1893 + });
  1894 + //comment-box button clicked
  1895 + $("#comment-box").removeAttr("onclick");
  1896 + $("#comment-box").on("touchstart", function () {
  1897 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1898 + scope.$apply(function () {
  1899 + scope.ShowHideAnnotation(event);
  1900 + });
  1901 + });
  1902 +
  1903 + }
  1904 +
  1905 + });
  1906 +}]);
  1907 +
  1908 +
  1909 +function refreshTermListOnSystemSel(bodySystemId) {
  1910 + var rootScope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1911 + rootScope.$apply(function () {
  1912 + rootScope.refreshTermListOnAASystemSelection(bodySystemId);
  1913 + });
  1914 +}
  1915 +
  1916 +
  1917 +function showSelectedSystemPins(event) {
  1918 + console.log('OnBodySystem chnaged is called outside ');
  1919 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1920 + scope.$apply(function () {
  1921 + scope.showSelectedSystemPins(event);
  1922 + });
  1923 +}
  1924 +
  1925 +function hidePins(event) {
  1926 +
  1927 + var rootScope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1928 + rootScope.$apply(function () {
  1929 + rootScope.hidePins(event);
  1930 + });
  1931 +}
  1932 +
  1933 +function showAllPins(event) {
  1934 +
  1935 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1936 + scope.$apply(function () {
  1937 + scope.showAllPinsAfterHide(event);
  1938 + });
  1939 +}
  1940 +
  1941 +function onSearchAA(event) {
  1942 + console.log('AA search is called')
  1943 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1944 + scope.$apply(function () {
  1945 + scope.showItemsForSearch();
  1946 + });
  1947 +}
  1948 +
  1949 +function hideSearchList(event) {
  1950 + console.log('AA hide search is called')
  1951 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1952 + scope.$apply(function () {
  1953 + scope.HideSearchList();
  1954 + });
  1955 +}
  1956 +
  1957 +function onSearchItemSelection(id) {
  1958 +
  1959 + console.log('AA hide search is called');
  1960 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1961 + scope.$apply(function () {
  1962 + scope.highlightPinBasedOnSerachItem(id);
  1963 + });
  1964 +}
  1965 +
  1966 +//function onListManagerTermSelection(event) {
  1967 +// var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1968 +// scope.isTermListOptionClicked = true;
  1969 +// scope.$apply(function () {
  1970 +// scope.highlightPinBasedOnSerachItem1(event);
  1971 +// });
  1972 +
  1973 +//}
  1974 +
  1975 +
  1976 +function showHideAnnotation(event) {
  1977 +
  1978 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1979 + scope.$apply(function () {
  1980 + scope.ShowHideAnnotation(event);
  1981 + });
  1982 +}
  1983 +
  1984 +function showSelectedPins(event) {
  1985 +
  1986 + console.log('showSelectedPins is called')
  1987 + var scope = angular.element(document.getElementById("aaDetailPageDiv")).scope();
  1988 + scope.$apply(function () {
  1989 + scope.showSelectedPins(event);
  1990 + });
  1991 +}
  1992 +
  1993 +
  1994 +function openModuleItemView(event) {
  1995 + var scope = angular.element(document.getElementById("list-view")).scope();
  1996 + scope.isListViewButtonClicked = true;
  1997 + scope.$apply(function () {
  1998 + scope.openModuleItemView(event);
  1999 + });
  2000 +}
  2001 +
  2002 +function openListViewModuleItem(event) {
  2003 +
  2004 + var scope = angular.element(document.getElementById("list-view")).scope();
  2005 + scope.isListViewButtonClicked = true;
  2006 + scope.$apply(function () {
  2007 + scope.openListViewModuleItem(event);
  2008 + });
  2009 +}
  2010 +
  2011 +function openCurrentView(event) {
  2012 + var scope = angular.element(document.getElementById("list-view")).scope();
  2013 + scope.isListViewButtonClicked = true;
  2014 + scope.isOpenBtnClicked = true;
  2015 + scope.$apply(function () {
  2016 + scope.openModuleItemView(event);
  2017 + });
  2018 +
  2019 +}
  2020 +
  2021 +function onZoom(scope) {
  2022 +
  2023 + //$(".common-drag").remove();
  2024 + //$(".commonDot").remove();
  2025 + //$(".commonDraggedLine").remove();
  2026 + //var radial = $('#aaDetailViewCanvas').createGradient({
  2027 + // x1: 50, y1: 50,
  2028 + // x2: 50, y2: 50,
  2029 + // r1: 10, r2: 30,
  2030 + // c1: 'rgba(100, 50, 0,0)',
  2031 + // c2: 'rgb(216, 216, 216)'
  2032 + //});
  2033 + //$('#aaDetailViewCanvas').setLayers({
  2034 + // fillStyle: radial,
  2035 + //}).drawLayers();
  2036 + // scope.removePin();
  2037 + // scope.showAllPins();
  2038 +
  2039 +
  2040 + //6. Show all pins on AA opened item
  2041 +}
  2042 +
400-SOURCECODE/AIAHTML5.Web/app/views/da/da-view.html
1 -<!--<style>  
2 - .slider label {  
3 - position: absolute;  
4 - width: 20px;  
5 - margin-left: -10px;  
6 - text-align: center;  
7 - margin-top: 20px;  
8 - }  
9 -  
10 - /* below is not necessary, just for style */  
11 - .slider {  
12 - width: 50%;  
13 - margin: 2em auto;  
14 - }  
15 -</style>-->  
16 -<style>  
17 - /*Dated:22-07-2016 Issue#4958:In Open body view, the side buttons are getting disturbed on layer change. */  
18 - .btn-resize {  
19 - padding: 6px 11px;  
20 - border: 0px solid #000;  
21 - border-radius: 1px;  
22 - }  
23 -</style>  
24 -<style>  
25 - /*Dated:22-07-2016 Issue#4958:In Open body view, the side buttons are getting disturbed on layer change. */  
26 - .btn-resize {  
27 - padding: 6px 11px;  
28 - border: 0px solid #000;  
29 - border-radius: 1px;  
30 - }  
31 -</style>  
32 -  
33 -<style>  
34 - #draggable {  
35 - opacity: 0.2;  
36 - border: solid;  
37 - position: absolute;  
38 - /*Bug #24255: Mac > DA > Body Navigator is not appear properly.*/  
39 - height:14px !important;  
40 - }  
41 -  
42 - #wrapper {  
43 - position: relative;  
44 - width: 100%;  
45 - height: 100%;  
46 - margin: 20px auto;  
47 - }  
48 -  
49 - .tooltip-custom + .tooltip > .tooltip-inner {  
50 - background-color: #fff;  
51 - border: 1px solid #000;  
52 - color: #000;  
53 - border-radius: 0;  
54 - }  
55 -  
56 - .tooltip-custom + .tooltip > .tooltip-arrow {  
57 - display: none;  
58 - }  
59 -  
60 -  
61 - .custom-tooltip {  
62 - background-color: #333;  
63 - border: 0 none;  
64 - color: #fff !important;  
65 - left: -52px;  
66 - /*opacity: 0.9;*/  
67 - padding: 7px;  
68 - position: absolute;  
69 - text-align: center;  
70 - top: 45px;  
71 - width: 120px;  
72 - display: none;  
73 - z-index: 10000;  
74 - border: 1px solid #000;  
75 - color: #000;  
76 - border-radius: 0;  
77 - }  
78 -  
79 - .custom-tooltip1 {  
80 - background-color: #333;  
81 - border: 0 none;  
82 - color: #fff !important;  
83 - left: 52px;  
84 - /*opacity: 0.9;*/  
85 - padding: 7px;  
86 - position: absolute;  
87 - text-align: center;  
88 - top: 45px;  
89 - width: 70px;  
90 - display: none;  
91 - z-index: 10000;  
92 - border: 1px solid #000;  
93 - color: #000;  
94 - border-radius: 0;  
95 - }  
96 -  
97 - .custom-tooltip2 {  
98 - background-color: #333;  
99 - border: 0 none;  
100 - color: #fff !important;  
101 - right: 10px;  
102 - /*opacity: 0.9;*/  
103 - padding: 7px;  
104 - position: absolute;  
105 - text-align: center;  
106 - top: 45px;  
107 - width: 60px;  
108 - display: none;  
109 - z-index: 10000;  
110 - border: 1px solid #000;  
111 - color: #000;  
112 - border-radius: 0;  
113 - }  
114 - .pad0{padding:0;}  
115 -</style>  
116 -<!--Annotation Toolbar: Jcanvas-->  
117 -<style>  
118 - .canvas-annotationStyle {  
119 - display: none;  
120 - background-color: transparent;  
121 - z-index: 12000;  
122 - position: absolute;  
123 - left: 0;  
124 - right: 0;  
125 - }  
126 -  
127 - .canvas-annotationStyle1 {  
128 - display: none;  
129 - background-color: transparent;  
130 - z-index: 12000;  
131 - position: absolute;  
132 - left: 0;  
133 - right: 0;  
134 - }  
135 -  
136 -</style>  
137 -<div class=" " id="daView" ng-controller="DAController">  
138 - <div class="pos-relative leftToolBar tools pull-left">  
139 - <div class="toggle-icon toggleBar toggleHeadingButton" title="Show/Hide Sidebar" style="top:20px;"></div>  
140 - <div class="" style="top:20px">  
141 - <div class="col-xs-6">  
142 - <button id="btnIdentify" onclick="OnIdentifyClick()" class="btn btn-primary btn-sm tooltip-custom" data-toggle="tooltip" data-placement="bottom" title="Identify"> <img src="content/images/icon-identity.png" alt=""></button>  
143 - </div>  
144 - <div class="col-xs-6 pull-right">  
145 - <button class="btn btn-black btn-sm pull-right tooltip-custom" onclick="OnZoom()" id="btnZoom" data-toggle="tooltip" data-placement="bottom" title="Zoom-in/Zoom-out">  
146 - <img src="content/images/icon-zoom.png" alt="">  
147 - </button>  
148 -  
149 - </div>  
150 - <div class="col-xs-12">  
151 - <button id="btnTranparency" class="btn btn-black btn-sm btn-block marginTop5 tooltip-custom" onclick="onTboxCreation()" data-toggle="tooltip" data-placement="bottom" title="Transparency Box"><img src="content/images/icon-transparency.png" alt=""></button>  
152 - </div>  
153 -  
154 - <div class="col-xs-12 pad0">  
155 - <div class="col-xs-6">  
156 - <button id="btnNormalMode" class="btn btn-primary btn-sm marginTop5 tooltip-custom" onclick="OnEnableNormalMode()" data-toggle="tooltip" data-placement="bottom" title="Normal"> <img src="content/images/bulb.png" alt=""></button>  
157 - </div>  
158 - <div class="col-xs-6">  
159 - <button id="btnExtract" class="btn btn-black btn-sm pull-right marginTop5 tooltip-custom" onclick="OnEnableExtract()" data-toggle="tooltip" data-placement="bottom" title="Extract"><img src="content/images/bulb1.png" alt=""></button>  
160 - </div>  
161 - </div>  
162 - <div class="col-xs-12 pad0">  
163 - <div class="col-xs-6">  
164 - <button id="btnHighLight" class="btn btn-black btn-sm marginTop5 tooltip-custom btn-resize" onclick="OnEnableHighlight()" data-toggle="tooltip" data-placement="bottom" title="Highlight"> <img src="content/images/Highlight-bulb.png" alt=""></button>  
165 - </div>  
166 -  
167 - <div class="col-xs-6 dropdown hover-tool">  
168 - <div class="custom-tooltip">Highlight Options</div>  
169 - <button class="btn btn-black btn-sm pull-right marginTop5 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" ng-click="LoadBodySystemData()"><img src="content/images/icon-highlight.png" alt="" title=""></button>  
170 - <ul class="dropdown-menu" aria-labelledby="dropdownMenu2">  
171 - <li ng-class="CurrentStructure" ><a href="#" title="Current Structure"  
172 - ng-click="removeBodySyetemSelectionClass('CurrentStructure')">Current Structure</a></li>  
173 -  
174 -  
175 - <li role="separator" class="divider"></li>  
176 - <!--<li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" ng-click="HighlightBodyByBodySystem($event)">Cardiovascular</a></li>  
177 - <li ng-class="Digestive"><a href="#" title="Digestive" id="2" ng-click="HighlightBodyByBodySystem($event)">Digestive</a></li>  
178 - <li ng-class="Endocrine"><a href="#" title="Endocrine" id="3" ng-click="HighlightBodyByBodySystem($event)">Endocrine</a></li>  
179 - <li ng-class="Immune"><a href="#" title="Immune" id="4" ng-click="HighlightBodyByBodySystem($event)">Immune</a></li>  
180 - <li ng-class="Integumentary"><a href="#" title="Integumentary" id="5" ng-click="HighlightBodyByBodySystem($event)">Integumentary</a></li>  
181 - <li ng-class="Lymphatic"><a href="#" title="Lymphatic" id="6" ng-click="HighlightBodyByBodySystem($event)">Lymphatic</a></li>  
182 - <li ng-class="Muscular"><a href="#" title="Muscular" id="7" ng-click="HighlightBodyByBodySystem($event)">Muscular</a></li>  
183 - <li ng-class="Nervous"><a href="#" title="Nervous" id="8" ng-click="HighlightBodyByBodySystem($event)">Nervous</a></li>  
184 - <li ng-class="Reproductive"><a href="#" title="Reproductive" id="9" ng-click="HighlightBodyByBodySystem($event)">Reproductive</a></li>  
185 - <li ng-class="Respiratory"><a href="#" title="Respiratory" id="10" ng-click="HighlightBodyByBodySystem($event)">Respiratory</a></li>  
186 - <li ng-class="Skeletal"><a href="#" title="Skeletal" id="11" ng-click="HighlightBodyByBodySystem($event)">Skeletal</a></li>  
187 - <li ng-class="Urinary"><a href="#" title="Urinary" id="12" ng-click="HighlightBodyByBodySystem($event)">Urinary</a></li>-->  
188 -  
189 - <li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" onclick="OnBodySystemSelection(event)">Cardiovascular</a></li>  
190 - <li ng-class="Digestive"><a href="#" title="Digestive" id="2" onclick="OnBodySystemSelection(event)">Digestive</a></li>  
191 - <li ng-class="Endocrine"><a href="#" title="Endocrine" id="3" onclick="OnBodySystemSelection(event)">Endocrine</a></li>  
192 - <li ng-class="Immune"><a href="#" title="Immune" id="4" onclick="OnBodySystemSelection(event)">Immune</a></li>  
193 - <li ng-class="Integumentary"><a href="#" title="Integumentary" id="5" onclick="OnBodySystemSelection(event)">Integumentary</a></li>  
194 - <li ng-class="Lymphatic"><a href="#" title="Lymphatic" id="6" onclick="OnBodySystemSelection(event)">Lymphatic</a></li>  
195 - <li ng-class="Muscular"><a href="#" title="Muscular" id="7" onclick="OnBodySystemSelection(event)">Muscular</a></li>  
196 - <li ng-class="Nervous"><a href="#" title="Nervous" id="8" onclick="OnBodySystemSelection(event)">Nervous</a></li>  
197 - <li ng-class="Reproductive"><a href="#" title="Reproductive" id="9" onclick="OnBodySystemSelection(event)">Reproductive</a></li>  
198 - <li ng-class="Respiratory"><a href="#" title="Respiratory" id="10" onclick="OnBodySystemSelection(event)">Respiratory</a></li>  
199 - <li ng-class="Skeletal"><a href="#" title="Skeletal" id="11" onclick="OnBodySystemSelection(event)">Skeletal</a></li>  
200 - <li ng-class="Urinary"><a href="#" title="Urinary" id="12" onclick="OnBodySystemSelection(event)">Urinary</a></li>  
201 - </ul>  
202 - </div>  
203 - </div>  
204 -  
205 - <div class="col-xs-12 pad0">  
206 - <div class="col-xs-6 hover-gender-tool" ng-init="switchGender()">  
207 - <div class=" custom-tooltip1">Gender</div>  
208 - <button class="btn btn-black btn-sm marginTop5 dropdown-toggle" type="button" id="dropdownMenu4" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <i class=" fa fa-intersex font16"></i></button>  
209 - <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">  
210 - <li ng-class="male">  
211 - <!--<button type="button" id="btnMale" onclick="OnGenderChange('Male')" class="btn btn-link" >Male</button>-->  
212 - <a href="#" title="Male" onclick="OnGenderChange(event)">Male</a>  
213 - </li>  
214 - <li ng-class="female">  
215 -  
216 - <!--<button type="button" id="btnFemale" onclick="OnGenderChange('Female')" class="btn btn-link">Female</button>-->  
217 - <a href="#" title="Female" onclick="OnGenderChange(event)">Female</a>  
218 -  
219 - <!--<a href="javascript:void(0)" title="Male" ng-click="OnGenderChange($event)">Male</a></li>  
220 - <li ng-class="female"><a href="javascript:void(0)" title="Female" ng-click="OnGenderChange($event)">Female</a></li>-->  
221 - </li>  
222 - </ul>  
223 - </div>  
224 -  
225 - <div class="col-xs-6 tooltip-View-custom">  
226 - <div class="custom-tooltip2">View</div>  
227 - <button class="btn btn-black btn-sm pull-right marginTop5 dropdown-toggle" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"><img src="content/images/view.png" alt="" title=""></button>  
228 - <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">  
229 - <!--<li ng-class="AnteriorView"><a href="#" title="Anterior" ng-click="OnViewChange($event)">Anterior</a></li>  
230 - <li ng-class="LateralView"><a href="#" title="Lateral" ng-click="OnViewChange($event)">Lateral</a></li>  
231 - <li ng-class="MedialView"><a href="#" title="Medial" ng-click="OnViewChange($event)">Medial</a></li>  
232 - <li ng-class="PosteriorView"><a href="#" title="Posterior" ng-click="OnViewChange($event)">Posterior</a></li>  
233 - <li ng-class="LateralArmView"><a href="#" title="Lateral Arm" ng-click="OnViewChange($event)">Lateral Arm</a></li>  
234 - <li ng-class="MedialArmView"><a href="#" title="Medial Arm" ng-click="OnViewChange($event)">Medial Arm</a></li>-->  
235 -  
236 - <li ng-class="AnteriorView"><a href="#" title="Anterior" onclick="OnViewChange(event)">Anterior</a></li>  
237 - <li ng-class="LateralView"><a href="#" title="Lateral" onclick="OnViewChange(event)">Lateral</a></li>  
238 - <li ng-class="MedialView"><a href="#" title="Medial" onclick="OnViewChange(event)">Medial</a></li>  
239 - <li ng-class="PosteriorView"><a href="#" title="Posterior" onclick="OnViewChange(event)">Posterior</a></li>  
240 - <li ng-class="LateralArmView"><a href="#" title="Lateral Arm" onclick="OnViewChange(event)">Lateral Arm</a></li>  
241 - <li ng-class="MedialArmView"><a href="#" title="Medial Arm" onclick="OnViewChange(event)">Medial Arm</a></li>  
242 - </ul>  
243 - </div>  
244 - </div>  
245 -  
246 - <div class="col-xs-12">  
247 - <button id="btnStrutureBox" onclick="enableShowHideStructureBox()" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom" data-toggle="tooltip" data-placement="bottom" name="showAnnotationStructure" title="Show/Hide Structure Name Boxes"> <img src="content/images/comment-box.png" alt=""></button>  
248 - </div>  
249 -  
250 - </div>  
251 - <div class="">  
252 -  
253 -  
254 - <!--'x' button is displaying inside the input box in IE browser.-->  
255 - <div style="width:80px;margin:10px 0 0 15px;display:inline-block;">  
256 -  
257 - <input type="text" class="form-control item" id="txtlayerNumber" value="0" ng-model="layerNumber" ng-keyup="LayerValueChangeBasedOnKeyUp($event)" ng-keydown="LayerChangeBasedOnKeyPressed($event)" style="height:32px;border-radius:0;text-align:center;">  
258 -  
259 -  
260 -  
261 - </div>  
262 -  
263 -  
264 - <!--<p>  
265 - <input class="item" type="number" id="txtlayerNumber" value="0" step="1" min="0" style="width:80px; margin:10px 0 0 15px;" ng-model="layerNumber" ng-keydown="LayerChangeBasedOnKeyPressed($event)" ng-click="LayerChangeOnMouseUpDown($event)" />  
266 - </p>-->  
267 - <div id="layerChangeSlider" style="height:140px;" class="vert_slider " ng-model="layerNumber"></div>  
268 - </div>  
269 - </div>  
270 -  
271 - <div class="main2">  
272 - <div class="col-sm-12 stickey-area">  
273 - <div class="breadcrumb ">  
274 - <div class="">  
275 - <div class="input-group col-sm-8 col-xs-7 col-md-10 pull-left">  
276 -  
277 - <input type="text" class="form-control input-sm pull-left" id="typedTermName" onclick="OnSearch()" ondblclick="OnSearch()" ng-model="searchFilter" ng-change="resetSearchListView()" ng-blur="HideSearch()" placeholder=" search...">  
278 -  
279 - <div id="backdrop" ng-show="IsSearchVisible">  
280 - <div id="searchListDiv" class="col-sm-12 col-xs-12 col-md-12 col-lg-12 pull-left">  
281 -  
282 - </div>  
283 - </div>  
284 -  
285 - </div>  
286 - <div class="btn-group" style="vertical-align:top;">  
287 -  
288 - <button type="button" id="btnDATermSearch" style="padding: 5px 10px 4px 10px !important;border: none;" class="btn btn-success btn-sm" onclick="OnSearch()" ng-blur="HideSearch()">  
289 - <!--<img src="~/../content/images/DA/go-to.png" style="height: 30px;width:50px">-->  
290 - <i class="fa fa-caret-down" style="font-size:20px;"></i>  
291 - </button>  
292 - </div>  
293 - <div class="btn-group open" id="da-body-nav">  
294 - <button type="button" style="padding:0px 0px 10px 1px !important;background-color:rgba(255,255,255,0.0); border:none;" class="btn btn-primary dropdown-toggle btn-sm" id="navigatorBtn">  
295 - <img src="~/../content/images/DA/navigator-view.png" style="height:30px; width:50px" />  
296 - </button>  
297 -  
298 - <div class="dropdown-menu" id="navigatorDiv" style="min-height: initial; min-width: initial; ">  
299 - <div id="containment-wrapper" align="center" style="min-width: initial; height: 119px; ">  
300 - <img id="navimg" alt="" />  
301 - <div id="draggable" class="draggable ui-widget-content dragdivposition" ng-mouseup="ScrollCanvasDiv()">  
302 - </div>  
303 - </div>  
304 -  
305 - </div>  
306 - </div>  
307 - </div>  
308 - </div>  
309 - </div>  
310 - <div class=" canavsParent col-sm-12 " id="cp">  
311 - <div class="container-fluid">  
312 - <div class="row">  
313 - <div id="canvasDiv" class="col-sm-12 img-thumbnail" align="center">  
314 - <canvas id="canvasPaint" ng-click="FreeStylePaint($event)" width="2277" height="3248" class="canvas-annotationStyle1"></canvas>  
315 - <canvas id="canvas" ng-click="onDrawingCanvasClick($event)" width="2277" height="3248" class="canvas-annotationStyle"></canvas>  
316 - </div>  
317 - <!--<div id="canvasDiv" style=" width: 95% !important;top:0px;overflow:scroll;background-color:white;">-->  
318 - <!--<div id="daLoaderLabel">Loading....</div>-->  
319 -  
320 - </div>  
321 - <div class="clearfix"></div>  
322 - </div>  
323 - </div>  
324 - </div>  
325 - <div class="clearfix"></div>  
326 - <!--to prevent transparency scale from closing on click anywhere outside set data-backdrop="static" data-keyboard="false" -->  
327 - <!--<div class="modal fade bs-example-modal-sm" tabindex="-1" aria-labelledby="mySmallModalLabel" id="transparencyScale" data-backdrop="static" data-keyboard="false">  
328 - <div class="modal-dialog modal-sm">  
329 - <div class="modal-content">  
330 - <div class="modal-header annotation-modal-header">  
331 - <button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="CloseTransparencyBox()"><span aria-hidden="true">&times;</span></button>  
332 - <h4 class="modal-title">Transparency</h4>  
333 - </div>  
334 - <div class="modal-body">  
335 - <div class="row">  
336 - <div class="col-sm-12">  
337 - <div class="padded25">  
338 - <div class="slider"></div>  
339 - </div>  
340 - </div>  
341 - </div>  
342 - </div>  
343 - </div>  
344 - </div>  
345 - </div>-->  
346 - <!--<div class="ui-widget-content" id="transparencyScale" style="width: 350px; height: 130px;visibility:hidden;display:block;float:left">  
347 - <div class="modal-dialog modal-sm">  
348 - <div class="modal-content">  
349 - <div class="modal-header annotation-modal-header">  
350 - <button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="CloseTransparencyBox()"><span aria-hidden="true">&times;</span></button>  
351 - <h4>Transparency</h4>  
352 - </div>  
353 - <div>  
354 - <div class="row">  
355 - <div class="col-sm-12">  
356 - <div class="padded25">  
357 - <div class="slider"></div>  
358 - </div>  
359 - </div>  
360 - </div>  
361 - </div>  
362 - </div>  
363 - </div>  
364 - </div>-->  
365 - <div class="ui-widget-content" id="transparencyScale" style="width: 350px; height: 150px;visibility:hidden;display:block;float:left">  
366 - <div>  
367 - <div>  
368 - <div class="modal-header annotation-modal-header">  
369 - <button id="btnTBoxClose" type="button" onclick="onTboxClose()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>  
370 - <h4>Transparency</h4>  
371 - </div>  
372 - <div>  
373 - <div class="row">  
374 - <div class="col-sm-12">  
375 - <div class="padded25">  
376 - <!--<div class="slider" id="sliderScale"></div>-->  
377 - <div class="slider" id="tbSlider"></div>  
378 - </div>  
379 - </div>  
380 - </div>  
381 - </div>  
382 - </div>  
383 - </div>  
384 - </div>  
385 - <div class="modal fade" id="daMessageModal" role="dialog" style="top:20%;">  
386 -  
387 - <div class="modal-dialog modal-sm">  
388 -  
389 -  
390 -  
391 - <div class="modal-content">  
392 -  
393 -  
394 - <div class="modal-header">  
395 -  
396 - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>  
397 -  
398 - </div>  
399 -  
400 - <div class="modal-title"></div>  
401 -  
402 - <!--<div class="modal-body">"No body system"</div>-->  
403 -  
404 - <div class="modal-header"><p data-ng-bind ="message" style="font-size:15px;"></p></div>  
405 -  
406 -  
407 -  
408 - <div class="modal-footer"> <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal">OK</button></div>  
409 -  
410 -  
411 - </div>  
412 -  
413 -  
414 - </div>  
415 -  
416 - </div>  
417 -  
418 -  
419 - <div class="modal fade" id="daMessageModal" role="dialog">  
420 - <div class="modal-dialog">  
421 -  
422 - <div class="modal-content">  
423 - <!--<div class="modal-header">  
424 - <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>  
425 - </div>  
426 - <div class="modal-title"></div>-->  
427 - <!--<div class="modal-body">"No body system"</div>-->  
428 - <div class="modal-body" data-ng-bind="message"></div>  
429 -  
430 - <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button></div>  
431 - </div>  
432 - </div>  
433 - </div>  
434 -</div>  
435 -<!--<script src="../../../libs/jquery/1.11.4/jquery-ui.js"></script>-->  
436 -<script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>  
437 -<script>  
438 - $(document).ready(function () {  
439 - $("#navigatorBtn").on('click', function () {  
440 - $("#navigatorDiv").toggle();  
441 - });  
442 - });  
443 -</script>  
444 -<script>  
445 - $(window).load(function () {  
446 - $(".stickey-area").sticky();  
447 -  
448 -  
449 - });</script>  
450 -<script>  
451 - $(function () {  
452 -  
453 - var regExp = /[0-9\.\,]/;  
454 - $('#txtlayerNumber').on('keydown keyup', function (e) {  
455 - var value = String.fromCharCode(e.which) || e.key;  
456 - // Only numbers, dots and commas  
457 - if (!regExp.test(value)  
458 - && e.which != 188 // ,  
459 - && e.which != 190 // .  
460 - && e.which != 8 // backspace  
461 - && e.which != 46 // delete  
462 - && (e.which < 37 // arrow keys  
463 - || e.which > 40)  
464 - && (e.keyCode < 96 // Dissectible Anatomy > Num Lock is not working for enter the layer.  
465 - || e.keyCode > 105))  
466 -  
467 - {  
468 - e.preventDefault();  
469 - return false;  
470 - }  
471 - });  
472 -  
473 - });  
474 -  
475 -</script>  
476 -<!--<script>  
477 - $(function () {  
478 - $('#layerChangeSlider').slider().on('slideStop', function () {  
479 - alert('fjkjksdbgjkgjkfgk')  
480 - })  
481 -</script>  
482 - });-->  
483 -  
484 -<script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>  
485 -<script>  
486 - $(function () {  
487 -  
488 -  
489 - // issue in navigator image in internet explorer  
490 - if ($.browser.msie == true) {  
491 - $("#navigatorDiv").css({"min-width":"auto", "min-height":"auto"});  
492 - $("#containment-wrapper").css("min-width", "auto");  
493 - }  
494 - $("#transparencyScale").draggable();  
495 - $("#draggable").draggable({ containment: "#containment-wrapper", scroll: false });  
496 - });  
497 -</script>  
498 -<script>  
499 - $(function () {  
500 -  
501 - $("#dropdownMenu2").mouseover(function () {  
502 - $(".custom-tooltip").css("display", "block");  
503 - });  
504 - $("#dropdownMenu2").mouseout(function () {  
505 - $(".custom-tooltip").css("display", "none");  
506 - });  
507 -  
508 - $("#dropdownMenu4").mouseover(function () {  
509 - $(".custom-tooltip1").css("display", "block");  
510 - });  
511 - $("#dropdownMenu4").mouseout(function () {  
512 - $(".custom-tooltip1").css("display", "none");  
513 - });  
514 -  
515 - $("#dropdownMenu3").mouseover(function () {  
516 - $(".custom-tooltip2").css("display", "block");  
517 - });  
518 - $("#dropdownMenu3").mouseout(function () {  
519 - $(".custom-tooltip2").css("display", "none");  
520 - });  
521 -  
522 -  
523 - });  
524 -</script>  
525 -<script>  
526 - $(".slider")  
527 - .slider({  
528 - min: 0,  
529 - max: 100,  
530 - value: 50,  
531 - range: "min",  
532 - orientation: "horizontal",  
533 - stop: function (event, ui) {  
534 - //alert('trans changed')  
535 - var scope = angular.element(document.getElementById("daView")).scope();  
536 - scope.$apply(function () {  
537 - scope.onTransparencyChange(event, ui);  
538 - });  
539 - }  
540 - })  
541 - .slider("pips", {  
542 - rest: "label",  
543 - step: "10"  
544 - });  
545 -  
546 -</script>  
547 -<script>  
548 - $(".tooltip-custom").tooltip({  
549 - tooltipClass: 'customTooltip'  
550 - });  
551 -</script>  
552 -<script>  
553 - $(function () {  
554 - $(".modal").draggable();  
555 - });  
556 -</script>  
557 -<script>  
558 - $(function () {  
559 - "use strict";  
560 - /*** Sidebar Toggle ***/  
561 - var barPos = 0;  
562 - var bar = $('.tools');  
563 - var main = $('.main2');  
564 - $('.toggleBar').click(function () {  
565 -  
566 - bar.toggleClass('active');  
567 - main.toggleClass('active');  
568 - });  
569 - });  
570 -</script>  
571 -  
572 - 1 +<!--<style>
  2 + .slider label {
  3 + position: absolute;
  4 + width: 20px;
  5 + margin-left: -10px;
  6 + text-align: center;
  7 + margin-top: 20px;
  8 + }
  9 +
  10 + /* below is not necessary, just for style */
  11 + .slider {
  12 + width: 50%;
  13 + margin: 2em auto;
  14 + }
  15 +</style>-->
  16 +<style>
  17 + /*Dated:22-07-2016 Issue#4958:In Open body view, the side buttons are getting disturbed on layer change. */
  18 + .btn-resize {
  19 + padding: 6px 11px;
  20 + border: 0px solid #000;
  21 + border-radius: 1px;
  22 + }
  23 +</style>
  24 +<style>
  25 + /*Dated:22-07-2016 Issue#4958:In Open body view, the side buttons are getting disturbed on layer change. */
  26 + .btn-resize {
  27 + padding: 6px 11px;
  28 + border: 0px solid #000;
  29 + border-radius: 1px;
  30 + }
  31 +</style>
  32 +
  33 +<style>
  34 + #draggable {
  35 + opacity: 0.2;
  36 + border: solid;
  37 + position: absolute;
  38 + /*Bug #24255: Mac > DA > Body Navigator is not appear properly.*/
  39 + height:14px !important;
  40 + }
  41 +
  42 + #wrapper {
  43 + position: relative;
  44 + width: 100%;
  45 + height: 100%;
  46 + margin: 20px auto;
  47 + }
  48 +
  49 + .tooltip-custom + .tooltip > .tooltip-inner {
  50 + background-color: #fff;
  51 + border: 1px solid #000;
  52 + color: #000;
  53 + border-radius: 0;
  54 + }
  55 +
  56 + .tooltip-custom + .tooltip > .tooltip-arrow {
  57 + display: none;
  58 + }
  59 +
  60 +
  61 + .custom-tooltip {
  62 + background-color: #333;
  63 + border: 0 none;
  64 + color: #fff !important;
  65 + left: -52px;
  66 + /*opacity: 0.9;*/
  67 + padding: 7px;
  68 + position: absolute;
  69 + text-align: center;
  70 + top: 45px;
  71 + width: 120px;
  72 + display: none;
  73 + z-index: 10000;
  74 + border: 1px solid #000;
  75 + color: #000;
  76 + border-radius: 0;
  77 + }
  78 +
  79 + .custom-tooltip1 {
  80 + background-color: #333;
  81 + border: 0 none;
  82 + color: #fff !important;
  83 + left: 52px;
  84 + /*opacity: 0.9;*/
  85 + padding: 7px;
  86 + position: absolute;
  87 + text-align: center;
  88 + top: 45px;
  89 + width: 70px;
  90 + display: none;
  91 + z-index: 10000;
  92 + border: 1px solid #000;
  93 + color: #000;
  94 + border-radius: 0;
  95 + }
  96 +
  97 + .custom-tooltip2 {
  98 + background-color: #333;
  99 + border: 0 none;
  100 + color: #fff !important;
  101 + right: 10px;
  102 + /*opacity: 0.9;*/
  103 + padding: 7px;
  104 + position: absolute;
  105 + text-align: center;
  106 + top: 45px;
  107 + width: 60px;
  108 + display: none;
  109 + z-index: 10000;
  110 + border: 1px solid #000;
  111 + color: #000;
  112 + border-radius: 0;
  113 + }
  114 + .pad0{padding:0;}
  115 +</style>
  116 +<!--Annotation Toolbar: Jcanvas-->
  117 +<style>
  118 + .canvas-annotationStyle {
  119 + display: none;
  120 + background-color: transparent;
  121 + z-index: 12000;
  122 + position: absolute;
  123 + left: 0;
  124 + right: 0;
  125 + }
  126 +
  127 + .canvas-annotationStyle1 {
  128 + display: none;
  129 + background-color: transparent;
  130 + z-index: 12000;
  131 + position: absolute;
  132 + left: 0;
  133 + right: 0;
  134 + }
  135 +
  136 +</style>
  137 +<div class=" " id="daView" ng-controller="DAController">
  138 + <div class="pos-relative leftToolBar tools pull-left">
  139 + <div class="toggle-icon toggleBar toggleHeadingButton" title="Show/Hide Sidebar" style="top:20px;"></div>
  140 + <div class="" style="top:20px">
  141 + <div class="col-xs-6">
  142 + <button id="btnIdentify" onclick="OnIdentifyClick()" class="btn btn-primary btn-sm tooltip-custom" data-toggle="tooltip" data-placement="bottom" title="Identify"> <img src="content/images/icon-identity.png" alt=""></button>
  143 + </div>
  144 + <div class="col-xs-6 pull-right">
  145 + <button class="btn btn-black btn-sm pull-right tooltip-custom" onclick="OnZoom()" id="btnZoom" data-toggle="tooltip" data-placement="bottom" title="Zoom-in/Zoom-out">
  146 + <img src="content/images/icon-zoom.png" alt="">
  147 + </button>
  148 +
  149 + </div>
  150 + <div class="col-xs-12">
  151 + <button id="btnTranparency" class="btn btn-black btn-sm btn-block marginTop5 tooltip-custom" onclick="onTboxCreation()" data-toggle="tooltip" data-placement="bottom" title="Transparency Box"><img src="content/images/icon-transparency.png" alt=""></button>
  152 + </div>
  153 +
  154 + <div class="col-xs-12 pad0">
  155 + <div class="col-xs-6">
  156 + <button id="btnNormalMode" class="btn btn-primary btn-sm marginTop5 tooltip-custom" onclick="OnEnableNormalMode()" data-toggle="tooltip" data-placement="bottom" title="Normal"> <img src="content/images/bulb.png" alt=""></button>
  157 + </div>
  158 + <div class="col-xs-6">
  159 + <button id="btnExtract" class="btn btn-black btn-sm pull-right marginTop5 tooltip-custom" onclick="OnEnableExtract()" data-toggle="tooltip" data-placement="bottom" title="Extract"><img src="content/images/bulb1.png" alt=""></button>
  160 + </div>
  161 + </div>
  162 + <div class="col-xs-12 pad0">
  163 + <div class="col-xs-6">
  164 + <button id="btnHighLight" class="btn btn-black btn-sm marginTop5 tooltip-custom btn-resize" onclick="OnEnableHighlight()" data-toggle="tooltip" data-placement="bottom" title="Highlight"> <img src="content/images/Highlight-bulb.png" alt=""></button>
  165 + </div>
  166 +
  167 + <div class="col-xs-6 dropdown hover-tool">
  168 + <div class="custom-tooltip">Highlight Options</div>
  169 + <button class="btn btn-black btn-sm pull-right marginTop5 dropdown-toggle" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" ng-click="LoadBodySystemData()"><img src="content/images/icon-highlight.png" alt="" title=""></button>
  170 + <ul class="dropdown-menu" aria-labelledby="dropdownMenu2">
  171 + <li ng-class="CurrentStructure" ><a href="#" title="Current Structure"
  172 + ng-click="removeBodySyetemSelectionClass('CurrentStructure')">Current Structure</a></li>
  173 +
  174 +
  175 + <li role="separator" class="divider"></li>
  176 + <!--<li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" ng-click="HighlightBodyByBodySystem($event)">Cardiovascular</a></li>
  177 + <li ng-class="Digestive"><a href="#" title="Digestive" id="2" ng-click="HighlightBodyByBodySystem($event)">Digestive</a></li>
  178 + <li ng-class="Endocrine"><a href="#" title="Endocrine" id="3" ng-click="HighlightBodyByBodySystem($event)">Endocrine</a></li>
  179 + <li ng-class="Immune"><a href="#" title="Immune" id="4" ng-click="HighlightBodyByBodySystem($event)">Immune</a></li>
  180 + <li ng-class="Integumentary"><a href="#" title="Integumentary" id="5" ng-click="HighlightBodyByBodySystem($event)">Integumentary</a></li>
  181 + <li ng-class="Lymphatic"><a href="#" title="Lymphatic" id="6" ng-click="HighlightBodyByBodySystem($event)">Lymphatic</a></li>
  182 + <li ng-class="Muscular"><a href="#" title="Muscular" id="7" ng-click="HighlightBodyByBodySystem($event)">Muscular</a></li>
  183 + <li ng-class="Nervous"><a href="#" title="Nervous" id="8" ng-click="HighlightBodyByBodySystem($event)">Nervous</a></li>
  184 + <li ng-class="Reproductive"><a href="#" title="Reproductive" id="9" ng-click="HighlightBodyByBodySystem($event)">Reproductive</a></li>
  185 + <li ng-class="Respiratory"><a href="#" title="Respiratory" id="10" ng-click="HighlightBodyByBodySystem($event)">Respiratory</a></li>
  186 + <li ng-class="Skeletal"><a href="#" title="Skeletal" id="11" ng-click="HighlightBodyByBodySystem($event)">Skeletal</a></li>
  187 + <li ng-class="Urinary"><a href="#" title="Urinary" id="12" ng-click="HighlightBodyByBodySystem($event)">Urinary</a></li>-->
  188 +
  189 + <li ng-class="Cardiovascular"><a href="#" title="Cardiovascular" id="1" onclick="OnBodySystemSelection(event)">Cardiovascular</a></li>
  190 + <li ng-class="Digestive"><a href="#" title="Digestive" id="2" onclick="OnBodySystemSelection(event)">Digestive</a></li>
  191 + <li ng-class="Endocrine"><a href="#" title="Endocrine" id="3" onclick="OnBodySystemSelection(event)">Endocrine</a></li>
  192 + <li ng-class="Immune"><a href="#" title="Immune" id="4" onclick="OnBodySystemSelection(event)">Immune</a></li>
  193 + <li ng-class="Integumentary"><a href="#" title="Integumentary" id="5" onclick="OnBodySystemSelection(event)">Integumentary</a></li>
  194 + <li ng-class="Lymphatic"><a href="#" title="Lymphatic" id="6" onclick="OnBodySystemSelection(event)">Lymphatic</a></li>
  195 + <li ng-class="Muscular"><a href="#" title="Muscular" id="7" onclick="OnBodySystemSelection(event)">Muscular</a></li>
  196 + <li ng-class="Nervous"><a href="#" title="Nervous" id="8" onclick="OnBodySystemSelection(event)">Nervous</a></li>
  197 + <li ng-class="Reproductive"><a href="#" title="Reproductive" id="9" onclick="OnBodySystemSelection(event)">Reproductive</a></li>
  198 + <li ng-class="Respiratory"><a href="#" title="Respiratory" id="10" onclick="OnBodySystemSelection(event)">Respiratory</a></li>
  199 + <li ng-class="Skeletal"><a href="#" title="Skeletal" id="11" onclick="OnBodySystemSelection(event)">Skeletal</a></li>
  200 + <li ng-class="Urinary"><a href="#" title="Urinary" id="12" onclick="OnBodySystemSelection(event)">Urinary</a></li>
  201 + </ul>
  202 + </div>
  203 + </div>
  204 +
  205 + <div class="col-xs-12 pad0">
  206 + <div class="col-xs-6 hover-gender-tool" ng-init="switchGender()">
  207 + <div class=" custom-tooltip1">Gender</div>
  208 + <button class="btn btn-black btn-sm marginTop5 dropdown-toggle" type="button" id="dropdownMenu4" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"> <i class=" fa fa-intersex font16"></i></button>
  209 + <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">
  210 + <li ng-class="male">
  211 + <!--<button type="button" id="btnMale" onclick="OnGenderChange('Male')" class="btn btn-link" >Male</button>-->
  212 + <a href="#" title="Male" onclick="OnGenderChange(event)">Male</a>
  213 + </li>
  214 + <li ng-class="female">
  215 +
  216 + <!--<button type="button" id="btnFemale" onclick="OnGenderChange('Female')" class="btn btn-link">Female</button>-->
  217 + <a href="#" title="Female" onclick="OnGenderChange(event)">Female</a>
  218 +
  219 + <!--<a href="javascript:void(0)" title="Male" ng-click="OnGenderChange($event)">Male</a></li>
  220 + <li ng-class="female"><a href="javascript:void(0)" title="Female" ng-click="OnGenderChange($event)">Female</a></li>-->
  221 + </li>
  222 + </ul>
  223 + </div>
  224 +
  225 + <div class="col-xs-6 tooltip-View-custom">
  226 + <div class="custom-tooltip2">View</div>
  227 + <button class="btn btn-black btn-sm pull-right marginTop5 dropdown-toggle" type="button" id="dropdownMenu3" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true"><img src="content/images/view.png" alt="" title=""></button>
  228 + <ul class="dropdown-menu" aria-labelledby="dropdownMenu3">
  229 + <!--<li ng-class="AnteriorView"><a href="#" title="Anterior" ng-click="OnViewChange($event)">Anterior</a></li>
  230 + <li ng-class="LateralView"><a href="#" title="Lateral" ng-click="OnViewChange($event)">Lateral</a></li>
  231 + <li ng-class="MedialView"><a href="#" title="Medial" ng-click="OnViewChange($event)">Medial</a></li>
  232 + <li ng-class="PosteriorView"><a href="#" title="Posterior" ng-click="OnViewChange($event)">Posterior</a></li>
  233 + <li ng-class="LateralArmView"><a href="#" title="Lateral Arm" ng-click="OnViewChange($event)">Lateral Arm</a></li>
  234 + <li ng-class="MedialArmView"><a href="#" title="Medial Arm" ng-click="OnViewChange($event)">Medial Arm</a></li>-->
  235 +
  236 + <li ng-class="AnteriorView"><a href="#" title="Anterior" onclick="OnViewChange(event)">Anterior</a></li>
  237 + <li ng-class="LateralView"><a href="#" title="Lateral" onclick="OnViewChange(event)">Lateral</a></li>
  238 + <li ng-class="MedialView"><a href="#" title="Medial" onclick="OnViewChange(event)">Medial</a></li>
  239 + <li ng-class="PosteriorView"><a href="#" title="Posterior" onclick="OnViewChange(event)">Posterior</a></li>
  240 + <li ng-class="LateralArmView"><a href="#" title="Lateral Arm" onclick="OnViewChange(event)">Lateral Arm</a></li>
  241 + <li ng-class="MedialArmView"><a href="#" title="Medial Arm" onclick="OnViewChange(event)">Medial Arm</a></li>
  242 + </ul>
  243 + </div>
  244 + </div>
  245 +
  246 + <div class="col-xs-12">
  247 + <button id="btnStrutureBox" onclick="enableShowHideStructureBox()" class="btn btn-primary btn-sm marginTop5 btn-block tooltip-custom" data-toggle="tooltip" data-placement="bottom" name="showAnnotationStructure" title="Show/Hide Structure Name Boxes"> <img src="content/images/comment-box.png" alt=""></button>
  248 + </div>
  249 +
  250 + </div>
  251 + <div class="">
  252 +
  253 +
  254 + <!--'x' button is displaying inside the input box in IE browser.-->
  255 + <div style="width:80px;margin:10px 0 0 15px;display:inline-block;">
  256 +
  257 + <input type="text" class="form-control item" id="txtlayerNumber" value="0" ng-model="layerNumber" ng-keyup="LayerValueChangeBasedOnKeyUp($event)" ng-keydown="LayerChangeBasedOnKeyPressed($event)" style="height:32px;border-radius:0;text-align:center;">
  258 +
  259 +
  260 +
  261 + </div>
  262 +
  263 +
  264 + <!--<p>
  265 + <input class="item" type="number" id="txtlayerNumber" value="0" step="1" min="0" style="width:80px; margin:10px 0 0 15px;" ng-model="layerNumber" ng-keydown="LayerChangeBasedOnKeyPressed($event)" ng-click="LayerChangeOnMouseUpDown($event)" />
  266 + </p>-->
  267 + <div id="layerChangeSlider" style="height:140px;" class="vert_slider " ng-model="layerNumber"></div>
  268 + </div>
  269 + </div>
  270 +
  271 + <div class="main2">
  272 + <div class="col-sm-12 stickey-area">
  273 + <div class="breadcrumb ">
  274 + <div class="">
  275 + <div class="input-group col-sm-8 col-xs-7 col-md-10 pull-left">
  276 +
  277 + <input type="text" class="form-control input-sm pull-left" id="typedTermName" onclick="OnSearch()" ondblclick="OnSearch()" ng-model="searchFilter" ng-change="resetSearchListView()" ng-blur="HideSearch()" placeholder=" search...">
  278 +
  279 + <div id="backdrop" ng-show="IsSearchVisible">
  280 + <div id="searchListDiv" class="col-sm-12 col-xs-12 col-md-12 col-lg-12 pull-left">
  281 +
  282 + </div>
  283 + </div>
  284 +
  285 + </div>
  286 + <div class="btn-group" style="vertical-align:top;">
  287 +
  288 + <button type="button" id="btnDATermSearch" style="padding: 5px 10px 4px 10px !important;border: none;" class="btn btn-success btn-sm" onclick="OnSearch()" ng-blur="HideSearch()">
  289 + <!--<img src="~/../content/images/DA/go-to.png" style="height: 30px;width:50px">-->
  290 + <i class="fa fa-caret-down" style="font-size:20px;"></i>
  291 + </button>
  292 + </div>
  293 + <div class="btn-group open" id="da-body-nav">
  294 + <button type="button" style="padding:0px 0px 10px 1px !important;background-color:rgba(255,255,255,0.0); border:none;" class="btn btn-primary dropdown-toggle btn-sm" id="navigatorBtn">
  295 + <img src="~/../content/images/DA/navigator-view.png" style="height:30px; width:50px" />
  296 + </button>
  297 +
  298 + <div class="dropdown-menu" id="navigatorDiv" style="min-height: initial; min-width: initial; ">
  299 + <div id="containment-wrapper" align="center" style="min-width: initial; height: 119px; ">
  300 + <img id="navimg" alt="" />
  301 + <div id="draggable" class="draggable ui-widget-content dragdivposition" ng-mouseup="ScrollCanvasDiv()">
  302 + </div>
  303 + </div>
  304 +
  305 + </div>
  306 + </div>
  307 + </div>
  308 + </div>
  309 + </div>
  310 + <div class=" canavsParent col-sm-12 " id="cp">
  311 + <div class="container-fluid">
  312 + <div class="row">
  313 + <div id="canvasDiv" class="col-sm-12 img-thumbnail" align="center">
  314 + <canvas id="canvasPaint" ng-click="FreeStylePaint($event)" width="2277" height="3248" class="canvas-annotationStyle1"></canvas>
  315 + <canvas id="canvas" ng-click="onDrawingCanvasClick($event)" width="2277" height="3248" class="canvas-annotationStyle"></canvas>
  316 + </div>
  317 + <!--<div id="canvasDiv" style=" width: 95% !important;top:0px;overflow:scroll;background-color:white;">-->
  318 + <!--<div id="daLoaderLabel">Loading....</div>-->
  319 +
  320 + </div>
  321 + <div class="clearfix"></div>
  322 + </div>
  323 + </div>
  324 + </div>
  325 + <div class="clearfix"></div>
  326 + <!--to prevent transparency scale from closing on click anywhere outside set data-backdrop="static" data-keyboard="false" -->
  327 + <!--<div class="modal fade bs-example-modal-sm" tabindex="-1" aria-labelledby="mySmallModalLabel" id="transparencyScale" data-backdrop="static" data-keyboard="false">
  328 + <div class="modal-dialog modal-sm">
  329 + <div class="modal-content">
  330 + <div class="modal-header annotation-modal-header">
  331 + <button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="CloseTransparencyBox()"><span aria-hidden="true">&times;</span></button>
  332 + <h4 class="modal-title">Transparency</h4>
  333 + </div>
  334 + <div class="modal-body">
  335 + <div class="row">
  336 + <div class="col-sm-12">
  337 + <div class="padded25">
  338 + <div class="slider"></div>
  339 + </div>
  340 + </div>
  341 + </div>
  342 + </div>
  343 + </div>
  344 + </div>
  345 + </div>-->
  346 + <!--<div class="ui-widget-content" id="transparencyScale" style="width: 350px; height: 130px;visibility:hidden;display:block;float:left">
  347 + <div class="modal-dialog modal-sm">
  348 + <div class="modal-content">
  349 + <div class="modal-header annotation-modal-header">
  350 + <button type="button" class="close" data-dismiss="modal" aria-label="Close" ng-click="CloseTransparencyBox()"><span aria-hidden="true">&times;</span></button>
  351 + <h4>Transparency</h4>
  352 + </div>
  353 + <div>
  354 + <div class="row">
  355 + <div class="col-sm-12">
  356 + <div class="padded25">
  357 + <div class="slider"></div>
  358 + </div>
  359 + </div>
  360 + </div>
  361 + </div>
  362 + </div>
  363 + </div>
  364 + </div>-->
  365 + <div class="ui-widget-content" id="transparencyScale" style="width: 350px; height: 150px;visibility:hidden;display:block;float:left">
  366 + <div>
  367 + <div>
  368 + <div class="modal-header annotation-modal-header">
  369 + <button id="btnTBoxClose" type="button" onclick="onTboxClose()" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  370 + <h4>Transparency</h4>
  371 + </div>
  372 + <div>
  373 + <div class="row">
  374 + <div class="col-sm-12">
  375 + <div class="padded25">
  376 + <!--<div class="slider" id="sliderScale"></div>-->
  377 + <div class="slider" id="tbSlider"></div>
  378 + </div>
  379 + </div>
  380 + </div>
  381 + </div>
  382 + </div>
  383 + </div>
  384 + </div>
  385 + <div class="modal fade" id="daMessageModal" role="dialog" style="top:20%;">
  386 +
  387 + <div class="modal-dialog modal-sm">
  388 +
  389 +
  390 +
  391 + <div class="modal-content">
  392 +
  393 +
  394 + <div class="modal-header">
  395 +
  396 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  397 +
  398 + </div>
  399 +
  400 + <div class="modal-title"></div>
  401 +
  402 + <!--<div class="modal-body">"No body system"</div>-->
  403 +
  404 + <div class="modal-header"><p data-ng-bind ="message" style="font-size:15px;"></p></div>
  405 +
  406 +
  407 +
  408 + <div class="modal-footer"> <button type="button" class="btn btn-primary btn-sm" data-dismiss="modal">OK</button></div>
  409 +
  410 +
  411 + </div>
  412 +
  413 +
  414 + </div>
  415 +
  416 + </div>
  417 +
  418 +
  419 + <div class="modal fade" id="daMessageModal" role="dialog">
  420 + <div class="modal-dialog">
  421 +
  422 + <div class="modal-content">
  423 + <!--<div class="modal-header">
  424 + <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
  425 + </div>
  426 + <div class="modal-title"></div>-->
  427 + <!--<div class="modal-body">"No body system"</div>-->
  428 + <div class="modal-body" data-ng-bind="message"></div>
  429 +
  430 + <div class="modal-footer"> <button type="button" class="btn btn-primary" data-dismiss="modal">OK</button></div>
  431 + </div>
  432 + </div>
  433 + </div>
  434 +</div>
  435 +<!--<script src="../../../libs/jquery/1.11.4/jquery-ui.js"></script>-->
  436 +<script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
  437 +<script>
  438 + $(document).ready(function () {
  439 + $("#navigatorBtn").on('click', function () {
  440 + $("#navigatorDiv").toggle();
  441 + });
  442 + });
  443 +</script>
  444 +<script>
  445 + $(window).load(function () {
  446 + $(".stickey-area").sticky();
  447 +
  448 +
  449 + });</script>
  450 +<script>
  451 + $(function () {
  452 +
  453 + var regExp = /[0-9\.\,]/;
  454 + $('#txtlayerNumber').on('keydown keyup', function (e) {
  455 + var value = String.fromCharCode(e.which) || e.key;
  456 + // Only numbers, dots and commas
  457 + if (!regExp.test(value)
  458 + && e.which != 188 // ,
  459 + && e.which != 190 // .
  460 + && e.which != 8 // backspace
  461 + && e.which != 46 // delete
  462 + && (e.which < 37 // arrow keys
  463 + || e.which > 40)
  464 + && (e.keyCode < 96 // Dissectible Anatomy > Num Lock is not working for enter the layer.
  465 + || e.keyCode > 105))
  466 +
  467 + {
  468 + e.preventDefault();
  469 + return false;
  470 + }
  471 + });
  472 +
  473 + });
  474 +
  475 +</script>
  476 +<!--<script>
  477 + $(function () {
  478 + $('#layerChangeSlider').slider().on('slideStop', function () {
  479 + alert('fjkjksdbgjkgjkfgk')
  480 + })
  481 +</script>
  482 + });-->
  483 +
  484 +<script src="libs/jquery/jquery_plugin/slider-pips/jquery-ui-slider-pips.js"></script>
  485 +<script>
  486 + $(function () {
  487 +
  488 +
  489 + // issue in navigator image in internet explorer
  490 + if ($.browser.msie == true) {
  491 + $("#navigatorDiv").css({"min-width":"auto", "min-height":"auto"});
  492 + $("#containment-wrapper").css("min-width", "auto");
  493 + }
  494 + $("#transparencyScale").draggable();
  495 + $("#draggable").draggable({ containment: "#containment-wrapper", scroll: false });
  496 + });
  497 +</script>
  498 +<script>
  499 + $(function () {
  500 +
  501 + $("#dropdownMenu2").mouseover(function () {
  502 + $(".custom-tooltip").css("display", "block");
  503 + });
  504 + $("#dropdownMenu2").mouseout(function () {
  505 + $(".custom-tooltip").css("display", "none");
  506 + });
  507 +
  508 + $("#dropdownMenu4").mouseover(function () {
  509 + $(".custom-tooltip1").css("display", "block");
  510 + });
  511 + $("#dropdownMenu4").mouseout(function () {
  512 + $(".custom-tooltip1").css("display", "none");
  513 + });
  514 +
  515 + $("#dropdownMenu3").mouseover(function () {
  516 + $(".custom-tooltip2").css("display", "block");
  517 + });
  518 + $("#dropdownMenu3").mouseout(function () {
  519 + $(".custom-tooltip2").css("display", "none");
  520 + });
  521 +
  522 +
  523 + });
  524 +</script>
  525 +<script>
  526 + $(".slider")
  527 + .slider({
  528 + min: 0,
  529 + max: 100,
  530 + value: 50,
  531 + range: "min",
  532 + orientation: "horizontal",
  533 + stop: function (event, ui) {
  534 + //alert('trans changed')
  535 + var scope = angular.element(document.getElementById("daView")).scope();
  536 + scope.$apply(function () {
  537 + scope.onTransparencyChange(event, ui);
  538 + });
  539 + }
  540 + })
  541 + .slider("pips", {
  542 + rest: "label",
  543 + step: "10"
  544 + });
  545 +
  546 +</script>
  547 +<script>
  548 + $(".tooltip-custom").tooltip({
  549 + tooltipClass: 'customTooltip'
  550 + });
  551 +</script>
  552 +<script>
  553 + $(function () {
  554 + $(".modal").draggable();
  555 + });
  556 +</script>
  557 +<script>
  558 + $(function () {
  559 + "use strict";
  560 + /*** Sidebar Toggle ***/
  561 + var barPos = 0;
  562 + var bar = $('.tools');
  563 + var main = $('.main2');
  564 + $('.toggleBar').click(function () {
  565 +
  566 + bar.toggleClass('active');
  567 + main.toggleClass('active');
  568 + });
  569 + });
  570 +</script>
  571 +