'use strict';
AIA.controller("DAController", ["$scope", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout", "DA", "Modules", "$routeParams", "DataService", "TermService", "AIAConstants", "ModuleService","$interval","$q",
function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Modules, $routeParam, DataService, TermService, AIAConstants, ModuleService,$interval,$q) {
$scope.ScopeVariablesDeclare = function () {
// common field data
$rootScope.path = "~/../content/images/speeachBubbleClose.png";
$rootScope.modestyCanvasZindex = 12100;
$scope.CurrentStructure = "active";
$scope.IsSearchVisible;
$scope.bodyViews = {
'Anterior': '1',
'Lateral': '2',
'Medial': '3',
'Posterior': '4',
'Lateral Arm': '5',
'Medial Arm': '6'
}
//array for bodyviewid correspoing to male female(used for gender change)
$scope.correspondingBodyViewIds = {
'1': '5',
'2': '6',
'3': '7',
'4': '8',
'9': '11',
'10': '12',
'5': '1',
'6': '2',
'7': '3',
'8': '4',
'11': '9',
'12': '10',
}
//for transarency scale one time variable
$scope.TBDrawStartX;
$scope.TBDrawStartY;
$scope.speechbubbleList = [];
$scope.CommonData;
$scope.BodyViewData;
// This variable is used for unhighlight previously highlighted body portion, if multiAnnotation is false.
$scope.machedIcolorInBodyRegion = [];
$scope.runningWorkers = [];
$scope.runningSearchWorkers = [];
$scope.runningBodyViewWorkers = [];
//common field data
}
$scope.initializeWindowData = function(windowviewid,isfirsttimecall,cbwindowid){
if(isfirsttimecall ||cbwindowid==0)
{
$rootScope.DaWindowData = [];
$rootScope.DaWindowData.push(
{
'multiwinid' : windowviewid,
'layerNumber': 0,
'voId': 0,
'genderId':0,
'currentViewTitle':'',
'parentSlugName': '',
'currentSlug':'',
'zoomInOut':75,
'TermNumberData':null,
'vocabTermDataArray': null,
'fullTermlist':[],
'isHighlightBodyWithCBTermData':false,
'CurriculumTermData':[],
'primaryLexiconInd':0,
'TermAnnotationText':[],
'AllTerms':[],
'actualTermNumber':0,
'prevId':0,
'isTransparencyActivated':false,
'isTransparencyBtnClicked':false,
'isListManagerSelected':false,
'isListManagerAlreadySelected':false,
'multiAnnotationIsON':false,
'isSearchClicked':false,
'isNormalMode':true,
'isExtract':false,
'isHighLight':false,
'isZoomed':false,
'isViewChange':false,
'isGenderChnage':false,
'isTBoxModestyVisible':false,
'speechBubbleCounter':0,
'TPspeechBubbleCounter':0,
'speachBubbleArrayAnnotation':[],
'UIWrapperZIndex':12000,
'systemNumber':0,
'NavigatorData':null,
'transNumber':100,
'layerInfoForModesty':[],
'BodySystemData':[],
'BodyLayerData':[],
'matchdedDataOnLayer':[],
'bgartData':[],
'BodyRegionData':[],
'BodyRegionCordinatesData':[],
'totalLayers':0,
'layerNumberBeforeTBDraw':0,
'PreviouslayerNumbr':0,
'currentLayerNumber':0,
'viewOrientationId':0,
'CanvasDivTopPosition':0,
'CanvasDivLeftPosition':0,
'isGlobalSettingChanged':false,
'isTBDrawnOnBodyRegion':false,
'previousHighlightList':[],
'MaskCanvasData':[],
'isModestyOn':true,
'curentEthnicity':'W',
'modestyImageInfo':[],
'ColoredImageSRC':[],
'isHighlightBodyByBodySystem':false,
'isbodySystemHighlight':false,
'grayedBR':[],
'coloredImageCanvasList':[],
'coloredImageMRCanvasList':[],
'whiteImageDataList':[],
'whiteImageMRDataList':[],
'grayImageDataList':[],
'grayImageMRDataList':[],
'updatedWhiteImageDataList':[],
'updatedWhiteImageMRDataList':[],
'updatedGrayDataList':[],
'updatedGrayMRDataList':[],
});
}
else
{
var isNewWindow=true;
for (var k = 0; k < $rootScope.DaWindowData.length; k++) {
if ($rootScope.DaWindowData[k].multiwinid == windowviewid) {
isNewWindow=false;
break;
}
}
if(isNewWindow)
{
$rootScope.DaWindowData.push(
{
'multiwinid' : windowviewid,
'layerNumber': 0,
'voId': 0,
'genderId':0,
'currentViewTitle':'',
'parentSlugName': '',
'currentSlug': '',
'zoomInOut':75,
'TermNumberData':null,
'vocabTermDataArray': null,
'fullTermlist':[],
'isHighlightBodyWithCBTermData':false,
'CurriculumTermData':[],
'primaryLexiconInd': 0,
'TermAnnotationText':null,
'AllTerms':[],
'actualTermNumber':0,
'prevId':0,
'isTransparencyActivated':false,
'isTransparencyBtnClicked':false,
'isListManagerSelected':false,
'isListManagerAlreadySelected':false,
'multiAnnotationIsON':false,
'isSearchClicked':false,
'isNormalMode':true,
'isExtract':false,
'isHighLight':false,
'isZoomed':false,
'isViewChange':false,
'isGenderChnage':false,
'isTBoxModestyVisible':false,
'speechBubbleCounter':0,
'TPspeechBubbleCounter':0,
'speachBubbleArrayAnnotation':[],
'UIWrapperZIndex':12000,
'systemNumber':0,
'NavigatorData':null,
'transNumber':100,
'layerInfoForModesty':[],
'BodySystemData':[],
'BodyLayerData':[],
'matchdedDataOnLayer':[],
'bgartData':[],
'BodyRegionData':[],
'BodyRegionCordinatesData':[],
'totalLayers':0,
'layerNumberBeforeTBDraw':0,
'PreviouslayerNumbr':0,
'currentLayerNumber':0,
'viewOrientationId':0,
'CanvasDivTopPosition':0,
'CanvasDivLeftPosition':0,
'isGlobalSettingChanged':false,
'isTBDrawnOnBodyRegion':false,
'previousHighlightList':[],
'MaskCanvasData':[],
'isModestyOn':true,
'curentEthnicity':'W',
'modestyImageInfo':[],
'ColoredImageSRC':[],
'isHighlightBodyByBodySystem':false,
'isbodySystemHighlight':false,
'grayedBR':[],
'coloredImageCanvasList':[],
'coloredImageMRCanvasList':[],
'whiteImageDataList':[],
'whiteImageMRDataList':[],
'grayImageDataList':[],
'grayImageMRDataList':[],
'updatedWhiteImageDataList':[],
'updatedWhiteImageMRDataList':[],
'updatedGrayDataList':[],
'updatedGrayMRDataList':[],
});
}
}
}
$scope.GetwindowStoreData=function(windowviewid,keyname)
{
for(var x=0 ;x < $rootScope.DaWindowData.length;x++){
if($rootScope.DaWindowData[x].multiwinid==windowviewid)
{
return $rootScope.DaWindowData[x][keyname];
}
}
}
$scope.SetwindowStoreData=function(windowviewid,keyname,value)
{
for(var x=0 ;x < $rootScope.DaWindowData.length;x++){
if($rootScope.DaWindowData[x].multiwinid==windowviewid)
{
$rootScope.DaWindowData[x][keyname]=value;
}
}
}
$scope.setGenderNameById = function (BodyViewId,windowviewid) {
if (BodyViewId == '1' | BodyViewId == '2' | BodyViewId == '3' | BodyViewId == '4' | BodyViewId == '9' | BodyViewId == '10') {
$scope.SetwindowStoreData(windowviewid,'genderId','Male');
}
else {
$scope.SetwindowStoreData(windowviewid,'genderId','Female');
}
}
$scope.IsVisible = function () {
$scope.scroll();
}
$scope.scroll = function () {
// $window.scrollTo(0, 0);
$("html,body").scrollTop(0);
//alert("scroll");
}
$scope.setActiveview=function(windowviewid,viewtypename) {
$('#Anterior_'+windowviewid).removeClass("active");
$('#Lateral_'+windowviewid).removeClass("active");
$('#Medial_'+windowviewid).removeClass("active");
$('#Posterior_'+windowviewid).removeClass("active");
$('#LateralArm_'+windowviewid).removeClass("active");
$('#MedialArm_'+windowviewid).removeClass("active");
if (viewtypename.match("Anterior")) {
$('#Anterior_'+windowviewid).addClass('active');
}
else if (viewtypename.match("Lateral Arm")) {
$('#LateralArm_'+windowviewid).addClass('active');
}
else if (viewtypename.match("Medial Arm")) {
$('#MedialArm_'+windowviewid).addClass('active');
}
else if (viewtypename.match("Lateral")) {
$('#Lateral_'+windowviewid).addClass('active');
}
else if (viewtypename.match("Medial")) {
$('#Medial_'+windowviewid).addClass('active');
}
else if (viewtypename.match("Posterior")) {
$('#Posterior_'+windowviewid).addClass('active');
}
}
$scope.switchGender = function (windowviewid,viewtypename) {
if (viewtypename.match("Male")) {
$('#IdMale_'+windowviewid).addClass('active');
$('#IdFemale_'+windowviewid).removeClass("active");
}
else if (viewtypename.match("Female")) {
$('#IdMale_'+windowviewid).removeClass('active');
$('#IdFemale_'+windowviewid).addClass("active");
}
}
//get the DA body view list based on selected gender
//get the DA body view list based on selected gender
$scope.getDAViewList = function ($event) {
var windowviewid=$rootScope.MULTI_VIEW_ID;
if ($('#MainImage') != null) {
$('#MainImage').remove();
}
$("#bodyViewList").empty();
//for default load
if ($event == null || $event == undefined) {
// default set male
$scope.SetwindowStoreData(windowviewid,'genderId','Male');
}
else {
$scope.SetwindowStoreData(windowviewid,'genderId',$event.currentTarget.id);
}
var selectedGender = $scope.GetwindowStoreData(windowviewid,'genderId');
if (selectedGender != null) {
if (selectedGender == "Male") {
$('#Male').addClass('active');
$('#Female').removeClass("active");
}
else {
$('#Female').addClass('active');
$('#Male').removeClass("active");
}
}
var selectedGenderBodyViewData = new jinqJs()
.from( $scope.BodyViewData.BodyViews.view)
.where('_gender == ' + selectedGender)
.select();
if (selectedGenderBodyViewData != null || selectedGenderBodyViewData != undefined) {
angular.forEach(selectedGenderBodyViewData, function (value, key) {
var userEthnicity;
var userModestysettings;
var curentEthnicity = $rootScope.getLocalStorageValue("globalEthnicity");
if (typeof (curentEthnicity) !== "undefined" && curentEthnicity !== null) {
userEthnicity = curentEthnicity;
}
else {
userEthnicity = $rootScope.globalSetting.ethnicity;
}
$scope.SetwindowStoreData(windowviewid,'curentEthnicity',userEthnicity);
var curentmodesty = $rootScope.getLocalStorageValue("globalModesty");
if (typeof (curentmodesty) !== "undefined" && curentmodesty !== null) {
userModestysettings = curentmodesty;
}
else {
userModestysettings = $rootScope.globalSetting.modesty;
}
if(curentmodesty=="Y")
{
$scope.SetwindowStoreData(windowviewid,'isModestyOn',true);
}
else
{
$scope.SetwindowStoreData(windowviewid,'isModestyOn',false);
}
//var userSelectedSkintone = 'W';
//$scope.userModestySetting = 'Y'
var thumbnailImage;
if ((value._id == 1) || (value._id == 3) || (value._id == 5) || (value._id == 6) || (value._id == 7) || (value._id == 11))
thumbnailImage = ((value._thumbnailImage).replace('.jpg', '_' + userEthnicity + userModestysettings)) + '.jpg';
else {
thumbnailImage = ((value._thumbnailImage).replace('.jpg', '_' + userEthnicity)) + '.jpg';
}
var zoomValue=$scope.GetwindowStoreData(windowviewid,'zoomInOut');
var imagePath = "~/../content/images/DA/" + zoomValue + "/body-views/" + value._id + '/skintone/' + userEthnicity + '/' + thumbnailImage;
var $el = $('
'
+ ''
+ '
' + value._title + '
').appendTo('#bodyViewList');
$compile($el)($scope);
$(".sidebar").mCustomScrollbar({
autoHideScrollbar: true,
//theme:"rounded"
});
});
}
};
$scope.DisableUI = function () {
//enable daBodyViewDiv which was disabled on thumbnail click so need not bother where to enable
//as jspanel disable/enable is working for all features
document.getElementById('daBodyview').style.pointerEvents = "auto";
document.getElementById('daBodyview').style.opacity = "1";
var daImagePanelConetent = document.getElementsByClassName("jsPanel-content");
for (var i = 0; i < daImagePanelConetent.length; i++) {
daImagePanelConetent[i].style.pointerEvents = "none";
daImagePanelConetent[i].style.opacity = "0.5";
}
//to disbale layer change slider
/// $('.ui-slider').slider('disable');
// document.getElementById('txtlayerNumber').style.pointerEvents = "none";
// $("#" + $scope.txtLayerNumberID).prop('disabled', true);
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
}
$scope.EnableUI = function () {
var daImagePanelConetent = document.getElementsByClassName("jsPanel-content");
for (var i = 0; i < daImagePanelConetent.length; i++) {
daImagePanelConetent[i].style.pointerEvents = "auto";
daImagePanelConetent[i].style.opacity = "1";
}
//to enable layer change slider
// $('.ui-slider').slider('enable');
// document.getElementById('txtlayerNumber').style.pointerEvents = "auto";
// $("#" + $scope.txtLayerNumberID).prop('disabled', false);
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
$scope.openView = function ($event) {
$rootScope.disableAnnotationTB = false;
$rootScope.MenuModuleName = "DA";
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var u = $location.url();
if ($rootScope.isOpenResourceBtnClicked == true) {
// $rootScope.MULTI_VIEW_ID = $rootScope.MULTI_VIEW_ID + 1;
$rootScope.multiViewInfoIndex = 0;
$rootScope.multiViewInfo.push({ "Target": $event.currentTarget, "id": $rootScope.MULTI_VIEW_ID, "bodyViewID": $event.currentTarget.id, "bodyName": $event.currentTarget.textContent });
// $rootScope.multiSearchData = [];
localStorage.setItem("multiViewInfo", JSON.stringify($rootScope.multiViewInfo));
console.log($rootScope.multiViewInfo);
$location.url('/curriculum-builder-detail');
}
else {
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'currentViewTitle',$event.currentTarget.textContent);
localStorage.setItem("currentBodyViewId", $event.currentTarget.id);
$location.url('/da-body-view');
}
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
//load json data for body view
$scope.loadDissectibleAnatomyData = function () {
// clear data set by curriculum builder
$rootScope.isCallFromOtherModule = undefined;
$rootScope.isOpenResourceBtnClicked = undefined;
$rootScope.MULTI_VIEW_ID += 1
if ($rootScope.refreshcheck == null) {
$location.path('/');
}
$scope.ScopeVariablesDeclare();
$scope.initializeWindowData($rootScope.MULTI_VIEW_ID,true,undefined);
//get current path
var currentURL = $location.path();
var selectedModuleName = '';
angular.forEach($rootScope.userModules, function (value, key) {
if (value.slug === currentURL.replace('/', '')) {
selectedModuleName = value.name;
$rootScope.currentActiveModuleTitle = selectedModuleName;
}
})
$rootScope.ClearIframe();
//load common data
var commondataJsonPath = '~/../content/data/json/da/da_dat_common.json';
DataService.getAnotherJson(commondataJsonPath)
.then(
function (result) {
$rootScope.CommonData = result;
$http({ method: 'GET', url: '~/../content/data/json/da/da_dat_contentlist.json' }).success(function (data) {
$scope.BodyViewData = data;
$scope.getDAViewList();
})
.error(function (data, status, headers, config) {
console.log(data);
});
},
function (error) {
console.log(error.statusText)
}
)
// $('#daLoaderLabel').css('visibility', 'hidden')
$rootScope.isLoading = false;
//push the details of open module in array $rootScope.openModules
$rootScope.openModules.push({ "ModuleId": 1 });
}
$scope.openBodyViewMain = function () {
$scope.ScopeVariablesDeclare();
if ($rootScope.isCallFromOtherModule) {
$scope.DAModuleData = ModuleService.getModuleData("DISSECTIBLE_ANATOMY");
$scope.counter=0;
$scope.wincount=1;
var winlen=$scope.DAModuleData.length;
var timeint=null;
timeint = $interval(function() {
if($scope.wincount<=winlen && $rootScope.CBWindowLoadComplete==false && $scope.counter==0)
{
var windata=$scope.DAModuleData[$scope.wincount-1];
$scope.openBodyView(windata);
if($scope.wincount==winlen)
{
$scope.stopInterval();
}
}
$scope.counter = $scope.counter + 1;
if($rootScope.CBWindowLoadComplete==true)
{
$scope.wincount=$scope.wincount+1;
$rootScope.CBWindowLoadComplete=false;
$scope.counter=0;
}
}, 100);
$scope.stopInterval = function() {
if (angular.isDefined(timeint)) {
$interval.cancel(timeint);
timeint = undefined;
}
};
}
else {
$scope.openBodyView(null);
}
}
//da-body-views functions
$scope.openBodyView = function (damoduledata) {
$scope.daOpenInOtherModules = damoduledata;
if ($rootScope.isCallFromOtherModule != undefined) {
$rootScope.MULTI_VIEW_ID += 1;
$scope.initializeWindowData($rootScope.MULTI_VIEW_ID,false,$scope.daOpenInOtherModules.currentWindowId);
}
if ($rootScope.isCallFromOtherModule) {
//$scope.daOpenInOtherModules = ModuleService.getModuleData("DISSECTIBLE_ANATOMY");
if ($scope.daOpenInOtherModules != undefined) {
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'voId',$scope.daOpenInOtherModules.currentBodyViewId);
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'currentViewTitle',$scope.daOpenInOtherModules.windowTitle);
$scope.jsPanelID = 'daImagePanel' + '_' + $rootScope.MULTI_VIEW_ID;
$scope.viewID = 'daViewDA_' + $rootScope.MULTI_VIEW_ID;
console.log('$location.url = ' + $location.url())
// replace current modesty by CB jason
var skinValue=$scope.daOpenInOtherModules.skinId;
localStorage.setItem("globalEthnicity",skinValue );
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'curentEthnicity',skinValue);
// replace current modesty by CB jason
var modestyValue=$scope.daOpenInOtherModules.isModestyOn;
localStorage.setItem("globalModesty", modestyValue);
if(modestyValue=="Y")
{
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'isModestyOn',true);
}
else
{
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'isModestyOn',false);
}
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'zoomInOut',$scope.daOpenInOtherModules.zoom);
//// one layer down as compare to current running on production
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'layerNumber',$scope.daOpenInOtherModules.layerNumber-1);
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'parentSlugName',($location.url()).replace('/', ''));
//'clinical-illustrations'; //
if ( $scope.BodyViewData == null || $scope.BodyViewData == undefined) {
var commondataJsonPath = '~/../content/data/json/da/da_dat_common.json';
DataService.getAnotherJson(commondataJsonPath)
.then(
function (result) {
$rootScope.CommonData = result;
$http({ method: 'GET', url: '~/../content/data/json/da/da_dat_contentlist.json' }).success(function (data) {
$scope.BodyViewData = data;
$scope.loadBodyView($rootScope.MULTI_VIEW_ID);
})
})
}
else {
$scope.loadBodyView($rootScope.MULTI_VIEW_ID);
}
}
}
else if ($rootScope.isOpenResourceBtnClicked == true) {
$rootScope.MULTI_VIEW_ID = $rootScope.multiViewInfo[$rootScope.multiViewInfoIndex].id;
$rootScope.multiViewCounter = $rootScope.MULTI_VIEW_ID;
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'voId',$rootScope.multiViewInfo[$rootScope.multiViewInfoIndex].bodyViewID);
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'currentViewTitle',$rootScope.multiViewInfo[$rootScope.multiViewInfoIndex].bodyName);
$scope.jsPanelID = 'daImagePanel' + '_' + $rootScope.multiViewCounter;
$scope.viewID = 'daViewDA' + '_' + $rootScope.multiViewCounter;
console.log('$location.url = ' + $location.url());
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'parentSlugName',($location.url()).replace('/', ''));
//'clinical-illustrations'; //
$scope.loadBodyView($rootScope.MULTI_VIEW_ID);
}
else {
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'voId',$rootScope.getLocalStorageValue("currentBodyViewId"));
$scope.jsPanelID = 'daImagePanel' + '_' + $rootScope.MULTI_VIEW_ID;
$scope.viewID = 'daViewDA' + '_' + $rootScope.MULTI_VIEW_ID;
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'parentSlugName','da-view-list');
$scope.loadBodyView($rootScope.MULTI_VIEW_ID);
}
}
$scope.loadBodyView = function (windowviewid) {
if (document.getElementById('daBodyview') != null) {
document.getElementById('daBodyview').style.pointerEvents = "none";
document.getElementById('daBodyview').style.opacity = "0.5";
}
//Check if browser 'REFRESHED' or 'RELOADED'
if ($rootScope.CommonData != null) {
//0. we will initially append container to load body
//check if localstorage has any settings
var curentEthnicity = $rootScope.getLocalStorageValue("globalEthnicity");
if (typeof (curentEthnicity) !== "undefined" && curentEthnicity !== null) {
$rootScope.globalSetting.ethnicity = curentEthnicity;
$scope.SetwindowStoreData(windowviewid,'curentEthnicity',curentEthnicity);
}
var curentmodesty = $rootScope.getLocalStorageValue("globalModesty");
if (typeof (curentmodesty) !== "undefined" && curentmodesty !== null) {
$rootScope.globalSetting.modesty = curentmodesty
}
//0.1
var bodyViewId=$scope.GetwindowStoreData(windowviewid,'voId');
if (bodyViewId == null || bodyViewId == undefined) {
// document.location = '/';
document.location = '/';
$rootScope.isVisibleLogin = true;
}
else {
$rootScope.isVisibleLogin = false;
$rootScope.loadSearchData(windowviewid);
console.log('currentBodyViewId picked from localStorage: ' + bodyViewId);
// set gender
$scope.setGenderNameById(bodyViewId,windowviewid);
var currentViewTitle = $scope.GetwindowStoreData(windowviewid,'currentViewTitle');
if ($rootScope.isOpenResourceBtnClicked == true) {
$rootScope.jsPanelWidth = $(window).outerWidth() - 310;
$rootScope.jsPanelHeight = $(window).outerHeight() - 110;
$rootScope.jsPanelLeft = 302;
}
else if ($rootScope.isCallFromOtherModule) {
// Birendra//
// open JS panel for curriculum with define cornonate in CB jason
$rootScope.jsPanelWidth = $scope.daOpenInOtherModules.size.width;//1000;
$rootScope.jsPanelHeight = $scope.daOpenInOtherModules.size.height;
$rootScope.jsPanelLeft = 320;
$rootScope.jsPanelTop = $scope.daOpenInOtherModules.position.y;//650
}
else {
$rootScope.jsPanelWidth = $(window).outerWidth() - 10;
$rootScope.jsPanelHeight = $(window).outerHeight() - 110;
$rootScope.jsPanelLeft = 1;
$rootScope.jsPanelTop = 70;
}
$.jsPanel({
id: $scope.jsPanelID,
selector: '.daBodyView',
theme: 'success',
currentController: 'DAController',
parentSlug:$scope.GetwindowStoreData(windowviewid,'parentSlugName'),
ajax: {
url: 'app/views/da/da-view.html'
},
title: currentViewTitle,
position: {
top: $rootScope.jsPanelTop,
left: $rootScope.jsPanelLeft,
},
size: {
width: $rootScope.jsPanelWidth,
height: $rootScope.jsPanelHeight
},
});
//0.1
//$rootScope.currentSlug = 'da-body-view';
$scope.SetwindowStoreData(windowviewid, 'currentSlug', 'da-body-view');
//0.2
$rootScope.openViews.push(
{
"module": $rootScope.currentActiveModuleTitle, "bodyView": currentViewTitle, "state": 'max', "BodyViewId": bodyViewId,
"slug": $scope.GetwindowStoreData(windowviewid, 'currentSlug')
}
);
//0.3
var daBodyviewElement = angular.element(document.getElementById("daBodyview"));
$timeout(function () {
$compile(daBodyviewElement.contents())($scope);
//set ids
$scope.daViewID = "daView";
$scope.btnIdentifyID = "btnIdentify";
$scope.btnZoomID = "btnZoom";
$scope.btnTranparencyID = "btnTranparency";
$scope.btnNormalModeID = "btnNormalMode";
$scope.btnExtractID = "btnExtract";
$scope.btnHighLightID = "btnHighLight";
$scope.dropdownMenu4ID = "dropdownMenu4";
$scope.genderChangeID = "genderChangeId";
$scope.structureDropdownID = "structureDropdown";
$scope.viewID = "daView";
$scope.viewChangeID = "viewChangeID";
$scope.btnStrutureBoxID = "btnStrutureBox";
$scope.typedTermNameID = "typedTermName";
$scope.searchListDivID = "searchListDiv";
$scope.btnDATermSearchID = "btnDATermSearch";
$scope.navigatorBtnID = "navigatorBtn";
$scope.transparencyScaleID = "transparencyScale";
$scope.btnTBoxCloseID = "btnTBoxClose";
$scope.canvasDivID = "canvasDiv";
$scope.canvasPaintID = "canvasPaint"
$scope.canvasID = "canvas";
$scope.dropdownMenu3ID = "dropdownMenu3";
$scope.dropdownMenu2ID = "dropdownMenu2";
$scope.navigatorDivID = "navigatorDiv";
$scope.navDivID = "navDiv";
$scope.navimgID = "navimg";
$scope.draggableID = "draggable";
$scope.txtLayerNumberID = "txtlayerNumber";
$scope.layerChangeSliderID = "layerChangeSlider";
$scope.leftToolBarID = "leftToolBar";
$scope.zoomValueID = "zoomValue";
$scope.searchedTermListPopUpID = "searchedTermListPopUp";
$scope.searchTermListUlId = "searchTermListUl"
$scope.btnSearchListId = "btnSearchList";
$scope.tbSliderId = "tbSlider";
$scope.IdMale = "IdMale";
$scope.IdFemale = "IdFemale";
//if ($rootScope.isOpenResourceBtnClicked || $rootScope.isCallFromOtherModule) {
$scope.setControlIDs();
// use for isOpenResourceBtnClicked
// $scope.setScopeVariables();
// }
$scope.NavigatorDraggable(windowviewid)
$scope.loadbtnNavigator(windowviewid);
// set slider control
$scope.Setslider(windowviewid);
$scope.TbSelSlider(windowviewid);
$scope.loadView(windowviewid);
var viewtitlename=$scope.GetwindowStoreData(windowviewid,'currentViewTitle');
$scope.switchGender(windowviewid,viewtitlename);
$scope.setActiveview(windowviewid,viewtitlename);
// console.log('html is compiled ' + document.getElementById('daView'))
if ($('#' + $scope.jsPanelID).offset().top == 0)
$('#' + $scope.jsPanelID).css("top", '70px');
if ($('#' + $scope.jsPanelID).offset().left == 0)
$('#' + $scope.jsPanelID).css("left", '1px');
}, 350);
}
}
else {
//for now we are redirecting user to index page on page refresh because on refresh we lost the rootscope data and some of application
//features stopped working which were depenedent of rootscope data like List manager, annotation toolbar, settings, usermodule list, etc.
$location.path('/');
}
}
// we are loading most of alll data used in DA by this function so that at the time of any functionality delay in data laod will not happened.
$scope.loadView = function (windowviewid) {
var bodyViewId=$scope.GetwindowStoreData(windowviewid,'voId');
if (document.getElementById('daViewDA_'+windowviewid) != null) {
$scope.loadDAView(bodyViewId, windowviewid);
}
else if (document.getElementById("daViewDA_" + windowviewid) != null) {
$scope.loadDAView(bodyViewId, windowviewid);
}
else {
// this is a work around solution for a bug where DA does not load for long and user need to close the DA partially opened
// view, now we are programmatically closing the hung view and when user will reopen the DA view from tile then it will
// open without any issue.
var jsPanelCloseBtnID = $scope.jsPanelID + " " + ".jsglyph-remove"
$("#" + jsPanelCloseBtnID).click();
// console.log('html is compiled in else ' + document.getElementById('daView'))
}
}
$scope.loadDAView = function (currentBodyViewId, windowviewid) {
//0.4 added some stylesheets
$('#daBodyview').css("height", (parseInt($(window).outerHeight()) - 62 - 20));
$('#daBodyview').css("width", $(window).outerWidth());
if ($rootScope.isOpenResourceBtnClicked) {
//var multiv = JSON.parse($rootScope.getLocalStorageValue("multiViewInfo"));
}
else
$scope.SetwindowStoreData(windowviewid,'voId',currentBodyViewId);
//1. load navigator man first
console.log('before LoadBodyViewNavigatorImage call')
$scope.LoadBodyViewNavigatorImage(currentBodyViewId, windowviewid);
//2.
console.log('currentBodyViewId just before sending: ' + currentBodyViewId);
$scope.loadBodyViewData(currentBodyViewId, windowviewid);
$scope.GetBodySystemData(currentBodyViewId,windowviewid);
//2. load bodyRegion data
$rootScope.isLoading = true;
}
$scope.loadbtnNavigator = function (windowviewid) {
$("#navigatorBtn_" + windowviewid).on('click', function () {
$("#navigatorDiv_" + windowviewid).toggle();
});
}
$scope.NavigatorDraggable=function(windowviewid)
{
$("#navDiv_"+windowviewid).addClass("containment-wrapper-"+windowviewid);
// issue in navigator image in internet explorer
if ($.browser.msie == true) {
$("#navigatorDiv_"+windowviewid).css({"min-width":"auto", "min-height":"auto"});
$(".containment-wrapper-"+windowviewid).css("min-width", "auto");
}
$("#transparencyScale_"+windowviewid).draggable();
$("#draggable_"+windowviewid).draggable({ containment: ".containment-wrapper-"+windowviewid, scroll: false });
}
$scope.Setslider = function (windowviewid) {
$("#layerChangeSliderDA_" + windowviewid).slider({
orientation: "vertical",
range: "max",
min: 0,
value: 0,
slide: function (event, ui) {
var targetid = event.target.id;
var windviewid = targetid.split('_')[1];
var layerNum = $scope.GetwindowStoreData(windviewid,'totalLayers');
var sliderVal = layerNum - ui.value;
$("#txtLayerNumberDA_" + windviewid).val(sliderVal);
},
stop: function (event, ui) {
var targetid = event.target.id;
var windviewid = targetid.split('_')[1];
var la;
var rootScope = angular.element(document.getElementById("bo")).scope();
rootScope.$apply(function () {
rootScope.isLoading = true;
})
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
if ($scope.GetwindowStoreData(windviewid,'isTransparencyActivated')) {
rootScope.isLoading = false;
}
la =$scope.GetwindowStoreData(windviewid,'totalLayers');
var slideVal = la - ui.value;
$("#txtLayerNumberDA_" + windviewid).val(slideVal);
$scope.SetwindowStoreData(windviewid,'layerNumber',slideVal);
scope.LayerChange(windviewid);
$("#annotationpaintbrushsize").removeClass("activebtncolor");
$("#annotationpainteraser").removeClass("activebtncolor");
});
},
});
}
$scope.TbSelSlider = function (windowviewid) {
$("#tbSlider_" + windowviewid).slider({
min: 0,
max: 100,
value: 50,
range: "min",
orientation: "horizontal",
// change: function (event, ui) {
// var targetid = event.target.id;
// var windviewid = targetid.split('_')[1];
// var scope = angular.element(document.getElementById("daViewDA_" + windviewid)).scope();
// scope.$apply(function () {
// scope.onTransparencyChange(event, ui);
// });
// }
// ,
stop: function (event, ui) {
var targetid = event.target.id;
var windviewid = targetid.split('_')[1];
var scope = angular.element(document.getElementById("daViewDA_" + windviewid)).scope();
scope.$apply(function () {
scope.onTransparencyChange(event, ui);
});
}
})
.slider("pips", {
rest: "label",
step: "10"
});
}
$scope.setControlIDs = function () {
//if ($rootScope.isOpenResourceBtnClicked == true || $rootScope.isCallFromOtherModule == true) {
$("#daView").attr("id", "daViewDA_" + $rootScope.MULTI_VIEW_ID);
$scope.daViewID = "daViewDA_" + $rootScope.MULTI_VIEW_ID;
$("#navigatorDiv").attr("id", "navigatorDiv_" + $rootScope.MULTI_VIEW_ID);
$scope.navigatorDivID = "navigatorDiv_" + $rootScope.MULTI_VIEW_ID;
$("#navDiv").attr("id", "navDiv_" + $rootScope.MULTI_VIEW_ID);
$scope.navDivID = "navDiv_" + $rootScope.MULTI_VIEW_ID;
$("#navimg").attr("id", "navimg_" + $rootScope.MULTI_VIEW_ID);
$scope.navimgID = "navimg_" + $rootScope.MULTI_VIEW_ID;
$("#txtlayerNumber").attr("id", "txtLayerNumberDA_" + $rootScope.MULTI_VIEW_ID);
$scope.txtLayerNumberID = "txtLayerNumberDA_" + $rootScope.MULTI_VIEW_ID;
$("#layerChangeSlider").attr("id", "layerChangeSliderDA_" + $rootScope.MULTI_VIEW_ID);
$scope.layerChangeSliderID = "layerChangeSliderDA_" + $rootScope.MULTI_VIEW_ID;
$("#canvasDiv").attr("id", "canvasDivDA_" + $rootScope.MULTI_VIEW_ID);
$scope.canvasDivID = "canvasDivDA_" + $rootScope.MULTI_VIEW_ID;
$("#canvas").attr("id", "canvasDA_" + $rootScope.MULTI_VIEW_ID);
$scope.canvasID = "canvasDA_" + $rootScope.MULTI_VIEW_ID;
$("#canvasPaint").attr("id", "canvasPaintDA_" + $rootScope.MULTI_VIEW_ID);
$scope.canvasPaintID = "canvasPaintDA_" + $rootScope.MULTI_VIEW_ID;
$("#btnIdentify").attr("id", "btnIdentify_" + $rootScope.MULTI_VIEW_ID);
$scope.btnIdentifyID = "btnIdentify_" + $rootScope.MULTI_VIEW_ID;
$("#btnZoom").attr("id", "btnZoom_" + $rootScope.MULTI_VIEW_ID);
$scope.btnZoomID = "btnZoom_" + $rootScope.MULTI_VIEW_ID;
$("#zoomValue").attr("id", "zoomValueDA_" + $rootScope.MULTI_VIEW_ID);
$scope.zoomValueID = "zoomValueDA_" + $rootScope.MULTI_VIEW_ID;
$("#btnTranparency").attr("id", "btnTranparency_" + $rootScope.MULTI_VIEW_ID);
$scope.btnTranparencyID = "btnTranparency_" + $rootScope.MULTI_VIEW_ID;
$("#btnNormalMode").attr("id", "btnNormalMode_" + $rootScope.MULTI_VIEW_ID);
$scope.btnNormalModeID = "btnNormalMode_" + $rootScope.MULTI_VIEW_ID;
$("#btnExtract").attr("id", "btnExtract_" + $rootScope.MULTI_VIEW_ID);
$scope.btnExtractID = "btnExtract_" + $rootScope.MULTI_VIEW_ID;
$("#btnHighLight").attr("id", "btnHighLight_" + $rootScope.MULTI_VIEW_ID);
$scope.btnHighLightID = "btnHighLight_" + $rootScope.MULTI_VIEW_ID;
$("#genderChangeId").attr("id", "genderChangeIdDA_" + $rootScope.MULTI_VIEW_ID);
$scope.genderChangeID = "genderChangeIdDA_" + $rootScope.MULTI_VIEW_ID;
$("#dropdownMenu4").attr("id", "dropdownMenu4_" + $rootScope.MULTI_VIEW_ID);
//$scope.dropdownMenu4ID = "dropdownMenu4_" + $rootScope.MULTI_VIEW_ID;
$("#structureDropdown").attr("id", "structureDropdownDA_" + $rootScope.MULTI_VIEW_ID);
$scope.structureDropdownID = "structureDropdownDA_" + $rootScope.MULTI_VIEW_ID;
$("#viewChangeID").attr("id", "viewChangeIDDA_" + $rootScope.MULTI_VIEW_ID);
$scope.viewChangeID = "viewChangeIDDA_" + $rootScope.MULTI_VIEW_ID;
$("#btnStrutureBox").attr("id", "btnStrutureBox_" + $rootScope.MULTI_VIEW_ID);
$scope.btnStrutureBoxID = "btnStrutureBox_" + $rootScope.MULTI_VIEW_ID;
$("#typedTermName").attr("id", "typedTermName_" + $rootScope.MULTI_VIEW_ID);
$scope.typedTermNameID = "typedTermName_" + $rootScope.MULTI_VIEW_ID;
$("#da-input").attr("id", "da-input_" + $rootScope.MULTI_VIEW_ID);
$("#searchListDiv").attr("id", "searchListDiv_" + $rootScope.MULTI_VIEW_ID);
$scope.searchListDivID = "searchListDiv_" + $rootScope.MULTI_VIEW_ID;
$("#btnDATermSearch").attr("id", "btnDATermSearch_" + $rootScope.MULTI_VIEW_ID);
$("#navigatorBtn").attr("id", "navigatorBtn_" + $rootScope.MULTI_VIEW_ID);
$scope.navigatorBtnID = "navigatorBtn_" + $rootScope.MULTI_VIEW_ID;
$("#transparencyScale").attr("id", "transparencyScale_" + $rootScope.MULTI_VIEW_ID);
$scope.transparencyScaleID = "transparencyScale_" + $rootScope.MULTI_VIEW_ID;
$("#btnTBoxClose").attr("id", "btnTBoxClose_" + $rootScope.MULTI_VIEW_ID);
$scope.btnTBoxCloseID = "btnTBoxClose_" + $rootScope.MULTI_VIEW_ID;
$('body').find('#daBodyview').find("#canvasDiv").attr("id", "canvasDivDA_" + $rootScope.MULTI_VIEW_ID);
$("#dropdownMenu3").attr("id", "dropdownMenu3_" + $rootScope.MULTI_VIEW_ID);
$("#dropdownMenu2").attr("id", "dropdownMenu2_" + $rootScope.MULTI_VIEW_ID);
$("#draggable").attr("id", "draggable_" + $rootScope.MULTI_VIEW_ID);
$scope.draggableID = "draggable_" + $rootScope.MULTI_VIEW_ID;
$("#leftToolBar").attr("id", "leftToolBarDA_" + $rootScope.MULTI_VIEW_ID);
$("#searchedTermListPopUp").attr("id", "searchedTermListPopUp_" + $rootScope.MULTI_VIEW_ID);
$scope.searchedTermListPopUpID = "searchedTermListPopUp_" + $rootScope.MULTI_VIEW_ID;
$("#searchTermListUl").attr("id", "searchTermListUl_" + $rootScope.MULTI_VIEW_ID);
$scope.searchTermListUlId = "searchTermListUl_" + $rootScope.MULTI_VIEW_ID;
$("#btnSearchList").attr("id", "btnSearchList_" + $rootScope.MULTI_VIEW_ID);
$("#tbSlider").attr("id", "tbSlider_" + $rootScope.MULTI_VIEW_ID);
$("#IdMale").attr("id", "IdMale_" + $rootScope.MULTI_VIEW_ID);
$("#IdFemale").attr("id", "IdFemale_" + $rootScope.MULTI_VIEW_ID);
$("#Anterior").attr("id", "Anterior_" + $rootScope.MULTI_VIEW_ID);
$("#Lateral").attr("id", "Lateral_" + $rootScope.MULTI_VIEW_ID);
$("#Medial").attr("id", "Medial_" + $rootScope.MULTI_VIEW_ID);
$("#Posterior").attr("id", "Posterior_" + $rootScope.MULTI_VIEW_ID);
$("#LateralArm").attr("id", "LateralArm_" + $rootScope.MULTI_VIEW_ID);
$("#MedialArm").attr("id", "MedialArm_" + $rootScope.MULTI_VIEW_ID);
var $all = $("#da-input_" + $rootScope.MULTI_VIEW_ID).prepend('')
$compile($all)($scope);
}
$scope.setScopeVariables = function () {
$scope.daViewID = "daViewDA_" + $rootScope.multiViewCounter;
$scope.btnIdentifyID = "btnIdentify_" + $rootScope.multiViewCounter;
$scope.btnZoomID = "btnZoom_" + $rootScope.multiViewCounter;
$scope.btnTranparencyID = "btnTranparency_" + $rootScope.multiViewCounter;
$scope.btnNormalModeID = "btnNormalMode_" + $rootScope.multiViewCounter;
$scope.btnExtractID = "btnExtract_" + $rootScope.multiViewCounter;
$scope.btnHighLightID = "btnHighLight_" + $rootScope.multiViewCounter;
$scope.genderChangeID = "genderChangeId_" + $rootScope.multiViewCounter;
$scope.structureDropdownID = "structureDropdown_" + $rootScope.multiViewCounter;
$scope.viewID = "daViewDA_" + $rootScope.multiViewCounter;
$scope.btnStrutureBoxID = "btnStrutureBox_" + $rootScope.multiViewCounter;
$scope.typedTermNameID = "typedTermName_" + $rootScope.multiViewCounter;
$scope.searchListDivID = "searchListDiv_" + $rootScope.multiViewCounter;
$scope.btnDATermSearchID = "btnDATermSearch_" + $rootScope.multiViewCounter;
$scope.navigatorBtnID = "navigatorBtn_" + $rootScope.multiViewCounter;
$scope.transparencyScaleID = "transparencyScale_" + $rootScope.multiViewCounter;
$scope.btnTBoxCloseID = "btnTBoxClose_" + $rootScope.multiViewCounter;
$scope.canvasDivID = "canvasDivDA_" + $rootScope.multiViewCounter;
$scope.dropdownMenu3ID = "dropdownMenu3_" + $rootScope.multiViewCounter;
$scope.dropdownMenu2ID = "dropdownMenu2_" + $rootScope.multiViewCounter;
$scope.navigatorDivID = "navigatorDiv_" + $rootScope.multiViewCounter;
$scope.navDivID = "navDiv_" + $rootScope.multiViewCounter;
$scope.navimgID = "navimg_" + $rootScope.multiViewCounter;
$scope.draggableID = "draggable_" + $rootScope.multiViewCounter;
$scope.txtLayerNumberID = "txtLayerNumberDA_" + $rootScope.multiViewCounter;
$scope.layerChangeSliderID = "layerChangeSliderDA_" + $rootScope.multiViewCounter;
$scope.leftToolBarID = "leftToolBarDA_" + $rootScope.multiViewCounter;
// $scope.transparencyScaleID = "transparencyScaleDA_" + $rootScope.multiViewCounter;
$scope.canvasPaintID = "canvasPaintDA_" + $rootScope.multiViewCounter;
$scope.canvasID = "canvasDA_" + $rootScope.multiViewCounter;
$scope.zoomValueID = "zoomValueDA_" + $rootScope.multiViewCounter;
$scope.jsPanelID = 'daImagePanel_' + $rootScope.multiViewCounter
////set default zoom value;
if (!$scope.GetwindowStoreData(windowviewid,'isViewChange')) {
var viewDataFromMultiViewInfo = new jinqJs()
.from($rootScope.multiViewInfo)
.where('id == ' + $rootScope.multiViewCounter)
.select();
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'voId',viewDataFromMultiViewInfo[0].bodyViewID);
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',$scope.GetwindowStoreData($rootScope.MULTI_VIEW_ID,'voId'));
$scope.setViewOrientationId($rootScope.MULTI_VIEW_ID);
$scope.viewID = 'daViewDA' + '_' + $rootScope.multiViewCounter;
// $scope.loadView();
}
}
angular.element(document).ready(function (e) {
var $ua = navigator.userAgent;
// var $event = ($ua.match(/(iPod|iPhone|iPad|android)/i));
if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
$("#layerChangeSlider").css("pointer-events", "auto");
}
//to get slider working on ipad
var $ua = navigator.userAgent;
if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
var jspanelContainerWidth = $(".jsPanel-content").css("width");
$(".jsPanel-content").css({ "width": "100%", "min-width": jspanelContainerWidth });
$("#" + $scope.jsPanelID).css("width", "100%");
$("#layerChangeSlider").css("pointer-events", "auto");
// on identity mode click
$("#btnZoom").removeAttr("onclick");
$("#btnZoom").on("touchstart", function () {
if ($(".btn-annotation").hasClass("activebtncolor")) //Bug #14928
$(".btn-annotation").removeClass("activebtncolor");
//Dissectible Anatomy > Extract and Annotations displays apart on the page after click on Zoom-in.
$('.com').remove();
$('#bord').remove();
console.log('OnZoom is called outside ');
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
scope.enableZoom();
});
});
// on transparency mode click
$("#btnTranparency").removeAttr("onclick");
$("#btnTranparency").on("touchstart", function () {
console.log('OnEnableExtract is called outside ');
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
scope.createTransparencyBox('true');
});
});
// on normal mode click
$("#btnNormalMode").removeAttr("onclick");
$("#btnNormalMode").on("touchstart", function () {
console.log('OnEnableNormalMode is called outside ');
$("#btnTranparency").removeClass("disabled");
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
scope.enableNormalMode();
});
});
// on extract mode click
$("#btnExtract").removeAttr("onclick");
$("#btnExtract").on("touchstart", function () {
console.log('OnEnableExtract is called outside ');
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
scope.enableExtract('true');
});
});
// on highlight mode click
$("#btnHighLight").removeAttr("onclick");
$("#btnHighLight").on("touchstart", function () {
console.log('OnEnableHighlight is called outside ');
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
scope.enableHighlight();
});
});
// on show/hide mode click
$("#btnStrutureBox").removeAttr("onclick");
$("#btnStrutureBox").on("touchstart", function () {
console.log('OnBodySystem chnaged is called outside ');
var scope = angular.element(document.getElementsByClassName("daBodyView")).scope();
scope.$apply(function () {
scope.enableShowHideStructureBox();
});
});
}
$(document).on("click", "#" + $scope.jsPanelID + " .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function () {
// $(document).on("click", " .jsPanel-hdr .jsPanel-hdr-r .jsPanel-btn-close .jsglyph-remove", function () {
$rootScope.selectedBodySystemName = 'All';
$rootScope.selectedBodySystemId = 0;
$rootScope.searchSelectedText = '';
if ($('#customModuleDiv').html() != "") {
$('#customModuleDiv').empty();
}
});
$("#" + $scope.jsPanelID).resize(function (event) {
var windowviewid = (event.currentTarget.id).split("_")[1];
var CanvasDivLeftPosition=$scope.GetwindowStoreData(windowviewid,'CanvasDivLeftPosition');
var CanvasDivTopPosition=$scope.GetwindowStoreData(windowviewid,'CanvasDivTopPosition');
$('#canvasDivDA_' + windowviewid).scrollLeft(CanvasDivLeftPosition);
$('#canvasDivDA_' + windowviewid).scrollTop(CanvasDivTopPosition);
});
$(document).on("mouseover", "#termList option", function (e) {
$('#termList option[selected="selected"]').attr("selected", false);
$(this).attr("selected", true);
});
$(document).keypress(function (e) {
if ($('#termList option[selected="selected"]').attr("id") == "undefined") {
return false;
}
else {
var originator = e.keyCode || e.which;
// alert($('#termList option[selected="selected"]').attr("id"));
if ($('#termList option[selected="selected"]').attr("id")) {
if (e.keyCode == 13) {
onListManagerTermSelection($('#termList option[selected="selected"]').attr("id"));
}
}
}
});
})
$rootScope.loadSearchData = function (windowviewid) {
// $scope.primaryLexiconInd;
$scope.SetwindowStoreData(windowviewid, 'primaryLexiconInd', 0);
var languageArray = [];
// $rootScope.vocabTermDataArray = [];
$scope.SetwindowStoreData(windowviewid, 'vocabTermDataArray', null);
var languageArray = $rootScope.lexiconLanguageArray;
console.log('loadSearchDataForBodyView');
var currentBodyViewId;
var currentViewID;
if ($rootScope.isOpenResourceBtnClicked) {
var viewDataFromMultiViewInfo = new jinqJs()
.from($rootScope.multiViewInfo)
.where('id == ' + $rootScope.multiViewCounter)
.select();
currentBodyViewId = viewDataFromMultiViewInfo[0].bodyViewID//$rootScope.multiViewInfo[$rootScope.multiViewInfoIndex].bodyViewID;
currentViewID = viewDataFromMultiViewInfo[0].id;
}
else
currentBodyViewId = $scope.GetwindowStoreData(windowviewid,'voId');
for (var i = 0; i <= languageArray.length - 1; i++) {
var searchWorker = new Worker('search-wp.js');
//push workers in array to further used the refernece to delete the workers
$scope.runningSearchWorkers.push({ 'workerName': searchWorker })
searchWorker.postMessage({
'currentBodyViewId': currentBodyViewId,
'languageName': languageArray[i].language,
'languageID': languageArray[i].id
})
searchWorker.onmessage = function (e) {
console.log('callback searchWorker , time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"));
$scope.SetwindowStoreData(windowviewid,'TermNumberData',e.data.TermNumberData);
console.log("$rootScope.TermNumberData = " + e.data.TermNumberData.TermData.Term.length);
console.log("$scope.BodyViewIDs" + e.data.bodyViewID);
$scope.vocabTempTermArray = [];
if ($rootScope.isOpenResourceBtnClicked) {
var vocabTermDataArray = $scope.GetwindowStoreData(windowviewid, 'vocabTermDataArray');
if (vocabTermDataArray.length == 0) {
$scope.vocabTempTermArray.push({ "viewID": e.data.bodyViewID, "currentBodyViewId": currentViewID, "language": e.data.language, "VocabTermData": e.data.VocabTermData, "vocabTermTxt": e.data.vocabTermTxt });
}
else {
var dataForCurrentView = new jinqJs()
.from($scope.vocabTempTermArray)
.where("viewID == " + e.data.bodyViewID)
.select();
if (dataForCurrentView != undefined && dataForCurrentView.length > 0) {
var dataForCurrentLang = new jinqJs()
.from(dataForCurrentView[0])
.where("language == " + e.data.language)
.select();
if (dataForCurrentLang != undefined && dataForCurrentLang.length > 0) {
}
else {
$scope.vocabTempTermArray.push({ "viewID": e.data.bodyViewID, "currentBodyViewId": currentViewID, "language": e.data.language, "VocabTermData": e.data.VocabTermData, "vocabTermTxt": e.data.vocabTermTxt });
}
}
else {
$scope.vocabTempTermArray.push({ "viewID": e.data.bodyViewID, "currentBodyViewId": currentViewID, "language": e.data.language, "VocabTermData": e.data.VocabTermData, "vocabTermTxt": e.data.vocabTermTxt });
}
}
}
else {
$scope.vocabTempTermArray.push({ "language": e.data.language, "VocabTermData": e.data.VocabTermData, "vocabTermTxt": e.data.vocabTermTxt });
}
if ($rootScope.isOpenResourceBtnClicked) {
for (var i = 0; i <= $scope.vocabTempTermArray.length - 1; i++) {
$scope.vocabTempTermArray[i].vocabTermTxt = new jinqJs()
.from($scope.vocabTempTermArray[i].vocabTermTxt)
.distinct('_TermText', '_ActualTermNumber')
.orderBy([{ field: '_TermText', sort: 'asc' }])
.select('_ActualTermNumber', '_TermText', '_cdId');
}
}
else {
for (var i = 0; i <= $rootScope.lexiconLanguageArray.length - 1; i++) {
$scope.vocabTempTermArray[i].vocabTermTxt = new jinqJs()
.from($scope.vocabTempTermArray[i].vocabTermTxt)
.distinct('_TermText', '_ActualTermNumber')
.orderBy([{ field: '_TermText', sort: 'asc' }])
.select('_ActualTermNumber', '_TermText', '_cdId');
}
}
if ($scope.vocabTempTermArray.length == $rootScope.lexiconLanguageArray.length) {
$("#setting-spinner").css("display", "none");
// add data vocabTermDataArray
$scope.SetwindowStoreData(windowviewid, 'vocabTermDataArray', $scope.vocabTempTermArray);
for (var i = 0; i <= $scope.vocabTempTermArray.length - 1; i++) {
if ($scope.vocabTempTermArray[i].language == $rootScope.lexiconLanguageArray[0].language) {
// $scope.primaryLexiconInd = i;
$scope.SetwindowStoreData(windowviewid, 'primaryLexiconInd', i);
}
}
//alert(primaryLexiconIndex);
if ($rootScope.isListManagerMenuSelected) {
$scope.loadListManger(windowviewid);
}
else if ($scope.GetwindowStoreData(windowviewid,'isSearchClicked')) {
$scope.ShowSearch(windowviewid);
}
}
console.log('JlinqActivity , time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"));
if ($scope.runningSearchWorkers != null || $scope.runningSearchWorkers != undefined) {
var workerCount = $scope.runningSearchWorkers.length;
if (workerCount > 0) {
for (var i = workerCount - 1; i >= 0; i--) {
var runningWorker = $scope.runningSearchWorkers[i].workerName;
runningWorker.terminate();
$scope.runningSearchWorkers.splice(i, 1);
// workerCount--;
}
}
}
}
}
}
$scope.loadBodyViewData = function (currentVoid, windowviewid) {
console.log('caller of worker sending currentVoid: ' + currentVoid);
var bodyViewWorker = new Worker('body-view-wp.js');
//push workers in array to further used the refernece to delete the workers
$scope.runningBodyViewWorkers.push({ 'workerName': bodyViewWorker })
bodyViewWorker.postMessage({
'currentViewId': currentVoid
});
bodyViewWorker.onmessage = function (e) {
//console.log('callback in extr');
$scope.SetwindowStoreData(windowviewid,'BodyRegionData',e.data.bodyRegionData);
$scope.SetwindowStoreData(windowviewid,'bgartData',e.data.bodyArtData);
$scope.SetwindowStoreData(windowviewid,'BodyLayerData',e.data.bodyLayerData);
var totalLayer = e.data.bodyLayerData.Layers.DataLayer.length-1;
//set max for LayerNumber input
$scope.SetwindowStoreData(windowviewid,'totalLayers',totalLayer);
$('#txtLayerNumberDA_' + windowviewid).attr('max', totalLayer);
$('#layerChangeSliderDA_' + windowviewid).slider("option", "max", totalLayer);
var layerChangeSliderVal = document.getElementById("layerChangeSliderDA_" + windowviewid).value;
console.log('inside bodyViewWorker.onmessage. $rootScope.totalLayers = ' + totalLayer + ' #layerChangeSlider value: ' + layerChangeSliderVal);
$scope.LoadDefaultLayerImage(windowviewid);
}
bodyViewWorker.onerror = function (e) {
alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message);
};
}
//Code for displaying NavigatorImage for BodyView
$scope.LoadBodyViewNavigatorImage = function (currentBodyViewId, windowviewid) {
console.log('insideLoadBodyViewNavigatorImage')
var NavigatorManJsonPath = '~/../content/data/json/da/da_dat_orient_image.json';
$http({ method: 'GET', url: NavigatorManJsonPath })
.success(function (data) {
$scope.SetwindowStoreData(windowviewid,'NavigatorData',data);
var skinTone=$scope.GetwindowStoreData(windowviewid,'curentEthnicity');
var navigatorManData = new jinqJs()
.from(data.Navigtor.ViewOrientation)
.where("_ViewOrientationId == " + currentBodyViewId)
.select();
if ((navigatorManData != null || navigatorManData != undefined) && (navigatorManData.length > 0)) {
var imageInfoForNavigator = new jinqJs()
.from(navigatorManData[0].ImageInfo)
.where("_Ethnicity == " + skinTone)
.select();
}
else {
console.log('NAVIGATOR.DATA.NOT.FOUND FOR BODY VIEW: ' + currentBodyViewId);
}
if (imageInfoForNavigator != null || imageInfoForNavigator != undefined) {
var navigatorImage = imageInfoForNavigator;
var navImageModesty;
if ((navigatorImage != null || navigatorImage != undefined) && (navigatorImage.length > 0)) {
angular.forEach(navigatorImage, function (value, key) {
if (value._HaveModesty === $rootScope.globalSetting.modesty) {
navImageModesty = value._ImageName;
}
})
}
if (typeof (navImageModesty) === "undefined" || navImageModesty === null) {
navImageModesty = navigatorImage[0]._ImageName;
}
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
document.getElementById("navimg_" + windowviewid).src = "~/../content/images/DA/ethnicity/body-views/" + bodyVid + '/' + skinTone + '/navigator_images/' + navImageModesty;
$('#navigatorDiv_' + windowviewid).css('visibility', 'visible');
$('#navDiv_' + windowviewid).css('visibility', 'visible');
}
else {
console.log('NAVIGATOR.IMAGE.NOT.FOUND FOR BODY VIEW: ' + currentBodyViewId);
}
})
.error(function (data, status, headers, config) {
//1.
console.log('DATA.NOT.LOADED FOR:' + NavigatorManJsonPath + ', ERROR: ' + data);
//2.
// $scope.LoadBodyViewNavigatorImage()
});
}
$scope.LoadDefaultLayerImage = function (windowviewid) {
console.log('inside LoadDefaultLayerImage')
$scope.SetwindowStoreData(windowviewid,'isNormalMode',true);
//viewOrientationId is to pic coordinates of view and void is to pic image name from resopective json
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',$scope.GetwindowStoreData(windowviewid,'voId'));
$scope.setViewOrientationId(windowviewid);
//Birendra Load term data For curriculum builder
//*********************************************************************//
if ($rootScope.isCallFromOtherModule) {
$scope.loadDAonCBSlideChange(windowviewid);
}
else {
// for existing DA
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.CalculateImageCordinates(viewOrientationId, windowviewid);
}
//**************************************************************************//
};
// Function to call CB term data
$scope.loadDAonCBSlideChange = function (windowviewid) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
//Highlight only Highlight button
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
if (!$("#btnNormalMode_" + windowviewid).hasClass("btn-black")) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if (!$("#btnExtract_" + windowviewid).hasClass("btn-black")) {
$("#btnExtract_" + windowviewid).addClass("btn-black");
}
if ($("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
}
$scope.setLayerNumberAndHighlightByTermListforCB(windowviewid);
}
$scope.setLayerNumberAndHighlightByTermListforCB = function (windowviewid) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',false);
$scope.SetwindowStoreData(windowviewid,'isbodySystemHighlight',false);
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',true);
$scope.terminateCurrentlyRunningWPs();
//7.get termList
var fullTermlist=$scope.GetwindowStoreData(windowviewid,'fullTermlist');
var AllTerms=$scope.GetwindowStoreData(windowviewid,'AllTerms');
var CurriculumTermData=$scope.GetwindowStoreData(windowviewid,'CurriculumTermData');
for (var i = 0; i < $scope.daOpenInOtherModules.clickedTermList.length; i++) {
var serachTerm = ($scope.daOpenInOtherModules.clickedTermList[i]).toString();
if(serachTerm.length<6) continue;
var isFound = jQuery.inArray(serachTerm, fullTermlist)
if (isFound == -1) {
fullTermlist.push(serachTerm);
AllTerms.push({ '_TermNumber': serachTerm })
}
}
for (var i = 0; i < $scope.daOpenInOtherModules.callOuts.length; i++) {
var serachTerm = $scope.daOpenInOtherModules.callOuts[i].termNumber.toString();
if(serachTerm.length<6) continue;
var isFound = jQuery.inArray(serachTerm, CurriculumTermData)
if (isFound == -1) {
CurriculumTermData.push(
{
// "transparentTermNumber": $scope.daOpenInOtherModules.callOuts[i].transparentTermNumber,
"termNumber": $scope.daOpenInOtherModules.callOuts[i].termNumber,
"tips_x": $scope.daOpenInOtherModules.callOuts[i].tips_x,
"tips_y": $scope.daOpenInOtherModules.callOuts[i].tips_y,
"x": $scope.daOpenInOtherModules.callOuts[i].x,
"y": $scope.daOpenInOtherModules.callOuts[i].y
});
}
}
var totalayer=$scope.GetwindowStoreData(windowviewid,'totalLayers');
var nlayer=$scope.GetwindowStoreData(windowviewid,'layerNumber');
$('#txtLayerNumberDA_' + windowviewid).val((parseInt(nlayer)));
var sliderVal = parseInt(totalayer) - parseInt(nlayer);
$('#layerChangeSliderDA_' + windowviewid).slider("option", "value", sliderVal);
$timeout(function () {
$('#sppeachBubble_'+windowviewid).css('display', 'none');
$('#dot_'+windowviewid).css("display", "none");
//DA > Annotation's Line should not displayed.
$('#bord_'+windowviewid).css("display", "none");
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
//redraw body of respective layer
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.CalculateImageCordinates(viewOrientationId, windowviewid);
}, 500);
}
$scope.setViewOrientationId = function (windowviewid) {
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
if (bodyVid == 5) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',1);
}
else if (bodyVid == 6) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',2);
}
else if (bodyVid == 7) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',3);
}
else if (bodyVid == 8) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',4);
}
else if (bodyVid == 9) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',5);
}
else if (bodyVid == 10) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',6);
}
else if (bodyVid == 11) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',5);
}
else if (bodyVid == 12) {
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',6);
}
}
//calculate coordinates for body region images
$scope.CalculateImageCordinates = function (viewOrientationId,windowviewid) {
$scope.terminateCurrentlyRunningWPs();
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
$scope.SetwindowStoreData(windowviewid,'layerInfoForModesty',[]);
$scope.SetwindowStoreData(windowviewid,'modestyImageInfo',[]);
$scope.coloredImageCanvasList = [];
$scope.SetwindowStoreData(windowviewid,'coloredImageCanvasList',[]);
// store colorimageMr canvas
$scope.coloredImageMRCanvasList = [];
$scope.SetwindowStoreData(windowviewid,'coloredImageMRCanvasList',[]);
$scope.SetwindowStoreData(windowviewid,'MaskCanvasData',[]);
//set height of canvas div and left tool bar as per window size
$scope.BodyRegionCordinatesData = []; // create an empty array
$scope.SetwindowStoreData(windowviewid,'BodyRegionCordinatesData',[]);
$('#daBodyview').css('width', '100%');
var canvasDIvHeight = parseInt($('#daImagePanel_' + windowviewid).outerHeight()) - 104;
$('#canvasDivDA_' + windowviewid).css('height', canvasDIvHeight);
$('#leftToolBarDA_' + windowviewid).css('height', $('#daImagePanel_' + windowviewid).outerHeight())
//calculate image coordinates and draw image
var BodyRegionData=$scope.GetwindowStoreData(windowviewid,'BodyRegionData');
var bodyRegionCoordinates = new jinqJs()
.from(BodyRegionData.BodyRegionViews.BodyRegionCordinates)
.where('_ViewOrientationId == ' + viewOrientationId)
.select();
console.log('viewOrientationId= ' + viewOrientationId + ', $scope.bodyRegionCoordinates length= ' + bodyRegionCoordinates.length)
var bgartData=$scope.GetwindowStoreData(windowviewid,'bgartData');
var bagartDetail = new jinqJs()
.from(bgartData.BackgroundArts.BackgroundArtDetail)
.where('_ViewOrientationId == ' + viewOrientationId)
.select();
//remove existing body view
var canDiv = document.getElementById('canvasDivDA_' + windowviewid);
var canDivChildCount = canDiv.childElementCount;
if (canDivChildCount > 0) {
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$scope.flushCanvas(windowviewid);
$('#transparencyScale_' + windowviewid).css('visibility', 'visible');
}
else {
canDiv.innerHTML = '';
//remove transparency scale
$('#transparencyScale_' + windowviewid).css('visibility', 'hidden');
}
}
if ($rootScope.isOpenResourceBtnClicked) {
}
else {
$scope.ColoredImageSRC = [];
$scope.SetwindowStoreData(windowviewid,'ColoredImageSRC',[]);
}
$scope.SetwindowStoreData(windowviewid,'updatedGrayDataList',[]);
$scope.SetwindowStoreData(windowviewid,'updatedGrayMRDataList',[]);
//history code
if ($("#canvasDivDA_" + windowviewid).find("canvas[id='canvasPaint']").length == 0) {
var canvasPaintID = "canvasPaintDA_" + windowviewid;
var canvasID = "canvasDA_" + windowviewid;
var ATBarHtml = $("#canvasDivDA_" + windowviewid).append('');
$compile(ATBarHtml)($scope);
$rootScope.onDrawingCanvasClick();
// $rootScope.FreeStylePaint();
}
$('#zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
if (bodyRegionCoordinates != null || bodyRegionCoordinates != undefined) {
angular.forEach(bodyRegionCoordinates, function (value, key) {
if (value._HaveMirrorImage == 'Y') {
//DrawMirroredImage
//0. Scaling as per default zoom
var rectangle = scaleRectangle(value._X, value._Y, value._Height, value._Width, value._MirrorValue,windowviewid);
//1.Get image source
var src = $scope.GetImageSource(value._BodyRegionId, windowviewid);
$scope.imageSource = src;
//2.Draw mirror image
$scope.DrawMirroredImage(Math.round(rectangle.scaledHeight), Math.round(rectangle.scaledWidth), Math.round(rectangle.scaledX), Math.round(rectangle.scaledY), src, value._BodyRegionId, 'N', windowviewid);
$scope.BodyRegionCordinatesData.push(
{
"bodyRegionId": value._BodyRegionId, "Height": Math.round(rectangle.scaledHeight), "Width": Math.round(rectangle.scaledWidth),
"X": Math.round(rectangle.scaledX), "Y": Math.round(rectangle.scaledY), "IsMirror": 'Yes'
}
);
//3.GetMaskImageSource
var maskImageSrc = $scope.GetMaskImageSource($scope.imageSource);
//4 Draw Mask Mirror Image
$scope.DrawMirroredImage(Math.round(rectangle.scaledHeight), Math.round(rectangle.scaledWidth), Math.round(rectangle.scaledX), Math.round(rectangle.scaledY), maskImageSrc, value._BodyRegionId, 'Y', windowviewid);
//Draw Normal Image
//0. Scaling as per default zoom
var rectangle = scaleRectangle(value._X, value._Y, value._Height, value._Width, 0,windowviewid);
//1.Draw body region which have mirror image
$scope.DrawImage(Math.round(rectangle.scaledHeight), Math.round(rectangle.scaledWidth), Math.round(rectangle.scaledX), Math.round(rectangle.scaledY), src, value._BodyRegionId, 'N', windowviewid);
$scope.BodyRegionCordinatesData.push(
{
"bodyRegionId": value._BodyRegionId, "Height": Math.round(rectangle.scaledHeight), "Width": Math.round(rectangle.scaledWidth),
"X": Math.round(rectangle.scaledX), "Y": Math.round(rectangle.scaledY), "IsMirror": 'No'
}
);
//2.Draw body region for mask image
$scope.DrawImage(Math.round(rectangle.scaledHeight), Math.round(rectangle.scaledWidth), Math.round(rectangle.scaledX), Math.round(rectangle.scaledY), maskImageSrc, value._BodyRegionId, 'Y', windowviewid);
}
else {
//0.Scaling as per default zoom
var rectangle = scaleRectangle(value._X, value._Y, value._Height, value._Width, value._MirrorValue,windowviewid);
//1.Get image source
if (value._IsPrimary == 'N') {
var src = $scope.GetBackgroundImgSource(value._BodyRegionId,bagartDetail,windowviewid);
$scope.imageSource = src;
}
else {
var src = $scope.GetImageSource(value._BodyRegionId, windowviewid);
$scope.imageSource = src;
}
//2.Draw body region which don't have mirror image
$scope.DrawImage(Math.round(rectangle.scaledHeight), Math.round(rectangle.scaledWidth), Math.round(rectangle.scaledX), Math.round(rectangle.scaledY), src, value._BodyRegionId, 'N', windowviewid);
$scope.BodyRegionCordinatesData.push(
{
"bodyRegionId": value._BodyRegionId, "Height": Math.round(rectangle.scaledHeight), "Width": Math.round(rectangle.scaledWidth),
"X": Math.round(rectangle.scaledX), "Y": Math.round(rectangle.scaledY), "IsMirror": 'No'
}
);
//3.GetMaskImageSource
var maskSRC = $scope.GetMaskImageSource($scope.imageSource);
//4.Draw body region for mask image
$scope.DrawImage(Math.round(rectangle.scaledHeight), Math.round(rectangle.scaledWidth), Math.round(rectangle.scaledX), Math.round(rectangle.scaledY), maskSRC, value._BodyRegionId, 'Y', windowviewid);
//draw figLeaf for modesty
$scope.figLaefImageName;
$scope.figLaefX;
$scope.figLaefY;
var gender;
var genderId = $scope.GetwindowStoreData(windowviewid,'genderId');
if (genderId == 'Female') {
gender = 'F';
}
else
{
gender = 'M';
}
if (((genderId == 'Female') && (value._BodyRegionId == 2)) || (value._BodyRegionId == 3)) {
if (bagartDetail != null || bagartDetail != undefined) {
var dtlOfBr = new jinqJs()
.from(bagartDetail)
.where('_BodyRegionId == ' + value._BodyRegionId)
.select();
if (dtlOfBr != null || dtlOfBr != undefined) {
var dtlOfGender = new jinqJs()
.from(dtlOfBr)
.where('_Gender == ' + gender)
.select();
if (dtlOfGender != null || dtlOfGender != undefined) {
var dtlOfSktn = new jinqJs()
.from(dtlOfGender)
.where('_Skintone == +')
.select();
//multiple conditions are not working in where clause of JinQ so need multiple filtered variables
if ((dtlOfSktn != null || dtlOfSktn != undefined) && (dtlOfSktn.length > 0)) {
$scope.figLaefImageName = dtlOfSktn[0]._ImageId;
var lowerlayerNumberForModesty = dtlOfSktn[0]._lns;
var HigherlayerNumberForModesty = dtlOfSktn[0]._lne;
var layerInfoForModesty=$scope.GetwindowStoreData(windowviewid,'layerInfoForModesty');
layerInfoForModesty.push({ "bodyRegionId": value._BodyRegionId, "lowerlayerNumberForModesty": lowerlayerNumberForModesty, "HigherlayerNumberForModesty": HigherlayerNumberForModesty })
var rectangle = scaleRectangle(value._X, value._Y, value._Height, value._Width, value._MirrorValue,windowviewid);
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
var zoomValue=$scope.GetwindowStoreData(windowviewid,'zoomInOut');
var src = "content/images/DA/" + zoomValue + "/body-views/" + bodyVid + "/layers/0/" + value._BodyRegionId + "/" + $scope.figLaefImageName;
$scope.DrawImage(rectangle.scaledHeight, rectangle.scaledWidth, rectangle.scaledX, rectangle.scaledY, src, 'modestyImg' + value._BodyRegionId, 'N', windowviewid)
var nlayer=$scope.GetwindowStoreData(windowviewid,'layerNumber');
if ((parseInt(dtlOfSktn[0]._lns) <= parseInt(nlayer)) && (parseInt(dtlOfSktn[0]._lne) > parseInt(nlayer)) && (dtlOfSktn[0]._isfr == 'Y')) {
$rootScope.isLayerLessSeven = true; // using at home
if (($rootScope.globalSetting.modesty == 'Y')) {
$('.modestyImg_'+windowviewid).css('visibility', 'visible');
}
}
else {
$rootScope.isLayerLessSeven = false;
$('.modestyImg_'+windowviewid).css('visibility', 'hidden');
}
}
}
}
}
}
}
});
// push BodyRegionCordinatesData
$scope.SetwindowStoreData(windowviewid,'BodyRegionCordinatesData',$scope.BodyRegionCordinatesData);
}
//set scrollbars on canvas and hide loading label
//check the OS
var isiOSSafari = (navigator.userAgent.match(/(iPod|iPhone|iPad|android)/i)) ? true : false;
//set scrollbars on canvas and hide loading label
$('#daLoaderLabel').css('visibility', 'hidden')
$('#canvasDivDA_' + windowviewid).css('overflow', 'scroll')
if (isiOSSafari) {
$('#canvasDivDA_' + windowviewid).scrollLeft($('#canvasDivDA_' + windowviewid).width() + 150)
}
else {
$('#canvasDivDA_' + windowviewid).scrollLeft($('#canvasDivDA_' + windowviewid).width() / 2)
}
$('#canvasDivDA_' + windowviewid).scrollTop(50)
var sliderVal = parseInt($scope.GetwindowStoreData(windowviewid,'totalLayers')) - parseInt($scope.GetwindowStoreData(windowviewid,'layerNumber'));
$('#layerChangeSliderDA_' + windowviewid).slider("option", "value", sliderVal);
// $('#spinner').css('visibility', 'hidden');
$rootScope.isLoading = false;
//Dated:16-07-2016 Issue #4957 :While selecting the Zoom-in\Zoom-out button scroll should be go on top.
// #4976 :While changing gender male to female scroll bar is going on top.
var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
if (canvasDiv != null || canvasDiv != undefined) {
canvasDiv.scrollTop = 0;
//Navigator Code for dynamically calculating the height and width of Dragable Div on Navigator Image
var dragdivh = Math.floor(($('#canvasDivDA_' + windowviewid).height() / $('#canvasDivDA_' + windowviewid)[0].scrollHeight) * 119) //119px is the height of the image
if ($('#canvasDivDA_' + windowviewid)[0].scrollWidth > $('#canvasDivDA_' + windowviewid)[0].clientWidth) {
var dragdivw = 42
var dragdivleft = 21;
var dragdivtop = 0;
}
else {
var dragdivw = 83;
var dragdivleft = 0;
var dragdivtop = 0;
}
}
if ($rootScope.isOpenResourceBtnClicked) {
$('#draggable_' + $rootScope.MULTI_VIEW_ID).css('width', dragdivw);
$('#draggable_' + $rootScope.MULTI_VIEW_ID).css('height', dragdivh);
$('#draggable_' + $rootScope.MULTI_VIEW_ID).css("left", dragdivleft);
$('#draggable_' + $rootScope.MULTI_VIEW_ID).css("top", dragdivtop);
}
else {
$('#draggable_' +windowviewid).css('width', dragdivw);
$('#draggable_' + windowviewid).css('height', dragdivh);
$('#draggable_' + windowviewid).css("left", dragdivleft);
$('#draggable_' + windowviewid).css("top", dragdivtop);
}
}
function scaleRectangle(x, y, height, width, mirrorValue,windowviewid) {
var nzoom = $scope.GetwindowStoreData(windowviewid,'zoomInOut');
var existingZoon = 100;
var X = 0;
var scaledY = 0;
var scaledHeight = 0;
var scaledWidth = 0;
if (mirrorValue != 0) {
var mirroredX = parseInt(mirrorValue) + parseInt(x);
var newX = (mirroredX * nzoom);
mirroredX = (newX / existingZoon);
X = mirroredX;
}
else {
var newX = (x * nzoom);
X = (newX / existingZoon);
}
var newY = (y * nzoom);
var Y = (newY / existingZoon);
var newHeight = (height * nzoom);
var ht = (newHeight / existingZoon);
var newWidth = (width * nzoom);
var wt = (newWidth / existingZoon);
return {
scaledX: X,
scaledY: Y,
scaledHeight: ht,
scaledWidth: wt
}
}
$scope.GetMaskImageSource = function (src) {
if (src != null || src != undefined) {
if (src.match('.png')) {
var mciImage = src.replace('.png', '_mci.png')
}
else {
var mciImage = src.replace('.jpg', '_mci.png')
}
return mciImage;
}
else {
console.log('IMAGE.SOURCE.NOLT.FOUND');
}
}
$scope.GetImageSource = function (bodyRegionId, windowviewid) {
var BodyLayerData = $scope.GetwindowStoreData(windowviewid,'BodyLayerData');
var dataLength = BodyLayerData.Layers.DataLayer.length;
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if (isListManagerSelected == true) {
$scope.SetwindowStoreData(windowviewid,'layerNumber',$('#txtLayerNumberDA_' + windowviewid).val());
}
var lNumber=$scope.GetwindowStoreData(windowviewid,'layerNumber');
$scope.userInput = parseInt(lNumber);
var skinTone=$scope.GetwindowStoreData(windowviewid,'curentEthnicity');
var SelectedLayerData = [];
//as the data statrs with zero index and we have layer 331 on 0 index in json so we get the
//desired layer data by using below line of code.
SelectedLayerData = BodyLayerData.Layers.DataLayer[dataLength - $scope.userInput - 1];
if ((SelectedLayerData != null || SelectedLayerData != undefined))
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
var zoomValue=$scope.GetwindowStoreData(windowviewid,'zoomInOut');
if (lNumber == 0) {
console.log('lNo: ' + lNumber + ' and BodyRegion.length: ' + SelectedLayerData.BodyRegion.length);
if (SelectedLayerData.BodyRegion.length > 0) {
for (var z = 0; z < SelectedLayerData.BodyRegion.length; z++) {
var bodyRegion = SelectedLayerData.BodyRegion[z]._BodyRegionId;
var bodyRegionSkinTone = SelectedLayerData.BodyRegion[z].Image._SkintTone;
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
if (viewOrientationId == 3 && bodyRegionId == 1) {
console.log('VoId: ' + bodyVid);
if (bodyRegion == bodyRegionId && bodyRegionSkinTone == 'W') {
return "content/images/DA/" + zoomValue + "/body-views/" +bodyVid + "/layers/" + lNumber + "/" + bodyRegionId + "/W/" + SelectedLayerData.BodyRegion[z].Image._ImageName;
}
}
else {
if (bodyRegion == bodyRegionId && bodyRegionSkinTone == skinTone) {
return "content/images/DA/" + zoomValue + "/body-views/" + bodyVid + "/layers/" + lNumber + "/" + bodyRegionId + "/" + skinTone + "/" + SelectedLayerData.BodyRegion[z].Image._ImageName;
}
}
}
}
}
else {
//below 4 bodyviews have only single body region
if ((bodyVid == '9') || (bodyVid == '11') || (bodyVid == '10') || (bodyVid == '12')) {
var bodyRegion = SelectedLayerData.BodyRegion._BodyRegionId;
return "content/images/DA/" + zoomValue + "/body-views/" + bodyVid + "/layers/" + lNumber + "/" + bodyRegionId + "/" + SelectedLayerData.BodyRegion.Image._ImageName;
}
else // it is for other body view which have multiple body regions and layer no > 0
{
if (SelectedLayerData.BodyRegion.length > 0) {
for (var z = 0; z <= SelectedLayerData.BodyRegion.length; z++) {
var bodyRegion = SelectedLayerData.BodyRegion[z]._BodyRegionId;
if (bodyRegion == bodyRegionId) {
return "content/images/DA/" + zoomValue + "/body-views/" + bodyVid + "/layers/" + lNumber + "/" + bodyRegionId + "/" + SelectedLayerData.BodyRegion[z].Image._ImageName;
}
}
}
}
}
}
$scope.GetBackgroundImgSource = function (bodyRegionId,bagartDetail,windowviewid) {
var selectedGender;
var genderId = $scope.GetwindowStoreData(windowviewid,'genderId');
if (genderId == "Male") {
selectedGender = 'M';
}
else {
selectedGender = 'F';
}
//filter data based on bodyRegion
$scope.bagartBodyRegionDetails = new jinqJs()
.from(bagartDetail)
.where('_BodyRegionId == ' + bodyRegionId)
.select();
if ($scope.bagartBodyRegionDetails != null || $scope.bagartBodyRegionDetails != undefined) {
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
var zoomValue=$scope.GetwindowStoreData(windowviewid,'zoomInOut');
//filter bodyRegion data basd on skintone
var skinTone=$scope.GetwindowStoreData(windowviewid,'curentEthnicity');
$scope.bagartDetailsOnSktn = new jinqJs()
.from($scope.bagartBodyRegionDetails)
.where('_Skintone == ' + skinTone)
.select();
if ($scope.bagartDetailsOnSktn != null || $scope.bagartDetailsOnSktn != undefined) {
//only brid=2 is having different male,female image, other bodr region have common images for male, female
if (bodyRegionId == 2) {
for (var z = 0; z <= $scope.bagartDetailsOnSktn.length; z++) {
var gender = $scope.bagartDetailsOnSktn[z]._Gender;
if (gender == selectedGender) {
return "content/images/DA/" + zoomValue + "/body-views/" +bodyVid + "/layers/0/" + bodyRegionId + "/" + skinTone + "/" + $scope.bagartDetailsOnSktn[z]._ImageId;
}
}
}
else {
return "content/images/DA/" + zoomValue + "/body-views/" + bodyVid + "/layers/0/" + bodyRegionId + "/" + skinTone + "/" + $scope.bagartDetailsOnSktn[0]._ImageId;
}
}
}
}
$scope.DrawMirroredImage = function (h, w, x, y, src, bodyRegionId, isMaskImage, windowviewid) {
$scope.DisableUI();
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var FlipedImgCanvas = document.createElement('canvas');
FlipedImgCanvas.height = h;
FlipedImgCanvas.width = w;
FlipedImgCanvas.setAttribute("data-IsMirrored", "Y")
FlipedImgCanvas.style.position = "absolute";
FlipedImgCanvas.style.left = x + "px";
FlipedImgCanvas.style.top = y + "px";
if (isMaskImage == 'Y') {
if ($rootScope.isOpenResourceBtnClicked) {
FlipedImgCanvas.id = 'imageCanvas' + bodyRegionId + '_MR_mci' + '|' + windowviewid;
}
else {
FlipedImgCanvas.id = 'imageCanvas' + bodyRegionId + '_MR_mci'+ '|' + windowviewid;
}
FlipedImgCanvas.style.visibility = 'hidden';
}
else {
if ($rootScope.isOpenResourceBtnClicked) {
FlipedImgCanvas.id = 'imageCanvas' + bodyRegionId + '_MR' + '|' + windowviewid;
}
else {
FlipedImgCanvas.id = 'imageCanvas' + bodyRegionId + '_MR' + '|' + windowviewid;
}
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
FlipedImgCanvas.style.visibility = 'visible'
}
else {
}
}
FlipedImgCanvas.addEventListener('click', function (evt) {
var windowviewid = (evt.currentTarget.id).split("|")[1];
var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
$scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
//to get correct data on multihighlight highlight
if ($scope.isLayerChange == true) {
$scope.isLayerChange = false;
}
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$('#typedTermName_' + windowviewid).val('');
if (evt.ctrlKey) {
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',true);
}
else
{
$scope.SetwindowStoreData(windowviewid,'previousHighlightList',[]);
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',false);
}
// clear CB term data on mouse click
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
//get mouse coordinate of mirror image click
var mousePos = $scope.getMousePos(evt.pageX,evt.pageY,windowviewid);
var context = FlipedImgCanvas.getContext("2d");
var canvasId = context.canvas.getAttribute('id');
var mirrorCanvasX = context.canvas.offsetLeft;
var mirrorCanvasWidth = context.canvas.clientWidth;
var maskCanvasId = (canvasId.replace('_MR', '_mci'));
var maskCanvas = document.getElementById(maskCanvasId);
var maskCanvasContext = maskCanvas.getContext("2d");
var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
var distanceXOnMirrorImage = (parseInt(mirrorCanvasX) + parseInt(mirrorCanvasWidth)) - (parseInt(mousePos.x) + horizontlScrollPosition);// - 135);
var mirrorXOnNormalImage = parseInt(maskCanvasContext.canvas.offsetLeft) + parseInt(distanceXOnMirrorImage);
var actulalX = mirrorXOnNormalImage
var actualY = mousePos.y + verticalScrollPosition
var pixelData = maskCanvasContext.getImageData(Math.round(actulalX - parseInt(maskCanvasContext.canvas.offsetLeft)), Math.round(actualY - y), 1, 1);
pixelData.data[0] = pixelData.data[0] - 9;
pixelData.data[1] = pixelData.data[1] - 9;
pixelData.data[2] = pixelData.data[2] - 9
var Red;
var Green;
var Blue;
var zero = "0";
if ((pixelData.data[0]).toString().length != 2) {
Red = zero.concat((pixelData.data[0]).toString())
}
else {
Red = (pixelData.data[0]).toString()
}
if ((pixelData.data[1]).toString().length != 2) {
Green = zero.concat((pixelData.data[1]).toString())
}
else {
Green = (pixelData.data[1]).toString()
}
if ((pixelData.data[2]).toString().length != 2) {
Blue = zero.concat((pixelData.data[2]).toString())
}
else {
Blue = (pixelData.data[2]).toString()
}
var RGBColor = (Red + Green + Blue);
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
previousHighlightList.push(RGBColor);
if ($scope.GetwindowStoreData(windowviewid,'isHighLight')) {
if ($scope.machedIcolorInBodyRegion != null || $scope.machedIcolorInBodyRegion != undefined) {
if ($scope.machedIcolorInBodyRegion.length > 0) {
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == false) {
for (var i = 0; i < $scope.machedIcolorInBodyRegion.length; i++) {
var bodyRegionId = $scope.machedIcolorInBodyRegion[i];
var grayCanvasID = 'imageCanvas' + bodyRegionId + "|" + windowviewid;
var grayCanvas = document.getElementById(grayCanvasID);
var grayCanvasContext = grayCanvas.getContext("2d");
var grayImageDataList=$scope.GetwindowStoreData(windowviewid,'grayImageDataList');
if (grayImageDataList[bodyRegionId - 1] != null || grayImageDataList[bodyRegionId - 1] != undefined) {
var grayImageData = grayImageDataList[bodyRegionId - 1];
grayCanvasContext.putImageData(grayImageData, 0, 0);
}
// for mirrored canvas
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
if (bodyVid == "1" || bodyVid == "4" || bodyVid == "5" || bodyVid == "8") {
if (bodyRegionId == 4 || bodyRegionId == 5 || bodyRegionId == 6) {
var grayCanvasID = 'imageCanvas' + bodyRegionId + '_MR' + "|" + windowviewid;
var grayCanvasMR = document.getElementById(grayCanvasID);
var grayCanvasContextMR = grayCanvasMR.getContext("2d");
var grayImageMRDataList=$scope.GetwindowStoreData(windowviewid,'grayImageMRDataList');
if (grayImageMRDataList[bodyRegionId] != null || grayImageMRDataList[bodyRegionId] != undefined) {
var grayImageDataMR = grayImageMRDataList[bodyRegionId];
grayCanvasContextMR.putImageData(grayImageDataMR, 0, 0);
}
}
}
}
}
}
}
$scope.highLightBodyBasedOnIcolor(RGBColor,windowviewid);
}
//extarct clicked body part is extarct button is already enabled.
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == false) {
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
}
$scope.enableExtract(false,windowviewid);
}
var annotationText
var TermNData=$scope.GetwindowStoreData(windowviewid,'TermNumberData');
if (TermNData != null && TermNData != undefined) {
annotationText = $scope.GetAnnotationText(parseInt(RGBColor),windowviewid);
}
else {
$rootScope.loadSearchData(windowviewid);
annotationText = $scope.GetAnnotationText(parseInt(RGBColor),windowviewid);
}
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == true) {
$scope.MultiLanguageAnnationArray = [];
if (TermAnnotationText.length>0) {
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0,windowviewid);
}
}
else {
if ($('#dot_'+windowviewid).length > 0) {
$('#dot_'+windowviewid).remove();
}
if ($('#sppeachBubble_'+windowviewid).length > 0) {
$('#sppeachBubble_'+windowviewid).remove();
$scope.MultiLanguageAnnationArray = [];
if (TermAnnotationText.length>0) {
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0,windowviewid);
}
}
else {
$scope.MultiLanguageAnnationArray = [];
if (TermAnnotationText.length>0) {
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0,windowviewid);
}
}
}
}, false);
FlipedImgCanvas.addEventListener('mousedown', function (evt) {
//alert('mousedown')
}, false);
FlipedImgCanvas.addEventListener('mouseup', function (evt) {
//alert('mouseup')
}, false);
var context = FlipedImgCanvas.getContext("2d");
var PI = Math.PI;
var PI2 = PI * 2;
var cw, ch, imgW, imgH, mouseX, mouseY;
var scaleFactor = 1.00;
//$scaler = $("#scaler");
//$scaler.val(scaleFactor);
//$scaler.hide();
var img = new Image();
img.onload = start;
// img.src = "~/../content/images/" + src;;
img.src = src;
function start() {
context.save();
context.translate(w, 0);
context.scale(-1, 1);
context.drawImage(img, 0, 0);
context.restore();
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
if (isMaskImage == 'N') {
var totalCanvas;
if ((viewOrientationId == '1') || (viewOrientationId == '4')) {
totalCanvas = 9;
}
else if ((viewOrientationId == '2') || (viewOrientationId == '3')) {
totalCanvas = 5;
}
else if ((viewOrientationId == '5')) {
totalCanvas = 4;
}
else if ((viewOrientationId == '6')) {
totalCanvas = 1;
}
if ($scope.ColoredImageSRC.length < totalCanvas) {
if ($rootScope.isOpenResourceBtnClicked) {
$scope.ColoredImageSRC.push(
{
"viewID": $rootScope.multiViewCounter,
"bodyRegionId": bodyRegionId, "SRC": src,
"Height": h,
"Width": w,
"x": x,
"y": y,
"haveMirror": 'true'
}
);
}
else {
$scope.ColoredImageSRC.push(
{
"bodyRegionId": bodyRegionId, "SRC": src,
"Height": h,
"Width": w,
"x": x,
"y": y,
"haveMirror": 'true'
}
);
}
}
var imageCanvas;
if ($rootScope.multiViewCounter != undefined) {
imageCanvas = document.getElementById('imageCanvas' + bodyRegionId + '_MR' + '|' + windowviewid);
}
else {
imageCanvas = document.getElementById('imageCanvas' + bodyRegionId + '_MR' + '|' + windowviewid);
}
if (imageCanvas != null || imageCanvas != undefined) {
var width = imageCanvas.width;
var ht = imageCanvas.height;
var coloredCanvasContext = imageCanvas.getContext("2d");
var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht);
$scope.coloredImageMRCanvasList[parseInt(bodyRegionId)] = coloredImageData;
}
if (($scope.ColoredImageSRC != null || $scope.ColoredImageSRC != undefined)) {
var isEligibleForHighlight=false;
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && ($scope.ColoredImageSRC.length == 9)) {
isEligibleForHighlight = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && ($scope.ColoredImageSRC.length == 5)) {
isEligibleForHighlight = true;
}
else if ((viewOrientationId == '5') && ($scope.ColoredImageSRC.length == 4)) {
isEligibleForHighlight = true;
}
else if ((viewOrientationId == '6') && ($scope.ColoredImageSRC.length == 1)) {
isEligibleForHighlight = true;
}
else {
isEligibleForHighlight = false;
}
if (isEligibleForHighlight == true) {
$scope.SetwindowStoreData(windowviewid,'coloredImageCanvasList',$scope.coloredImageCanvasList);
$scope.SetwindowStoreData(windowviewid,'coloredImageMRCanvasList',$scope.coloredImageMRCanvasList);
// set color image data
$scope.SetwindowStoreData(windowviewid,'ColoredImageSRC',$scope.ColoredImageSRC);
if ($rootScope.isOpenResourceBtnClicked && $rootScope.isTermClicked == false) {
$scope.EnableUI();
if (($rootScope.multiViewInfoIndex + 1) < $rootScope.multiViewInfo.length) {
$scope.DisableUI();
$rootScope.intSearch = $rootScope.multiViewInfoIndex;
$rootScope.multiViewInfoIndex = $rootScope.multiViewInfoIndex + 1;
$scope.openBodyView();
}
}
else {
$scope.DisableUI();
if ($scope.isSearchDataLoaded) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
var isHighLight=$scope.GetwindowStoreData(windowviewid,'isHighLight');
var isGenderChnage = $scope.GetwindowStoreData(windowviewid,'isGenderChnage');
var isViewChange = $scope.GetwindowStoreData(windowviewid,'isViewChange');
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
$scope.DisableUI();
$scope.highLightBody(windowviewid);
}
else if (isHighLight == true || (isListManagerSelected == true) || ((isGenderChnage == true) && (isHighLight == true))
|| ((isViewChange == true) && (isHighLight == true)) || isHighlightBodyByBodySystem == true) {
console.log('1. $rootScope.isHighLight= ' + isHighLight)
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
$scope.DisableUI();
$scope.highLightBody(windowviewid);
}
else {
//This block is executed when normal body is created and no further process like highlight,extract, etc
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$scope.EnableUI();
}
}
}
}
console.log('DrawMirroredImage- ColoredImageSRC. pushed and length: ' + $scope.ColoredImageSRC.length);
}
if (FlipedImgCanvas.id.match('_mci')) {
var maskImgData = context.getImageData(0, 0, w, h);
var MaskCanvasData = $scope.GetwindowStoreData(windowviewid,'MaskCanvasData');
if ($rootScope.isOpenResourceBtnClicked) {
MaskCanvasData.push(
{
"viewID": $rootScope.multiViewCounter,
"bodyRegionId": bodyRegionId,
"canvasId": FlipedImgCanvas.id,
"maskData": maskImgData,
}
);
}
else {
MaskCanvasData.push(
{
"bodyRegionId": bodyRegionId,
"canvasId": FlipedImgCanvas.id,
"maskData": maskImgData,
}
);
}
}
};
if (document.getElementById('canvasDivDA_' + windowviewid) != null)
document.getElementById('canvasDivDA_' + windowviewid).appendChild(FlipedImgCanvas);
}
$scope.DrawImage = function (h, w, x, y, src, bodyRegionId, isMaskImage, windowviewid) {
$scope.DisableUI();
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var imgCanvas = document.createElement('canvas');
imgCanvas.height = h;
imgCanvas.width = w;
imgCanvas.setAttribute("data-IsMirrored", "N")
imgCanvas.style.position = "absolute";
imgCanvas.style.left = x + "px";
imgCanvas.style.top = y + "px";
if (isMaskImage == 'Y') {
imgCanvas.style.visibility = 'hidden';
if ($rootScope.isOpenResourceBtnClicked) {
imgCanvas.id = 'imageCanvas' + bodyRegionId + '_mci' + '|' + windowviewid;
}
else {
imgCanvas.id = 'imageCanvas' + bodyRegionId + '_mci' + '|' + windowviewid;
}
}
else {
if ($rootScope.isOpenResourceBtnClicked) {
imgCanvas.id = 'imageCanvas' + bodyRegionId + '|' + windowviewid;
}
else {
imgCanvas.id = 'imageCanvas' + bodyRegionId + '|' + windowviewid;
}
if (bodyRegionId == 3) {
//set z index of hip canavs to fix the issue caused by overlapping of arm canavs on hip canavs.
imgCanvas.style.zIndex = "100";
}
if (bodyRegionId.match('modestyImg')) {
//added class to further access this canavs to show and hide leaf as per modesty seting
imgCanvas.className = 'modestyImg_'+windowviewid;
imgCanvas.style.visibility = 'hidden'
//set z index to make leaf canvas on top of hip canavs
imgCanvas.style.zIndex = "200";
}
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
if ((bodyVid == 11 || bodyVid == 9) && bodyRegionId == 6) {
imgCanvas.style.zIndex = "500";
}
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
imgCanvas.style.visibility = 'visible'
}
}
imgCanvas.addEventListener('click', function (evt) {
var windowviewid = (evt.currentTarget.id).split("|")[1];
var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
$scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
if ($scope.isLayerChange == true) {
$scope.isLayerChange = false;
}
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$('#typedTermName_' + windowviewid).val('');
if (evt.ctrlKey) {
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',true);
console.log('CTRL ON')
}
else
{
$scope.SetwindowStoreData(windowviewid,'previousHighlightList',[]);
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',false);
console.log('multiAnnotationIsON: ' + false);
}
// clear CB term data on mouse click
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
var annotationText;
var context = imgCanvas.getContext("2d");
var canvasId = context.canvas.getAttribute('id');
var maskCanvasId;
//for leaf canvas
if (canvasId.match('modestyImg')) {
maskCanvasId = canvasId;
}
else {
maskCanvasId = canvasId.split("|")[0] + '_mci' + "|" + windowviewid;
}
var maskCanvas = document.getElementById(maskCanvasId);
var maskCanvasContext = maskCanvas.getContext("2d");
var mousePos = $scope.getMousePos(evt.pageX,evt.pageY,windowviewid);
// alert(mousePos.x + ',' + mousePos.y);
var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
//We substracted 135, as the difference between flex and html coordinates for same organ is 135
var actulalX = mousePos.x + horizontlScrollPosition;
var actualY = mousePos.y + verticalScrollPosition;
var RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, x, y);
//Modesty ON
if (maskCanvasId.match('modestyImg') && RGBColor != '000000') {
RGBColor = DA[0].figLeafTermId;
annotationText = $scope.GetAnnotationBasedOnActualTermNo(RGBColor, null, windowviewid);
}
//Modesty On but clicked somewhre else, we did modesty check because the modesty image covers whole body region so if user will click to
//see the annotation apart from leaf then the actual click will be on modesty canvas, but for annotation er
//
else if (maskCanvasId.match('modestyImg') && RGBColor == '000000') {
bodyRegionId = maskCanvasId.split("|")[0].slice(-1);
maskCanvasId = 'imageCanvas' + bodyRegionId + '_mci' + "|" + windowviewid;
var maskCanvas = document.getElementById(maskCanvasId);
var maskCanvasContext = maskCanvas.getContext("2d");
RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, x, y);
}
else {
RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, x, y);
}
var TermNData=$scope.GetwindowStoreData(windowviewid,'TermNumberData');
if (TermNData != null && TermNData != undefined) {
annotationText = $scope.GetAnnotationText(parseInt(RGBColor),windowviewid);
}
else {
$rootScope.loadSearchData(windowviewid);
annotationText = $scope.GetAnnotationText(parseInt(RGBColor),windowviewid);
}
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
previousHighlightList.push(RGBColor);
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
if ($scope.machedIcolorInBodyRegion != null || $scope.machedIcolorInBodyRegion != undefined) {
if ($scope.machedIcolorInBodyRegion.length > 0) {
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == false) {
for (var i = 0; i < $scope.machedIcolorInBodyRegion.length; i++) {
var bodyRegionId = $scope.machedIcolorInBodyRegion[i];
var grayCanvasID = 'imageCanvas' + bodyRegionId + "|" + windowviewid;
var grayCanvas = document.getElementById(grayCanvasID);
var grayImageDataList=$scope.GetwindowStoreData(windowviewid,'grayImageDataList');
var grayCanvasContext = grayCanvas.getContext("2d");
if (grayImageDataList[bodyRegionId - 1] != null || grayImageDataList[bodyRegionId - 1] != undefined) {
var grayImageData = grayImageDataList[bodyRegionId - 1];
grayCanvasContext.putImageData(grayImageData, 0, 0);
}
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
// for unhighlight the mirrored body region
if (bodyVid == "1" || bodyVid == "4" || bodyVid == "5" || bodyVid == "8") {
if (bodyRegionId == 4 || bodyRegionId == 5 || bodyRegionId == 6) {
var grayCanvasID = 'imageCanvas' + bodyRegionId + '_MR' + "|" + windowviewid;
var grayCanvasMR = document.getElementById(grayCanvasID);
var grayImageMRDataList=$scope.GetwindowStoreData(windowviewid,'grayImageMRDataList');
var grayCanvasContextMR = grayCanvasMR.getContext("2d");
if (grayImageMRDataList[bodyRegionId] != null || grayImageMRDataList[bodyRegionId] != undefined) {
var grayImageDataMR = grayImageMRDataList[bodyRegionId];
grayCanvasContextMR.putImageData(grayImageDataMR, 0, 0);
}
}
}
}
}
}
}
if (maskCanvasId.match('modestyImg') && RGBColor != '000000') { }
else
{
// $scope.isClickedOnBodyForHighlight = true;
$scope.highLightBodyBasedOnIcolor(RGBColor,windowviewid);
}
}
//extarct clisked body part is extarct button is already enabled.
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == false) {
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
}
$scope.enableExtract(false,windowviewid);
}
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == true) {
if (TermAnnotationText.length > 0) {
$scope.MultiLanguageAnnationArray = [];
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0, windowviewid);
}
}
else {
$scope.MultiLanguageAnnationArray = [];
console.log('1. annotationText: ' + annotationText);
if ($('#dot_'+windowviewid).length > 0) {
$('#dot_'+windowviewid).remove();
if ($('#sppeachBubble_'+windowviewid).length > 0) {
$('#sppeachBubble_'+windowviewid).remove();
}
if ($('.com_'+windowviewid).length > 0) {
$('.com_'+windowviewid).remove();
}
if ($('#bord_'+windowviewid).length > 0) {
$('#bord_'+windowviewid).remove();
}
if (TermAnnotationText.length > 0) {
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
console.log('2. annotationText: ' + annotationText + ' , length: ' + $scope.MultiLanguageAnnationArray.length);
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0, windowviewid);
}
}
else {
$scope.MultiLanguageAnnationArray = [];
if (TermAnnotationText.length > 0) {
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
console.log('3. annotationText: ' + annotationText + ' , length: ' + $scope.MultiLanguageAnnationArray.length);
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0, windowviewid);
}
}
}
}, false);
var PI = Math.PI;
var PI2 = PI * 2;
var cw, ch, imgW, imgH, mouseX, mouseY;
var scaleFactor = 1.00;
var context = imgCanvas.getContext('2d');
var img = new Image();
img.onload = start;
img.src = src;
function start() {
context.drawImage(img, 0, 0);
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
if (isMaskImage == 'N') {
if (bodyRegionId == 'modestyImg3' || bodyRegionId == 'modestyImg2') {
var modestyImageInfo=$scope.GetwindowStoreData(windowviewid,'modestyImageInfo');
modestyImageInfo.push(
{
"bodyRegionId": bodyRegionId, "SRC": src,
"Height": h,
"Width": w,
"x": x,
"y": y,
"haveMirror": 'false'
});
}
else {
var totalCanvas;
if ((viewOrientationId == '1') || (viewOrientationId == '4')) {
totalCanvas = 9;
}
else if ((viewOrientationId == '2') || (viewOrientationId == '3')) {
totalCanvas = 5;
}
else if ((viewOrientationId == '5')) {
totalCanvas = 4;
}
else if ((viewOrientationId == '6')) {
totalCanvas = 1;
}
if ($scope.ColoredImageSRC.length < totalCanvas) {
if ($rootScope.isOpenResourceBtnClicked) {
$scope.ColoredImageSRC.push(
{
"viewID": $rootScope.multiViewCounter,
"bodyRegionId": bodyRegionId, "SRC": src,
"Height": h,
"Width": w,
"x": x,
"y": y,
"haveMirror": 'false'
}
);
}
else {
$scope.ColoredImageSRC.push(
{
"bodyRegionId": bodyRegionId, "SRC": src,
"Height": h,
"Width": w,
"x": x,
"y": y,
"haveMirror": 'false'
}
);
}
}
var imageCanvas;
if ($rootScope.multiViewCounter != undefined) {
imageCanvas = document.getElementById('imageCanvas' + bodyRegionId + '|' + windowviewid);
}
else {
imageCanvas = document.getElementById('imageCanvas' + bodyRegionId + '|' + windowviewid);
}
if (imageCanvas != null || imageCanvas != undefined) {
var width = imageCanvas.width;
var ht = imageCanvas.height;
var coloredCanvasContext = imageCanvas.getContext("2d");
var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht);
$scope.coloredImageCanvasList[parseInt(bodyRegionId - 1)] = coloredImageData;
}
if (($scope.ColoredImageSRC != null || $scope.ColoredImageSRC != undefined)) {
var isEligibleForHighlight=false;
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && ($scope.ColoredImageSRC.length == 9)) {
isEligibleForHighlight = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && ($scope.ColoredImageSRC.length == 5)) {
isEligibleForHighlight = true;
}
else if ((viewOrientationId == '5') && ($scope.ColoredImageSRC.length == 4)) {
isEligibleForHighlight = true;
}
else if ((viewOrientationId == '6') && ($scope.ColoredImageSRC.length == 1)) {
isEligibleForHighlight = true;
}
else {
isEligibleForHighlight = false;
}
if (isEligibleForHighlight == true) {
$scope.SetwindowStoreData(windowviewid,'coloredImageMRCanvasList',$scope.coloredImageMRCanvasList);
$scope.SetwindowStoreData(windowviewid,'coloredImageCanvasList',$scope.coloredImageCanvasList);
// set color image data
$scope.SetwindowStoreData(windowviewid,'ColoredImageSRC',$scope.ColoredImageSRC);
if ($rootScope.isOpenResourceBtnClicked && $rootScope.isTermClicked == false) {
$scope.EnableUI();
if (($rootScope.multiViewInfoIndex + 1) < $rootScope.multiViewInfo.length) {
$scope.DisableUI();
$rootScope.multiViewInfoIndex = $rootScope.multiViewInfoIndex + 1;
$scope.openBodyView();
}
}
else {
$scope.DisableUI();
if ($scope.isSearchDataLoaded) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
var isHighLight=$scope.GetwindowStoreData(windowviewid,'isHighLight');
var isGenderChnage = $scope.GetwindowStoreData(windowviewid,'isGenderChnage');
var isViewChange = $scope.GetwindowStoreData(windowviewid,'isViewChange');
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isExtract= $scope.GetwindowStoreData(windowviewid,'isExtract')
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if (isExtract == true) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
$scope.DisableUI();
$scope.highLightBody(windowviewid);
}
else if (isHighLight == true || (isListManagerSelected == true) || ((isGenderChnage == true) && (isHighLight == true))
|| ((isViewChange == true) && (isHighLight == true)) || isExtract == true || isHighlightBodyByBodySystem == true) {
console.log('2. $rootScope.isHighLight= ' + isHighLight)
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
console.log('inside start of non flipped. ColoredImageSRC.length= ' + $scope.ColoredImageSRC.length)
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
console.log('just before highLightBody call');
$scope.DisableUI();
$scope.highLightBody(windowviewid);
console.log('just after highLightBody call');
}
else {
//This block is executed when normal body is created and no further process like highlight,extract, etc
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$scope.EnableUI();
}
}
}
}
console.log('DrawImage- ColoredImageSRC. pushed and length: ' + $scope.ColoredImageSRC.length);
}
}
if (imgCanvas.id.match('_mci')) {
var maskImgData = context.getImageData(0, 0, w, h);
var MaskCanvasData = $scope.GetwindowStoreData(windowviewid,'MaskCanvasData');
if ($rootScope.isOpenResourceBtnClicked) {
MaskCanvasData.push(
{
"viewID": $rootScope.multiViewCounter,
"bodyRegionId": bodyRegionId,
"canvasId": imgCanvas.id,
"maskData": maskImgData,
}
);
}
else {
MaskCanvasData.push(
{
"bodyRegionId": bodyRegionId,
"canvasId": imgCanvas.id,
"maskData": maskImgData,
}
);
}
}
};
if (document.getElementById('canvasDivDA_' + windowviewid) != null)
document.getElementById('canvasDivDA_' + windowviewid).appendChild(imgCanvas);
}
$scope.highLightBodyBasedOnIcolor = function (RGBColor,windowviewid) {
//2. Find Actul Term No Based on Icolor.
var ActualTermNo = $scope.getActualTermNumber(RGBColor, windowviewid);
if (ActualTermNo != null) {
//3. Find Term No List Based on ActualTermNo
var TermList = $scope.getTermNumberList(ActualTermNo,windowviewid);
if (TermList != null) {
//4.
$scope.HighlightBodyByTermList(TermList,windowviewid);
}
}
}
$scope.HighlightBodyOnExtract = function (windowviewid) {
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
var MaskCanvasData=$scope.GetwindowStoreData(windowviewid,'MaskCanvasData');
console.log(' insode HighlightBodyOnExtract. MaskCanvasData length= ' + MaskCanvasData.length + ', previousHighlightList.length= ' + previousHighlightList.length)
$("#btnExtract_" + windowviewid).removeClass("btn-black");
$("#btnExtract_" + windowviewid).addClass("btn-primary");
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if ($("#btnHighLight_" + windowviewid).hasClass("btn-primary")) {
$("#btnHighLight_" + windowviewid).removeClass("btn-primary");
$("#btnHighLight_" + windowviewid).addClass("btn-black");
}
//terminate previous running workers to create space for new workers
$scope.SetwindowStoreData(windowviewid,'layerNumber',$("#txtLayerNumberDA_" + windowviewid).val());
$scope.terminateCurrentlyRunningWPs();
var multiTermList = [];
var CallBackBodyRegion = [];
var selectedAnnotation;
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
var multiAnnotationIsON=$scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON');
if ((previousHighlightList != null || previousHighlightList != undefined) && (previousHighlightList.length > 0)
&& isListManagerSelected && multiAnnotationIsON == true) {
multiTermList = $scope.GetwindowStoreData(windowviewid,'AllTerms');
angular.forEach(previousHighlightList, function (value, key) {
var ActualTermNo = $scope.getActualTermNumber(value, windowviewid);
selectedAnnotation = ActualTermNo;
if (ActualTermNo != null) {
var TermList = $scope.getTermNumberList(ActualTermNo,windowviewid);
if (TermList != null) {
for (var i = 0; i < TermList.length; i++) {
multiTermList.push(TermList[i]);
}
}
}
// to do
});
}
if (isListManagerSelected) {
multiTermList = $scope.GetwindowStoreData(windowviewid,'AllTerms');
selectedAnnotation = $scope.GetwindowStoreData(windowviewid,'actualTermNumber');
}
else if ((previousHighlightList != null || previousHighlightList != undefined) && (previousHighlightList.length > 0)) {
angular.forEach(previousHighlightList, function (value, key) {
var ActualTermNo = $scope.getActualTermNumber(value, windowviewid);
selectedAnnotation = ActualTermNo;
if (ActualTermNo != null) {
var TermList = $scope.getTermNumberList(ActualTermNo,windowviewid);
if (TermList != null) {
for (var i = 0; i < TermList.length; i++) {
multiTermList.push(TermList[i]);
}
}
}
// to do
});
}
//get term list to get term coordinates
$scope.TermList = $scope.getTermNumberList(selectedAnnotation,windowviewid);
$scope.termCoordinate = $scope.getTermCoordinate(selectedAnnotation);
$timeout(function () {
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
var loopLength = 0;
var ColoredImageSRC=$scope.GetwindowStoreData(windowviewid,'ColoredImageSRC');
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && (ColoredImageSRC.length == 9)) {
loopLength = 9;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && (ColoredImageSRC.length == 5)) {
loopLength = 5;
}
else if ((viewOrientationId == '5') && (ColoredImageSRC.length == 4)) {
loopLength = 4;
}
else if ((viewOrientationId == '6') && (ColoredImageSRC.length == 1)) {
loopLength = 1;
}
if (loopLength !== 0) {
for (var x = 0; x < loopLength; x++) {
if (MaskCanvasData[x] != null || MaskCanvasData[x] != undefined) {
var bodyRegionId = MaskCanvasData[x].bodyRegionId;
var canvasId = MaskCanvasData[x].canvasId;
var maskData = null;
maskData = MaskCanvasData[x].maskData;
var coloredImageDataVar = null;
var grayImageDataVar = null;
var white = null;
if (canvasId.match('_MR')) {
var coloredImageMRCanvasList=$scope.GetwindowStoreData(windowviewid,'coloredImageMRCanvasList');
if (coloredImageMRCanvasList.length>0)
{
coloredImageDataVar = coloredImageMRCanvasList[bodyRegionId];
}
var whiteImageMRDataList=$scope.GetwindowStoreData(windowviewid,'whiteImageMRDataList');
if (whiteImageMRDataList.length>0) {
white = whiteImageMRDataList[bodyRegionId];
}
}
else {
var coloredImageCanvasList=$scope.GetwindowStoreData(windowviewid,'coloredImageCanvasList');
if (coloredImageCanvasList.length>0) {
coloredImageDataVar = coloredImageCanvasList[bodyRegionId - 1];
}
var whiteImageDataList=$scope.GetwindowStoreData(windowviewid,'whiteImageDataList');
if (whiteImageDataList.length>0) {
white = whiteImageDataList[bodyRegionId - 1];
}
}
var worker = new Worker('extract-wp.js');
//push workers in array to further used the refernece to delete the workers
$scope.runningWorkers.push({ 'workerName': worker })
console.log('for BRID = ' + bodyRegionId + ', coloredImageDataVar: ' + coloredImageDataVar + ', maskData= ' + maskData + ', white= ' + white)
if (coloredImageDataVar != null && maskData != null && white != null) {
worker.postMessage({
'termList': multiTermList,
'maskCanvasData': maskData,
'coloredImageData': coloredImageDataVar,
'grayImageData': white,
'bodyRegionId': bodyRegionId,
'canvasId': canvasId
});
}
//}
worker.onmessage = function (e) {
console.log('callback in extract for e.data.bodyRegionId: ' + e.data.bodyRegionId + ', time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"));
var updatedData = e.data.value;
var bodyRegionId = e.data.bodyRegionId;
var canvasId = (e.data.canvasId).replace('_mci', '');
var grayCanvasID = canvasId;
var grayCanvas = document.getElementById(grayCanvasID);
var grayCanvasContext = grayCanvas.getContext("2d");
grayCanvasContext.putImageData(updatedData, 0, 0);
//to resolve lateral arm black issue in highlight mode
if (viewOrientationId == 5 && (bodyRegionId == 6 || bodyRegionId == 4)) {
var canavsWidth = parseInt(grayCanvas.width);
var canavsHeight = parseInt(grayCanvas.height);
console.log('canavsWidth= ' + canavsWidth + ', canavsHeight= ' + canavsHeight)
var imgData = grayCanvasContext.getImageData(0, 0, canavsWidth, canavsHeight);
var data = imgData.data;
var c = 0;
for (var i = 0; i < data.length; i += 4) {
if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
data[i + 3] = 0;
}
}
grayCanvasContext.putImageData(imgData, 0, 0);
}
CallBackBodyRegion.push(bodyRegionId);
$scope.doAligneCanvasWithTerm = false;
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && (CallBackBodyRegion.length == 9)) {
$scope.doAligneCanvasWithTerm = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && (CallBackBodyRegion.length == 5)) {
$scope.doAligneCanvasWithTerm = true;
}
else if (((viewOrientationId == '5')) && (CallBackBodyRegion.length == 1)) {
$scope.doAligneCanvasWithTerm = true;
}
else if (((viewOrientationId == '6')) && (CallBackBodyRegion.length == 1)) {
$scope.doAligneCanvasWithTerm = true;
}
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == true) {
// commented ,no further use
// if (canvasId.match('_MR'))
// {
// var updatedWhiteImageMRDataList=$scope.GetwindowStoreData(windowviewid,'updatedWhiteImageMRDataList');
// updatedWhiteImageMRDataList[bodyRegionId] = updatedData;
// }
// else
// {
// var updatedWhiteImageDataList=$scope.GetwindowStoreData(windowviewid,'updatedWhiteImageDataList');
// updatedWhiteImageDataList[bodyRegionId - 1] = updatedData;
// }
}
else {
if (canvasId.match('_MR'))
{
var whiteImageMRDataList=$scope.GetwindowStoreData(windowviewid,'whiteImageMRDataList');
whiteImageMRDataList[bodyRegionId] = e.data.value;
}
else {
var whiteImageDataList=$scope.GetwindowStoreData(windowviewid,'whiteImageDataList');
whiteImageDataList[bodyRegionId - 1] = e.data.value;
}
}
if ($scope.doAligneCanvasWithTerm == true) {
$scope.aligneCanvasWithTerm(windowviewid);
$scope.EnableUI();
if ($scope.runningWorkers != null || $scope.runningWorkers != undefined) {
var workerCount = $scope.runningWorkers.length;
if (workerCount > 0) {
for (var i = workerCount - 1; i >= 0; i--) {
var runningWorker = $scope.runningWorkers[i].workerName;
runningWorker.terminate();
$scope.runningWorkers.splice(i, 1);
}
}
}
}
};
worker.onerror = function (e) {
alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message);
};
}
}
}
}, 500)
}
$scope.HighlightBodyByTermList = function (TermList,windowviewid) {
// $("#btnTranparency").attr('disabled', 'disabled');
var nlayer=$scope.GetwindowStoreData(windowviewid,'layerNumber');
$scope.SetwindowStoreData(windowviewid,'currentLayerNumber',nlayer);
$scope.SetwindowStoreData(windowviewid,'layerNumber',$("#txtLayerNumberDA_" + windowviewid).val());
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
console.log('HighlightBodyByTermList is called');
$scope.highlightedBR = [];
$scope.terminateCurrentlyRunningWPs();
$timeout(function () {
var MaskCanvasData=$scope.GetwindowStoreData(windowviewid,'MaskCanvasData');
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
var ColoredImageSRC=$scope.GetwindowStoreData(windowviewid,'ColoredImageSRC');
var loopLength = 0;
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && (ColoredImageSRC.length == 9)) {
loopLength = 9;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && (ColoredImageSRC.length == 5)) {
loopLength = 5;
}
else if ((viewOrientationId == '5') && (ColoredImageSRC.length == 4)) {
loopLength = 4;
}
else if ((viewOrientationId == '6') && (ColoredImageSRC.length == 1)) {
loopLength = 1;
}
var coloredImageMRCanvasList=$scope.GetwindowStoreData(windowviewid,'coloredImageMRCanvasList');
var coloredImageCanvasList=$scope.GetwindowStoreData(windowviewid,'coloredImageCanvasList');
var grayImageMRDataList=$scope.GetwindowStoreData(windowviewid,'grayImageMRDataList');
var grayImageDataList=$scope.GetwindowStoreData(windowviewid,'grayImageDataList');
var updatedGrayDataList=$scope.GetwindowStoreData(windowviewid,'updatedGrayDataList');
var updatedGrayMRDataList=$scope.GetwindowStoreData(windowviewid,'updatedGrayMRDataList');
for (var x = 0; x < loopLength; x++) {
console.log('x value= ' + x);
if (MaskCanvasData[x] != null || MaskCanvasData[x] != undefined) {
var bodyRegionId = MaskCanvasData[x].bodyRegionId;
var canvasId = MaskCanvasData[x].canvasId;
var maskData = null;
maskData = MaskCanvasData[x].maskData;
var coloredImageDataVar = null;
var grayImageDataVar = null;
var white;
if (canvasId.match('_MR')) {
if (coloredImageMRCanvasList.length>0)
{
coloredImageDataVar = coloredImageMRCanvasList[bodyRegionId];
}
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == true) {
//on layer change we need the fresh data not the updated one
if ($scope.isLayerChange == true) {
if (grayImageMRDataList[bodyRegionId] != null || grayImageMRDataList[bodyRegionId] != undefined) {
grayImageDataVar = grayImageMRDataList[bodyRegionId];
}
}
else {
if (updatedGrayDataList[bodyRegionId - 1] == null || updatedGrayDataList[bodyRegionId - 1] == undefined) {
if (grayImageMRDataList[bodyRegionId] != null || grayImageMRDataList[bodyRegionId] != undefined) {
grayImageDataVar = grayImageMRDataList[bodyRegionId];
}
}
else {
if (updatedGrayMRDataList[bodyRegionId] != null || updatedGrayMRDataList[bodyRegionId] != undefined) {
grayImageDataVar = updatedGrayMRDataList[bodyRegionId]
}
}
}
}
else {
if (grayImageMRDataList[bodyRegionId] != null || grayImageMRDataList[bodyRegionId] != undefined) {
grayImageDataVar = grayImageMRDataList[bodyRegionId];
}
}
}
else {
if (coloredImageCanvasList.length>0) {
coloredImageDataVar = coloredImageCanvasList[bodyRegionId - 1];
}
if ($scope.GetwindowStoreData(windowviewid,'multiAnnotationIsON') == true) {
//on layer change we need the fresh data not the updated one
if ($scope.isLayerChange == true) {
if (grayImageDataList[bodyRegionId - 1] != null || grayImageDataList[bodyRegionId - 1] != undefined) {
grayImageDataVar = grayImageDataList[bodyRegionId - 1];
}
} else {
// this code is for the case where user first click on normal mode then extract then again highlight then we need to call highlight body in gray mode
//and then highlight the previously selected body regions at the time of normal mode.
if (updatedGrayDataList[bodyRegionId - 1] == null || updatedGrayDataList[bodyRegionId - 1] == undefined) {
if (grayImageDataList[bodyRegionId - 1] != null || grayImageDataList[bodyRegionId - 1] != undefined) {
grayImageDataVar = grayImageDataList[bodyRegionId - 1];
}
}
else {
if (updatedGrayDataList[bodyRegionId - 1] != null || updatedGrayDataList[bodyRegionId - 1] != undefined) {
// for normal case means without interdepency button case.
grayImageDataVar = updatedGrayDataList[bodyRegionId - 1];
}
}
}
}
else
if (grayImageDataList[bodyRegionId - 1] != null || grayImageDataList[bodyRegionId - 1] != undefined) {
grayImageDataVar = grayImageDataList[bodyRegionId - 1];
}
}
var worker = new Worker('term-number-wp.js');
//push workers in array to further used the refernece to delete the workers
$scope.runningWorkers.push({ 'workerName': worker })
console.log('before worker call BRID: ' + bodyRegionId)
//if (grayImageDataVar != null && coloredImageDataVar != null && maskData != null) {
if (grayImageDataVar != null && coloredImageDataVar != null && maskData != null && TermList != undefined && TermList.length > 0) {
worker.postMessage({
'termList': TermList,
'maskCanvasData': maskData,
'coloredImageData': coloredImageDataVar,
'grayImageData': grayImageDataVar,
'bodyRegionId': bodyRegionId,
'canvasId': canvasId
});
}
else {
$('#spinner').css('visibility', 'hidden')
$rootScope.isLoading = false;
}
worker.onmessage = function (e) {
console.log('callback for e.data.bodyRegionId: ' + e.data.bodyRegionId + ', time: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1"));
var updatedData = e.data.value;
var bodyRegionId = e.data.bodyRegionId;
var canvasId = (e.data.canvasId).replace('_mci', '');
var grayCanvasID = canvasId;
var grayCanvas = document.getElementById(grayCanvasID);
if (grayCanvas != null) {
var grayCanvasContext = grayCanvas.getContext("2d");
var canvasHeight = grayCanvas.height + 'px';
var canvasWidth = grayCanvas.width + 'px';
grayCanvasContext.clearRect(0, 0, canvasHeight, canvasWidth)
grayCanvasContext.putImageData(updatedData, 0, 0);
$scope.highlightedBR.push({ 'bodyRegionId': bodyRegionId });
}
if (canvasId.match('_MR')) {
updatedGrayMRDataList[bodyRegionId] = updatedData;
}
else
updatedGrayDataList[bodyRegionId - 1] = updatedData;
console.log('$scope.highlightedBR.length= ' + $scope.highlightedBR.length)
if ($scope.highlightedBR != null || $scope.highlightedBR != undefined) {
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && ($scope.highlightedBR.length == 9)) {
$scope.doAligneCanvasWithTerm = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && ($scope.highlightedBR.length == 5)) {
$scope.doAligneCanvasWithTerm = true;
}
else if (((viewOrientationId == '5')) && ($scope.highlightedBR.length == 1)) {
$scope.doAligneCanvasWithTerm = true;
}
else if (((viewOrientationId == '6')) && ($scope.highlightedBR.length == 1)) {
$scope.doAligneCanvasWithTerm = true;
}
else {
$scope.doAligneCanvasWithTerm = false;
}
if ($scope.doAligneCanvasWithTerm == true) {
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
var isGenderChnage = $scope.GetwindowStoreData(windowviewid,'isGenderChnage');
var isViewChange = $scope.GetwindowStoreData(windowviewid,'isViewChange');
var isHighlightBodyWithCBTermData=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData');
if (isListManagerSelected == true) {
$scope.aligneCanvasWithTerm(windowviewid);
}
else if (isHighlightBodyWithCBTermData == true) {
// added by Birendra
// show annotation term for curriculum data
// get actual term to highlight body on selected region
//var actualterm= $scope.daOpenInOtherModules.selectedStructureId;
/// $scope.TermList = $scope.getTermNumberList(actualterm);
// $scope.termCoordinate = $scope.getTermCoordinate(actualterm);
$('#canvasDivDA_' + windowviewid).scrollLeft($scope.daOpenInOtherModules.canvasHScrollX);
$('#canvasDivDA_' + windowviewid).scrollTop($scope.daOpenInOtherModules.canvasVScrollX);
$scope.SetwindowStoreData(windowviewid,'CanvasDivTopPosition',$("#canvasDivDA_" + windowviewid).scrollTop());
$scope.SetwindowStoreData(windowviewid,'CanvasDivLeftPosition',$("#canvasDivDA_" + windowviewid).scrollLeft());
var CurriculumTermData=$scope.GetwindowStoreData(windowviewid,'CurriculumTermData');
for (var i = 0; i < CurriculumTermData.length; i++) {
$scope.MultiLanguageAnnationArray = [];
var annotationtext = $scope.GetAnnotationText(parseInt(CurriculumTermData[i].termNumber),windowviewid);
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
if(TermAnnotationText.length>0)
{
for (var j = 0; j <= TermAnnotationText.length - 1; j++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[j]);
}
$scope.createDynamicSpeechBubble('CBAnnotation', CurriculumTermData[i].x, CurriculumTermData[i].y, true, CurriculumTermData[i].tips_x, CurriculumTermData[i].tips_y,windowviewid);
}
}
// finish CB window load
$rootScope.CBWindowLoadComplete=true;
}
else if (previousHighlightList != undefined && previousHighlightList.length > 0 && (isGenderChnage == true || isViewChange == true)) {
if (viewOrientationId == '1' || viewOrientationId == '4') {
$('#canvasDivDA_' + windowviewid).scrollLeft($('#canvasDivDA_' +windowviewid).width() / 2)
$('#canvasDivDA_' + windowviewid).scrollTop($scope.imageVerticalScrollPosition);
}
else {
$('#canvasDivDA_' + windowviewid).scrollTop($scope.imageVerticalScrollPosition);
$('#canvasDivDA_' + windowviewid).scrollLeft($scope.imageHorizontlScrollPosition);
$rootScope.isLoading = false;
}
$('#spinner').css('visibility', 'hidden');
}
else if (isHighlightBodyByBodySystem == true || isListManagerSelected == true) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
else
{
if ($scope.GetwindowStoreData(windowviewid,'isZoomed')) {
var lastSelectedAnnotation;
angular.forEach(previousHighlightList, function (value, key) {
var ActualTermNos = $scope.getActualTermNumber(value, windowviewid);
lastSelectedAnnotation = ActualTermNos;
});
if (lastSelectedAnnotation != undefined) {
$scope.TermList = $scope.getTermNumberList(lastSelectedAnnotation,windowviewid);
$scope.termCoordinate = $scope.getTermCoordinate(lastSelectedAnnotation);
console.log('last selected Annotation= ' + lastSelectedAnnotation);
console.log('termListCount= ' + $scope.TermList.length);
console.log('termCoordinate= ' + $scope.termCoordinate.x);
$scope.aligneCanvasWithTerm(windowviewid);
}
}
else {
$('#canvasDivDA_' + windowviewid).scrollTop($scope.imageVerticalScrollPosition);
$('#canvasDivDA_' + windowviewid).scrollLeft($scope.imageHorizontlScrollPosition);
}
}
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$scope.EnableUI();
if ($scope.runningWorkers != null || $scope.runningWorkers != undefined) {
var workerCount = $scope.runningWorkers.length;
if (workerCount > 0) {
for (var i = workerCount - 1; i >= 0; i--) {
var runningWorker = $scope.runningWorkers[i].workerName;
runningWorker.terminate();
$scope.runningWorkers.splice(i, 1);
}
}
}
}
}
};
worker.onerror = function (e) {
alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message);
};
}
}
$timeout(function () {
var termSelectedName =$scope.GetwindowStoreData(windowviewid,'searchSelectedText');// $rootScope.searchSelectedText;
if (termSelectedName == "Cardiovascular") {
termSelectedName = "Skin";
}
if (document.getElementById('txtLayerNumberDA_'+windowviewid).value == "Skin" || termSelectedName == "Skin") {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$scope.EnableUI();
}
}, 100);
}, 100)
}
$scope.HighlightBodyByTermListForBodySystem = function (TermList, windowviewid) {
$scope.isScrolledToHighlightedBR = false;
//disable the background till the system gets highlighted.
$scope.DisableUI();
$('.ui-slider').slider('disable');
var currentNumber=$scope.GetwindowStoreData(windowviewid,'currentLayerNumber');
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$scope.SetwindowStoreData(windowviewid,'layerNumber',currentNumber);
}
else {
$scope.SetwindowStoreData(windowviewid,'layerNumber',$("#txtLayerNumberDA_" + windowviewid).val());
$scope.SetwindowStoreData(windowviewid,'currentLayerNumber',$("#txtLayerNumberDA_" + windowviewid).val());
}
$("#btnTranparency_" + windowviewid).attr('disabled', 'disabled');
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
$scope.CloseTransparencyBox(windowviewid);
}
console.log('HighlightBodyByTermListForBodySystem is called');
var grayImageDataVar = null;
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
var lNumber=$scope.GetwindowStoreData(windowviewid,'layerNumber');
var zoomValue=$scope.GetwindowStoreData(windowviewid,'zoomInOut');
var systemNumber=$scope.GetwindowStoreData(windowviewid,'systemNumber');
TermService.getTermData(lNumber, bodyVid, systemNumber, zoomValue)
.then(
function (result) {
if (result.length == 0) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
//remove existing data and draw fresh data
$scope.removeCurrentHighlightedBodySystem(windowviewid);
$scope.message = AIAConstants.NO_BODY_SYSTEM_AVAILABLE;
$("#daMessageModal").modal('show');
$scope.EnableUI();
$('.ui-slider').slider('enable');
}
else {
console.log('1. HighlightBodyByTermListForBodySystem is called');
$rootScope.macthedTermList = result;
var termNo = 0;
var pixcelLocation = 0;
var prevBRID = 0;
if ($rootScope.macthedTermList.length > 0) {
console.log('2. HighlightBodyByTermListForBodySystem is called');
//remove existing data and draw fresh data
var grayImageDataList=$scope.GetwindowStoreData(windowviewid,'grayImageDataList');
var grayImageMRDataList=$scope.GetwindowStoreData(windowviewid,'grayImageMRDataList');
var whiteImageDataList=$scope.GetwindowStoreData(windowviewid,'whiteImageDataList');
var whiteImageMRDataList=$scope.GetwindowStoreData(windowviewid,'whiteImageMRDataList');
for (var i = 0; i < grayImageDataList.length; i++) {
var grayCanvasID = 'imageCanvas' + parseInt(i + 1) + "|" + windowviewid;
var grayCanvas = document.getElementById(grayCanvasID);
if (grayCanvas != null) {
var grayCanvasContext = grayCanvas.getContext("2d");
var canvasHeight = grayCanvas.height;
var canvasWidth = grayCanvas.width;
grayCanvasContext.clearRect(0, 0, canvasHeight, canvasWidth)
if ($scope.GetwindowStoreData(windowviewid,'isExtract')) {
grayCanvasContext.putImageData(whiteImageDataList[parseInt(i)], 0, 0);
}
else {
grayCanvasContext.putImageData(grayImageDataList[parseInt(i)], 0, 0);
}
}
}
for (var i = 4; i <= grayImageMRDataList.length; i++) {
var grayCanvasMRID = 'imageCanvas' + i + '_MR' + "|" + windowviewid;
var grayCanvasMR = document.getElementById(grayCanvasMRID);
if (grayCanvasMR != null) {
var grayCanvasContextMR = grayCanvasMR.getContext("2d");
var canvasHeight = grayCanvasMR.height;
var canvasWidth = grayCanvasMR.width;
grayCanvasContextMR.clearRect(0, 0, canvasHeight, canvasWidth)
if ($scope.GetwindowStoreData(windowviewid,'isExtract')) {
grayCanvasContext.putImageData(whiteImageMRDataList[parseInt(i)], 0, 0);
}
else {
grayCanvasContextMR.putImageData(grayImageMRDataList[parseInt(i)], 0, 0);
}
}
}
var coloredImageCanvasList=$scope.GetwindowStoreData(windowviewid,'coloredImageCanvasList');
angular.forEach($rootScope.macthedTermList, function (value, key) {
var TermExistInBodyRegionId = value.bodyRegionId;
console.log('3. HighlightBodyByTermListForBodySystem is called TermExistInBodyRegionId=' + TermExistInBodyRegionId);
if (TermExistInBodyRegionId != undefined) {
if (prevBRID != TermExistInBodyRegionId) {
var grayCanvasID = 'imageCanvas' + TermExistInBodyRegionId + "|" + windowviewid;
var grayCanvas = document.getElementById(grayCanvasID);
if (grayCanvas != null) {
var grayCanvasContext = grayCanvas.getContext("2d");
var canvasHeight = grayCanvas.height;
var canvasWidth = grayCanvas.width;
var canvasX = grayCanvas.style.left;
var canvasY = grayCanvas.style.top;
grayCanvasContext.clearRect(0, 0, canvasHeight, canvasWidth)
if ($scope.GetwindowStoreData(windowviewid,'isExtract')) {
grayCanvasContext.putImageData(whiteImageDataList[parseInt(TermExistInBodyRegionId) - 1], 0, 0);
}
else {
grayCanvasContext.putImageData(grayImageDataList[parseInt(TermExistInBodyRegionId) - 1], 0, 0);
}
var gData = grayCanvasContext.getImageData(0, 0, canvasWidth, canvasHeight);
//for mirror images
var grayCanvasMRID = 'imageCanvas' + TermExistInBodyRegionId + '_MR' + "|" + windowviewid;
var grayCanvasMR = document.getElementById(grayCanvasMRID);
var grayCanvasMRX;
var grayCanvasMRY;
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
//draw a canvas for same bodyregion wich will be flipped after coloring the body system
if (bodyVid == "1" || bodyVid == "4" || bodyVid == "5" || bodyVid == "8") {
if (TermExistInBodyRegionId == 4 || TermExistInBodyRegionId == 5 || TermExistInBodyRegionId == 6) {
var grayCanvasMRID = 'imageCanvas' + TermExistInBodyRegionId + '_MR' + "|" + windowviewid;
var grayCanvasMR = document.getElementById(grayCanvasMRID);
grayCanvasMRX = grayCanvasMR.style.left;
grayCanvasMRY = grayCanvasMR.style.top;
var FlipedImgCanvas = document.createElement('canvas');
FlipedImgCanvas.height = canvasHeight;
FlipedImgCanvas.width = canvasWidth;
FlipedImgCanvas.setAttribute("data-IsMirrored", "Y")
FlipedImgCanvas.style.position = "absolute";
FlipedImgCanvas.style.left = canvasX + "px";
FlipedImgCanvas.style.top = canvasY + "px";
FlipedImgCanvas.style.visibility = 'hidden';
FlipedImgCanvas.id = 'imageCanvas' + TermExistInBodyRegionId + '_MR' + "|" + windowviewid;
//remove previous canavs
$('#' + grayCanvasMRID).remove();
//add new canvas on same location and after flipping it will be added to mirrored position
document.getElementById('canvasDivDA_' + windowviewid).appendChild(FlipedImgCanvas);
//put grayData
var filppedCanvasContx = FlipedImgCanvas.getContext("2d");
filppedCanvasContx.putImageData(gData, 0, 0);
}
}
grayImageDataVar = null;
var macthedData = new jinqJs()
.from($rootScope.macthedTermList)
.where('bodyRegionId == ' + TermExistInBodyRegionId)
.select();
var coloredImageDataVar=null;
if (coloredImageCanvasList.length>0) {
coloredImageDataVar = coloredImageCanvasList[parseInt(TermExistInBodyRegionId)-1];
}
var grayImageDataValue = gData.data;
var coloredImageDataValue = coloredImageDataVar.data;
angular.forEach(macthedData, function (value2, key) {
$rootScope.termListWithLocation = value2.terms;
//pick the color from coloredImage data and put on gray imagedata
angular.forEach($rootScope.termListWithLocation.PixelLocations, function (value1, key1) {
var RED = coloredImageDataValue[value1];
var GREEN = coloredImageDataValue[value1 + 1];
var BLUE = coloredImageDataValue[value1 + 2];
grayImageDataValue[value1] = RED;
grayImageDataValue[value1 + 1] = GREEN;
grayImageDataValue[value1 + 2] = BLUE;
})
//for non mirrored bpdy regions
var grayCanvasID = 'imageCanvas' + TermExistInBodyRegionId + "|" + windowviewid;
var grayCanvas = document.getElementById(grayCanvasID);
if (grayCanvas != null) {
var grayCanvasContext = grayCanvas.getContext("2d");
grayCanvasContext.putImageData(gData, 0, 0);
}
//for mirror body regions
if (TermExistInBodyRegionId == 4 || TermExistInBodyRegionId == 5 || TermExistInBodyRegionId == 6) {
var grayCanvasMRID = 'imageCanvas' + TermExistInBodyRegionId + '_MR' + "|" + windowviewid;
var grayCanvasMR = document.getElementById(grayCanvasMRID);
if (grayCanvasMR != null) {
var grayCanvasMRContext = grayCanvasMR.getContext("2d");
grayCanvasMRContext.save();
grayCanvasMRContext.translate(canvasWidth, 0);
grayCanvasMRContext.scale(-1, 1);
//flip does not work with putImageData, that is why we used drawImage
grayCanvasMRContext.drawImage(grayCanvas, 0, 0, canvasWidth, canvasHeight, 0, 0, canvasWidth, canvasHeight);
grayCanvasMRContext.restore();
//set this canavs on the actual posution of mirror image
grayCanvasMR.style.left = grayCanvasMRX;
grayCanvasMR.style.top = grayCanvasMRY;
grayCanvasMR.style.visibility = 'visible';
}
}
$('#spinner').css('visibility', 'hidden')
$rootScope.isLoading = false;
//document.getElementById("daView").style.pointerEvents = "auto";
//$('.ui-slider').slider('enable');
$scope.EnableUI();
prevBRID = TermExistInBodyRegionId;
$scope.scrollToHighlightedBodyRegion(TermExistInBodyRegionId, windowviewid);
})
}
}
}
else {
$('#spinner').css('visibility', 'hidden')
$rootScope.isLoading = false;
$scope.EnableUI();
$('.ui-slider').slider('enable');
}
})
}
}
},
function (error) {
console.log(' Error in getting term data = ' + error);
$('#spinner').css('visibility', 'hidden')
$rootScope.isLoading = false;
$scope.EnableUI();
//remove existing data and draw fresh data
$scope.removeCurrentHighlightedBodySystem(windowviewid);
$scope.message = error;
$("#daMessageModal").modal('show');
});
}
$scope.scrollToHighlightedBodyRegion = function (TermExistInBodyRegionId, windowviewid) {
if ($scope.isScrolledToHighlightedBR == false) {
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
var BodyRegionData=$scope.GetwindowStoreData(windowviewid,'BodyRegionData');
var bodyRegionCoordinates = new jinqJs()
.from(BodyRegionData.BodyRegionViews.BodyRegionCordinates)
.where('_ViewOrientationId == ' + viewOrientationId)
.select();
$scope.TermExistInBodyRegionData = new jinqJs()
.from(bodyRegionCoordinates)
.where('_BodyRegionId == ' + TermExistInBodyRegionId)
.select();
var rectangle = scaleRectangle($scope.TermExistInBodyRegionData[0]._X, $scope.TermExistInBodyRegionData[0]._Y, $scope.TermExistInBodyRegionData[0]._Height, $scope.TermExistInBodyRegionData[0]._Width, $scope.TermExistInBodyRegionData[0]._MirrorValue,windowviewid);
$('#canvasDivDA_' + windowviewid).scrollTop(rectangle.scaledY);
$scope.isScrolledToHighlightedBR = true;
}
}
$scope.createTermListByPreviousTermsAndHighlight = function (windowviewid) {
var multiTermList = [];
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
angular.forEach(previousHighlightList, function (value, key) {
var ActualTermNo = $scope.getActualTermNumber(value, windowviewid);
if (ActualTermNo != null && ActualTermNo != undefined) {
var TermList = $scope.getTermNumberList(ActualTermNo,windowviewid);
if (TermList != null) {
for (var i = 0; i < TermList.length; i++) {
multiTermList.push(TermList[i]);
}
}
}
});
console.log('createTermListByPreviousTermsAndHighlight is called');
if ((multiTermList != undefined && multiTermList != null) && multiTermList.length > 0) {
$timeout(function () { $scope.HighlightBodyByTermList(multiTermList,windowviewid); }, 50);
}
else {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
}
$scope.GetRGBColor = function (maskCanvasContext, actulalX, actualY, x, y) {
var pixelData = maskCanvasContext.getImageData(Math.round(actulalX - x), Math.round(actualY - y), 1, 1);
pixelData.data[0] = pixelData.data[0] - 9;
pixelData.data[1] = pixelData.data[1] - 9;
pixelData.data[2] = pixelData.data[2] - 9;
var Red;
var Green;
var Blue;
var zero = "0";
if ((pixelData.data[0]).toString().length != 2) {
Red = zero.concat((pixelData.data[0]).toString())
}
else {
Red = (pixelData.data[0]).toString()
}
if ((pixelData.data[1]).toString().length != 2) {
Green = zero.concat((pixelData.data[1]).toString())
}
else {
Green = (pixelData.data[1]).toString()
}
if ((pixelData.data[2]).toString().length != 2) {
Blue = zero.concat((pixelData.data[2]).toString())
}
else {
Blue = (pixelData.data[2]).toString()
}
var RGBColor = (Red + Green + Blue);
return RGBColor;
}
//get annotation from term number
$scope.GetAnnotationText = function (termNumber,windowviewid) {
$scope.SetwindowStoreData(windowviewid,'TermAnnotationText',[]);
var annotationText;
var annotation = [];
//0
var figLeafTermNo = 5868; // to do declare constant for this
if (parseInt(termNumber) != parseInt(figLeafTermNo)) {
$scope.TermNumber = termNumber;
for (var j = 0; j <= $rootScope.lexiconLanguageArray.length - 1; j++) {
var TermNData=$scope.GetwindowStoreData(windowviewid,'TermNumberData');
if (TermNData != null || TermNData != undefined) {
$scope.matchedTermNoData = new jinqJs()
.from(TermNData.TermData.Term)
.where('_TermNumber == ' + termNumber)
.select();
if ($scope.matchedTermNoData != null || $scope.matchedTermNoData != undefined) {
//1.
var actualTermNo = 0;
for (var z = 0; z < $scope.matchedTermNoData.length; z++) {
//send actual term no to get the term text.
actualTermNo = $scope.matchedTermNoData[0]._ActualTermNumber;
annotationText = $scope.GetAnnotationBasedOnActualTermNo(actualTermNo, $rootScope.lexiconLanguageArray[j].language, windowviewid);
annotation.push(annotationText);
// $rootScope.annotationText.push(annotationText);
$scope.SetwindowStoreData(windowviewid,'TermAnnotationText',annotation);
$scope.SetwindowStoreData(windowviewid,'actualTermNumber',actualTermNo);
break;
};
//2.
}
else {
// send term no to vocab json data to get the text
}
}
else {
var currentBodyViewId = $scope.GetwindowStoreData(windowviewid,'voId');
var termJsonPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_tm_sg_' + currentBodyViewId + '.json';
DataService.getAnotherJson(termJsonPath)
.then(
function (result) {
$scope.SetwindowStoreData(windowviewid,'TermNumberData',result);
$scope.GetAnnotationText(termNumber,windowviewid);
})
}
}
}
return annotation;
}
$scope.GetAnnotationBasedOnActualTermNo = function (actualTermNo, language, windowviewid) {
// clear prev annotation
$scope.SetwindowStoreData(windowviewid,'TermAnnotationText',[]);
var Annotation;
var vocabTermDataArray = $scope.GetwindowStoreData(windowviewid, 'vocabTermDataArray');
for (var j = 0; j <= vocabTermDataArray.length - 1; j++) {
if (vocabTermDataArray[j].language == language) {
if (vocabTermDataArray[j].VocabTermData != null || vocabTermDataArray[j].VocabTermData != undefined) {
$scope.matchedActualTermData = new jinqJs()
.from(vocabTermDataArray[j].VocabTermData.VocabTerms.Term)
.where('_ActualTermNumber == ' + actualTermNo)
.select();
if ($scope.matchedActualTermData != null || $scope.matchedActualTermData != undefined) {
for (var z = 0; z <= $scope.matchedActualTermData.length; z++) {
//send actual term no to get the term text.
Annotation = $scope.matchedActualTermData[0]._TermText;
// alert("Annotation : " + Annotation);
break;
};
}
return Annotation;
}
else {
return null;
}
}
}
}
//layer change function
$scope.LayerChange = function (windowviewid) {
$scope.DisableUI();
$rootScope.CloseListManager();
$scope.isLayerChange = true;
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
//1.
$scope.terminateCurrentlyRunningWPs();
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
$scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
$scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft;
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
//crete temp canavs to store the original data which will be used to chnange the transparency
if (document.getElementById('tempCanvas_'+windowviewid) != null) {
$('#tempCanvas_'+windowviewid).remove();
}
var tempCanvas = document.createElement('canvas');
tempCanvas.id = 'tempCanvas_' + windowviewid;
$scope.tempCanvas = tempCanvas.id;
tempCanvas.height = $scope.transparencyCanvasHeight;
tempCanvas.width = $scope.transparencyCanvasWidth;
tempCanvas.style.position = "absolute";
tempCanvas.style.left = 200 + 'px';
tempCanvas.style.backgroundColor = "transparent";
tempCanvas.style.visibility = 'hidden';
if (document.getElementById("canvasDivDA_" + windowviewid) != null)
document.getElementById("canvasDivDA_" + windowviewid).appendChild(tempCanvas);
var tCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
var tCanvasContext = tCanvas.getContext('2d');
var tCanvasHeight = parseInt((tCanvas.style.height).replace('px', ''));
var tCanvasWidth = parseInt((tCanvas.style.width).replace('px', ''));
// var tCanvas = document.getElementById('transparencyCanvas');
if (tCanvas != null) {
clearTransCanvas(windowviewid);
}
var TransparencyBoxStartX = parseInt((tCanvas.style.left).replace('px', ''));
var TransparencyEndX = parseInt((tCanvas.style.left).replace('px', '')) + parseInt((tCanvas.style.width.replace('px', '')));
var TransparencyBoxStartY = parseInt((tCanvas.style.top).replace('px', ''));
var TransparencyBoxEndY = parseInt((tCanvas.style.top).replace('px', '')) + parseInt((tCanvas.style.height).replace('px', ''));
var transparencyBoxBottom = parseInt(TransparencyBoxStartY) + parseInt(tCanvasHeight);
var transparencyBoxRight = parseInt(TransparencyBoxStartX) + parseInt(tCanvasWidth);
// var BodyRegionDictionary = $rootScope.BodyRegionCordinatesData;
var BodyRegionDictionary = $scope.GetwindowStoreData(windowviewid,'BodyRegionCordinatesData');
$scope.transparencyDrawnRegions = [];
$scope.canThirdBRDrawn = false;
$.each(BodyRegionDictionary, function (index, value) {
if (value.bodyRegionId == '3') {
var BR_SixTBData = new jinqJs()
.from($scope.transparencyDrawnRegions)
.where('BRID == 6')
.select();
if (BR_SixTBData != null && BR_SixTBData != undefined && BR_SixTBData.length > 0) {
$scope.canThirdBRDrawn = true;
}
}
var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
if (TransparencyBoxStartX <= bodyRegionRight && value.X <= transparencyBoxRight && TransparencyBoxStartY <= bodyRegionBottom && value.Y <= transparencyBoxBottom) {
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
$scope.SetwindowStoreData(windowviewid,'layerNumber',parseInt($('#txtLayerNumberDA_' + windowviewid).val()));
if ((bodyVid == "9" || bodyVid == "11" || bodyVid == "2" || bodyVid == "3" || bodyVid == "6" || bodyVid == "7")) {
if (value.bodyRegionId == "6") {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, true, false, false, windowviewid);
}
else {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, true, false, false, windowviewid);
}
}
else {
if (value.bodyRegionId == '3' && $scope.canThirdBRDrawn == true) {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
}
else {
if (value.bodyRegionId == '3' && $scope.canThirdBRDrawn == false) {
//1. draw 6th
var BRSixData = new jinqJs()
.from(BodyRegionDictionary)
.where('bodyRegionId == 6')
.select();
var isMirror = BRSixData[0].IsMirror;
if (isMirror == 'Yes') {
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[0].bodyRegionId, BRSixData[0].Height, BRSixData[0].Width, BRSixData[0].X, BRSixData[0].Y, 'Yes', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
//draw non mirror arm
$scope.loadTransparencyImage(BRSixData[1].bodyRegionId, BRSixData[1].Height, BRSixData[1].Width, BRSixData[1].X, BRSixData[1].Y, 'No', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
//draw 3rd BR
$timeout(function () {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
}, 200);
}
else {
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[0].bodyRegionId, BRSixData[0].Height, BRSixData[0].Width, BRSixData[0].X, BRSixData[0].Y, 'No', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
//draw non mirror arm
$scope.loadTransparencyImage(BRSixData[1].bodyRegionId, BRSixData[1].Height, BRSixData[1].Width, BRSixData[1].X, BRSixData[1].Y, 'Yes', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
//draw 3rd BR
$timeout(function () {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
}, 200);
}
}
else {
var BR_SixTBData = new jinqJs()
.from($scope.transparencyDrawnRegions)
.where('BRID == 6')
.select();
if (value.bodyRegionId == "6" && BR_SixTBData != undefined && BR_SixTBData != null && BR_SixTBData.length > 0) { }
else
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, true, false, false, windowviewid);
}
}
}
}
else {
$scope.EnableUI();
}
})
}
else {
//1. Dated:13-07-2016 Issue #4965 : The layer number should not extend beyond its level through layer text box.
var dataLength = $scope.GetwindowStoreData(windowviewid,'BodyLayerData').Layers.DataLayer.length-1;
if (parseInt($('#txtLayerNumberDA_' + windowviewid).val()) > (dataLength)) {
$('#txtLayerNumberDA_' + windowviewid).val(dataLength);
$scope.SetwindowStoreData(windowviewid,'currentLayerNumber',parseInt(dataLength));
$scope.SetwindowStoreData(windowviewid,'layerNumber',parseInt(dataLength));
}
else
{
$scope.SetwindowStoreData(windowviewid,'currentLayerNumber',parseInt($('#txtLayerNumberDA_' + windowviewid).val()));
}
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var canDiv = document.getElementById('canvasDivDA_' + windowviewid);
var canDivChildCount = canDiv.childElementCount;
if (canDivChildCount > 0) {
canDiv.innerHTML = '';
}
//2.
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.CalculateImageCordinates(viewOrientationId,windowviewid);
//3.
$("#canvasDivDA_" + windowviewid).scrollLeft($scope.imageHorizontlScrollPosition)
$("#canvasDivDA_" + windowviewid).scrollTop($scope.imageVerticalScrollPosition)
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
if (isHighlightBodyByBodySystem) {
$timeout(function () { $scope.DisableProgressBar(windowviewid) }, 2000);
}
else {
$timeout(function () { $scope.DisableProgressBar(windowviewid) }, 2000);
}
}
var totalayer=$scope.GetwindowStoreData(windowviewid,'totalLayers');
var nlayer=$scope.GetwindowStoreData(windowviewid,'layerNumber');
var sliderVal = parseInt(totalayer) - parseInt(nlayer);
console.log('inside CalculateImageCordinates. document.getElementById layerChangeSlider value : ' + document.getElementById('layerChangeSlider') + '$rootScope.totalLayers: ' + totalayer + '- parseInt($scope.layerNumber) ' + nlayer + 'set value: ' + sliderVal);
$("#layerChangeSliderDA_" + windowviewid).slider("option", "value", sliderVal);
// Annotations Closing Code
$('.com_anno_'+windowviewid).remove();
$('#sppeachBubble_annotation_'+windowviewid).remove();
$('#dot_annotation_'+windowviewid).remove();
$('#bord_annotation_'+windowviewid).remove();
$('#dot_'+windowviewid).remove();
$('#sppeachBubble_'+windowviewid).remove();
$('.com_'+windowviewid).remove();
$('#bord_'+windowviewid).remove();
if (($("#canvasPaintDA_"+windowviewid).css("display") == "block") && ($("#canvasDA_"+windowviewid).css("display") == "block")) {
if ($rootScope.isAnnotatiomToolBarPopupActive == false) {
if ($('#transparencyScale_' + windowviewid).css("display") == "block") {
$rootScope.switchToTransparencycanvas();
}
}
else {
if ($("#OnIdentify").hasClass("annotationtoolbartab")) {
$rootScope.switchToTransparencycanvas();
}
else {
$('.btnCursor').addClass('activebtncolor');
$rootScope.switchCanvas();
}
}
}
else {
if ($rootScope.isAnnotatiomToolBarPopupActive == true) {
$rootScope.CloseAnnotationTool();
}
}
}
$scope.DisableProgressBar = function (windowviewid) {
if ($scope.GetwindowStoreData(windowviewid,'isHighLight')) {
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
if (!$("#btnNormalMode_" + windowviewid).hasClass("btn-black")) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if (!$("#btnExtract_" + windowviewid).hasClass("btn-black")) {
$("#btnExtract_" + windowviewid).addClass("btn-black");
}
if ($("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
}
console.log('highLightBody call from DisableProgressBar')
// $scope.highLightBody();
}
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
$('layerChangeSlider').slider().on('slideStop', function (ev) {
var newVal = $('.span2').data('slider').getValue();
if (originalVal != newVal) {
}
});
$scope.getMousePos = function (pageX,pageY,windowviewid) {
return {
x: Math.round(pageX - $('#canvasDivDA_' + windowviewid).offset().left),
y: Math.round(pageY - $('#canvasDivDA_' + windowviewid).offset().top)
}
}
$scope.createDynamicSpeechBubble = function (event, x, y, isAnnotationNotForTBox, tipx, tipy,windowviewid) {
if (isAnnotationNotForTBox == true) {
if ($scope.MultiLanguageAnnationArray.length > 1) {
$scope.longestAnnotation = $scope.MultiLanguageAnnationArray.reduce(function (firstAnnotation, seconAnnotation) { return firstAnnotation.length > seconAnnotation.length ? firstAnnotation : seconAnnotation; });
}
else {
$scope.longestAnnotation = $scope.MultiLanguageAnnationArray[0];
}
//1. In transparency box we shows two annotation at a time, so we need to decide the max length of annotation in btween two annotation because based on that
// we decide the size of speech bubble
//2.
if (event.ctrlKey || event == "CBAnnotation") {
console.log('ctrl pressed');
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',true);
//2.1 create unique speech bubbles
var speechBubbleCounter=$scope.GetwindowStoreData(windowviewid,'speechBubbleCounter');
speechBubbleCounter = speechBubbleCounter + 1;
$scope.SetwindowStoreData(windowviewid,'speechBubbleCounter',speechBubbleCounter);
var id = "speechBubble" + speechBubbleCounter+'_'+windowviewid;
//2.2 Get clicked locationa and find if it is already clicked earlier too on same location
var pointClicked = parseInt(x) + parseInt(y);
var isClickedOnSamePoint = $('#canvasDivDA_' + windowviewid).find("div[id=" + pointClicked + "]").length;
console.log('isClickedOnSamePoint: ' + isClickedOnSamePoint);
// if user has not clciked on smae point then create speech bubble otherwise not
if (isClickedOnSamePoint == 0) {
console.log('not clicked on same point')
$scope.createSpeechBubbleBasedOnAnnotationLength(pointClicked, x, y, id, tipx, tipy,windowviewid,speechBubbleCounter);
$scope.speechbubbleList.push({ xaxis: x, yaxis: y, ids: id });
}
$('.appendDragg').draggable({
drag: function (evt) {
var windid = (evt.target.id).split("_")[1];
$(this).prev('div').css("display", "none");
var bor_id = $(this).next('div').attr('id');
var sub_id1 = $(this).attr('id');
var canvasDiv = document.getElementById('canvasDivDA_' + windid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
if ( $scope.speechbubbleList != null || $scope.speechbubbleList != undefined) {
for (var m = 0; m <= $scope.speechbubbleList.length - 1; m++) {
if ( $scope.speechbubbleList[m].ids == sub_id1) {
$scope.angle1( $scope.speechbubbleList[m].xaxis, $scope.speechbubbleList[m].yaxis, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windid).offset().top, bor_id);
break;
}
}
}
},
});
$('.dynCross_'+windowviewid).on('click', function (evt) {
if ( $scope.speechbubbleList != null || $scope.speechbubbleList != undefined) {
var removeid=$(this).parent().parent().attr('id');
for (var m = 0; m <= $scope.speechbubbleList.length - 1; m++) {
if ( $scope.speechbubbleList[m].ids == removeid) {
$scope.speechbubbleList.splice(m, 1);
break;
}
}
}
$(this).parent().parent().parent().remove();
});
}
else {
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',false);
//history maintained issue
if ($rootScope.isAnnotaionToolBarDrawingModeActive == false) {
$('#sppeachBubble_'+windowviewid).remove();
$('#dot_'+windowviewid).remove();
}
$('.com_'+windowviewid).remove();
$('#bord_'+windowviewid).remove();
$scope.createSpeechBubbleBasedOnAnnotationLengthwithoutCtrl(x, y,windowviewid);
//history maintained issue
if ($rootScope.isAnnotaionToolBarDrawingModeActive == false) { document.getElementById('sppeachBubble_'+windowviewid).style.zIndex = "60000"; }
$('#sppeachBubble_'+windowviewid).draggable(
{
drag: function (evt) {
var windid = (evt.target.id).split("_")[1];
$('#dot_'+windid).css("visibility", "hidden");
var canvasDiv = document.getElementById('canvasDivDA_' + windid)
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
$scope.angle(x, y, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windid).offset().top, true,windid);
},
});
$('#crossDiv_'+windowviewid).on('click', function (evt) {
var windid = (evt.target.id).split("_")[1];
$('#sppeachBubble_'+windid).remove();
$('#bord_'+windowviewid).remove();
$('#dot_'+windid).remove();
});
}
}
else {
$scope.longest_annotationT1 = $scope.annotationTextArrayT1.reduce(function (a, b) { return a.length > b.length ? a : b; });
$scope.longest_annotationT2 = $scope.annotationTextArrayT2.reduce(function (a, b) { return a.length > b.length ? a : b; });
if (event.ctrlKey) {
var TPspeechBubbleCounter=$scope.GetwindowStoreData(windowviewid,'TPspeechBubbleCounter');
TPspeechBubbleCounter = TPspeechBubbleCounter + 1;
$scope.SetwindowStoreData(windowviewid,'TPspeechBubbleCounter',TPspeechBubbleCounter);
var sub_id_annotation = "black_annotation" + TPspeechBubbleCounter+"_"+windowviewid;
var pointClicked_annotation = parseInt(x) + parseInt(y);
var Exists_annotation = $('#canvasDivDA_' + windowviewid).find("div[id=" + pointClicked_annotation + "]").length;
$scope.createSpeechBubbleBasedOnTransparencyWithCtrl(pointClicked_annotation, Exists_annotation, x, y, sub_id_annotation,windowviewid,TPspeechBubbleCounter);
$scope.speechbubbleList.push({ xaxis: x, yaxis: y, ids: sub_id_annotation });
$scope.SetwindowStoreData(windowviewid,'speachBubbleArrayAnnotation',$scope.speechList1);
$('.appendDragg_annotation').draggable({
drag: function (evt) {
var windid = (evt.target.id).split("_")[2];
$(this).prev('div').css("display", "none");
var bor_id_anno = $(this).next('div').attr('id');
var sub_id1_anno = $(this).attr('id');
var canvasDiv = document.getElementById('canvasDivDA_' + windid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
if ( $scope.speechbubbleList != null || $scope.speechbubbleList != undefined) {
for (var m = 0; m <= $scope.speechbubbleList.length - 1; m++) {
if ( $scope.speechbubbleList[m].ids == sub_id1_anno) {
$scope.angle1( $scope.speechbubbleList[m].xaxis, $scope.speechbubbleList[m].yaxis, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windid).offset().top, bor_id_anno);
break;
}
}
}
},
});
$('.dynCross_anno_'+windowviewid).on('click', function (evt) {
if ( $scope.speechbubbleList != null || $scope.speechbubbleList != undefined) {
var removeid=$(this).parent().parent().attr('id');
for (var m = 0; m <= $scope.speechbubbleList.length - 1; m++) {
if ( $scope.speechbubbleList[m].ids == removeid) {
$scope.speechbubbleList.splice(m, 1);
break;
}
}
}
$(this).parent().parent().parent().remove();
});
}
else {
$scope.SetwindowStoreData(windowviewid,'multiAnnotationIsON',false);
$('#bord_annotation_'+windowviewid).css({ "width": "0px", "display": "none" });
$('.dynCross_anno_'+windowviewid).parent().parent().parent().remove();
$scope.createSpeechBubbleBasedOnTransparencyWithoutCtrl(x, y,windowviewid);
$('#sppeachBubble_annotation_'+windowviewid).draggable(
{
drag: function (evt) {
var windid = (evt.target.id).split("_")[2];
$('#dot_annotation_'+windid).remove();
var canvasDiv = document.getElementById('canvasDivDA_' + windid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
$scope.angle(x, y, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windid).offset().top, false,windid);
},
});
$('.crossDiv_annotation_'+windowviewid).on('click', function (evt) {
var windid = (evt.target.className).split("_")[2];
$('#sppeachBubble_annotation_'+windid).remove();
$('#bord_annotation_'+windid).remove();
$('#dot_annotation_'+windid).remove();
});
}
}
if (document.getElementById('btnStrutureBox_'+windowviewid).name == "showAnnotationStructure") {
$scope.showAnnotation(windowviewid)
}
else {
$scope.hideAnnotation(windowviewid)
}
if ($rootScope.isTBCompleted == true) {
$('#sppeachBubble_'+windowviewid).remove();
$('#dot_'+windowviewid).remove();
$('#bord_'+windowviewid).remove();
$('.com_'+windowviewid).remove();
$rootScope.isTBCompleted = false;
}
}
$scope.showAnnotation = function (windowviewid) {
$('.com_'+windowviewid).show();
$('#dot_'+windowviewid).show();
$('#bord_'+windowviewid).show();
$('#sppeachBubble_'+windowviewid).show();
$('#sppeachBubble_annotation_'+windowviewid).show();
$('#bord_annotation_'+windowviewid).show();
$('#dot_annotation_'+windowviewid).show();
$('.dynCross_anno_'+windowviewid).parent().parent().parent().show();
}
$scope.hideAnnotation = function (windowviewid) {
$('.com_'+windowviewid).hide();
$('#dot_'+windowviewid).hide();
$('#bord_'+windowviewid).hide();
$('#sppeachBubble_'+windowviewid).hide();
$('#sppeachBubble_annotation_'+windowviewid).hide();
$('#bord_annotation_'+windowviewid).hide();
$('#dot_annotation_'+windowviewid).hide();
$('.dynCross_anno_'+windowviewid).parent().parent().parent().hide();
}
$scope.createSpeechBubbleBasedOnAnnotationLength = function (pointClicked, x, y, id, tipx, tipy,windowviewid,speechBubbleCounter) {
var isHighlightBodyWithCBTermData=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData');
if (isHighlightBodyWithCBTermData == true) {
var sppechBubbleHTML = "
";
}
else {
var sppechBubbleHTML = "
";
}
//Issue #7286 :Undefined annotation should not appear
for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
var annotation = $scope.MultiLanguageAnnationArray[i];
}
if (annotation == undefined) {
console.log("No text found");
} else {
$("#canvasDivDA_" + windowviewid).append(sppechBubbleHTML);
for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
var annotation = $scope.MultiLanguageAnnationArray[i];
$("#" + id).append("
';
//Issue #7286 :Undefined annotation should not appear
for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
var MultipleLanguage = $scope.MultiLanguageAnnationArray[i];
}
if (MultipleLanguage == undefined) {
console.log("No text is found");
} else {
$('#canvasDivDA_' + windowviewid).append(sppechBubbleDotHTML);
if ($scope.MultiLanguageAnnationArray.length > 0) {
for (var i = 0; i <= $scope.MultiLanguageAnnationArray.length - 1; i++) {
var MultipleLanguage = $scope.MultiLanguageAnnationArray[i];
$('#sppeachBubble_'+windowviewid).append("
';
$('#sppeachBubble_annotation_'+windowviewid).css("height", "auto");
if ($scope.longest_annotationT1.length > $scope.longest_annotationT2.length) {
$('#sppeachBubble_annotation_'+windowviewid+" p").remove();
$('#canvasDivDA_' + windowviewid).append(sppechBubbleDotHTML_annotation);
for (var l = 0; l <= $scope.annotationTextArrayT1.length - 1; l++) {
var MultipleLang_annotation_T1 = $scope.annotationTextArrayT1[l];
$('#sppeachBubble_annotation_'+windowviewid).append("
" + MultipleLang_annotation_T1 + "
");
}
$('#sppeachBubble_annotation_'+windowviewid).append("");
for (var k = 0; k <= $scope.annotationTextArrayT2.length - 1; k++) {
var MultipleLang_annotation_T2 = $scope.annotationTextArrayT2[k];
$('#sppeachBubble_annotation_'+windowviewid).append("
");
}
$('#sppeachBubble_annotation_'+windowviewid).append("");
for (var k = 0; k <= $scope.annotationTextArrayT2.length - 1; k++) {
var MultipleLang_annotation_T2 = $scope.annotationTextArrayT2[k];
$('#sppeachBubble_annotation_'+windowviewid).append("
" + MultipleLang_annotation_T2 + "
");
}
if ($scope.longest_annotationT2.length <= 10) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "100px");
}
else if ($scope.longest_annotationT2.length > 10 && $scope.longest_annotationT2.length <= 17) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "140px");
}
else if ($scope.longest_annotationT2.length > 17 && $scope.longest_annotationT2.length <= 26) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "195px");
}
else if ($scope.longest_annotationT2.length > 26 && $scope.longest_annotationT2.length <= 34) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "248px");
}
else if ($scope.longest_annotationT2.length > 34 && $scope.longest_annotationT2.length <= 44) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "300px");
}
else if ($scope.longest_annotationT2.length > 44 && $scope.longest_annotationT2.length <= 54) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "370px");
}
else if ($scope.longest_annotationT2.length > 54 && $scope.longest_annotationT2.length <= 69) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "450px");
}
else if ($scope.longest_annotationT2.length > 69 && $scope.longest_annotationT2.length <= 75) {
$('#sppeachBubble_annotation_'+windowviewid).css("width", "510px");
}
else {
$('#sppeachBubble_annotation_'+windowviewid).css("width", ($scope.longest_annotationT2.length) + "%");
}
}
var Globe = [];
Globe.push({ currentX: x, currentY: y });
document.getElementById('dot_annotation_'+windowviewid).style.display = 'block';
document.getElementById('dot_annotation_'+windowviewid).style.left = ((Globe[0].currentX) - 10) + 'px';
document.getElementById('dot_annotation_'+windowviewid).style.top = ((Globe[0].currentY) + 10) + 'px';
document.getElementById('bord_annotation_'+windowviewid).style.display = 'block';
document.getElementById('bord_annotation_'+windowviewid).style.left = ((Globe[0].currentX) - 2) + 'px';
document.getElementById('bord_annotation_'+windowviewid).style.top = ((Globe[0].currentY) + 1) + 'px';
document.getElementById('sppeachBubble_annotation_'+windowviewid).style.display = 'block';
document.getElementById('sppeachBubble_annotation_'+windowviewid).style.left = (Globe[0].currentX) + 'px';
document.getElementById('sppeachBubble_annotation_'+windowviewid).style.top = (Globe[0].currentY) + 'px';
}
$scope.angle1 = function (cx1, cy1, ex1, ey1, id) {
// console.log(cx1 + " " + cy1);
var dy = ey1 - cy1;
var dx = ex1 - cx1;
var theta = 0;
if (dx < 0) {
theta = Math.atan(dy / dx) * (180 / Math.PI);
theta = theta + 180;
}
else if (dy < 0) {
theta = Math.atan(dy / dx) * (180 / Math.PI);
theta = theta + 360;
}
else {
theta = Math.atan(dy / dx) * (180 / Math.PI);
}
var g = Math.sqrt((cx1 - ex1) * (cx1 - ex1) + (cy1 - ey1) * (cy1 - ey1));
var e = cy1;
var f = cx1;
$('#' + id).css({ 'display': 'block', 'width': g + '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%' });
}
function myFunction(crossId) {
$('#' + crossId).parent().parent().parent().css("display", "none");
}
$scope.angle = function (cx, cy, ex, ey, BoolValues,windowviewid) {
var dy = ey - cy;
var dx = ex - cx;
var theta = 0;
if (dx < 0) {
theta = Math.atan(dy / dx) * (180 / Math.PI);
theta = theta + 180;
}
else if (dy < 0) {
theta = Math.atan(dy / dx) * (180 / Math.PI);
theta = theta + 360;
}
else {
theta = Math.atan(dy / dx) * (180 / Math.PI);
}
var d = Math.sqrt((cx - ex) * (cx - ex) + (cy - ey) * (cy - ey));
var e = cy;
var f = cx;
if (BoolValues == true) {
$('#bord_'+windowviewid).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%' });
}
else {
$('#bord_annotation_'+windowviewid).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%' });
}
}
$scope.createTransparencyBox = function (windowviewid) {
$scope.SetwindowStoreData(windowviewid,'isTransparencyBtnClicked',true);
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
//do not create TBOX if in extarct mode otherwise create
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == false) {
$("#btnExtract_" + windowviewid).addClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "none");
//if listanager is visisble then close it
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$rootScope.CloseListManager();
$('#btnTranparency_' + windowviewid).addClass('tButtonActive');
$('#btnIdentify_' + windowviewid).removeClass(' btn-primary');
$('#btnIdentify_' + windowviewid).addClass('btn-black');
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
$scope.verticalScrollPosition = canvasDiv.scrollTop;
$scope.horizontlScrollPosition = canvasDiv.scrollLeft;
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
canvasDiv.addEventListener("touchstart", mouseDownListener);
canvasDiv.addEventListener("touchmove", mouseMoveListener);
canvasDiv.addEventListener("touchend", mouseUpListener);
canvasDiv.addEventListener("mousedown", mouseDownListener);
canvasDiv.addEventListener("mousemove", mouseMoveListener);
canvasDiv.addEventListener("mouseup", mouseUpListener);
}
else {
// console.log("extract button is active");
}
//in case of annotation toolbar is open below code will be executed to draw Tbox
if ($rootScope.isAnnotationWindowOpen == true) {
if ($rootScope.isAnnotaionToolBarDrawingModeActive == true) {
$rootScope.DrawingMode();
$rootScope.shapeType = "";
$(".btn-annotation").removeClass("activebtncolor");
$("#annotationpaintbrushsize").removeClass("activebtncolor");
$("#annotationpainteraser").removeClass("activebtncolor");
}
else {
$rootScope.switchCanvas();
}
}
}
function mouseDownListener(e) {
var windowviewid = (e.currentTarget.id).split("_")[1];
e.preventDefault();
//to prevent screen scroll on ipad while drawing TB
e.preventDefault();
//Dated:18-07-2016 Issue#4975: Transparency box should not be clickable if it is already selected.
var tCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
if ($('#transparencyScale_' + windowviewid).css("visibility") == 'visible') {
$('#transparencyScale_' + windowviewid).css('visibility', 'hidden');
$('#transparencyCanvas_' + windowviewid).remove();
}
var $container = document.getElementById("canvasDivDA_" + windowviewid);
var $selection = $('
').addClass('rectangle');
document.getElementById("daViewDA_" + windowviewid)
$selection.css({
'position': 'absolute',
//'background': 'transparent',
'border': '1px dotted #000'
});
var currentMousePosition = $scope.getMousePos(e.pageX,e.pageY,windowviewid);
$scope.TBDrawStartX = currentMousePosition.x;
$scope.TBDrawStartY = currentMousePosition.y;
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
$scope.verticalScrollPosition = canvasDiv.scrollTop;
$scope.horizontlScrollPosition = canvasDiv.scrollLeft;
var actulalX = currentMousePosition.x + $scope.horizontlScrollPosition
var actualY = currentMousePosition.y + $scope.verticalScrollPosition
$scope.TransparencyBoxStartX = actulalX;
$scope.TransparencyBoxStartY = actualY
$scope.startX = actulalX;
$scope.startY = actualY;
var tBox = document.getElementById('transparencyCanvas_' + windowviewid);
if (tBox == null) {
//// canvasDiv.style.cursor = "crosshair";
$selection.css({
'top': actualY,
'left': actulalX,
'width': 0,
'height': 0,
'z-index': 1000
});
$selection.appendTo($container);
}
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("mousedown", mouseDownListener);
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("touchstart", mouseDownListener);
var currentlayer=$scope.GetwindowStoreData(windowviewid,'currentLayerNumber');
//Dated:19-07-2016 Issue#4975: Transparency box should not be clickable if it is already selected.
if ($('#txtLayerNumberDA_' + windowviewid).val() != 0 && currentlayer != undefined) {
var totalayer=$scope.GetwindowStoreData(windowviewid,'totalLayers');
var sliderVal = parseInt(totalayer) - parseInt(currentlayer);
console.log('inside mouseDownListener. document.getElementById layerChangeSlider value : ' + document.getElementById('layerChangeSlider') + '$rootScope.totalLayers: ' + totalayer + ' - $rootScope.currentLayerNumber: ' + currentlayer + ' = set value for layerChangeSlider: ' + sliderVal);
$("#layerChangeSliderDA_" + windowviewid).slider("option", "value", sliderVal);
$('#txtLayerNumberDA_' + windowviewid).val(parseInt(currentlayer));
}
}
function mouseMoveListener(e) {
var windowviewid = (e.currentTarget.id).split("_")[1];
e.preventDefault();
//to prevent screen scroll on ipad while drawing TB
e.preventDefault();
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
$scope.verticalScrollPosition = canvasDiv.scrollTop;
$scope.horizontlScrollPosition = canvasDiv.scrollLeft;
var currentMousePosition = $scope.getMousePos(e.pageX,e.pageY,windowviewid);
var move_x = currentMousePosition.x + $scope.horizontlScrollPosition,
move_y = currentMousePosition.y + $scope.verticalScrollPosition,
width = move_x - $scope.TransparencyBoxStartX,
height = move_y - $scope.TransparencyBoxStartY,
new_x, new_y;
new_x = (move_x < $scope.TransparencyBoxStartX) ? ($scope.TransparencyBoxStartX - width) : $scope.TransparencyBoxStartX;
new_y = (move_y < $scope.TransparencyBoxStartY) ? ($scope.TransparencyBoxStartY - height) : $scope.TransparencyBoxStartY;
$('.rectangle').css({
'width': width,
'height': height,
//'background': 'transparent'
});
}
function mouseUpListener(e) {
var windowviewid = (event.currentTarget.id).split("_")[1];
e.preventDefault();
//to prevent screen scroll on ipad while drawing TB
e.preventDefault();
$scope.SetwindowStoreData(windowviewid,'isTBDrawnOnBodyRegion',false);
$('.com_'+windowviewid).remove();
$('#dot_'+windowviewid).remove();
$('#bord_'+windowviewid).remove();
$('#sppeachBubble_'+windowviewid).remove();
var previewRectangleWidth = $('.rectangle').width();
var previewRectangleHeight = $('.rectangle').height()
$scope.SetwindowStoreData(windowviewid,'currentLayerNumber',parseInt($('#txtLayerNumberDA_' + windowviewid).val()));
$('.rectangle').remove();
var currentMousePosition = $scope.getMousePos(e.pageX,e.pageY,windowviewid);
var canavsDivScrollPos = $scope.getCanavsDivScrollPosition(windowviewid);
var TransparencyEndX = currentMousePosition.x + canavsDivScrollPos.horizontlScrollPosition;
var TransparencyBoxEndY = currentMousePosition.y + canavsDivScrollPos.verticalScrollPosition;
$scope.isTboxDrwan = true;
$scope.TbEndX = TransparencyEndX;
$scope.TbEndY = TransparencyBoxEndY;
$scope.TransparencyEndX = TransparencyEndX;
$scope.TransparencyBoxEndY = TransparencyBoxEndY;
if ($scope.TransparencyBoxStartX == $scope.TransparencyEndX && $scope.TransparencyBoxStartY == $scope.TransparencyBoxEndY) {
} else {
if (previewRectangleWidth == 0 && previewRectangleHeight == 0) {
}
else {
$scope.DisableUI();
$scope.SetwindowStoreData(windowviewid,'layerNumberBeforeTBDraw',parseInt($('#txtLayerNumberDA_' + windowviewid).val()));
//draw temp box to store the canvas data with original transparecy
if (document.getElementById('tempCanvas_' + windowviewid) != null) {
$('#tempCanvas_' + windowviewid).remove();
}
if (document.getElementById('tempCanvas_'+ windowviewid) == null || document.getElementById('tempCanvas_'+ windowviewid) == undefined) {
var tempCanvas = document.createElement('canvas');
tempCanvas.id = 'tempCanvas_' + windowviewid;
tempCanvas.height = TransparencyBoxEndY - $scope.startY;
tempCanvas.width = TransparencyEndX - $scope.startX;
tempCanvas.style.position = "absolute";
tempCanvas.style.left = 200 + 'px';
tempCanvas.style.top = 200 + 'px';
tempCanvas.style.backgroundColor = "transparent";
tempCanvas.style.visibility = 'hidden';
tempCanvas.style.border = "black 1px solid";
document.getElementById("canvasDivDA_" + windowviewid).appendChild(tempCanvas);
}
$scope.SetwindowStoreData(windowviewid,'isTransparencyActivated',true);
$scope.SetwindowStoreData(windowviewid,'isTransparencyBtnClicked',false);
var BodyRegionDictionary = $scope.GetwindowStoreData(windowviewid,'BodyRegionCordinatesData');
$scope.IncludedBodyRegions = [];
$scope.transparencyDrawnRegions = [];
$scope.canThirdBRDrawn = false;
$.each(BodyRegionDictionary, function (index, value) {
var tBoxDimesions = $scope.getTBoxDimesions($scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, value.X, value.Y, value.Height, value.Width);
var transparencyBoxHeight = tBoxDimesions.transparencyBoxHeight;
var transparencyBoxWidth = tBoxDimesions.transparencyBoxWidth;
var transparencyBoxBottom = tBoxDimesions.transparencyBoxBottom;
var transparencyBoxRight = tBoxDimesions.transparencyBoxRight;
var bodyRegionRight = tBoxDimesions.bodyRegionRight;
var bodyRegionBottom = tBoxDimesions.bodyRegionBottom;
var transparencyCanvas = document.createElement('canvas');
var tBox = document.getElementById('transparencyCanvas_'+ windowviewid);
if (tBox == null) {
transparencyCanvas.id = 'transparencyCanvas_'+ windowviewid;
$scope.transparencyCanvasId = transparencyCanvas.id;
transparencyCanvas.height = TransparencyBoxEndY - $scope.startY;
transparencyCanvas.width = TransparencyEndX - $scope.startX;
transparencyCanvas.style.position = "absolute";
transparencyCanvas.style.left = $scope.startX + 'px' // x + "px";
transparencyCanvas.style.top = $scope.startY + "px"//y + "px";
transparencyCanvas.style.border = "black 1px solid";
transparencyCanvas.style.backgroundColor = "transparent";
transparencyCanvas.style.zIndex = 200;
document.getElementById("canvasDivDA_" + windowviewid).appendChild(transparencyCanvas);
$scope.transparencyChangeCounter = 0;
$('#transparencyCanvas_' + windowviewid).resizable({ handles: "e,s,se,w,n,ne,nw,sw", stop: function (event, ui) { resizeTransparencyBox(windowviewid); }, start: function (event, ui) { clearTransCanvas(windowviewid); } });
$scope.transparencyCanvasHeight = transparencyCanvas.height;
$scope.transparencyCanvasWidth = transparencyCanvas.width;
//bind click listener
transparencyCanvas.addEventListener('click', TransparencyCanvasClickListener);
$(".ui-wrapper").css("z-index", $scope.GetwindowStoreData(windowviewid,'UIWrapperZIndex'));
}
if ($scope.TransparencyBoxStartX <= bodyRegionRight && value.X <= transparencyBoxRight && $scope.TransparencyBoxStartY <= bodyRegionBottom && value.Y <= transparencyBoxBottom) {
$scope.SetwindowStoreData(windowviewid,'isTBDrawnOnBodyRegion',true);
if (value.bodyRegionId == '3') {
var BR_SixTBData = new jinqJs()
.from($scope.transparencyDrawnRegions)
.where('BRID == 6')
.select();
if (BR_SixTBData != null && BR_SixTBData != undefined && BR_SixTBData.length > 0) {
$scope.canThirdBRDrawn = true;
}
}
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
if (bodyVid == "9" || bodyVid == "11" || bodyVid == "2" || bodyVid == "3" || bodyVid == "6" || bodyVid == "7") {
if (value.bodyRegionId == "6") {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
}
else {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
}
}
else {
if (value.bodyRegionId == '3' && $scope.canThirdBRDrawn == true) {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
}
else {
if (value.bodyRegionId == '3' && $scope.canThirdBRDrawn == false) {
//1. draw 6th
var BRSixData = new jinqJs()
.from(BodyRegionDictionary)
.where('bodyRegionId == 6')
.select();
var isMirror = BRSixData[0].IsMirror;
if (isMirror == 'Yes') {
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[0].bodyRegionId, BRSixData[0].Height, BRSixData[0].Width, BRSixData[0].X, BRSixData[0].Y, 'Yes', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
//draw non mirror arm
$scope.loadTransparencyImage(BRSixData[1].bodyRegionId, BRSixData[1].Height, BRSixData[1].Width, BRSixData[1].X, BRSixData[1].Y, 'No', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
//draw 3rd BR
$timeout(function () {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
}, 200);
}
else {
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[0].bodyRegionId, BRSixData[0].Height, BRSixData[0].Width, BRSixData[0].X, BRSixData[0].Y, 'No', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[1].bodyRegionId, BRSixData[1].Height, BRSixData[1].Width, BRSixData[1].X, BRSixData[1].Y, 'Yes', $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
//draw mirror arm
$timeout(function () {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
}, 200);
}
}
else {
var BR_SixTBData = new jinqJs()
.from($scope.transparencyDrawnRegions)
.where('BRID == 6')
.select();
if (value.bodyRegionId == "6" && BR_SixTBData != undefined && BR_SixTBData != null && BR_SixTBData.length > 0) { }
else
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false, false, windowviewid);
}
}
}
}
else {
//when user draw TB outside body than no bodyRegion
//is covred and nothing is drawn so the function is not called in which we are enabling UI
$scope.EnableUI();
}
})
//for modesty
var modestyImageInfo=$scope.GetwindowStoreData(windowviewid,'modestyImageInfo');
if (modestyImageInfo.length > 0) {
$.each(modestyImageInfo, function (index, value) {
var tBoxDimesions = $scope.getTBoxDimesions($scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, value.x, value.y, value.Height, value.Width);
var transparencyBoxHeight = tBoxDimesions.transparencyBoxHeight;
var transparencyBoxWidth = tBoxDimesions.transparencyBoxWidth;
var transparencyBoxBottom = tBoxDimesions.transparencyBoxBottom;
var transparencyBoxRight = tBoxDimesions.transparencyBoxRight;
var bodyRegionRight = tBoxDimesions.bodyRegionRight;
var bodyRegionBottom = tBoxDimesions.bodyRegionBottom;
if ($scope.TransparencyBoxStartX <= bodyRegionRight && value.x <= transparencyBoxRight && $scope.TransparencyBoxStartY <= bodyRegionBottom && value.y <= transparencyBoxBottom) {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.x, value.y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false,false, windowviewid);
}
})
}
//
// $('#transparencyScale').modal('show');
$('#transparencyScale_' + windowviewid).css('position', 'fixed')
$('#transparencyScale_' + windowviewid).css('top', $scope.TBDrawStartY - 10)
$('#transparencyScale_' + windowviewid).css('left', $scope.TBDrawStartX + 130)
$('#transparencyScale_' + windowviewid).css('visibility', 'visible')
$('#transparencyScale_' + windowviewid).css("z-index", "100000") //Dated:16-07-2016 Issue#4962:Transparency box should be on top.
$("#tbSlider_" + windowviewid + " .ui-slider-range-min").css("width", "100%");
$("#tbSlider_" + windowviewid + " .ui-slider-handle").css("left", "100%");
}
}
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("mousedown", mouseDownListener);
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("mousemove", mouseMoveListener);
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("mouseup", mouseUpListener);
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("touchstart", mouseDownListener);
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("touchmove", mouseMoveListener);
document.getElementById("canvasDivDA_" + windowviewid).removeEventListener("touchend", mouseUpListener);
$('#btnTranparency_' + windowviewid).removeClass('btn-black');
$('#btnTranparency_' + windowviewid).addClass('tButtonActive');
//Dated:18-07-2016 Issue#4975: Transparency box should not be clickable if it is already selected.
$('#btnTranparency_' + windowviewid).removeClass('tButtonActive');
$('#btnTranparency_' + windowviewid).addClass('btn-black');
$('#btnIdentify_' + windowviewid).removeClass('btn-black');
$('#btnIdentify_' + windowviewid).addClass('btn-primary');
// clear canvas before drawing transparency box
if ($rootScope.isAnnotationWindowOpen == true) {
$('#canvasDA_'+windowviewid).removeLayers();
var paintCanvasObj = document.getElementById("canvasPaintDA_"+windowviewid);
if (paintCanvasObj != null) {
var ctx = paintCanvasObj.getContext("2d");
ctx.clearRect(0, 0, 2277, 3248);
}
var sktch = $("#canvasPaintDA_"+windowviewid).sketch();
$("#canvasPaintDA_"+windowviewid).sketch().actions = [];
$("#annotationpaintbrushsize").removeClass("activebtncolor");
$("#annotationpainteraser").removeClass("activebtncolor");
if ($("#DrawMode").hasClass("annotationtoolbartab")) {
if ($scope.GetwindowStoreData(windowviewid,'isTBoxModestyVisible') == true) {
$rootScope.switchCanvas();
}
else {
var drawCanvasZindex = $('#canvasDA_'+windowviewid).css("z-index");
var paintCanvasZindex = $("#canvasPaintDA_"+windowviewid).css("z-index");
drawCanvasZindex = parseInt(drawCanvasZindex) - 1;
paintCanvasZindex = parseInt(paintCanvasZindex) - 1;
if (drawCanvasZindex > paintCanvasZindex) {
$(".ui-wrapper").css("z-index", drawCanvasZindex);
$scope.SetwindowStoreData(windowviewid,'UIWrapperZIndex',drawCanvasZindex);
}
else {
$(".ui-wrapper").css("z-index", paintCanvasZindex);
$scope.SetwindowStoreData(windowviewid,'UIWrapperZIndex',paintCanvasZindex);
}
}
}
else {
$rootScope.switchToTransparencycanvas();
}
}
else {
$scope.SetwindowStoreData(windowviewid,'UIWrapperZIndex',12000);
$(".ui-wrapper").css("z-index", $scope.GetwindowStoreData(windowviewid,'UIWrapperZIndex'));
}
//hide the speechbubble
if ($rootScope.isAnnotationWindowOpen == true)
$rootScope.isTBCompleted = true;
}
$scope.getCanavsDivScrollPosition = function (windowviewid) {
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
return {
verticalScrollPosition: canvasDiv.scrollTop,
horizontlScrollPosition: canvasDiv.scrollLeft
}
}
$scope.getTBoxDimesions = function (TransparencyBoxStartX, TransparencyEndX, TransparencyBoxStartY, TransparencyBoxEndY, X, Y, Height, Width) {
var tBoxHeight = parseInt(TransparencyBoxEndY) - parseInt(TransparencyBoxStartY);
var tBoxWidth = parseInt(TransparencyEndX) - parseInt(TransparencyBoxStartX);
var tBoxBottom = parseInt(TransparencyBoxStartY) + parseInt(tBoxHeight);
var tBoxRight = parseInt(TransparencyBoxStartX) + parseInt(tBoxWidth);
return {
transparencyBoxHeight: tBoxHeight,
transparencyBoxWidth: tBoxWidth,
transparencyBoxBottom: tBoxBottom,
transparencyBoxRight: tBoxRight,
bodyRegionRight: parseInt(X) + parseInt(Width),
bodyRegionBottom: parseInt(Y) + parseInt(Height)
}
}
$scope.loadTransparencyImage = function (bodyRegionId, Height, Width, X, Y, IsMirror, TransparencyBoxStartX, TransparencyEndX, TransparencyBoxStartY, TransparencyBoxEndY, scope, isLayerChanged, isTransparencyChanged, isResized, windowviewid) {
var transparencyCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
TransparencyBoxStartX = parseInt((transparencyCanvas.style.left).replace('px', ''));
TransparencyBoxStartY = parseInt((transparencyCanvas.style.top).replace('px', ''));
TransparencyEndX = parseInt(transparencyCanvas.width) + parseInt(TransparencyBoxStartX);
TransparencyBoxEndY = parseInt(transparencyCanvas.height) + parseInt(TransparencyBoxStartY);
var TBImageDimensions = $scope.calculateDimensionsForTBImage(Height, Width, X, Y, IsMirror, TransparencyBoxStartX, TransparencyEndX, TransparencyBoxStartY, TransparencyBoxEndY, bodyRegionId);
var XforCopyImage = TBImageDimensions.XforCopyImageTB;
var YforCopyImage = TBImageDimensions.YforCopyImageTB;
var WidthforCopyImage = TBImageDimensions.WidthforCopyImageTB;
var HeightforCopyImage = TBImageDimensions.HeightforCopyImageTB;
var XforTransImage = TBImageDimensions.XforTransImageTB;
var WidthforTransImage = TBImageDimensions.WidthforTransImageTB;
var HeightforTransImage = TBImageDimensions.HeightforTransImageTB;
var YforTransImage = TBImageDimensions.YforTransImageTB;
//0. get current layer number
if (isResized || isLayerChanged) {
//do nothing
$scope.SetwindowStoreData(windowviewid,'transNumber',100);
$("#tbSlider_" + windowviewid).slider('value', 100);
}
else {
var tranparencyLayer;
var currentLayer = $scope.GetwindowStoreData(windowviewid,'layerNumberBeforeTBDraw');
var totalLayers=$scope.GetwindowStoreData(windowviewid,'totalLayers');
if (currentLayer == totalLayers) {
tranparencyLayer = currentLayer;
}
else {
tranparencyLayer = currentLayer + 1;
}
$scope.SetwindowStoreData(windowviewid,'layerNumber',tranparencyLayer);
}
$('#txtLayerNumberDA_' + windowviewid).val( $scope.GetwindowStoreData(windowviewid,'layerNumber'));
var tranparencyImgSrc;
var tranparencyMaskImgSrc;
var modestyImageInfo=$scope.GetwindowStoreData(windowviewid,'modestyImageInfo');
if ((bodyRegionId.match('modestyImg'))) {
var modestyBodyRegionData = new jinqJs()
.from(modestyImageInfo)
.where('bodyRegionId == ' + bodyRegionId)
.select();
tranparencyImgSrc = modestyBodyRegionData[0].SRC;
}
else {
tranparencyImgSrc = $scope.GetImageSource(bodyRegionId, windowviewid);
tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
}
//remove old canvases
var oldCanvas;
var oldtempTransCanvasMask;
var oldtempTransCanvasMaskMR;
if (IsMirror == 'Yes') {
oldCanvas = document.getElementById('transparencyTempCanvas_MR_' + bodyRegionId + "_" + windowviewid);
oldtempTransCanvasMaskMR = document.getElementById('transparencyTempCanvasMask_MR' + bodyRegionId + '_mci' + "_" + windowviewid);
oldtempTransCanvasMask = document.getElementById('transparencyTempCanvasMask_' + bodyRegionId + '_mci' + "_" + windowviewid);
if (oldtempTransCanvasMaskMR != null) {
document.getElementById("canvasDivDA_" + windowviewid).removeChild(oldtempTransCanvasMaskMR);
}
}
else {
oldCanvas = document.getElementById('transparencyTempCanvas_' + bodyRegionId + "_" + windowviewid)
oldtempTransCanvasMask = document.getElementById('transparencyTempCanvasMask_' + bodyRegionId + '_mci' + "_" + windowviewid);
}
if (oldCanvas != null) {
document.getElementById("canvasDivDA_" + windowviewid).removeChild(oldCanvas);
}
if (oldtempTransCanvasMask != null) {
document.getElementById("canvasDivDA_" + windowviewid).removeChild(oldtempTransCanvasMask);
}
var transparencyTempCanvas = document.createElement('canvas');
var transparencyTempcanavsMask = document.createElement('canvas');
//if mirror then draw mask image for non mirrored body region for annotation
if (IsMirror == 'Yes') {
transparencyTempCanvas.id = 'transparencyTempCanvas_MR_' + bodyRegionId + "_" + windowviewid;
transparencyTempcanavsMask.id = 'transparencyTempCanvasMask_MR' + bodyRegionId + '_mci' + "_" + windowviewid;
}
else {
if ((bodyRegionId.match('modestyImg'))) {
transparencyTempCanvas.id = 'transparencyTempCanvas_' + bodyRegionId + "_" + windowviewid;
}
else {
transparencyTempCanvas.id = 'transparencyTempCanvas_' + bodyRegionId + "_" + windowviewid;
transparencyTempcanavsMask.id = 'transparencyTempCanvasMask_' + bodyRegionId + '_mci' + "_" + windowviewid;
}
}
transparencyTempCanvas.height = Height;
transparencyTempCanvas.width = Width;
transparencyTempCanvas.style.position = "absolute";
transparencyTempCanvas.style.left = X + 'px' // x + "px";
transparencyTempCanvas.style.top = Y + "px"//y + "px";
transparencyTempCanvas.style.visibility = 'hidden';
document.getElementById("canvasDivDA_" + windowviewid).appendChild(transparencyTempCanvas);
//create temp mask canvas
if ((bodyRegionId.match('modestyImg'))) { }
else {
transparencyTempcanavsMask.height = Height;
transparencyTempcanavsMask.width = Width;
transparencyTempcanavsMask.style.position = "absolute";
transparencyTempcanavsMask.style.left = X + 'px' // x + "px";
transparencyTempcanavsMask.style.top = Y + "px"//y + "px";
transparencyTempcanavsMask.style.visibility = 'hidden';
document.getElementById("canvasDivDA_" + windowviewid).appendChild(transparencyTempcanavsMask);
}
//for modesty canvas
if ((bodyRegionId.match('modestyImg'))) {
var modestyTransTempCanvasId = 'tempCanvasModesty_' + bodyRegionId + "_" + windowviewid;
var modestyTransCanvasId = 'modestyTransCanavs_' + bodyRegionId + "_" + windowviewid;
if (document.getElementById(modestyTransTempCanvasId) != null) {
document.getElementById(modestyTransTempCanvasId).parentNode.removeChild(document.getElementById(modestyTransTempCanvasId));
}
if (document.getElementById(modestyTransTempCanvasId) == null || document.getElementById(modestyTransTempCanvasId) == undefined) {
var tempCanvasModesty = document.createElement('canvas');
tempCanvasModesty.id = modestyTransTempCanvasId;
tempCanvasModesty.height = Height;
tempCanvasModesty.width = Width;
tempCanvasModesty.style.position = "absolute";
tempCanvasModesty.style.left = 10 + 'px';
tempCanvasModesty.style.top = 10 + 'px';
tempCanvasModesty.style.backgroundColor = "transparent";
tempCanvasModesty.style.visibility = 'hidden';
// tempCanvasModesty.style.border = "black 1px solid";
document.getElementById("canvasDivDA_" + windowviewid).appendChild(tempCanvasModesty);
}
if (document.getElementById(modestyTransCanvasId) != null) {
document.getElementById(modestyTransCanvasId).parentNode.removeChild(document.getElementById(modestyTransCanvasId));
}
if (document.getElementById(modestyTransCanvasId) == null || document.getElementById(modestyTransCanvasId) == undefined) {
var canvasModesty = document.createElement('canvas');
canvasModesty.id = modestyTransCanvasId;
canvasModesty.className = 'transModestyImg'
canvasModesty.height = Height;
canvasModesty.width = Width;
canvasModesty.style.position = "absolute";
canvasModesty.style.left = X + 'px';
canvasModesty.style.top = Y + 'px';
var isModestyOn=$scope.GetwindowStoreData(windowviewid,'isModestyOn');
if (isModestyOn == true) {
canvasModesty.style.visibility = 'visible';
$scope.SetwindowStoreData(windowviewid,'isTBoxModestyVisible',true);
}
else
canvasModesty.style.visibility = 'hidden';
if ($scope.GetwindowStoreData(windowviewid,'voId') == "11") {
canvasModesty.style.zIndex = 11000;
}
else
canvasModesty.style.zIndex = $rootScope.modestyCanvasZindex;
canvasModesty.addEventListener('click', OnClickModestyTransCanvas);
document.getElementById("canvasDivDA_" + windowviewid).appendChild(canvasModesty);
}
}
if (tranparencyImgSrc != undefined) {
var tempImg = new Image();
var tempCanvasID;
if (IsMirror == 'Yes') {
tempCanvasID = 'transparencyTempCanvas_MR_' + bodyRegionId + "_" + windowviewid;
}
else {
if ((bodyRegionId.match('modestyImg'))) {
tempCanvasID = 'transparencyTempCanvas_' + bodyRegionId + "_" + windowviewid;
}
else
tempCanvasID = 'transparencyTempCanvas_' + bodyRegionId + "_" + windowviewid;;
}
tempImg.onload = function () {
var tempCtx = transparencyTempCanvas.getContext('2d');
if (IsMirror == 'Yes') {
tempCtx.save();
tempCtx.translate(Width, 0);
tempCtx.scale(-1, 1);
tempCtx.drawImage(tempImg, 0, 0);
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
$scope.highlightTempTransparencyCanvas(tempCanvasID, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage,
XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage, Height, Width, bodyRegionId, windowviewid);
}
}
else {
tempCtx.drawImage(tempImg, 0, 0);
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
$scope.highlightTempTransparencyCanvas(tempCanvasID, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage,
YforTransImage, WidthforTransImage, HeightforTransImage, Height, Width, bodyRegionId, windowviewid);
}
}
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') != true) {
if ((bodyRegionId.match('modestyImg'))) {
var modestyTempCanvasId = 'tempCanvasModesty_' + bodyRegionId + "_" + windowviewid;
if (document.getElementById(modestyTempCanvasId) != undefined || document.getElementById(modestyTempCanvasId) != null) {
var contxModestyTemp = document.getElementById(modestyTempCanvasId).getContext('2d');
var tbTempCanvas = document.getElementById(tempCanvasID)
contxModestyTemp.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
}
}
else {
if (document.getElementById('tempCanvas_' + windowviewid) != null && document.getElementById('tempCanvas_' + windowviewid) != undefined) {
var contx = document.getElementById('tempCanvas_' + windowviewid).getContext('2d');
var tbTempCanvas = document.getElementById(tempCanvasID)
contx.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
}
}
$scope.DrawOnTBWithSelectedTransparency(tempCanvasID, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage, Height, Width, bodyRegionId, windowviewid);
}
}
tempImg.src = tranparencyImgSrc;//"http://localhost/AIA/" + tranparencyImgSrc;
}
//mask image code
//draw mask for annotation
var tempMaskImg = new Image();
var tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
tempMaskImg.src = tranparencyMaskImgSrc;//"http://localhost/AIA/" + tranparencyMaskImgSrc;
tempMaskImg.onload = function () {
var tempmaskCtx = transparencyTempcanavsMask.getContext('2d');
if (IsMirror == 'Yes') {
tempmaskCtx.save();
tempmaskCtx.translate(Width, 0);
tempmaskCtx.scale(-1, 1);
tempmaskCtx.drawImage(tempMaskImg, 0, 0);
}
else {
tempmaskCtx.drawImage(tempMaskImg, 0, 0);
}
}
//set modesty image visiblility true/false as per layer
var BRID = '';
if (bodyRegionId.match('modestyImg') && document.getElementById('modestyTransCanavs_' + bodyRegionId + "_" + windowviewid) != null) {
BRID = bodyRegionId[bodyRegionId.length - 1];
}
else if ((bodyRegionId == '2' || bodyRegionId == '3') && document.getElementById('modestyTransCanavs_modestyImg' + bodyRegionId + "_" + windowviewid) != null) {
BRID = bodyRegionId;
}
if (BRID != '') {
var layerInfoForModesty=$scope.GetwindowStoreData(windowviewid,'layerInfoForModesty');
var layerInfo = new jinqJs()
.from(layerInfoForModesty)
.where('bodyRegionId == ' + BRID)
.select();
if (layerInfo != undefined && layerInfo.length > 0) {
var lowerlayerNumberForModesty = layerInfo[0].lowerlayerNumberForModesty;
var HigherlayerNumberForModesty = layerInfo[0].HigherlayerNumberForModesty;
var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
var isModestyOn=$scope.GetwindowStoreData(windowviewid,'isModestyOn');
for (var j = 0; j < modestyTransCanvases.length; j++) {
var len= (modestyTransCanvases[j].id).split("_").length;
var winid = (modestyTransCanvases[j].id).split("_")[len-1];
if(winid==windowviewid)
{
if (modestyTransCanvases[j].id.match(bodyRegionId)) {
var modestyCanavs = document.getElementById(modestyTransCanvases[j].id);
if (isModestyOn == true && (parseInt(lowerlayerNumberForModesty) <= parseInt( $scope.GetwindowStoreData(windowviewid,'layerNumber')))
&& (HigherlayerNumberForModesty) > parseInt($scope.GetwindowStoreData(windowviewid,'layerNumber'))) {
$rootScope.isTBLayerLessSeven = true;
modestyCanavs.style.visibility = 'visible';
}
else {
$rootScope.isTBLayerLessSeven = false;
modestyCanavs.style.visibility = 'hidden';
}
}
}
}
}
}
}
}
$scope.calculateDimensionsForTBImage = function (Height, Width, X, Y, IsMirror, TransparencyBoxStartX, TransparencyEndX, TransparencyBoxStartY, TransparencyBoxEndY, bodyRegionId) {
var XforCopyImage = 0;
var YforCopyImage = 0;
var WidthforCopyImage = 0;
var HeightforCopyImage = 0;
var XforTransImage = 0;
var WidthforTransImage = 0;
var HeightforTransImage = 0;
var YforTransImage = 0;
//X ends outside and start outside of bodyregion
if (TransparencyBoxStartX < X && TransparencyEndX > parseInt(X) + parseInt(Width)) {
XforCopyImage = 0;
WidthforCopyImage = Width;
WidthforTransImage = Width;
if ((bodyRegionId.match('modestyImg'))) {
XforTransImage = 0;
}
else
XforTransImage = parseInt(X) - (parseInt(TransparencyBoxStartX));
}
else if (TransparencyBoxStartX < X && TransparencyEndX < parseInt(X) + parseInt(Width)) {
XforCopyImage = 0;
WidthforCopyImage = parseInt(TransparencyEndX) - parseInt(X);
WidthforTransImage = parseInt(TransparencyEndX) - parseInt(X);
if ((bodyRegionId.match('modestyImg'))) {
XforTransImage = 0;
}
else
XforTransImage = parseInt(X) - (parseInt(TransparencyBoxStartX));
}
else if (TransparencyBoxStartX > X && TransparencyEndX > parseInt(X) + parseInt(Width)) {
XforCopyImage = parseInt(TransparencyBoxStartX) - parseInt(X);
WidthforCopyImage = parseInt(X) + parseInt(Width) - parseInt(TransparencyBoxStartX);
WidthforTransImage = parseInt(X) + parseInt(Width) - parseInt(TransparencyBoxStartX);
if ((bodyRegionId.match('modestyImg'))) {
XforTransImage = parseInt(TransparencyBoxStartX) - parseInt(X);
}
else
XforTransImage = 0;
}
else if (TransparencyBoxStartX > X && TransparencyEndX < parseInt(X) + parseInt(Width)) {
XforCopyImage = parseInt(TransparencyBoxStartX) - parseInt(X);//parseInt(X) + parseInt(Width) - parseInt(scope.TransparencyBoxStartX)// scope.TransparencyBoxStartX ;
WidthforCopyImage = parseInt(TransparencyEndX) - parseInt(TransparencyBoxStartX);
WidthforTransImage = parseInt(TransparencyEndX) - parseInt(TransparencyBoxStartX);
if ((bodyRegionId.match('modestyImg'))) {
XforTransImage = parseInt(TransparencyBoxStartX) - parseInt(X);
}
else
XforTransImage = 0;
}
//calculate Y and height for tempTranparency box from where to cut the image
if (TransparencyBoxStartY < Y && TransparencyBoxEndY > parseInt(Y) + parseInt(Height)) {
YforCopyImage = 0;
HeightforCopyImage = Height;
HeightforTransImage = Height;
if ((bodyRegionId.match('modestyImg'))) {
YforTransImage = 0;
}
else
YforTransImage = parseFloat(Y) - parseInt(TransparencyBoxStartY)//parseFloat(Y) - (24.4);
}
else if (TransparencyBoxStartY < Y && TransparencyBoxEndY < (parseInt(Y) + parseInt(Height))) {
YforCopyImage = 0;
HeightforCopyImage = (parseInt(TransparencyBoxEndY)) - parseInt(Y)//(parseInt(Height) + parseInt(Y)) - (parseInt(TransparencyBoxEndY) - parseInt(scope.TransparencyBoxStartY));
HeightforTransImage = (parseInt(TransparencyBoxEndY)) - parseInt(Y)// - parseInt(scope.TransparencyBoxStartY));
if ((bodyRegionId.match('modestyImg'))) {
YforTransImage = 0;
}
else
YforTransImage = parseFloat(Y) - parseInt(TransparencyBoxStartY);// - (24.4);
}
else if (TransparencyBoxStartY > Y && TransparencyBoxEndY > parseInt(Y) + parseInt(Height)) {
YforCopyImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
HeightforCopyImage = parseInt(Y) + parseInt(Height) - parseInt(TransparencyBoxStartY);
HeightforTransImage = parseInt(Y) + parseInt(Height) - parseInt(TransparencyBoxStartY);
if ((bodyRegionId.match('modestyImg'))) {
YforTransImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
}
else
YforTransImage = 0;
}
else if (TransparencyBoxStartY > Y && TransparencyBoxEndY < parseInt(Y) + parseInt(Height)) {
YforCopyImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
HeightforCopyImage = parseInt(TransparencyBoxEndY) - parseInt(TransparencyBoxStartY);
HeightforTransImage = parseInt(TransparencyBoxEndY) - parseInt(TransparencyBoxStartY);
if ((bodyRegionId.match('modestyImg'))) {
YforTransImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
}
else
YforTransImage = 0;
}
return {
XforCopyImageTB: XforCopyImage,
YforCopyImageTB: YforCopyImage,
WidthforCopyImageTB: WidthforCopyImage,
HeightforCopyImageTB: HeightforCopyImage,
XforTransImageTB: XforTransImage,
WidthforTransImageTB: WidthforTransImage,
HeightforTransImageTB: HeightforTransImage,
YforTransImageTB: YforTransImage
}
}
$scope.highlightTempTransparencyCanvas = function (tempCanvasID, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage, Height, Width, bodyRegionId, windowviewid) {
var tempTransCanvas = document.getElementById(tempCanvasID);
var tempCanvasContext = tempTransCanvas.getContext('2d');
var dataURL = tempTransCanvas.toDataURL();
var img = new Image();
img.src = dataURL;
img.onload = function () {
var DAData = new BitmapData(parseInt(tempTransCanvas.width), parseInt(tempTransCanvas.height));
DAData.draw(img);
var colorMode = $scope.applyGrayMatrix(img, tempCanvasContext);
if (colorMode != undefined || colorMode != null) {
var zeroPoint = new Point();
DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
tempCanvasContext.putImageData(DAData.data, 0, 0);
var isModestyOn=$scope.GetwindowStoreData(windowviewid,'isModestyOn');
//keep the original image on temp canavs to use it in changing transparency
if (isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
var modestyTempCanvasId = 'tempCanvasModesty_' + bodyRegionId + "_" + windowviewid;
if (document.getElementById(modestyTempCanvasId) != undefined || document.getElementById(modestyTempCanvasId) != null) {
var contxModestyTemp = document.getElementById(modestyTempCanvasId).getContext('2d');
var tbTempCanvas = document.getElementById(tempCanvasID)
contxModestyTemp.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
}
}
else {
if (document.getElementById('tempCanvas_' + windowviewid) != null) {
var contx = document.getElementById('tempCanvas_' + windowviewid).getContext('2d');
var tbTempCanvas = document.getElementById(tempCanvasID)
contx.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
}
}
$scope.DrawOnTBWithSelectedTransparency(tempCanvasID, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage, Height, Width, bodyRegionId, windowviewid);
}
}
}
$scope.DrawOnTBWithSelectedTransparency = function (tempCanvasID, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage, Height, Width, bodyRegionId, windowviewid) {
var transNumber = $scope.GetwindowStoreData(windowviewid,'transNumber');//txtTransparencyChange.value;
//this changes the transparency when transparency is already activated and user resizes or chage the layer
var tempCtx = document.getElementById(tempCanvasID).getContext('2d');
var imageD = tempCtx.getImageData(0, 0, Width, Height);
var imageData = imageD.data;
var length = imageData.length;
//to resolve lateral arm black issue in highlight mode
if ($scope.GetwindowStoreData(windowviewid,'isHighLight')) {
var c = 0;
for (var i = 0; i < imageData.length; i += 4) {
if (imageData[i] == imageData[i + 1] && imageData[i + 1] == imageData[i + 2] && imageData[i + 2] === 0) {
imageData[i + 3] = 0;
}
}
tempCtx.putImageData(imageD, 0, 0);
//}
}
// set every fourth value to the desired number of transparency
var imageD1 = tempCtx.getImageData(0, 0, Width, Height);
var imageData1 = imageD1.data;
var length = imageData.length;
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
for (var i = 3; i < length; i += 4) {
if (bodyVid == "9" || bodyVid == "11") {
if (imageData1[i] == 0) {
}
else {
imageData1[i] = ((255) * (parseInt(transNumber))) / 100;
}
}
else {
imageData1[i] = ((255) * (parseInt(transNumber))) / 100;
}
}
tempCtx.putImageData(imageD1, 0, 0);
$scope.widthOfImage = WidthforTransImage;
$scope.heightOfImage = HeightforTransImage;
$scope.xOfImage = XforTransImage;
$scope.yOfImage = YforTransImage;
var transparencyCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
var ctx = transparencyCanvas.getContext('2d');
var tmpCanvasContext = document.getElementById(tempCanvasID);//.getContext('2d');
var ctx;
if ((bodyRegionId.match('modestyImg'))) {
var modestyTransCanvasId = 'modestyTransCanavs_' + bodyRegionId + "_" + windowviewid
ctx = document.getElementById(modestyTransCanvasId).getContext('2d');
}
else
ctx = transparencyCanvas.getContext('2d');
// var ctx = transparencyCanvas.getContext('2d');
ctx.drawImage(tmpCanvasContext, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage)
if ((bodyRegionId.match('modestyImg'))) {
var imageD1 = ctx.getImageData(0, 0, Width, Height);
var imageData1 = imageD1.data;
var length1 = imageData1.length;
// set every fourth value to the desired number of transparency
for (var i = 0; i < imageData1.length; i += 4) {
if (imageData1[i] == imageData1[i + 1] && imageData1[i + 1] == imageData1[i + 2] && imageData1[i + 2] === 0) {
imageData1[i + 3] = 0;
}
}
ctx.putImageData(imageD1, 0, 0);
var isModestyOn=$scope.GetwindowStoreData(windowviewid,'isModestyOn');
if (isModestyOn && $rootScope.isTBLayerLessSeven == true) {
document.getElementById('modestyTransCanavs_' + bodyRegionId + "_" + windowviewid).style.visibility = 'visible';
}
else {
document.getElementById('modestyTransCanavs_' + bodyRegionId + "_" + windowviewid).style.visibility = 'hidden';
}
}
// $scope.transparencyDrawnRegions.push(bodyRegionId);
$scope.transparencyDrawnRegions.push({ 'BRID': bodyRegionId });
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
if ($scope.transparencyDrawnRegions.length == $scope.IncludedBodyRegions.length) {
transparencyCanvas.style.visibility = 'visible';
$('.rectangle').remove();
}
$scope.EnableUI();
}
$scope.changeTransparency = function (windowviewid) {
//this changes the transparency when user click on transparency scale(we have already set the original
//data on tras canvas irrespective of the trans number, so we can chnage the transparnecy of original data not the manipulated)
var transNumber = $scope.GetwindowStoreData(windowviewid,'transNumber');
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
var isHighLight=$scope.GetwindowStoreData(windowviewid,'isHighLight');
var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
//for modesty
for (var j = 0; j < modestyTransCanvases.length; j++) {
var len= (modestyTransCanvases[j].id).split("_").length;
var winid = (modestyTransCanvases[j].id).split("_")[len-1];
if(winid==windowviewid)
{
var modctx = document.getElementById(modestyTransCanvases[j].id).getContext('2d');
var modimageDa = modctx.getImageData(0, 0, modestyTransCanvases[j].width, modestyTransCanvases[j].height);
var modimageData = modimageDa.data;
var length = modimageData.length;
if (isHighLight) {
var c = 0;
for (var i = 0; i < modimageData.length; i += 4) {
if (modimageData[i] == modimageData[i + 1] && modimageData[i + 1] == modimageData[i + 2] && modimageData[i + 2] === 0) {
modimageData[i + 3] = 0;
}
}
modctx.putImageData(modimageDa, 0, 0);
// }
}
// set every fourth value to desired transparency
var ctx1 = document.getElementById(modestyTransCanvases[j].id).getContext('2d');
var imageDa1 = ctx1.getImageData(0, 0, modestyTransCanvases[j].width, modestyTransCanvases[j].height);
var imageData1 = imageDa1.data;
var length = imageData1.length;
for (var i = 3; i < length; i += 4) {
if (bodyVid == "9" || bodyVid == "11") {
if (imageData1[i] == 0) {
}
else {
imageData1[i] = ((255) * (parseInt(transNumber))) / 100;
}
}
else {
if (imageData1[i] == 0) {
}
else
imageData1[i] = ((255) * (parseInt(transNumber))) / 100;
}
}
// after the manipulation, reset the data
// and put the imagedata back to the canvas
ctx1.putImageData(imageDa1, 0, 0);
}
}
}
var ctx = document.getElementById('transparencyCanvas_' + windowviewid).getContext('2d');
// var imageDa = ctx.getImageData(XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
var imageDa1 = ctx.getImageData(0, 0, $scope.transparencyCanvasWidth, $scope.transparencyCanvasHeight);
// get the image data values
var imageData1 = imageDa1.data;
var length = imageData1.length;
if (isHighLight) {
if (bodyVid == "9" || bodyVid == "11") {
var c = 0;
for (var i = 0; i < imageData1.length; i += 4) {
if (imageData1[i] == imageData1[i + 1] && imageData1[i + 1] == imageData1[i + 2] && imageData1[i + 2] === 0) {
imageData1[i + 3] = 0;
}
}
ctx.putImageData(imageDa1, 0, 0);
}
}
// set every fourth value to selected transparency
var imageDa = ctx.getImageData(0, 0, $scope.transparencyCanvasWidth, $scope.transparencyCanvasHeight);
// get the image data values
var imageData = imageDa.data;
var length = imageData.length;
for (var i = 3; i < length; i += 4) {
//NIKITA
if (bodyVid == "9" || bodyVid == "11") {
if (imageData[i] == 0) {
}
else {
imageData[i] = ((255) * (parseInt(transNumber))) / 100;
}
}
else {
if (imageData[i] == 0) {
}
else
imageData[i] = ((255) * (parseInt(transNumber))) / 100;
}
}
// after the manipulation, reset the data
// imageDa.data = imageData;
// and put the imagedata back to the canvas
ctx.putImageData(imageDa, 0, 0);
}
// History Maintained Issue//
$rootScope.getAnnotationTextBasedOnSelectedBodyRegion = function (event) {
var windowviewid = (event.currentTarget.id).split("_")[2];
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
$rootScope.Xaxis = event.pageX - $('#canvasDivDA_' + windowviewid).offset().left + horizontlScrollPosition;
$rootScope.Yaxis = event.pageY - $('#canvasDivDA_' + windowviewid).offset().top + verticalScrollPosition;
$rootScope.setSelectedBodyRegionData(windowviewid);
if ($rootScope.isMirrorBodyRegion == "No") {
var maskCanvasId = "imageCanvas" + $rootScope.BRId + "_mci" + "|" + windowviewid;
var maskCanvas = document.getElementById(maskCanvasId);
var maskCanvasContext = maskCanvas.getContext("2d");
var actulalX = $rootScope.Xaxis;
var actualY = $rootScope.Yaxis;
var RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, $rootScope.BodyRegionXAxis, $rootScope.BodyRegionYAxis);
var annotationText = $scope.GetAnnotationText(parseInt(RGBColor),windowviewid);
}
else {
var maskCanvasId = "imageCanvas" + $rootScope.BRId + "_MR_mci"+ "|" + windowviewid;
var maskoffsetval = $('#' + maskCanvasId).offset();
var mirrorCanvasX = maskoffsetval.left;
//alert(mirrorCanvasX);
var mirrorImageCanvas = document.getElementById(maskCanvasId);
var mirrorCanvasWidth = mirrorImageCanvas.clientWidth;
// alert(mirrorCanvasWidth);
var maskCanvas = document.getElementById(maskCanvasId);
var maskCanvasContext = maskCanvas.getContext("2d");
var distanceXOnMirrorImage = (parseInt(mirrorCanvasX) + parseInt(mirrorCanvasWidth)) - (parseInt(event.pageX) + horizontlScrollPosition);// - 135);
var mirrorXOnNormalImage = parseInt(maskCanvasContext.canvas.offsetLeft) + parseInt(distanceXOnMirrorImage);
var actulalX = mirrorXOnNormalImage;
var actualY = event.pageY + verticalScrollPosition;
var pixelData = maskCanvasContext.getImageData(Math.round(actulalX - parseInt(maskCanvasContext.canvas.offsetLeft)), Math.round(actualY - $rootScope.BodyRegionYAxis), 1, 1);
pixelData.data[0] = pixelData.data[0] - 9;
pixelData.data[1] = pixelData.data[1] - 9;
pixelData.data[2] = pixelData.data[2] - 9
var Red;
var Green;
var Blue;
var zero = "0";
if ((pixelData.data[0]).toString().length != 2) {
Red = zero.concat((pixelData.data[0]).toString())
}
else {
Red = (pixelData.data[0]).toString()
}
if ((pixelData.data[1]).toString().length != 2) {
Green = zero.concat((pixelData.data[1]).toString())
}
else {
Green = (pixelData.data[1]).toString()
}
if ((pixelData.data[2]).toString().length != 2) {
Blue = zero.concat((pixelData.data[2]).toString())
}
else {
Blue = (pixelData.data[2]).toString()
}
var RGBColor = (Red + Green + Blue);
}
$scope.MultiLanguageAnnationArray = [];
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$scope.MultiLanguageAnnationArray.push(TermAnnotationText[i]);
}
if (TermAnnotationText.length>0) {
$scope.createDynamicSpeechBubble(event, event.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, event.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, true, 0, 0,windowviewid)
}
}
$rootScope.setSelectedBodyRegionData = function (windowviewid) {
var BodyRegionDictionary = $scope.GetwindowStoreData(windowviewid,'BodyRegionCordinatesData');
var bodyVid= $scope.GetwindowStoreData(windowviewid,'voId')
$.each(BodyRegionDictionary, function (index, value) {
var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
if ($rootScope.Xaxis <= bodyRegionRight && $rootScope.Yaxis <= bodyRegionBottom && value.X <= $rootScope.Xaxis && value.Y <= $rootScope.Yaxis) {
if (bodyVid == "11" || bodyVid == "9") {
if (value.bodyRegionId == "6") {
$rootScope.BRId = value.bodyRegionId;
$rootScope.BodyRegionXAxis = value.X;
$rootScope.BodyRegionYAxis = value.Y;
$rootScope.isMirrorBodyRegion = value.IsMirror;
return false;
}
}
else {
$rootScope.BRId = value.bodyRegionId;
$rootScope.BodyRegionXAxis = value.X;
$rootScope.BodyRegionYAxis = value.Y;
$rootScope.isMirrorBodyRegion = value.IsMirror;
return false;
}
}
});
}
function resizeTransparencyBox(windowviewid) {
clearTransCanvas(windowviewid);
var tCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
var tCanvasContext = tCanvas.getContext('2d');
var tCanvasHeight = parseInt((tCanvas.style.height).replace('px', ''));
var tCanvasWidth = parseInt((tCanvas.style.width).replace('px', ''));
var tBoxStartX = parseInt((tCanvas.style.left).replace('px', ''));
var tBoxEndX = parseInt((tCanvas.style.left).replace('px', '')) + parseInt((tCanvas.style.width.replace('px', '')));
var tBoxStartY = parseInt((tCanvas.style.top).replace('px', ''));
var tBoxEndY = parseInt((tCanvas.style.top).replace('px', '')) + parseInt((tCanvas.style.height).replace('px', ''));
var transparencyBoxBottom = parseInt(tBoxStartY) + parseInt(tCanvasHeight);
var transparencyBoxRight = parseInt(tBoxStartX) + parseInt(tCanvasWidth);
if (tCanvas != null) {
$('#transparencyCanvas_' + windowviewid).remove();
}
var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
for (var j = 0; j < modestyTransCanvases.length; j++) {
var len= (modestyTransCanvases[j].id).split("_").length;
var winid = (modestyTransCanvases[j].id).split("_")[len-1];
if(winid==windowviewid)
{
modestyTransCanvases[j].parentNode.removeChild(modestyTransCanvases[j]);
}
}
}
var modestyTempCanvases = $("canvas[id*='tempCanvasModesty']");
if (modestyTempCanvases != null || modestyTempCanvases != undefined && modestyTempCanvases.length > 0) {
for (var j = 0; j < modestyTempCanvases.length; j++) {
var len= (modestyTempCanvases[j].id).split("_").length;
var winid = (modestyTempCanvases[j].id).split("_")[len-1];
if(winid==windowviewid)
{
modestyTempCanvases[j].parentNode.removeChild(modestyTempCanvases[j]);
}
}
}
if (tCanvasHeight != $scope.transparencyCanvasHeight || tCanvasWidth != $scope.transparencyCanvasWidth) {
var transparencyCanvas = document.createElement('canvas');
transparencyCanvas.id = 'transparencyCanvas_' + windowviewid;
$scope.transparencyCanvas = tCanvas.id;
transparencyCanvas.height = tCanvasHeight;
transparencyCanvas.width = tCanvasWidth;
transparencyCanvas.style.position = "absolute";
transparencyCanvas.style.left = tCanvas.style.left; // x + "px";
transparencyCanvas.style.top = tCanvas.style.top//y + "px";
transparencyCanvas.style.border = "black 1px solid";
transparencyCanvas.style.zIndex = 200;
document.getElementById('canvasDivDA_' + windowviewid).appendChild(transparencyCanvas);
$('#transparencyCanvas_' + windowviewid).resizable({ handles: "e,s,se,w,n,ne,nw,sw", stop: function (event, ui) { resizeTransparencyBox(windowviewid); }, start: function (event, ui) { clearTransCanvas(windowviewid); } });
$(".ui-wrapper").css("z-index", $scope.GetwindowStoreData(windowviewid,'UIWrapperZIndex'));
//bind click listener
transparencyCanvas.addEventListener('click', TransparencyCanvasClickListener);
}
$scope.transparencyCanvasHeight = tCanvasHeight;
$scope.transparencyCanvasWidth = tCanvasWidth;
//create temp cavas to retain the original anavs data for use in transparency change as
//if u use original canvas data for transprency change then at 0 transparency all data will become transparent and if u increase transparency with this data then the canavs will be blank
if (document.getElementById('tempCanvas_' + windowviewid) != null) {
$('#tempCanvas_'+ windowviewid).remove();
}
var tempCanvas = document.createElement('canvas');
tempCanvas.id = 'tempCanvas_' + windowviewid;
$scope.tempCanvas = tempCanvas.id;
tempCanvas.height = $scope.transparencyCanvasHeight;
tempCanvas.width = $scope.transparencyCanvasWidth;
tempCanvas.style.position = "absolute";
tempCanvas.style.left = 200 + 'px';
tempCanvas.style.backgroundColor = "transparent";
tempCanvas.style.visibility = 'hidden';
// tempCanvas.style.border = "black 1px solid";
document.getElementById('canvasDivDA_' + windowviewid).appendChild(tempCanvas);
var BodyRegionDictionary = $scope.GetwindowStoreData(windowviewid,'BodyRegionCordinatesData');
$scope.IncludedBodyRegions = [];
$scope.transparencyDrawnRegions = [];
$scope.canThirdBRDrawn = false;
var counter = 0;
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
$.each(BodyRegionDictionary, function (index, value) {
var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
var TBRight = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.left).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.width).replace('px', ''));
var TBBottom = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.top).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.height).replace('px', ''));
var TBStartX = parseInt((document.getElementById('transparencyCanvas_'+ windowviewid).style.left).replace('px', ''));
var TBStartY = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.top).replace('px', ''));
if (TBStartX <= bodyRegionRight && value.X <= TBRight && TBStartY <= bodyRegionBottom && value.Y <= TBBottom) {
if ($scope.GetwindowStoreData(windowviewid,'isTBDrawnOnBodyRegion') == false) {
var totalayer=$scope.GetwindowStoreData(windowviewid,'totalLayers');
var layer=$scope.GetwindowStoreData(windowviewid,'layerNumber');
if (layer < totalayer) {
var layerup=layer+1;
$scope.SetwindowStoreData(windowviewid,'layerNumber',layerup);
}
}
if (value.bodyRegionId == '3') {
var BR_SixTBData = new jinqJs()
.from($scope.transparencyDrawnRegions)
.where('BRID == 6')
.select();
if (BR_SixTBData != null && BR_SixTBData != undefined && BR_SixTBData.length > 0) {
$scope.canThirdBRDrawn = true;
}
}
if ((bodyVid == "9" || bodyVid == "11" || bodyVid == "2" || bodyVid == "3" || bodyVid == "6" ||bodyVid == "7")) {
if (value.bodyRegionId == "6") {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}
else {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}
}
else {
if (value.bodyRegionId == '3' && $scope.canThirdBRDrawn == true) {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}
else {
if (value.bodyRegionId == '3' && $scope.canThirdBRDrawn == false) {
//1. draw 6th
var BRSixData = new jinqJs()
.from(BodyRegionDictionary)
.where('bodyRegionId == 6')
.select();
var isMirror = BRSixData[0].IsMirror;
if (isMirror == 'Yes') {
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[0].bodyRegionId, BRSixData[0].Height, BRSixData[0].Width, BRSixData[0].X, BRSixData[0].Y, 'Yes', $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
//draw non mirror arm
$scope.loadTransparencyImage(BRSixData[1].bodyRegionId, BRSixData[1].Height, BRSixData[1].Width, BRSixData[1].X, BRSixData[1].Y, 'No', $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
//draw 3rd BR
$timeout(function () {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}, 200);
}
else {
//draw mirror arm
$scope.loadTransparencyImage(BRSixData[0].bodyRegionId, BRSixData[0].Height, BRSixData[0].Width, BRSixData[0].X, BRSixData[0].Y, 'No', $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
//draw non mirror arm
$scope.loadTransparencyImage(BRSixData[1].bodyRegionId, BRSixData[1].Height, BRSixData[1].Width, BRSixData[1].X, BRSixData[1].Y, 'Yes', $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
//draw 3rd BR
$timeout(function () {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}, 200);
}
}
else {
var BR_SixTBData = new jinqJs()
.from($scope.transparencyDrawnRegions)
.where('BRID == 6')
.select();
if (value.bodyRegionId == "6" && BR_SixTBData != undefined && BR_SixTBData != null && BR_SixTBData.length > 0) {
//do not draw 6 BR again, its already drawn
}
else
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}
}
}
$scope.SetwindowStoreData(windowviewid,'isTBDrawnOnBodyRegion',true);
}
})
var isModestyOn=$scope.GetwindowStoreData(windowviewid,'isModestyOn');
var modestyImageInfo=$scope.GetwindowStoreData(windowviewid,'modestyImageInfo');
//for modesty
if (isModestyOn == true && modestyImageInfo.length > 0) {
$.each(modestyImageInfo, function (index, value) {
var bodyRegionRight = parseInt(value.x) + parseInt(value.Width);
var bodyRegionBottom = parseInt(value.y) + parseInt(value.Height);
var TBRight = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.left).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.width).replace('px', ''));
var TBBottom = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.top).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.height).replace('px', ''));
var TBStartX = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.left).replace('px', ''));
var TBStartY = parseInt((document.getElementById('transparencyCanvas_' + windowviewid).style.top).replace('px', ''));
if (TBStartX <= bodyRegionRight && value.x <= TBRight && TBStartY <= bodyRegionBottom && value.y <= TBBottom) {
$scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.x, value.y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false, true, windowviewid);
}
})
}
}
function TransparencyCanvasClickListener(evt) {
var windowviewid = (evt.currentTarget.id).split("_")[1];
var pixelData;
var pixelDataTrans;
var mousePos = $scope.getMousePos(evt.pageX,evt.pageY,windowviewid);
// alert(mousePos.x + ',' + mousePos.y);
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
//We substracted 135, as the difference between flex and html coordinates for same organ is 135
var actulalX = mousePos.x + horizontlScrollPosition;
var actualY = mousePos.y + verticalScrollPosition //- 135; //+ tomenuBarheight + titleBarheight + searchComboheight;
var clickedBodyRegion;
var x;
var y;
var isMirror;
var width;
// var BodyRegionDictionary = $rootScope.BodyRegionCordinatesData;
var BodyRegionDictionary = $scope.GetwindowStoreData(windowviewid,'BodyRegionCordinatesData');
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
if (viewOrientationId == 5) {
var clickedBodyRegionData = new jinqJs()
.from(BodyRegionDictionary)
.where('bodyRegionId == 6')
.select();
// clickedBodyRegion = clickedBodyRegionData[0].bodyRegionId;
x = clickedBodyRegionData[0].X;
y = clickedBodyRegionData[0].Y;
width = clickedBodyRegionData[0].Width;
var height = clickedBodyRegionData[0].Height;
isMirror = clickedBodyRegionData[0].IsMirror;
var bodyRegionRight = parseInt(x) + parseInt(width);
var bodyRegionBottom = parseInt(y) + parseInt(height);
if (actulalX <= bodyRegionRight && x <= actulalX && actualY <= bodyRegionBottom && y <= actualY) {
clickedBodyRegion = clickedBodyRegionData[0].bodyRegionId;
x = clickedBodyRegionData[0].X;
y = clickedBodyRegionData[0].Y;
width = clickedBodyRegionData[0].Width;
var height = clickedBodyRegionData[0].Height;
isMirror = clickedBodyRegionData[0].IsMirror;
}
}
else {
$.each(BodyRegionDictionary, function (index, value) {
var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
if (actulalX <= bodyRegionRight && value.X <= actulalX && actualY <= bodyRegionBottom && value.Y <= actualY) {
clickedBodyRegion = value.bodyRegionId;
x = value.X;
y = value.Y;
width = value.Width;
isMirror = value.IsMirror;
return false;
}
})
}
if(clickedBodyRegion==undefined) return;
if (isMirror == "Yes") {
var mirrorCanvasX = x;
var mirrorCanvasWidth = width;
var clickedCanvasMaskId = 'imageCanvas' + clickedBodyRegion + '_mci' + "|" + windowviewid;
var clickedCanavs = document.getElementById(clickedCanvasMaskId);
var maskCanvasId = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci' + "_" + windowviewid;
var maskCanvas = document.getElementById(maskCanvasId);
if (maskCanvas != null) {
x = maskCanvas.style.left;
y = maskCanvas.style.top;
var maskCanvasTransId = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci' + "_" + windowviewid;
var maskCanvastrans = document.getElementById(maskCanvasTransId);
var maskCanvasContexttrans = maskCanvastrans.getContext("2d");
getAnnotationAndCraeteSpeechBubble(mirrorCanvasX, mirrorCanvasWidth, mousePos, maskCanvasContexttrans, clickedBodyRegion, x, y, evt)
}
//if non mirrored canvas does not exist for this irror Body region then draw non mirrored image to get annotation
else if (maskCanvas == null) {
var clickedBodyRegionData = new jinqJs()
.from(BodyRegionDictionary)
.where('bodyRegionId == ' + clickedBodyRegion)
.select();
if (clickedBodyRegionData != null || clickedBodyRegionData != undefined) {
var nomMirroredBodyRegion = new jinqJs()
.from(clickedBodyRegionData)
.where('IsMirror == No')
.select();
var transparencyTempcanavsMask = document.createElement('canvas');
transparencyTempcanavsMask.id = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci' + "_" + windowviewid;
transparencyTempcanavsMask.height = nomMirroredBodyRegion[0].Height;
transparencyTempcanavsMask.width = nomMirroredBodyRegion[0].Width;
transparencyTempcanavsMask.style.position = "absolute";
transparencyTempcanavsMask.style.left = nomMirroredBodyRegion[0].X + 'px' // x + "px";
transparencyTempcanavsMask.style.top = nomMirroredBodyRegion[0].Y + "px"//y + "px";
transparencyTempcanavsMask.style.visibility = 'hidden';
document.getElementById('canvasDivDA_' + windowviewid).appendChild(transparencyTempcanavsMask);
var tranparencyImgSrc = $scope.GetImageSource(clickedBodyRegion, windowviewid);
var tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
var tempMaskImg = new Image();
tempMaskImg.src = tranparencyMaskImgSrc;
tempMaskImg.onload = function () {
var transparencyTempcanavsMask = document.getElementById(maskCanvasId);
var tempmaskCtx = transparencyTempcanavsMask.getContext('2d');
tempmaskCtx.drawImage(tempMaskImg, 0, 0);
//get x,y of non mirrored canvas for this body region
x = transparencyTempcanavsMask.style.left;
y = transparencyTempcanavsMask.style.top;
getAnnotationAndCraeteSpeechBubble(mirrorCanvasX, mirrorCanvasWidth, mousePos, tempmaskCtx, clickedBodyRegion, x, y, evt)
}
}
}
}
else {
var clickedCanvasMaskId = 'imageCanvas' + clickedBodyRegion + '_mci' + "|" + windowviewid;
var maskCanvas = document.getElementById(clickedCanvasMaskId);
var maskCanvasContext = maskCanvas.getContext("2d");
//transparecncy canvas
var maskCanvasTransId = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci' + "_" + windowviewid;
var maskCanvastrans = document.getElementById(maskCanvasTransId);
var maskCanvasContexttrans = maskCanvastrans.getContext("2d");
pixelData = maskCanvasContext.getImageData(Math.round(actulalX - x), Math.round(actualY - y), 1, 1);
pixelDataTrans = maskCanvasContexttrans.getImageData(Math.round(actulalX - x), Math.round(actualY - y), 1, 1);
var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope,windowviewid);
$scope.annotationTextArrayT1 = [];
$scope.annotationTextArrayT2 = [];
for (var i = 0; i <= $rootScope.annotationTextForTrans1.length - 1; i++) {
$scope.annotationTextArrayT1.push($rootScope.annotationTextForTrans1[i]);
}
for (var i = 0; i <= $rootScope.annotationTextForTrans2.length - 1; i++) {
$scope.annotationTextArrayT2.push($rootScope.annotationTextForTrans2[i]);
}
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
if (TermAnnotationText.length > 0) {
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, false, 0, 0,windowviewid);
}
}
}
function OnClickModestyTransCanvas(evt) {
var windowviewid = (evt.currentTarget.id).split("_")[2];
var tCanvasLeft = $(".ui-wrapper").css("left");
var tCanvasLeftAftrSplit = tCanvasLeft.split("p");
var tCanvasTop = $(".ui-wrapper").css("top");
var tCanvasTopAftrSplit = tCanvasTop.split("p");
var tCanvasWidth = $(".ui-wrapper").css("width");
var tCanvasWidthAftrSplit = tCanvasWidth.split("p");
var tCanvasHeight = $(".ui-wrapper").css("height");
var tCanvasHeightAftrSplit = tCanvasHeight.split("p");
// alert("modesty");
var tCanvasTotalWidth = parseInt(tCanvasLeftAftrSplit[0]) + parseInt(tCanvasWidthAftrSplit[0]);
var tCanvasTotalHeight = parseInt(tCanvasTopAftrSplit[0]) + parseInt(tCanvasHeightAftrSplit[0]);
var mousePos = $scope.getMousePos(evt.pageX,evt.pageY,windowviewid);
var canvasDiv = document.getElementById('canvasDivDA_'+windowviewid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
var actulalX = mousePos.x + horizontlScrollPosition;
var actualY = mousePos.y + verticalScrollPosition;
var canavsX = evt.currentTarget.offsetLeft;
var canvasY = evt.currentTarget.offsetTop;
if ((tCanvasLeftAftrSplit[0] <= actulalX && (actulalX <= tCanvasTotalWidth)) && (tCanvasTopAftrSplit[0] <= actualY && actualY <= tCanvasTotalHeight)) {
var canvasId = evt.currentTarget.id;
var canavsContext = document.getElementById(canvasId).getContext('2d');
var RGBColor = $scope.GetRGBColor(canavsContext, actulalX, actualY, canavsX, canvasY);
var annotationText;
//Modesty ON
if (canvasId.match('modestyImg') && RGBColor != '000000') {
RGBColor = DA[0].figLeafTermId;
annotationText = $scope.GetAnnotationBasedOnActualTermNo(RGBColor, null, windowviewid);
$scope.annotationTextArrayT1 = [];
$scope.annotationTextArrayT2 = [];
$scope.annotationTextArrayT1.push(annotationText);
$scope.annotationTextArrayT2.push(annotationText);
}
//Modesty On but clicked somewhre else, we did modesty check because the modesty image covers whole body region so if user will click to
//see the annotation apart from leaf then the actual click will be on modesty canvas, but for annotation er
//
else if (canvasId.match('modestyImg') && RGBColor == '000000') {
var bodyRegionId = canvasId.split("_")[1].slice(-1);
var maskCanvasId = 'imageCanvas' + bodyRegionId + '_mci' + '|' + windowviewid;
var maskCanvas = document.getElementById(maskCanvasId);
var maskCanvasContext = maskCanvas.getContext("2d");
//transparecncy canvas
var maskCanvasTransId = 'transparencyTempCanvasMask_' + bodyRegionId + '_mci' + "_" + windowviewid;
var maskCanvastrans = document.getElementById(maskCanvasTransId);
var maskCanvasContexttrans = maskCanvastrans.getContext("2d");
var pixelData = maskCanvasContext.getImageData(Math.round(actulalX - canavsX), Math.round(actualY - canvasY), 1, 1);
var pixelDataTrans = maskCanvasContexttrans.getImageData(Math.round(actulalX - canavsX), Math.round(actualY - canvasY), 1, 1);
var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope,windowviewid);
$scope.annotationTextArrayT1 = [];
$scope.annotationTextArrayT2 = [];
for (var i = 0; i <= annotations.annotationT1.length - 1; i++) {
$scope.annotationTextArrayT1.push(annotations.annotationT1[i]);
}
for (var i = 0; i <= annotations.annotationT2.length - 1; i++) {
$scope.annotationTextArrayT2.push(annotations.annotationT2[i]);
}
}
var tCanvasTopPos = $(".ui-wrapper").css("top");
var tCanvasTopPosAftrSplit = tCanvasTopPos.split("p");
var tCanvasHeight = $(".ui-wrapper").css("height");
var tCanvasHeightAftrSplit = tCanvasHeight.split("p");
var tCanvasAttr = parseInt(tCanvasTopPosAftrSplit[0]) + parseInt(tCanvasHeightAftrSplit[0]);
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
if (TermAnnotationText.length > 0) {
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, false, 0, 0, windowviewid);
}
}
else {
$rootScope.getAnnotationTextBasedOnSelectedBodyRegion(evt);
}
}
function getAnnotationAndCraeteSpeechBubble(mirrorCanvasX, mirrorCanvasWidth, mousePos, maskCanvasContexttrans, clickedBodyRegion, x, y, evt) {
var windowviewid = (evt.target.id).split("_")[1];
var canvasDiv = document.getElementById('canvasDivDA_' + windowviewid);
var verticalScrollPosition = canvasDiv.scrollTop;
var horizontlScrollPosition = canvasDiv.scrollLeft;
var distanceXOnMirrorImage = (parseInt(mirrorCanvasX) + parseInt(mirrorCanvasWidth)) - (parseInt(mousePos.x) + horizontlScrollPosition);// - 135);
var mirrorXOnNormalImage = parseInt(maskCanvasContexttrans.canvas.offsetLeft) + parseInt(distanceXOnMirrorImage);
var actulalX = mirrorXOnNormalImage
var actualY = mousePos.y + verticalScrollPosition
var clickedCanvasMaskId = 'imageCanvas' + clickedBodyRegion + '_mci' + '|' + windowviewid;
var maskCanvas = document.getElementById(clickedCanvasMaskId);
var maskCanvasContext = maskCanvas.getContext("2d");
var imgX = Math.round(actulalX - parseInt((x).replace('px', '')));
var imgY = Math.round(actualY - parseInt((y).replace('px', '')));
var pixelData = maskCanvasContext.getImageData(imgX, imgY, 1, 1);
//trans layer image data
var pixelDataTrans = maskCanvasContexttrans.getImageData(imgX, imgY, 1, 1);
// console.log('at the time' + pixelData.data[0])
var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope,windowviewid);
$scope.annotationTextArrayT1 = [];
$scope.annotationTextArrayT2 = [];
for (var i = 0; i <= $rootScope.annotationTextForTrans1.length - 1; i++) {
$scope.annotationTextArrayT1.push($rootScope.annotationTextForTrans1[i]);
}
for (var i = 0; i <= $rootScope.annotationTextForTrans2.length - 1; i++) {
$scope.annotationTextArrayT2.push($rootScope.annotationTextForTrans2[i]);
}
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
if (TermAnnotationText.length > 0) {
$scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDivDA_' + windowviewid).offset().left, evt.pageY + verticalScrollPosition - $('#canvasDivDA_' + windowviewid).offset().top, false, 0, 0,windowviewid);
}
}
function clearTransCanvas(windowviewid) {
var tCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
if (tCanvas != null) {
var tCanvasContext = tCanvas.getContext('2d');
tCanvasContext.clearRect(0, 0, parseInt(tCanvas.style.width), parseInt(tCanvas.style.height));
}
}
$scope.getAnnotationForTransparencyBox = function (pixelData, pixelDataTrans, scope,windowviewid) {
pixelData.data[0] = pixelData.data[0] - 9;
pixelData.data[1] = pixelData.data[1] - 9;
pixelData.data[2] = pixelData.data[2] - 9;
//trans pixel data
pixelDataTrans.data[0] = pixelDataTrans.data[0] - 9;
pixelDataTrans.data[1] = pixelDataTrans.data[1] - 9;
pixelDataTrans.data[2] = pixelDataTrans.data[2] - 9;
var Red;
var Green;
var Blue;
var zero = "0";
if ((pixelData.data[0]).toString().length != 2) {
Red = zero.concat((pixelData.data[0]).toString())
}
else {
Red = (pixelData.data[0]).toString()
}
if ((pixelData.data[1]).toString().length != 2) {
Green = zero.concat((pixelData.data[1]).toString())
}
else {
Green = (pixelData.data[1]).toString()
}
if ((pixelData.data[2]).toString().length != 2) {
Blue = zero.concat((pixelData.data[2]).toString())
}
else {
Blue = (pixelData.data[2]).toString()
}
var RGBColor = (Red + Green + Blue);
$rootScope.annotationTextForTrans1 = [];
var annotationText1 = $scope.GetAnnotationText(parseInt(RGBColor),windowviewid);
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$rootScope.annotationTextForTrans1.push(TermAnnotationText[i]);
}
//get annotation for trans canavs
var RedTrans;
var GreenTrans;
var BlueTrans;
var zero = "0";
if ((pixelDataTrans.data[0]).toString().length != 2) {
RedTrans = zero.concat((pixelDataTrans.data[0]).toString())
}
else {
RedTrans = (pixelDataTrans.data[0]).toString()
}
if ((pixelDataTrans.data[1]).toString().length != 2) {
GreenTrans = zero.concat((pixelDataTrans.data[1]).toString())
}
else {
GreenTrans = (pixelDataTrans.data[1]).toString()
}
if ((pixelDataTrans.data[2]).toString().length != 2) {
BlueTrans = zero.concat((pixelDataTrans.data[2]).toString())
}
else {
BlueTrans = (pixelDataTrans.data[2]).toString()
}
var RGBColorTrans = (RedTrans + GreenTrans + BlueTrans);
$rootScope.annotationTextForTrans2 = [];
var annotationText2 = $scope.GetAnnotationText(parseInt(RGBColorTrans),windowviewid);
var TermAnnotationText=$scope.GetwindowStoreData(windowviewid,'TermAnnotationText');
for (var i = 0; i <= TermAnnotationText.length - 1; i++) {
$rootScope.annotationTextForTrans2.push(TermAnnotationText[i]);
}
return {
annotationT1: annotationText1,
annotationT2: annotationText2
}
}
$scope.onTransparencyChange = function (ev, ui) {
var targetid = ev.target.id;
var windowviewid = targetid.split('_')[1];
$scope.SetwindowStoreData(windowviewid,'transNumber',ui.value);
var tCanvas = document.getElementById('transparencyCanvas_' + windowviewid);
var tCanvasContext = tCanvas.getContext('2d');
var tCanvasHeight = parseInt((tCanvas.style.height).replace('px', ''));
var tCanvasWidth = parseInt((tCanvas.style.width).replace('px', ''));
var tBoxStartX = parseInt((tCanvas.style.left).replace('px', ''));
var tBoxEndX = parseInt((tCanvas.style.left).replace('px', '')) + parseInt((tCanvas.style.width.replace('px', '')));
var tBoxStartY = parseInt((tCanvas.style.top).replace('px', ''));
var tBoxEndY = parseInt((tCanvas.style.top).replace('px', '')) + parseInt((tCanvas.style.height).replace('px', ''));
var transparencyBoxBottom = parseInt(tBoxStartY) + parseInt(tCanvasHeight);
var transparencyBoxRight = parseInt(tBoxStartX) + parseInt(tCanvasWidth);
var arr = [];
$scope.transparencyChangeCounter++;
//before changing the transparency of first canvas, hold the orignal canvas data on temp canvas
//put original data on transcanvas so that it can be used to change transparency properly
var tempCanavs = document.getElementById('tempCanvas_' + windowviewid);
var tempCanvasContext = tempCanavs.getContext('2d');
var originalTransparencyData = tempCanvasContext.getImageData(0, 0, $scope.transparencyCanvasWidth, $scope.transparencyCanvasHeight);
var ctx = document.getElementById('transparencyCanvas_' + windowviewid).getContext('2d');
ctx.putImageData(originalTransparencyData, 0, 0);
$scope.transparencyDrawnRegions = [];
//for modesty
var isModestyOn=$scope.GetwindowStoreData(windowviewid,'isModestyOn');
var modestyImageInfo=$scope.GetwindowStoreData(windowviewid,'modestyImageInfo');
if (isModestyOn == true && modestyImageInfo.length > 0) {
$.each(modestyImageInfo, function (index, value) {
var brId = value.bodyRegionId;
var modestyTransTempCanvasId = 'tempCanvasModesty_' + brId + "_" + windowviewid;
var modestyTransCanvasId = 'modestyTransCanavs_' + brId + "_" + windowviewid;
if (document.getElementById(modestyTransTempCanvasId) != null) {
var tempCanvasContext = document.getElementById(modestyTransTempCanvasId).getContext('2d');
var originalTransparencyData = tempCanvasContext.getImageData(0, 0, value.Width, value.Height);
var ctx = document.getElementById(modestyTransCanvasId).getContext('2d');
ctx.putImageData(originalTransparencyData, 0, 0);
}
})
}
$scope.changeTransparency(windowviewid);
// });
}
$scope.CloseTransparencyBox = function (windowviewid) {
$scope.SetwindowStoreData(windowviewid,'isTBoxModestyVisible',false);
//for enabling annoataions.
//Now everything si done on canavases uswed in annotation toolbar.
$rootScope.switchCanvas();
if ($rootScope.isAnnotaionToolBarDrawingModeActive == true) {
$("#OnIdentify").removeClass('annotationtoolbartab');
$("#DrawMode").addClass('annotationtoolbartab');
//$('.btnCursor').trigger('click');
$("#annotationpaintbrushsize").removeClass("activebtncolor");
$("#annotationpainteraser").removeClass("activebtncolor");
$('.btnCursor').addClass('activebtncolor');
}
else {
$("#OnIdentify").addClass('annotationtoolbartab');
$("#DrawMode").removeClass('annotationtoolbartab');
}
//To enable extract button
$scope.SetwindowStoreData(windowviewid,'isTransparencyActivated',false);
// $rootScope.isTransparencyActivated = false;
$("#btnExtract_" + windowviewid).removeClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "auto");
$('.com_anno_'+windowviewid).remove();
$('#sppeachBubble_annotation_'+windowviewid).remove();
$('#dot_annotation_'+windowviewid).remove();
$('#bord_annotation_'+windowviewid).remove();
$('#dot_'+windowviewid).remove();
$('#sppeachBubble_'+windowviewid).remove();
$('.com_'+windowviewid).remove();
$('#bord_'+windowviewid).remove();
// clear canvas on closing of transparency box
if ($rootScope.isAnnotationWindowOpen == true) {
$('#canvasDA_'+windowviewid).removeLayers();
var paintCanvasObj = document.getElementById('canvasPaintDA_'+windowviewid);
if (paintCanvasObj != null) {
var ctx = paintCanvasObj.getContext("2d");
ctx.clearRect(0, 0, 2277, 3248);
var sktch = $('#canvasPaintDA_'+windowviewid).sketch();
$('#canvasPaintDA_'+windowviewid).sketch().actions = [];
}
}
var tBox = document.getElementById('transparencyCanvas_' + windowviewid);
if (tBox != null) {
tBox.parentNode.removeChild(tBox)
var elements = document.getElementsByClassName('ui-icon ui-icon-gripsmall-diagonal-se');
while (elements.length > 0) {
elements[0].parentNode.removeChild(elements[0]);
}
var totalayer=$scope.GetwindowStoreData(windowviewid,'totalLayers');
var currentlayer=$scope.GetwindowStoreData(windowviewid,'currentLayerNumber');
var sliderVal = parseInt(totalayer) - parseInt(currentlayer);
console.log('inside mouseDownListener. document.getElementById layerChangeSlider value : ' + document.getElementById('layerChangeSlider') + '$rootScope.totalLayers: ' + totalayer + ' - $rootScope.currentLayerNumber: ' + currentlayer + ' = set value for layerChangeSlider: ' + sliderVal);
$("#layerChangeSliderDA_" + windowviewid).slider("option", "value", sliderVal);
$('#txtLayerNumberDA_' + windowviewid).val(parseInt(currentlayer));
if (document.getElementById('tempCanvas_' + windowviewid) != null) {
$('#tempCanvas_' + windowviewid).remove();
}
var tempCanvases = $("canvas[id*='transparencyTempCanvas']");
for (var i = 0; i < tempCanvases.length; i++) {
var len= (tempCanvases[i].id).split("_").length;
var winid = (tempCanvases[i].id).split("_")[len-1];
if(winid==windowviewid)
{
tempCanvases[i].parentNode.removeChild(tempCanvases[i]);
}
}
$('.ui-wrapper').remove();
$scope.SetwindowStoreData(windowviewid,'layerNumber',currentlayer);
$scope.SetwindowStoreData(windowviewid,'transNumber',100);
}
var modestyTempCanvases = $("canvas[id*='tempCanvasModesty']");
if (modestyTempCanvases != null || modestyTempCanvases != undefined && modestyTempCanvases.length > 0) {
for (var j = 0; j < modestyTempCanvases.length; j++) {
var len= (modestyTempCanvases[j].id).split("_").length;
var winid = (modestyTempCanvases[j].id).split("_")[len-1];
if(winid==windowviewid)
{
modestyTempCanvases[j].parentNode.removeChild(modestyTempCanvases[j]);
}
}
}
var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
for (var j = 0; j < modestyTransCanvases.length; j++) {
var len= (modestyTransCanvases[j].id).split("_").length;
var winid = (modestyTransCanvases[j].id).split("_")[len-1];
if(winid==windowviewid)
{
modestyTransCanvases[j].parentNode.removeChild(modestyTransCanvases[j]);
}
}
}
$('#transparencyScale_' + windowviewid).css('visibility', 'hidden');
$('#btnTranparency_' + windowviewid).removeClass('tButtonActive');
$('#btnTranparency_' + windowviewid).addClass('btn-black');
$('#btnIdentify_' + windowviewid).removeClass('btn-black');
$('#btnIdentify_' + windowviewid).addClass('btn-primary');
document.getElementById('btnTranparency_' + windowviewid).removeEventListener("click", $scope.createTransparencyBox);
}
function positionTooltip(event, x, y) {
// alert('positionTooltip')
x = 100,
y = 200,
$('div.speech-bubble').css({
'position': 'absolute', 'top': x, 'left': y, 'background-color': '#f8f8f8',
'border': '2px solid #c8c8c8', 'width': '150px', 'height': '50px'
});
$('.arrow').css({
'border-style': 'solid',
'position': 'absolute'
});
$('.bottom').css({
'border-color': '#c8c8c8 transparent transparent transparent',
'border-width': ' 8px 8px 0px 8px',
'bottom': -'8px'
})
};
function positionTooltip(event, x, y) {
// alert('positionTooltip')
x = 100,
y = 200,
$('div.speech-bubble').css({
'position': 'absolute', 'top': x, 'left': y, 'background-color': '#f8f8f8',
'border': '2px solid #c8c8c8', 'width': '150px', 'height': '50px'
});
$('.arrow').css({
'border-style': 'solid',
'position': 'absolute'
});
$('.bottom').css({
'border-color': '#c8c8c8 transparent transparent transparent',
'border-width': ' 8px 8px 0px 8px',
'bottom': -'8px'
})
};
$scope.IdentifyClick = function (windowviewid) {
//if listanager is visisble then close it
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$rootScope.CloseListManager();
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyBtnClicked') == true) {
$scope.SetwindowStoreData(windowviewid,'isTransparencyBtnClicked',false);
var canvasDiv = document.getElementById('canvasDivDA_'+windowviewid);
canvasDiv.removeEventListener("mousedown", mouseDownListener);
canvasDiv.removeEventListener("mousemove", mouseMoveListener);
canvasDiv.removeEventListener("mouseup", mouseUpListener)
$('#btnTranparency_' + windowviewid).removeClass('tButtonActive');
$('#btnTranparency_' + windowviewid).addClass('btn-black');
$("#btnExtract_" + windowviewid).removeClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "auto");
}
}
$scope.enableZoom = function (event) {
var windowviewid = (event.currentTarget.id).split("_")[1];
if ($rootScope.isOpenResourceBtnClicked) {
var btnId = (event.currentTarget).id;
if (btnId.indexOf('_') != -1) {
$rootScope.multiViewCounter = (btnId).split("_")[1];
$scope.setScopeVariables();
}
}
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
$("#OnIdentify").removeClass("annotationtoolbartab");
$("#DrawMode").removeClass("annotationtoolbartab");
$('.btnCursor').removeClass('activebtncolor');
$(".annotationTollbar").css("display", "none");
$("#annotationButton").removeClass("active");
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyBtnClicked') == true && !$scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$("#btnExtract_" + windowviewid).addClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "none");
$('#btnTranparency_' + windowviewid).addClass('tButtonActive');
$('#btnTranparency_' + windowviewid).removeClass('btn-black');
}
else
$("#btnExtract_" + windowviewid).removeClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "auto");
$('#btnTranparency_' + windowviewid).removeClass("disabled");
$('#btnTranparency_' + windowviewid).css("pointer-events", "auto");
$rootScope.isTransparencyBoxActivated = false;
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
$scope.SetwindowStoreData(windowviewid,'isGenderChnage',false);
$scope.SetwindowStoreData(windowviewid,'isViewChange',false);
//if listanager is visisble then close it
$rootScope.CloseListManager();
$('#sppeachBubble_'+windowviewid).css('display', 'none');
$('#dot_'+windowviewid).css("display", "none");
$scope.terminateCurrentlyRunningWPs();
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$scope.CloseTransparencyBox(windowviewid);
}
$scope.SetwindowStoreData(windowviewid,'isZoomed',true);
//1.
$scope.flushCanvas(windowviewid);
if ($rootScope.isOpenResourceBtnClicked) {
var zoomVal = $('#zoomValueDA_' + windowviewid).val();
if (zoomVal == 25) {
$scope.SetwindowStoreData(windowviewid,'zoomInOut',75);
$('#zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
}
else {
$scope.SetwindowStoreData(windowviewid,'zoomInOut',25);
$('#$zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
}
}
else
{
var zoomVal = $('#zoomValueDA_' +windowviewid).val();
if (zoomVal == 25) {
$scope.SetwindowStoreData(windowviewid,'zoomInOut',75);
$('#zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
}
else {
$scope.SetwindowStoreData(windowviewid,'zoomInOut',25);
$('#zoomValueDA_' + windowviewid).attr('value', $scope.GetwindowStoreData(windowviewid,'zoomInOut'));
}
}
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.CalculateImageCordinates(viewOrientationId,windowviewid);
//3.
if ($scope.GetwindowStoreData(windowviewid,'zoomInOut') == 25) {
if ($('#canvasDivDA_' + windowviewid) != null)
$('#canvasDivDA_' + windowviewid).scrollLeft(0)
}
else {
if ($('#canvasDivDA_' + windowviewid) != null)
$('#canvasDivDA_' + windowviewid).scrollLeft($('#canvasDivDA_'+windowviewid).width() / 2)
}
//remove annotation speech bubble
if ($('#dot_'+windowviewid).length > 0) {
$('#dot_'+windowviewid).remove();
}
if ($('#sppeachBubble_'+windowviewid).length > 0) {
$('#sppeachBubble_'+windowviewid).remove();
}
//4.
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
$timeout(function () { $scope.highLightBody(windowviewid) }, 50);
}
}
$scope.flushCanvas = function (windowviewid) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
var endIndex = 0;
var startIndex = 0;
if ((viewOrientationId == '1') || (viewOrientationId == '4')) {
endIndex = 6;
startIndex = 1;
}
else if ((viewOrientationId == '2') || (viewOrientationId == '3')) {
endIndex = 5;
startIndex = 1;
}
else if ((viewOrientationId == '5')) {
endIndex = 6;
startIndex = 2;
}
else if ((viewOrientationId == '6')) {
endIndex = 6;
startIndex = 6;
}
for (var i = startIndex; i <= endIndex; i++) {
var id;
var maskId;
if ($rootScope.isOpenResourceBtnClicked) {
id = 'imageCanvas' + i + '|' + windowviewid;
maskId = 'imageCanvas' + i + '_mci' + '|' + windowviewid;
}
else {
id = 'imageCanvas' + i + '|' + windowviewid;
maskId = 'imageCanvas' + i + '_mci'+'|'+ windowviewid;
}
var canvas = document.getElementById(id);
if (canvas != null || canvas != undefined)
document.getElementById('canvasDivDA_' + windowviewid).removeChild(canvas);
var maskcanvas = document.getElementById(maskId);
if (maskcanvas != null || maskcanvas != undefined)
document.getElementById('canvasDivDA_' + windowviewid).removeChild(maskcanvas);
if (endIndex == 6) {
if (i == 4 || i == 5 || i == 6) {
if ($rootScope.isOpenResourceBtnClicked) {
id = 'imageCanvas' + i + '_MR' + '|' + windowviewid;
maskId = 'imageCanvas' + i + '_MR_mci' + '|' + windowviewid;
}
else {
id = 'imageCanvas' + i + '_MR'+'|'+ windowviewid;
maskId = 'imageCanvas' + i + '_MR_mci'+'|'+ windowviewid;
}
var canvas = document.getElementById(id);
if (canvas != null || canvas != undefined)
document.getElementById('canvasDivDA_' + windowviewid).removeChild(canvas);
var maskcanvas = document.getElementById(maskId);
if (maskcanvas != null || maskcanvas != undefined)
document.getElementById('canvasDivDA_' + windowviewid).removeChild(maskcanvas);
}
}
//remove modesty canavs
var modestyCanvases = $("canvas[id*='imageCanvasmodestyImg']");
if (modestyCanvases != null || modestyCanvases != undefined && modestyCanvases.length > 0) {
for (var j = 0; j < modestyCanvases.length; j++) {
var len= (modestyCanvases[j].id).split("|").length;
var winid = (modestyCanvases[j].id).split("|")[len-1];
if(winid==windowviewid)
{
modestyCanvases[j].parentNode.removeChild(modestyCanvases[j]);
}
}
}
}
}
$scope.terminateCurrentlyRunningWPs = function () {
if ($scope.runningWorkers != null || $scope.runningWorkers != undefined) {
var workerCount = $scope.runningWorkers.length;
if (workerCount > 0) {
for (var i = workerCount - 1; i >= 0; i--) {
var runningWorker = $scope.runningWorkers[i].workerName;
runningWorker.terminate();
$scope.runningWorkers.splice(i, 1);
// workerCount--;
}
}
}
}
$scope.enableHighlight = function (windowviewid) {
$scope.DisableUI();
$('#btnTranparency_' + windowviewid).removeAttr('disabled', 'disabled');
//if listanager is visisble then close it
$rootScope.CloseListManager();
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
if (isHighlightBodyByBodySystem) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',false);
//to make the system highlight if the body systme highlighted than Normal and again highlight
$scope.SetwindowStoreData(windowviewid,'isbodySystemHighlight',true);
}
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
}
else {
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
$scope.SetwindowStoreData(windowviewid,'isZoomed',false);
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
//1.
$scope.SetwindowStoreData(windowviewid,'isExtract',false);
//2.
$scope.flushCanvas(windowviewid);
//3.
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.CalculateImageCordinates(viewOrientationId,windowviewid);
}
else {
console.log('highLightBody from enableHighlight')
$timeout(function () { $scope.highLightBody(windowviewid) }, 50);
}
}
// unhighlight other
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
if (!$("#btnNormalMode_" + windowviewid).hasClass("btn-black")) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if (!$("#btnExtract_" + windowviewid).hasClass("btn-black")) {
$("#btnExtract_" + windowviewid).addClass("btn-black");
}
if ($("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
}
//7900
var CanvasDivLeftPosition=$scope.GetwindowStoreData(windowviewid,'CanvasDivLeftPosition');
var CanvasDivTopPosition=$scope.GetwindowStoreData(windowviewid,'CanvasDivTopPosition');
$('#canvasDivDA_' + windowviewid).scrollTop(CanvasDivTopPosition);
$('#canvasDivDA_' + windowviewid).scrollLeft(CanvasDivLeftPosition);
$scope.EnableUI();
}
$scope.enableNormalMode = function (windowviewid) {
$scope.SetwindowStoreData(windowviewid,'previousHighlightList',[]);
$('#btnTranparency_' + windowviewid).removeClass("disabled");
$('#btnTranparency_' + windowviewid).css("pointer-events", "auto");
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
var currentLayerNumber=$scope.GetwindowStoreData(windowviewid,'currentLayerNumber');
$scope.SetwindowStoreData(windowviewid,'layerNumber',currentLayerNumber);
}
else {
$scope.SetwindowStoreData(windowviewid,'layerNumber',$("#txtLayerNumberDA_" + windowviewid).val());
}
$('#txtLayerNumberDA_' + windowviewid).val($scope.GetwindowStoreData(windowviewid,'layerNumber'))
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
console.log('enableNormalMode is called');
//to do should not call every time
$rootScope.CloseListManager();
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
if (isHighlightBodyByBodySystem) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',false);
//to make the system highlight if the body systme highlighted than Normal and again highlight
$scope.SetwindowStoreData(windowviewid,'isbodySystemHighlight',true);
}
if ($scope.GetwindowStoreData(windowviewid,'isNormalMode') == true) {
}
else {
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
//1.
$scope.flushCanvas(windowviewid);
//2.
$scope.SetwindowStoreData(windowviewid,'isNormalMode',true);
//3.
$scope.SetwindowStoreData(windowviewid,'isHighLight',false);
//4.
$scope.SetwindowStoreData(windowviewid,'isExtract',false);
//5.
$scope.SetwindowStoreData(windowviewid,'isZoomed',false);
//6.
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
var actualTermNumber=$scope.GetwindowStoreData(windowviewid,'actualTermNumber');
if (actualTermNumber != null && actualTermNumber != undefined && isListManagerSelected == true) {
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$scope.SetwindowStoreData(windowviewid,'isListManagerAlreadySelected',true);
}
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.CalculateImageCordinates(viewOrientationId,windowviewid);
var CanvasDivLeftPosition=$scope.GetwindowStoreData(windowviewid,'CanvasDivLeftPosition');
var CanvasDivTopPosition=$scope.GetwindowStoreData(windowviewid,'CanvasDivTopPosition');
$('#canvasDivDA_' + windowviewid).scrollTop(CanvasDivTopPosition);
$('#canvasDivDA_' + windowviewid).scrollLeft(CanvasDivLeftPosition);
}
$("#btnNormalMode_" + windowviewid).addClass("btn-primary");
$("#btnNormalMode_" + windowviewid).removeClass("btn-black");
if (!$("#btnExtract_" + windowviewid).hasClass("btn-black")) {
$("#btnExtract_" + windowviewid).addClass("btn-black");
}
if (!$("#btnHighLight_" + windowviewid).hasClass("btn-black")) {
$("#btnHighLight_" + windowviewid).addClass("btn-black");
}
if ($("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnHighLight_" + windowviewid).hasClass("btn-primary")) {
$("#btnHighLight_" + windowviewid).removeClass("btn-primary");
}
}
//// #7972 Mozilla Firefox> Incorrect navigation
$("#canvasDiv").scroll(function (event) {
var windowviewid = (event.currentTarget.id).split("_")[1];
$scope.SetwindowStoreData(windowviewid,'CanvasDivLeftPosition',$('#canvasDivDA_' + windowviewid).scrollLeft());
$scope.SetwindowStoreData(windowviewid,'CanvasDivTopPosition',$('#canvasDivDA_' + windowviewid).scrollTop());
});
$scope.enableExtract = function (isCalledFromButton,windowviewid) {
$scope.DisableUI();
console.log('isCalledFromButton= ' + isCalledFromButton);
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
$scope.SetwindowStoreData(windowviewid,'CanvasDivLeftPosition',$('#canvasDivDA_' + windowviewid).scrollLeft());
$scope.SetwindowStoreData(windowviewid,'CanvasDivTopPosition',$('#canvasDivDA_' + windowviewid).scrollTop());
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated') == true) {
$("#btnExtract_" + windowviewid).addClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "none");
}
else {
$rootScope.CloseListManager();
//2.
$scope.terminateCurrentlyRunningWPs();
//3.
//if extarct is alraedy enabled and user cliked on any body part then extract that.
if (isCalledFromButton == false) {
$scope.SetwindowStoreData(windowviewid,'isExtract',true);
//disable transparency button
$('#btnTranparency_' + windowviewid).addClass("disabled");
$('#btnTranparency_' + windowviewid).css("pointer-events", "none");
if ($scope.GetwindowStoreData(windowviewid,'isNormalMode') == true) {
$scope.SetwindowStoreData(windowviewid,'isHighLight',false);
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
}
else {
$scope.SetwindowStoreData(windowviewid,'isHighLight',false);
}
//4.
console.log('highLightBody from enableExtract')
$scope.highLightBody(windowviewid);
}
else
{
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
}
else {
$scope.SetwindowStoreData(windowviewid,'isExtract',true);
//disable transparency button
$("#btnTranparency_" + windowviewid).addClass("disabled");
$("#btnTranparency_" + windowviewid).css("pointer-events", "none");
if ($scope.GetwindowStoreData(windowviewid,'isNormalMode') == true) {
$scope.SetwindowStoreData(windowviewid,'isHighLight',false);
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
}
else {
$scope.SetwindowStoreData(windowviewid,'isHighLight',false);
}
//4.
console.log('highLightBody from enableExtract')
$scope.highLightBody(windowviewid);
}
}
//5. unhighlight other
$("#btnExtract_" + windowviewid).addClass("btn-primary");
$("#btnExtract_" + windowviewid).removeClass("btn-black");
if (!$("#btnNormalMode_" + windowviewid).hasClass("btn-black")) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if (!$("#btnHighLight_" + windowviewid).hasClass("btn-black")) {
$("#btnHighLight_" + windowviewid).addClass("btn-black");
}
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnHighLight_" + windowviewid).hasClass("btn-primary")) {
$("#btnHighLight_" + windowviewid).removeClass("btn-primary");
}
}
$scope.EnableUI();
}
$scope.enableShowHideStructureBox = function (event) {
//if listanager is visisble then close it
var windowviewid = (event.currentTarget.id).split("_")[1];
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$rootScope.CloseListManager();
var btnStrutureBoxname = document.getElementById("btnStrutureBox_" + windowviewid).name;
if (btnStrutureBoxname == "showAnnotationStructure") {
$("#btnStrutureBox_" + windowviewid).addClass("disableHideShowStructure");
$scope.hideAnnotation(windowviewid);
document.getElementById("btnStrutureBox_" + windowviewid).name = "hideAnnotationStructure";
}
else {
$("#btnStrutureBox_" + windowviewid).removeClass("disableHideShowStructure");
$scope.showAnnotation(windowviewid);
document.getElementById("btnStrutureBox_" + windowviewid).name = "showAnnotationStructure";
}
}
$scope.highLightBody = function (windowviewid) {
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated') && $scope.GetwindowStoreData(windowviewid,'isGlobalSettingChanged')) {
//do not close Tbox
$scope.SetwindowStoreData(windowviewid,'isGlobalSettingChanged',false);
}
else
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$scope.CloseTransparencyBox(windowviewid);
}
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyBtnClicked') == true && !$scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$("#btnExtract_" + windowviewid).addClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "none");
$('#btnTranparency_' + windowviewid).addClass('tButtonActive');
$('#btnTranparency_' + windowviewid).removeClass('btn-black');
}
$scope.Normal = "";
$scope.Extract = "";
$scope.Highlight = "LeftButtonsDefaultState";
$('#btnTranparency_' + windowviewid).removeAttr('disabled', 'disabled');
var ColoredImageSRC=$scope.GetwindowStoreData(windowviewid,'ColoredImageSRC');
console.log('highLightBody is called and ColoredImageSRC length: ' + ColoredImageSRC.length);
$scope.terminateCurrentlyRunningWPs();
//different body views have different count of bodyegions so the length of ColoredImageSRC will be different
if ((ColoredImageSRC != null || ColoredImageSRC != undefined)) {
var doHighlightOrExtract=false;
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && (ColoredImageSRC.length == 9)) {
doHighlightOrExtract = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && (ColoredImageSRC.length == 5)) {
doHighlightOrExtract = true;
}
else if (((viewOrientationId == '5')) && (ColoredImageSRC.length == 4)) {
doHighlightOrExtract = true;
}
else if (((viewOrientationId == '6')) && (ColoredImageSRC.length == 1)) {
doHighlightOrExtract = true;
}
else {
doHighlightOrExtract = false;
}
if (doHighlightOrExtract == true) {
$scope.loopcounter=0;
$scope.whiteImageDataList = [];
$scope.SetwindowStoreData(windowviewid,'whiteImageDataList',[]);
$scope.whiteImageMRDataList = [];
$scope.SetwindowStoreData(windowviewid,'whiteImageMRDataList',[]);
$scope.grayImageDataList = [];
$scope.SetwindowStoreData(windowviewid,'grayImageDataList',[]);
$scope.grayImageMRDataList = [];
$scope.SetwindowStoreData(windowviewid,'grayImageMRDataList',[]);
// not using
// $scope.SetwindowStoreData(windowviewid,'updatedWhiteImageDataList',[]);
// $scope.SetwindowStoreData(windowviewid,'updatedWhiteImageMRDataList',[]);
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == true) {
$scope.grayedBR = [];
$scope.SetwindowStoreData(windowviewid,'grayedBR',[]);
angular.forEach(ColoredImageSRC, function (value, key) {
console.log('ColoredImageSRC length before gray= ' + ColoredImageSRC.length)
var id;
if (value.haveMirror == 'true') {
if ($rootScope.multiViewCounter != undefined) {
id = 'imageCanvas' + value.bodyRegionId + '_MR' + '|' + windowviewid;
}
else {
id = 'imageCanvas' + value.bodyRegionId + '_MR' + '|' + windowviewid;
}
}
else {
if ($rootScope.multiViewCounter != undefined) {
id = 'imageCanvas' + value.bodyRegionId + '|' + windowviewid;
}
else {
id = 'imageCanvas' + value.bodyRegionId + '|' + windowviewid;
}
}
var imageCanvas = document.getElementById(id);
var width = value.Width;
var ht = value.Height;
var coloredCanvasContext = imageCanvas.getContext("2d");
var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht);
var coloredImageDataVar = coloredImageData;
var context_gray = imageCanvas.getContext('2d');
var dataURL = imageCanvas.toDataURL();
var img = new Image();
img.src = dataURL;
img.onload = function () {
$scope.loopcounter=$scope.loopcounter+1;
console.log('Before BitmapData call, width: ' + Math.max(img.width) + ', height: ' + Math.max(img.height) + ' value.bodyRegionId= '
+ value.bodyRegionId)
var DAData = new BitmapData(Math.max(img.width), Math.max(img.height));
DAData.draw(img);
var colorMode;
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isbodySystemHighlight=$scope.GetwindowStoreData(windowviewid,'isbodySystemHighlight');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if (((previousHighlightList != null || previousHighlightList != undefined) && previousHighlightList.length > 0) || isListManagerSelected == true || (isHighlightBodyByBodySystem == true || isbodySystemHighlight == true)) {
colorMode = $scope.applyWhiteMatrix(img, context_gray);
}
}
else {
colorMode = $scope.applyGrayMatrix(img, context_gray);
}
console.log('colorMode inside if = ' + colorMode);
if (colorMode != undefined || colorMode != null) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var zeroPoint = new Point();
DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
context_gray.putImageData(DAData.data, 0, 0)
//to resolve lateral arm black issue in highlight mode
if (viewOrientationId == 5 && (value.bodyRegionId == 6 || value.bodyRegionId == 4)) {
var imgData = context_gray.getImageData(0, 0, width, ht);
var data = imgData.data;
var c = 0;
for (var i = 0; i < data.length; i += 4) {
if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
data[i + 3] = 0;
}
}
context_gray.putImageData(imgData, 0, 0);
}
imageCanvas.style.visibility = 'visible';
//push BRID into array
var totalCanvas;
if ((viewOrientationId == '1') || (viewOrientationId == '4')) {
totalCanvas = 9;
}
else if ((viewOrientationId == '2') || (viewOrientationId == '3')) {
totalCanvas = 5;
}
else if ((viewOrientationId == '5')) {
totalCanvas = 4;
}
else if ((viewOrientationId == '6')) {
totalCanvas = 1;
}
if ($scope.grayedBR.length < totalCanvas) {
$scope.grayedBR.push({ 'BRID': value.bodyRegionId });
}
var grayImageData = context_gray.getImageData(0, 0, width, ht);
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
if (value.haveMirror == 'true') {
$scope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
}
else {
$scope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
}
}
else {
if (value.haveMirror == 'true') {
$scope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
}
else {
$scope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
}
}
if($scope.loopcounter==ColoredImageSRC.length)
{
$scope.SetwindowStoreData(windowviewid,'whiteImageDataList',$scope.whiteImageDataList);
$scope.SetwindowStoreData(windowviewid,'whiteImageMRDataList',$scope.whiteImageMRDataList);
$scope.SetwindowStoreData(windowviewid,'grayImageDataList',$scope.grayImageDataList);
$scope.SetwindowStoreData(windowviewid,'grayImageMRDataList',$scope.grayImageMRDataList);
}
if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
var isEligibleForHighlightBodyByTermList = false;
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
isEligibleForHighlightBodyByTermList = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
isEligibleForHighlightBodyByTermList = true;
}
else if (((viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
isEligibleForHighlightBodyByTermList = true;
}
else if (((viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
isEligibleForHighlightBodyByTermList = true;
}
else {
isEligibleForHighlightBodyByTermList = false;
}
if (isEligibleForHighlightBodyByTermList == true) {
$scope.SetwindowStoreData(windowviewid,'grayedBR',$scope.grayedBR);
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isHighLight=$scope.GetwindowStoreData(windowviewid,'isHighLight');
var isbodySystemHighlight=$scope.GetwindowStoreData(windowviewid,'isbodySystemHighlight');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
var isGenderChnage = $scope.GetwindowStoreData(windowviewid,'isGenderChnage');
var isViewChange = $scope.GetwindowStoreData(windowviewid,'isViewChange');
var isListManagerAlreadySelected=$scope.GetwindowStoreData(windowviewid,'isListManagerAlreadySelected');
if (((isHighlightBodyByBodySystem == true)) || (isbodySystemHighlight == true && isHighLight == true)) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
$timeout(function () { $scope.HighlightBodyByTermListForBodySystem(null, windowviewid) }, 100);
}
else if (($rootScope.isCallFromOtherModule == true) || (isListManagerSelected == true) || (previousHighlightList != null && previousHighlightList.length > 0) && (isGenderChnage == true || isViewChange == true) || isListManagerAlreadySelected == true) {
$timeout(function () {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var AllTerms=$scope.GetwindowStoreData(windowviewid,'AllTerms');
if (AllTerms != undefined && AllTerms.length > 0) {
$scope.HighlightBodyByTermList(AllTerms,windowviewid);
}
else {
$scope.EnableUI();
}
}, 500);
}
else if ((previousHighlightList != null || previousHighlightList != undefined) && previousHighlightList.length > 0) {
$scope.createTermListByPreviousTermsAndHighlight(windowviewid);
}
else {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
//for highlight when highlight button is clicked the ui got disabled,
//now highlight is completed so enalbe UI
$scope.EnableUI();
}
}
}
}
console.log('highlightboy. $rootScope.isExtract= ' + $rootScope.isExtract + ', previousHighlightList.length= ' + previousHighlightList.length)
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isbodySystemHighlight=$scope.GetwindowStoreData(windowviewid,'isbodySystemHighlight');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if ((previousHighlightList != null || previousHighlightList != undefined) && previousHighlightList.length > 0) {
console.log('1. $rootScope.isExtract=true and previousHighlightList != null')
$timeout(function () {
$scope.DisableUI();
$scope.HighlightBodyOnExtract(windowviewid) }, 50);
}
else if (isListManagerSelected == true) {
console.log('1. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
$timeout(function () {
$scope.DisableUI();
$scope.HighlightBodyOnExtract(windowviewid) }, 50);
}
else if (isHighlightBodyByBodySystem == true || isbodySystemHighlight == true) {
$scope.HighlightBodyByTermListForBodySystem(null,windowviewid);
}
else {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$scope.EnableUI();
}
}
}
})
}
else {
// This code will execute when user will select normal Mode but this time isHighlight will be false
console.log('highlightboy ELSE. $rootScope.isExtract= ' + $scope.GetwindowStoreData(windowviewid,'isExtract') + ', previousHighlightList.length= ' + previousHighlightList.length)
angular.forEach(ColoredImageSRC, function (value, key) {
var id;
if (value.haveMirror == 'true') {
if ($rootScope.multiViewCounter != undefined) {
id = 'imageCanvas' + value.bodyRegionId + '_MR' + '|' + windowviewid;
}
else {
id = 'imageCanvas' + value.bodyRegionId + '_MR'+'|' + windowviewid;;
}
}
else {
if ($rootScope.multiViewCounter != undefined) {
id = 'imageCanvas' + value.bodyRegionId + '|' + windowviewid;
}
else {
id = 'imageCanvas' + value.bodyRegionId + '|' + windowviewid;
}
}
var imageCanvas = document.getElementById(id);
var width = value.Width;
var ht = value.Height;
var coloredCanvasContext = imageCanvas.getContext("2d");
var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht);
var coloredImageDataVar = coloredImageData;
var context = imageCanvas.getContext('2d');
var dataURL = imageCanvas.toDataURL();
var img = new Image();
img.src = dataURL;
img.onload = function () {
$scope.loopcounter=$scope.loopcounter+1;
var DAData = new BitmapData(Math.max(img.width), Math.max(img.height));
DAData.draw(img);
var colorMode;
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isbodySystemHighlight=$scope.GetwindowStoreData(windowviewid,'isbodySystemHighlight');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if (((previousHighlightList != null || previousHighlightList != undefined) && previousHighlightList.length > 0) || isListManagerSelected == true || isHighlightBodyByBodySystem == true || isbodySystemHighlight == true) {
colorMode = $scope.applyWhiteMatrix(img, context);
}
}
console.log('colorMode inside else = ' + colorMode);
if (colorMode != undefined || colorMode != null) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var zeroPoint = new Point();
DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
context.putImageData(DAData.data, 0, 0)
//NIKI- to resolve lateral arm black issue in mode
if (viewOrientationId == 5 && (value.bodyRegionId == 6 || value.bodyRegionId == 4)) {
var imgData = context.getImageData(0, 0, width, ht);
var data = imgData.data;
var c = 0;
for (var i = 0; i < data.length; i += 4) {
if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
data[i + 3] = 0;
}
}
context.putImageData(imgData, 0, 0);
}
imageCanvas.style.visibility = 'visible'
var grayImageData = context.getImageData(0, 0, width, ht);
var grayImageImageDataVar = grayImageData.data;
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
if (value.haveMirror == 'true') {
$scope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
}
else {
$scope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
}
}
else {
if (value.haveMirror == 'true') {
$scope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
}
else {
$scope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
}
}
if($scope.loopcounter==ColoredImageSRC.length)
{
$scope.SetwindowStoreData(windowviewid,'whiteImageDataList',$scope.whiteImageDataList);
$scope.SetwindowStoreData(windowviewid,'whiteImageMRDataList',$scope.whiteImageMRDataList);
$scope.SetwindowStoreData(windowviewid,'grayImageDataList',$scope.grayImageDataList);
$scope.SetwindowStoreData(windowviewid,'grayImageMRDataList',$scope.grayImageMRDataList);
}
}
}
})
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
var isbodySystemHighlight=$scope.GetwindowStoreData(windowviewid,'isbodySystemHighlight');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
if ((previousHighlightList != null || previousHighlightList != undefined) && previousHighlightList.length > 0) {
console.log('2. $rootScope.isExtract=true and previousHighlightList != null, previousHighlightList.length= ' + previousHighlightList.length)
$timeout(function () {
$scope.DisableUI();
$scope.HighlightBodyOnExtract(windowviewid) }, 50);
}
else if (isListManagerSelected == true) {
console.log('2. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
$timeout(function () {
$scope.DisableUI();
$scope.HighlightBodyOnExtract(windowviewid) }, 50);
}
else if (isHighlightBodyByBodySystem == true || isbodySystemHighlight == true) {
$scope.HighlightBodyByTermListForBodySystem(null,windowviewid);
}
else {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$scope.EnableUI();
}
}
}
}
}
if (!$("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
if (!$("#btnNormalMode_" + windowviewid).hasClass("btn-black")) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if (!$("#btnExtract_" + windowviewid).hasClass("btn-black")) {
$("#btnExtract_" + windowviewid).addClass("btn-black");
}
if ($("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
}
}
}
$scope.applyGrayMatrix = function (img, context_gray) {
var RED = 0.3086; // luminance contrast value for red
var GREEN = 0.694; // luminance contrast value for green
var BLUE = 0.0820; // luminance contrast value for blue
var RGB = [RED, GREEN, BLUE, 0, 0];
var RGB2 = [RED, GREEN, BLUE, 0, 0];
var RGB3 = [RED, GREEN, BLUE, 0, 0];
var ALPHA = [0, 0, 0, 1, 0];
var rgbPx = RGB.concat(RGB2);
var rgbPx2 = rgbPx.concat(RGB3);
var matrix = rgbPx2.concat(ALPHA);
var grayScale = new ColorMatrixFilter(matrix);
return grayScale;
}
$scope.applyWhiteMatrix = function (img, context_gray) {
var RED = 255; // white color value for red
var GREEN = 255; // white color value for green
var BLUE = 255; // white color value for blue
var RGB = [RED, GREEN, BLUE, 0, 0];
var RGB2 = [RED, GREEN, BLUE, 0, 0];
var RGB3 = [RED, GREEN, BLUE, 0, 0];
var ALPHA = [0, 0, 0, 1, 0];
var rgbPx = RGB.concat(RGB2);
var rgbPx2 = rgbPx.concat(RGB3);
var matrix = rgbPx2.concat(ALPHA);
var grayScale = new ColorMatrixFilter(matrix);
return grayScale;
}
$scope.getActualTermNumber = function (iColor, windowviewid) {
var TermNData=$scope.GetwindowStoreData(windowviewid,'TermNumberData');
$scope.actualTermNo = new jinqJs()
.from(TermNData.TermData.Term)
.where('_TermNumber == ' + iColor)
.select('_ActualTermNumber');
if ($scope.actualTermNo != null && $scope.actualTermNo != undefined && $scope.actualTermNo.length > 0) {
return $scope.actualTermNo[0]._ActualTermNumber;
}
else {
return null;
}
}
$scope.getTermNumberList = function (actualTermNo,windowviewid) {
var TermNData=$scope.GetwindowStoreData(windowviewid,'TermNumberData');
if (TermNData != null) {
$scope.termList = new jinqJs()
.from(TermNData.TermData.Term)
.where('_ActualTermNumber == ' + actualTermNo)
.select();
if ($scope.termList != null || $scope.termList != undefined) {
return $scope.termList;
}
else {
return null;
}
}
else {
var currentBodyViewId = $scope.GetwindowStoreData(windowviewid,'voId');
var termJsonPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_tm_sg_' + currentBodyViewId + '.json';
DataService.getAnotherJson(termJsonPath)
.then(
function (result) {
//$rootScope.TermNumberData = result;
$scope.SetwindowStoreData(windowviewid,'TermNumberData',result);
$scope.getTermNumberList(actualTermNo,windowviewid);
})
}
}
$scope.OnGenderChange = function (event) {
var windowviewid = (event.target.parentElement.parentElement.id).split("_")[1];
var genderId = $scope.GetwindowStoreData(windowviewid,'genderId');
if (genderId == event.currentTarget.title) {
return;
}
$scope.DisableUI();
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
$scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
$scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft;
$("#btnExtract_" + windowviewid).removeClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "auto");
$("#btnTranparency_" + windowviewid).removeClass("disabled");
$("#btnTranparency_" + windowviewid).css("pointer-events", "auto");
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$scope.CloseTransparencyBox(windowviewid);
}
$rootScope.isTransparencyBoxActivated = false;
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyBtnClicked') == true && !$scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$("#btnExtract_" + windowviewid).addClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "none");
$('#btnTranparency_' + windowviewid).addClass('tButtonActive');
$('#btnTranparency_' + windowviewid).removeClass('btn-black');
}
//if listanager is visisble then close it
$rootScope.CloseListManager();
//Remove the Search list and then Repopulate it on change of Gender
$('#searchListDiv_' + windowviewid).empty()
$scope.SetwindowStoreData(windowviewid,'isGenderChnage',true);
if ($scope.GetwindowStoreData(windowviewid,'isExtract')== true) {
$scope.SetwindowStoreData(windowviewid,'isExtract',false);
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
$("#btnExtract_" + windowviewid).addClass("btn-black");
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
}
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
if (previousHighlightList.length > 0) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
$scope.SetwindowStoreData(windowviewid,'previousHighlightList',[]);
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
}
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
var currentBodyViewId = $scope.correspondingBodyViewIds[$scope.GetwindowStoreData(windowviewid,'voId')];
if ((event.currentTarget.title == 'Male') && (genderId == 'Female')) {
//1.
$scope.SetwindowStoreData(windowviewid,'genderId','Male');
//2 first update the currentbodyviewid in local storage
localStorage.setItem("currentBodyViewId", currentBodyViewId);
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
//3.
$scope.SetwindowStoreData(windowviewid,'layerNumber',0);
$scope.loadSelectedBodyView(currentBodyViewId, windowviewid);
//4.
$scope.loadNavigatorForSelectedBodyView(currentBodyViewId, windowviewid);
//5. change the search terms as per the selected bodyview
$rootScope.loadSearchData(windowviewid);
$scope.GetBodySystemData(currentBodyViewId,windowviewid);
//6.
var currentViewTitle = $scope.GetwindowStoreData(windowviewid,'currentViewTitle').replace('Female', 'Male');
$('#daImagePanel_' + windowviewid)[0].childNodes[0].childNodes[0].innerHTML = currentViewTitle;
$scope.SetwindowStoreData(windowviewid,'currentViewTitle',currentViewTitle);
$rootScope.isLoading = true;
}
else if ((event.currentTarget.title == 'Female') && (genderId == 'Male')) {
//1.
$scope.SetwindowStoreData(windowviewid,'genderId','Female')
//2. first update the currentbodyviewid in local storage
localStorage.setItem("currentBodyViewId", currentBodyViewId);
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
//3.
$scope.SetwindowStoreData(windowviewid,'layerNumber',0);
$scope.loadSelectedBodyView(currentBodyViewId, windowviewid);
//4.
$scope.loadNavigatorForSelectedBodyView(currentBodyViewId, windowviewid);
//5. change the search terms as per the selected bodyview
$rootScope.loadSearchData(windowviewid);
$scope.GetBodySystemData(currentBodyViewId,windowviewid);
//6.
var currentViewTitle = $scope.GetwindowStoreData(windowviewid,'currentViewTitle').replace('Male', 'Female');
$('#daImagePanel_' + windowviewid)[0].childNodes[0].childNodes[0].innerHTML = currentViewTitle;
$scope.SetwindowStoreData(windowviewid,'currentViewTitle',currentViewTitle);
$rootScope.isLoading = true;
}
$rootScope.openViews.push(
{
"module": $rootScope.currentActiveModuleTitle, "bodyView": currentViewTitle, "state": 'max', "BodyViewId": currentBodyViewId,
"slug": $scope.GetwindowStoreData(windowviewid, 'currentSlug')
}
);
var target = angular.element(event.currentTarget);
var title_male_female = target.attr('title');
$scope.switchGender(windowviewid,title_male_female);
$rootScope.CloseAnnotationTool();
$('#typedTermName_' + windowviewid).val('');
}
//clsoe worker process
$scope.$on('jsPanelCloseEvent', function (event, data) {
console.log('terminate worker process')
//terminate previous running workers to create space for new workers
$scope.terminateCurrentlyRunningWPs();
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
$rootScope.CloseListManager();
})
$scope.loadSelectedBodyView = function (currentBodyViewId, windowviewid) {
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
//remove transaprency scale
if ($('#transparencyScale_' + windowviewid) != null) {
$('#transparencyScale_' + windowviewid).css('visibility', 'hidden');
}
$scope.SetwindowStoreData(windowviewid,'voId',currentBodyViewId);
var layerJsonPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_layer_' + currentBodyViewId + '.json';
DataService.getJson(layerJsonPath)
.then(
function (result) {
// $rootScope.BodyLayerData = result;
$scope.SetwindowStoreData(windowviewid,'BodyLayerData',result);
//set max for LayerNumber input
var totalLayer = result.Layers.DataLayer.length-1;
$scope.SetwindowStoreData(windowviewid,'totalLayers',totalLayer);
$('#txtLayerNumberDA_' + windowviewid).attr('max', totalLayer);
console.log('inside DataService.getJson. document.getElementById layerChangeSlider value : ' + document.getElementById('layerChangeSlider') + 'set value: ' + totalLayer);
$("#layerChangeSliderDA_" + windowviewid).slider("option", "max", totalLayer);
//load json for annotations
// $http({ method: 'GET', url: '~/../content/data/json/da_dat_tm_sg_1.json' }).success(function (data) {
var termJsonPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_tm_sg_' + currentBodyViewId + '.json';
DataService.getAnotherJson(termJsonPath)
.then(
function (result) {
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.SetwindowStoreData(windowviewid,'TermNumberData',result);
var isViewChange=$scope.GetwindowStoreData(windowviewid,'isViewChange');
var isGenderChnage=$scope.GetwindowStoreData(windowviewid,'isGenderChnage');
var isListManagerSelected=$scope.GetwindowStoreData(windowviewid,'isListManagerSelected');
var isListManagerAlreadySelected=$scope.GetwindowStoreData(windowviewid,'isListManagerAlreadySelected');
//if user seelcted any term and serached before gender cnage then itshould be highlighted in chnaged gender
if (((isListManagerSelected == true) || isListManagerAlreadySelected == true ||
($scope.GetwindowStoreData(windowviewid,'isHighLight') == true && previousHighlightList != null
&& previousHighlightList.length > 0))
&& ((isGenderChnage == true) || isViewChange == true)) {
$scope.setLayerNumberAndHighlightByTermList(windowviewid);
}
else if (previousHighlightList != null && previousHighlightList.length > 0 &&
(isGenderChnage == true || isViewChange == true))
{
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
var TermNData=$scope.GetwindowStoreData(windowviewid,'TermNumberData');
if (TermNData != undefined) {
var actualTermNumber=$scope.GetwindowStoreData(windowviewid,'actualTermNumber');
$scope.TermList = $scope.getTermNumberList(actualTermNumber,windowviewid);
if ($scope.TermList != null && $scope.TermList.length > 0) {
$scope.setLayerNumberAndHighlightByTermList(windowviewid);
}
else {
//actual term number is not found in thsi view menas previously selected body part does not exist in this view
$scope.CalculateImageCordinates(viewOrientationId, windowviewid)
}
}
}
else {
$scope.CalculateImageCordinates(viewOrientationId, windowviewid);
$('#txtLayerNumberDA_' + windowviewid).val( $scope.GetwindowStoreData(windowviewid,'layerNumber'))
}
},
function (error) {
// handle errors here
console.log(' $rootScope.TermNumberData= ' + error.statusText);
}
)
},
function (error) {
// handle errors here
console.log(' $rootScope.BodyLayerData= ' + error.statusText);
}
);
}
$scope.OnViewChange = function (event) {
var windowviewid = (event.target.parentElement.parentElement.id).split('_')[1];
var viewid = $scope.GetwindowStoreData(windowviewid,'voId')
var selectedViewId = $scope.bodyViews[event.currentTarget.title];
if (viewid == selectedViewId) {
return;
}
var childrenOfCurrentViewChangeDropdown = $('#viewChangeIDDA_' + windowviewid).children();
var isSameViewClicked = false;
$.each(childrenOfCurrentViewChangeDropdown, function (key, val) {
if (val.children[0].title == event.target.title && val.children[0].parentElement.className == "active") {
isSameViewClicked = true;
}
})
if ($rootScope.isOpenResourceBtnClicked && isSameViewClicked) {
}
else
{
var previousHighlightList=$scope.GetwindowStoreData(windowviewid,'previousHighlightList');
if (previousHighlightList.length > 0) {
$scope.SetwindowStoreData(windowviewid,'previousHighlightList',[]);
}
$scope.DisableUI();
$scope.SetwindowStoreData(windowviewid,'isViewChange',true);
if ($rootScope.isOpenResourceBtnClicked) {
var multiViewInfo = $rootScope.multiViewInfo;
var windowviewid = event.target.parentElement.parentElement.id.split('_')[1];
$rootScope.multiViewCounter = windowviewid;
$scope.setScopeVariables();
}
var canvasDiv = document.getElementById("canvasDivDA_" + windowviewid);
$scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
$scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft;
$("#btnExtract_" + windowviewid).removeClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "auto");
$('#btnTranparency_' + windowviewid).removeClass("disabled");
$('#btnTranparency_' + windowviewid).css("pointer-events", "auto");
$rootScope.isTransparencyBoxActivated = false;
$scope.SetwindowStoreData(windowviewid,'isNormalMode',false);
//close transparency box
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$scope.CloseTransparencyBox(windowviewid);
}
if ($scope.GetwindowStoreData(windowviewid,'isTransparencyBtnClicked') == true && !$scope.GetwindowStoreData(windowviewid,'isTransparencyActivated')) {
$("#btnExtract_" + windowviewid).addClass("disabled");
$("#btnExtract_" + windowviewid).css("pointer-events", "none");
$('#btnTranparency_' + windowviewid).addClass('tButtonActive');
$('#btnTranparency_' + windowviewid).removeClass('btn-black');
}
//if listanager is visisble then close it
$rootScope.CloseListManager();
//to get the body system highlighted on view change. commented the below line
// $rootScope.isHighlightBodyByBodySystem = false;
//Remove the search list and then Repopulate it on change of View
$('#searchListDiv_' + windowviewid).empty()
if ($rootScope.openViews.length > 0) {
$rootScope.openViews.splice($rootScope.openViews.length - 1);
}
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
$scope.SetwindowStoreData(windowviewid,'isExtract',false);
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
$("#btnExtract_" + windowviewid).addClass("btn-black");
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
}
$scope.SetwindowStoreData(windowviewid,'layerNumber',0);
//remove existing body view
var canDiv = document.getElementById("canvasDivDA_" + windowviewid);
var canDivChildCount = canDiv.childElementCount;
if (canDivChildCount > 0) {
canDiv.innerHTML = '';
}
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
$scope.SetwindowStoreData(windowviewid,'viewOrientationId',selectedViewId);
var genderId = $scope.GetwindowStoreData(windowviewid,'genderId');
if (genderId == 'Male') {
if ($scope.GetwindowStoreData(windowviewid,'voId') != selectedViewId) {
if (selectedViewId == 5) {
$scope.SetwindowStoreData(windowviewid,'voId',9);
}
else if (selectedViewId == 6) {
$scope.SetwindowStoreData(windowviewid,'voId',10);
}
else
$scope.SetwindowStoreData(windowviewid,'voId',selectedViewId);
$rootScope.isLoading = true;
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var bodyVid= $scope.GetwindowStoreData(windowviewid,'voId')
//1. first update the currentbodyviewid in local storage
localStorage.setItem("currentBodyViewId", bodyVid);
//2. Load selected body view
$scope.loadSelectedBodyView(bodyVid,windowviewid);
//3. load corresponding navigator man
$scope.loadNavigatorForSelectedBodyView(bodyVid,windowviewid);
//4. change the search terms as per the selected bodyview
$rootScope.loadSearchData(windowviewid);
$scope.GetBodySystemData(bodyVid,windowviewid);
};
}
else {
if (selectedViewId == 5) {
selectedViewId = 11;
}
else if (selectedViewId == 6) {
selectedViewId = 12;
}
else
selectedViewId = $scope.correspondingBodyViewIds[selectedViewId];
if ($scope.GetwindowStoreData(windowviewid,'voId') != selectedViewId) {
$scope.SetwindowStoreData(windowviewid,'voId',selectedViewId);
$rootScope.isLoading = true;
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
//1.
localStorage.setItem("currentBodyViewId", bodyVid);
$scope.loadSelectedBodyView(bodyVid, windowviewid);
//3. load corresponding navigator man
$scope.loadNavigatorForSelectedBodyView(bodyVid, windowviewid);
//4. change the search terms as per the selected bodyview
$rootScope.loadSearchData(windowviewid);
};
}
var currentViewTitle = genderId + " " + event.currentTarget.title;
$('#daImagePanel_' + windowviewid)[0].childNodes[0].childNodes[0].innerHTML = currentViewTitle;
$scope.SetwindowStoreData(windowviewid,'currentViewTitle',currentViewTitle);
$rootScope.openViews.push(
{
"module": $rootScope.currentActiveModuleTitle, "bodyView": currentViewTitle, "state": 'max', "BodyViewId": bodyVid,
"slug": $scope.GetwindowStoreData(windowviewid, 'currentSlug')
}
);
var viewtarget = angular.element(event.currentTarget);
var title_drop_view = viewtarget.attr('title');
$scope.setActiveview(windowviewid,title_drop_view);
$rootScope.CloseAnnotationTool();
$('#typedTermName_' + windowviewid).val('');
}
}
//Reload DA controller event listener after setting change
$scope.$on('reloadDAControllerEvent', function (event, data) {
console.log('reloadDAControllerEvent');
$scope.loadDissectibleAnatomyData();
})
$scope.$on('changeNavigatorModestyEvent', function (event, data) {
console.log('changeNavigatorModestyEvent');
$scope.loadNavigatorForSelectedBodyView(data.bodyViewId,$rootScope.MULTI_VIEW_ID);
})
//Reload DA controller Body View after setting Change
$scope.$on('reloadDABodyViewEvent', function (event, data) {
//console.log('reloadDABodyViewEvent');
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'isGlobalSettingChanged',true);
if ($rootScope.isSettingEventAlredayDispachted == true) {
$scope.DisableUI();
$rootScope.isSettingEventAlredayDispachted = false; // define at home controller
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'layerNumber',parseInt($('#txtLayerNumberDA_' + $rootScope.MULTI_VIEW_ID).val()));
//alert('mouseUp');
var currentLayerNumber=$scope.GetwindowStoreData($rootScope.MULTI_VIEW_ID,'currentLayerNumber');
if ($scope.GetwindowStoreData($rootScope.MULTI_VIEW_ID,'isTransparencyActivated') && currentLayerNumber == 0) {
$scope.SetwindowStoreData($rootScope.MULTI_VIEW_ID,'layerNumber',currentLayerNumber) ;
$scope.loadSelectedBodyView(data.reloadDABodyViewId, $rootScope.MULTI_VIEW_ID);
}
else if ($scope.GetwindowStoreData($rootScope.MULTI_VIEW_ID,'layerNumber') == 0) {
$scope.loadSelectedBodyView(data.reloadDABodyViewId, $rootScope.MULTI_VIEW_ID);
}
$scope.loadNavigatorForSelectedBodyView(data.reloadDABodyViewId, $rootScope.MULTI_VIEW_ID);
if ($scope.GetwindowStoreData($rootScope.MULTI_VIEW_ID,'layerNumber')!= 0) {
$scope.EnableUI();
}
}
})
$scope.loadNavigatorForSelectedBodyView = function (currentBodyViewId, windowviewid) {
var NavigatorData=$scope.GetwindowStoreData(windowviewid,'NavigatorData');
$scope.SetwindowStoreData(windowviewid,'curentEthnicity',$rootScope.globalSetting.ethnicity);
if (NavigatorData != null || NavigatorData != undefined) {
var navdtlOrient = new jinqJs()
.from(NavigatorData.Navigtor.ViewOrientation)
.where("_ViewOrientationId == " + currentBodyViewId)
.select();
if (navdtlOrient != null || navdtlOrient != undefined) {
var navOrientationdata = new jinqJs()
.from(navdtlOrient[0].ImageInfo)
.where("_Ethnicity == " + $rootScope.globalSetting.ethnicity)
.select();
if (navOrientationdata != null || navOrientationdata != undefined) {
var navigatorImage = navOrientationdata;
var navImageModesty;
angular.forEach(navigatorImage, function (value, key) {
if (value._HaveModesty === $rootScope.globalSetting.modesty) {
navImageModesty = value._ImageName;
}
})
if (typeof (navImageModesty) === "undefined" || navImageModesty === null) {
navImageModesty = navigatorImage[0]._ImageName;
}
var bodyVid=$scope.GetwindowStoreData(windowviewid,'voId');
document.getElementById("navimg_" + windowviewid).src = '~/../content/images/DA/ethnicity/body-views/' + bodyVid + '/' + $rootScope.globalSetting.ethnicity + '/navigator_images/' + navImageModesty;
}
}
}
}
//Annotation tool event lsitener
// $scope.drawing = drawing;
// $scope.lastX = lastX;
// $scope.lastY = lastY;
// $scope.currentX;
// $scope.currentY;
//----Annotation Toolbar: Jcanvas---
$rootScope.$on('annotationToolEvent', function (event, data) {
$('#editstylebackgroundcolor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(255,255,255)")
$('#editstylebackgroundcolor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });
$('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(0,0,0)")
$('#outlineColor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });
$("#canvas").css("display", "block");
$("#canvasPaint").css("display", "block");
$rootScope.onDrawingCanvasClick();
$rootScope.FreeStylePaint();
});
$scope.mousePs;
function OnPaintCanvasClick(event) {
}
$scope.GetBodySystemData = function (currentBodyViewId,windowviewid) {
var bodySystemDataPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_body_system_term_' + currentBodyViewId + '.json';
DataService.getJson(bodySystemDataPath)
.then(
function (result) {
$scope.SetwindowStoreData(windowviewid,'BodySystemData',result);
},
function (error) {
console.log(error.statusText)
}
)
}
angular.element(document).click(function (event) {
$(".tool-dropdown-menu").css("display", "none");
var $ua = navigator.userAgent;
if (($ua.match(/(iPod|iPhone|iPad|android)/i))) {
$(".custom-tooltip").css("display", "none");
$(".custom-tooltip1").css("display", "none");
$(".custom-tooltip2").css("display", "none");
}
});
$scope.HighlightBodyByBodySystem = function (event) {
var windowviewid = (event.target.parentElement.parentElement.id).split("_")[1];
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
$scope.SetwindowStoreData(windowviewid,'isExtract',false);
$("#structureDropdownDA_" + windowviewid).toggle();
$scope.DisableUI();
if ($rootScope.isCallFromOtherModule) {
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyWithCBTermData',false);
$scope.SetwindowStoreData(windowviewid,'fullTermlist',[]);
$scope.SetwindowStoreData(windowviewid,'AllTerms',[]);
$scope.SetwindowStoreData(windowviewid,'CurriculumTermData',[]);
}
$scope.SetwindowStoreData(windowviewid,'isListManagerSelected',false);
$rootScope.CloseListManager();
$scope.SetwindowStoreData(windowviewid,'systemNumber',event.currentTarget.id);
if (event.currentTarget.id == 0) {
console.log("inside HighlightBodyByBodySystem ..came inside current structure");
//clear highlighted system
$scope.removeCurrentHighlightedBodySystem(windowviewid);
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',false);
$scope.SetwindowStoreData(windowviewid,'isbodySystemHighlight',false);
$scope.EnableUI();
}
else {
//NIKITA
$scope.SetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem',true);
// no $scope.systemMatchedTermList using ,getting from service // birendra
// var BodySystemData=$scope.GetwindowStoreData(windowviewid,'BodySystemData');
// $scope.systemMatchedTermList = new jinqJs()
// .from(BodySystemData.BodySystem.BodySystemTerm)
// .where('_SystemNumber == ' + event.currentTarget.id)
// .select();
if ($scope.GetwindowStoreData(windowviewid,'isHighLight') == false) {
//color the body gray
console.log('highLightBody from HighlightBodyByBodySystem');
$scope.SetwindowStoreData(windowviewid,'isHighLight',true);
if ($scope.GetwindowStoreData(windowviewid,'isExtract') == true) {
$scope.SetwindowStoreData(windowviewid,'isExtract',false);
$scope.CalculateImageCordinates(viewOrientationId, windowviewid);
}
else
$scope.highLightBody(windowviewid);
}
else {
//This else is when user seraced anything then change the view and clicked on highlight options
//in this case body is already highlihted(gray) so no need to
var grayedBR=$scope.GetwindowStoreData(windowviewid,'grayedBR');
if (grayedBR != null || grayedBR != undefined) {
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && (grayedBR.length == 9)) {
$scope.isAlreadyHighlighted = true;
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && (grayedBR.length == 5)) {
$scope.isAlreadyHighlighted = true;
}
else if (((viewOrientationId == '5')) && (grayedBR.length == 4)) {
$scope.isAlreadyHighlighted = true;
}
else if (((viewOrientationId == '6')) && (grayedBR.length == 1)) {
$scope.isAlreadyHighlighted = true;
}
var isHighlightBodyByBodySystem=$scope.GetwindowStoreData(windowviewid,'isHighlightBodyByBodySystem');
if (($scope.isAlreadyHighlighted == true && isHighlightBodyByBodySystem == true)) {
$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
$timeout(function () { $scope.HighlightBodyByTermListForBodySystem(null, windowviewid) }, 100);
}
}
}
//$rootScope.isLoading = true;
$('#spinner').css('visibility', 'visible');
var viewtarget_highlightbody = angular.element(event.currentTarget);
var title_highlightbody = viewtarget_highlightbody.attr('title');
$scope.removeBodySyetemSelectionClass(title_highlightbody);
//Highlight button should be active
$("#btnHighLight_" + windowviewid).addClass("btn-primary");
$("#btnHighLight_" + windowviewid).removeClass("btn-black");
if (!$("#btnNormalMode_" + windowviewid).hasClass("btn-black")) {
$("#btnNormalMode_" + windowviewid).addClass("btn-black");
}
if (!$("#btnExtract_" + windowviewid).hasClass("btn-black")) {
$("#btnExtract_" + windowviewid).addClass("btn-black");
}
if ($("#btnExtract_" + windowviewid).hasClass("btn-primary")) {
$("#btnExtract_" + windowviewid).removeClass("btn-primary");
}
if ($("#btnNormalMode_" + windowviewid).hasClass("btn-primary")) {
$("#btnNormalMode_" + windowviewid).removeClass("btn-primary");
}
}
}
$scope.removeCurrentHighlightedBodySystem = function (windowviewid) {
var grayImageDataList=$scope.GetwindowStoreData(windowviewid,'grayImageDataList');
for (var i = 0; i < grayImageDataList.length; i++) {
var grayCanvasID = 'imageCanvas' + parseInt(i + 1) + "|" + windowviewid;
var grayCanvas = document.getElementById(grayCanvasID);
if (grayCanvas != null) {
var grayCanvasContext = grayCanvas.getContext("2d");
var canvasHeight = grayCanvas.height;
var canvasWidth = grayCanvas.width;
grayCanvasContext.clearRect(0, 0, canvasHeight, canvasWidth)
grayCanvasContext.putImageData(grayImageDataList[parseInt(i)], 0, 0);
}
}
}
$scope.removeBodySyetemSelectionClass = function (title_highlightbody) {
if (title_highlightbody == "CurrentStructure") {
$scope.CurrentStructure = "active";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Cardiovascular") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "active";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Digestive") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "active";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Endocrine") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "active";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Immune") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "active";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Integumentary") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "active";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Lymphatic") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "active";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Muscular") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "active";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Nervous") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "active";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Reproductive") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "active";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Respiratory") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "active";
$scope.Skeletal = "";
$scope.Urinary = "";
}
else if (title_highlightbody == "Skeletal") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "active";
$scope.Urinary = "";
}
else if (title_highlightbody == "Urinary") {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "active";
}
else {
$scope.CurrentStructure = "";
$scope.Cardiovascular = "";
$scope.Digestive = "";
$scope.Endocrine = "";
$scope.Immune = "";
$scope.Integumentary = "";
$scope.Lymphatic = "";
$scope.Muscular = "";
$scope.Nervous = "";
$scope.Reproductive = "";
$scope.Respiratory = "";
$scope.Skeletal = "";
$scope.Urinary = "";
}
}
$scope.ShowSearch = function (windowviewid) {
$scope.SetwindowStoreData(windowviewid,'isSearchClicked',true);
console.log('ShowSearch is called');
var primaryLexiconIndx = $scope.GetwindowStoreData(windowviewid, 'primaryLexiconInd');
var vocabTermDataArray = $scope.GetwindowStoreData(windowviewid, 'vocabTermDataArray');
//this check is for log only because we are writing length so need to check if its not null or undefined
if (vocabTermDataArray[primaryLexiconIndx].vocabTermTxt != null || vocabTermDataArray[primaryLexiconIndx].vocabTermTxt != undefined)
console.log('$scope.VocabTermTxt.length= ' + vocabTermDataArray[primaryLexiconIndx].vocabTermTxt.length)
$scope.IsSearchVisible = true;
$timeout(function () {
var viewOrientationId=$scope.GetwindowStoreData(windowviewid,'viewOrientationId');
if ((vocabTermDataArray[primaryLexiconIndx].vocabTermTxt != null || vocabTermDataArray[primaryLexiconIndx].vocabTermTxt != undefined) && (vocabTermDataArray[0].vocabTermTxt.length > 0)) {
//This is added as the $scope.VocabTermTxt can change while changing view also the li elements need to be removed
//Remove the list and then Repopulate
if ($('#searchListDiv_' + windowviewid).html() != "")
$('#searchListDiv_' + windowviewid).empty();
//Delay compile of ul li so that the remove of li is completed.
$scope.isSearchDataLoaded = true;
var ColoredImageSRC=$scope.GetwindowStoreData(windowviewid,'ColoredImageSRC');
if ((ColoredImageSRC != null || ColoredImageSRC != undefined)) {
if (((viewOrientationId == '1') || (viewOrientationId == '4')) && (ColoredImageSRC.length == 9)) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
else if (((viewOrientationId == '2') || (viewOrientationId == '3')) && (ColoredImageSRC.length == 5)) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
else if ((viewOrientationId == '5') && (ColoredImageSRC.length == 4)) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
else if ((viewOrientationId == '6') && (ColoredImageSRC.length == 1)) {
$rootScope.isLoading = false;
$('#spinner').css('visibility', 'hidden');
}
}
console.log("primary language: " + vocabTermDataArray[primaryLexiconIndx].language);
$rootScope.a = primaryLexiconIndx;
$scope.vocabArray = vocabTermDataArray;
$scope.sFilter = $("#typedTermName_" + windowviewid).val();
var $e2 = $('