1//browser detection 2var userBrowser = navigator.userAgent.toLowerCase(); 3var isExplorer = userBrowser.indexOf("msie") > -1; 4var isNetscape = userBrowser.indexOf("netscape") > -1; 5var isFirefox = userBrowser.indexOf("firefox") > -1; 6var isSafari = userBrowser.indexOf("safari") > -1; 7var isMac = userBrowser.indexOf("mac") > -1; 8var perfInSeconds; 9 10var serviceURL = ""; 11if (document.URL.toLowerCase().indexOf('trisurabp') > 0) { 12 serviceURL = document.URL.replace(window.location.pathname, "") + "/TrisuraBP/WebService1-Refactor.asmx/"; 13 serviceURL = serviceURL.replace(window.location.search, ""); 14} 15else { 16 serviceURL = document.URL.replace(window.location.pathname, "") + "/WebService1-Refactor.asmx/"; 17 serviceURL = serviceURL.replace(window.location.search, ""); 18} 19 20var multinationalAddressServiceUrl = ""; 21if (document.URL.toLowerCase().indexOf('trisurabp') > 0) { 22 multinationalAddressServiceUrl = document.URL.replace(window.location.pathname, "") + "/TrisuraBP/WebService/MultinationalAddressService.asmx/"; 23 multinationalAddressServiceUrl = multinationalAddressServiceUrl.replace(window.location.search, ""); 24} 25else { 26 multinationalAddressServiceUrl = document.URL.replace(window.location.pathname, "") + "/WebService/MultinationalAddressService.asmx/"; 27 multinationalAddressServiceUrl = multinationalAddressServiceUrl.replace(window.location.search, ""); 28} 29 30var BrowserDetect = { 31 init: function () { 32 this.browser = this.searchString(this.dataBrowser) || "Other"; 33 this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "Unknown"; 34 }, 35 searchString: function (data) { 36 for (var i = 0; i < data.length; i++) { 37 var dataString = data[i].string; 38 this.versionSearchString = data[i].subString; 39 40 if (dataString.indexOf(data[i].subString) !== -1) { 41 return data[i].identity; 42 } 43 } 44 }, 45 searchVersion: function (dataString) { 46 var index = dataString.indexOf(this.versionSearchString); 47 if (index === -1) { 48 return; 49 } 50 51 var rv = dataString.indexOf("rv:"); 52 if (this.versionSearchString === "Trident" && rv !== -1) { 53 return parseFloat(dataString.substring(rv + 3)); 54 } else { 55 return parseFloat(dataString.substring(index + this.versionSearchString.length + 1)); 56 } 57 }, 58 59 dataBrowser: [ 60 { string: navigator.userAgent, subString: "Edge", identity: "MS Edge" }, 61 { string: navigator.userAgent, subString: "MSIE", identity: "Explorer" }, 62 { string: navigator.userAgent, subString: "Trident", identity: "Explorer" }, 63 { string: navigator.userAgent, subString: "Firefox", identity: "Firefox" }, 64 { string: navigator.userAgent, subString: "Opera", identity: "Opera" }, 65 { string: navigator.userAgent, subString: "OPR", identity: "Opera" }, 66 67 { string: navigator.userAgent, subString: "Chrome", identity: "Chrome" }, 68 { string: navigator.userAgent, subString: "Safari", identity: "Safari" } 69 ] 70}; 71 72BrowserDetect.init(); 73 74/* Return version of Internet Explorer or a -1 if a non-IE browser is being used */ 75function getInternetExplorerVersion() { 76 var rv = -1; // Return value assumes failure 77 //if (navigator.appName == 'Microsoft Internet Explorer') 78 //{ 79 var ua = navigator.userAgent; 80 var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})"); 81 if (re.exec(ua) !== null) { 82 rv = parseFloat(RegExp.$1); 83 84 return rv; 85 } 86 87 var reVerAbove10 = new RegExp("rv:([0-9]{1,}[\.0-9]{0,})"); 88 if (reVerAbove10.exec(ua) !== null) { 89 rv = parseFloat(RegExp.$1); 90 return rv; 91 } 92 93 return rv; 94} 95 96/* Disable browser back and forward buttons */ 97function disableBackAndForwardButtons(msg) { 98 if (typeof history.pushState === "function") { 99 history.pushState("jibberish", null, null); 100 window.onpopstate = function () { 101 history.pushState('newjibberish', null, null); 102 CallBackButtonDetected(); 103 ShowBackButtonAlert(msg); 104 }; 105 } 106 else { 107 var ignoreHashChange = true; 108 window.onhashchange = function () { 109 if (!ignoreHashChange) { 110 ignoreHashChange = true; 111 window.location.hash = Math.random(); 112 CallBackButtonDetected(); 113 ShowBackButtonAlert(msg); 114 } 115 else { 116 CallBackButtonDetected(); 117 ShowBackButtonAlert(msg); 118 ignoreHashChange = false; 119 } 120 }; 121 } 122} 123 124function ShowBackButtonAlert(msg) { 125 window.alert(msg); 126} 127 128function SaveSignatureImage(signature, quoteId) { 129 //var baseImage = "iVBORw0KGgoAAAANSUhEUgAAAqIAAAEmCAYAAAC5yPKgAAAAAXNSR0IArs4c6QAAD+VJREFUeF7t1jENAAAMw7CVP+nByOMRqGTtyM4RIECAAAECBAgQCAQWbJokQIAAAQIECBAgcELUExAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAg
129EAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAg
129EAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQJC1A8QIECAAAECBAgkAkI0YTdKgAABAgQIECAgRP0AAQIECBAgQIBAIiBEE3ajBAgQIECAAAECQtQPECBAgAABAgQIJAJCNGE3SoAAAQIECBAgIET9AAECBAgQIECAQCIgRBN2owQIECBAgAABAkLUDxAgQIAAAQIECCQCQjRhN0qAAAECBAgQICBE/QABAgQIECBAgEAiIEQTdqMECBAgQIAAAQIPG64BJ7BcF1IAAAAASUVORK5CYII="; 130 //var baseImageFR = "iVBORw0KGgoAAAANSUhEUgAAAqgAAAEsCAYAAAAPcUEPAAAAAXNSR0IArs4c6QAAELpJREFUeF7t1jERAAAMArHi33Rt/JAq4EIHdo4AAQIECBAgQIBASGChLKIQIECAAAECBAgQOAPVExAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgICB6gcIECBAgAABAgRSAgZqqg5hCBAgQIAAAQIEDFQ/QIAAAQIECBAgkBIwUFN1CEOAAAECBAgQIGCg+gECBAgQIECAAIGUgIGaqkMYAgQIECBAgAABA9UPECBAgAABAgQIpAQM1FQdwhAgQIAAAQIECBiofoAAAQIECBAgQCAlYKCm6hCGAAECBAgQIEDAQPUDBAgQIECAAAECKQEDNVWHMAQIECBAgAABAgaqHyBAgAABAgQIEEgJGKipOoQhQIAAAQIECBAwUP0AAQIECBAgQIBASsBATdUhDAECBAgQIECAgIHqBwgQIECAAAECBFICBmqqDmEIECBAgAABAgQMVD9AgAABAgQIECCQEjBQU3UIQ4AAAQIECBAgYKD6AQIECBAgQIAAgZSAgZqqQxgCBAgQIECAAAED1Q8QIECAAAECBAikBAzUVB3CECBAgAABAgQIGKh+gAABAgQIECBAICVgoKbqEIYAAQIECBAgQMBA9QMECBAgQIAAAQIpAQM1VYcwBAgQIECAAAECBqofIECAAAECBAgQSAkYqKk6hCFAgAABAgQIEDBQ/QABAgQIECBAgEBKwEBN1SEMAQIECBAgQICAgeoHCBAgQIAAAQIEUgIGaqoOYQgQIECAAAECBAxUP0CAAAECBAgQIJASMFBTdQhDgAABAgQIECBgoPoBAgQIECBAgACBlICBmqpDGAIECBAgQIAAAQPVDxAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgICB6gcIECBAgAABAgRSAgZqqg5hCBAgQIAAAQIEDFQ/QIAAAQIECBAgkBIwUFN1CEOAAAECBAgQIGCg+gECBAgQIECAAIGUgIGaqkMYAgQIECBAgAABA9UPECBAgAABAgQIpAQM1FQdwhAgQIAAAQIECBiofoAAAQIECBAgQCAlYKCm6hCGAAECBAgQIEDAQPUDBAgQIECAAAECKQEDNVWHMAQIECBAgAABAgaqHyBAgAABAgQIEEgJGKipOoQhQIAAAQIECBAwUP0AAQIECBAgQIBASsBATdUhDAECBAgQIECAgIHqBwgQIECAAAECBFICBmqqDmEIECBAgAABAgQMVD9AgAABAgQIECCQEjBQU3UIQ4AAAQIECBAgYKD6AQIECBAgQIAAgZSAgZqqQxgCBAgQIECAAAED1Q8QIECAAAECBAikBAzUVB3CECBAgAABAgQIGKh+gAABAgQIECBAICVgoKbqEIYAAQIECBAgQMBA9QMECBAgQIAAAQIpAQM1VYcwBAgQIECAAAECBqofIECAAAECBAgQSAkYqKk6hCFAgAABAgQIEDBQ/QABAgQIECBAgEBKwEBN1SEMAQIECBAgQICAgeoHCBAgQIAAAQIEUgIGaqoOYQgQIECAAAECBAxUP0CAAAECBAgQIJASMFBTdQhDgAABAgQIECBgoPoBAgQIECBAgACBlICBmqpDGAIECBAgQIAAAQPVDxAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgICB6gcIECBAgAABAgRSAgZqqg5hCBAgQIAAAQIEDFQ/QIAAAQIECBAgkBIwUFN1CEOAAAECBAgQIGCg+gECBAgQIECAAIGUgIGaqkMYAgQIECBAgAABA9UPECBAgAABAgQIpAQM1FQdwhAgQIAAAQIECBiofoAAAQIECBAgQCAlYKCm6hCGAAECBAgQIEDAQPUDBAgQIECAAAECKQEDNVWHMAQIECBAgAABAgaqHyBAgAABAgQIEEgJGKipOoQhQIAAAQIECBAwUP0AAQIECBAgQIBASsBATdUhDAECBAgQIECAgIHqBwgQIECAAAECBFICBmqqDmEIECBAgAABAgQMVD9AgAABAgQIECCQEjBQU3UIQ4AAAQIECBAgYKD6AQIECBAgQIAAgZSAgZqqQxgCBAgQIECAAAED1Q8QIECAAAECBAikBAzUVB3CECBAgAABAgQIGKh+gAABAgQIECBAICVgoKbqEIYAAQIECBAgQMBA9QMECBAgQIAAAQIpAQM1VYcwBAgQIECAAAECBqofIECAAAECBAgQSAkYqKk6hCFAgAABAgQIEDBQ/QABAgQIECBAgEBKwEBN1SEMAQIECBAgQICAgeoHCBAgQIAAAQIEUgIGaqoOYQgQIECAAAECBAxUP0CAAAECBAgQIJASMFBTdQhDgAABAgQIECBgoPoBAgQIECBAgACBlICBmqpDGAIECBAgQIAAAQPVDxAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgICB6gcIECBAgAABAgRSAgZqqg5hCBAgQIAAAQIEDFQ/QIAAAQIECBAgkBIwUFN1CEOAAAECBAgQIGCg+gECBAgQIECAAIGUgIGaqkMYAgQIECBAgAABA9UPECBAgAABAgQIpAQM1FQdwhAgQIAAAQIECBiofoAAAQIECBAgQCAlYKCm6hCGAAECBAgQIEDAQPUDBAgQIECAAAECKQEDNVWHMAQIECBAgAABAgaqHyBAgAABAgQIEEgJG
130KipOoQhQIAAAQIECBAwUP0AAQIECBAgQIBASsBATdUhDAECBAgQIECAgIHqBwgQIECAAAECBFICBmqqDmEIECBAgAABAgQMVD9AgAABAgQIECCQEjBQU3UIQ4AAAQIECBAgYKD6AQIECBAgQIAAgZSAgZqqQxgCBAgQIECAAAED1Q8QIECAAAECBAikBAzUVB3CECBAgAABAgQIGKh+gAABAgQIECBAICVgoKbqEIYAAQIECBAgQMBA9QMECBAgQIAAAQIpAQM1VYcwBAgQIECAAAECBqofIECAAAECBAgQSAkYqKk6hCFAgAABAgQIEDBQ/QABAgQIECBAgEBKwEBN1SEMAQIECBAgQICAgeoHCBAgQIAAAQIEUgIGaqoOYQgQIECAAAECBAxUP0CAAAECBAgQIJASMFBTdQhDgAABAgQIECBgoPoBAgQIECBAgACBlICBmqpDGAIECBAgQIAAAQPVDxAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgICB6gcIECBAgAABAgRSAgZqqg5hCBAgQIAAAQIEDFQ/QIAAAQIECBAgkBIwUFN1CEOAAAECBAgQIGCg+gECBAgQIECAAIGUgIGaqkMYAgQIECBAgAABA9UPECBAgAABAgQIpAQM1FQdwhAgQIAAAQIECBiofoAAAQIECBAgQCAlYKCm6hCGAAECBAgQIEDAQPUDBAgQIECAAAECKQEDNVWHMAQIECBAgAABAgaqHyBAgAABAgQIEEgJGKipOoQhQIAAAQIECBAwUP0AAQIECBAgQIBASsBATdUhDAECBAgQIECAgIHqBwgQIECAAAECBFICBmqqDmEIECBAgAABAgQMVD9AgAABAgQIECCQEjBQU3UIQ4AAAQIECBAgYKD6AQIECBAgQIAAgZSAgZqqQxgCBAgQIECAAAED1Q8QIECAAAECBAikBAzUVB3CECBAgAABAgQIGKh+gAABAgQIECBAICVgoKbqEIYAAQIECBAgQMBA9QMECBAgQIAAAQIpAQM1VYcwBAgQIECAAAECBqofIECAAAECBAgQSAkYqKk6hCFAgAABAgQIEDBQ/QABAgQIECBAgEBKwEBN1SEMAQIECBAgQICAgeoHCBAgQIAAAQIEUgIGaqoOYQgQIECAAAECBAxUP0CAAAECBAgQIJASMFBTdQhDgAABAgQIECBgoPoBAgQIECBAgACBlICBmqpDGAIECBAgQIAAAQPVDxAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgICB6gcIECBAgAABAgRSAgZqqg5hCBAgQIAAAQIEDFQ/QIAAAQIECBAgkBIwUFN1CEOAAAECBAgQIGCg+gECBAgQIECAAIGUgIGaqkMYAgQIECBAgAABA9UPECBAgAABAgQIpAQM1FQdwhAgQIAAAQIECBiofoAAAQIECBAgQCAlYKCm6hCGAAECBAgQIEDAQPUDBAgQIECAAAECKQEDNVWHMAQIECBAgAABAgaqHyBAgAABAgQIEEgJGKipOoQhQIAAAQIECBAwUP0AAQIECBAgQIBASsBATdUhDAECBAgQIECAgIHqBwgQIECAAAECBFICBmqqDmEIECBAgAABAgQMVD9AgAABAgQIECCQEjBQU3UIQ4AAAQIECBAgYKD6AQIECBAgQIAAgZSAgZqqQxgCBAgQIECAAAED1Q8QIECAAAECBAikBAzUVB3CECBAgAABAgQIGKh+gAABAgQIECBAICVgoKbqEIYAAQIECBAgQMBA9QMECBAgQIAAAQIpAQM1VYcwBAgQIECAAAECBqofIECAAAECBAgQSAkYqKk6hCFAgAABAgQIEDBQ/QABAgQIECBAgEBKwEBN1SEMAQIECBAgQICAgeoHCBAgQIAAAQIEUgIGaqoOYQgQIECAAAECBAxUP0CAAAECBAgQIJASMFBTdQhDgAABAgQIECBgoPoBAgQIECBAgACBlICBmqpDGAIECBAgQIAAAQPVDxAgQIAAAQIECKQEDNRUHcIQIECAAAECBAgYqH6AAAECBAgQIEAgJWCgpuoQhgABAgQIECBAwED1AwQIECBAgAABAikBAzVVhzAECBAgQIAAAQIGqh8gQIAAAQIECBBICRioqTqEIUCAAAECBAgQMFD9AAECBAgQIECAQErAQE3VIQwBAgQIECBAgMADelsBLTCxhj8AAAAASUVORK5CYII="; 131 var signatureImage = signature._canvas[0].toDataURL("image/png").replace('data:image/png;base64,', ''); 132 console.log("signatureImage: " + signatureImage); 133 var createdImg = false; 134 135 if (signature.storeSnap[signature.storeSnap.length - 1] == '') { 136 return createdImg; 137 } 138 //if there is signature 139 if (signature.storeSnap.length > 1) { 140 $.ajax({
141 type: 'POST', 142 url: '/DocumentWebService.asmx/SaveSignatureImageToAzure', 143 //url: '/DocumentWebService.asmx/SaveSignatureImage', 144 data: JSON.stringify({ 145 signatureData: signatureImage, 146 quoteId: quoteId 147 }), 148 //data:'{"signatureData":"' + signatureImage + '","quoteId":"' + quoteId + '"}', 149 contentType: 'application/json; charset=utf-8', 150 dataType: 'json', 151 async: false, 152 //success: OnSignatureSuccess(createdImg), 153 //error: OnSignatureError(createdImg) 154 success: function () { 155 createdImg = true; 156 }, 157 error: function () { 158 createdImg = false; 159 } 160 }); 161 162 return createdImg; 163 } 164 else { 165 return createdImg; 166 } 167} 168function DeleteSignatureImage(quoteId) { 169 var signatureImage = signature._canvas[0].toDataURL("image/png").replace('data:image/png;base64,', ''); 170 var createdImg = false; 171 //if there is signature 172 if (signature.storeSnap.length > 1) { 173 $.ajax({
174 type: 'POST', 175 url: '/DocumentWebService.asmx/DeleteSignatureImageToAzure', 176 //url: '/DocumentWebService.asmx/SaveSignatureImage', 177 data: JSON.stringify({ 178 quoteId: quoteId 179 }), 180 //data:'{"signatureData":"' + signatureImage + '","quoteId":"' + quoteId + '"}', 181 contentType: 'application/json; charset=utf-8', 182 dataType: 'json', 183 async: false, 184 //success: OnSignatureSuccess(createdImg), 185 //error: OnSignatureError(createdImg) 186 success: function () { 187 createdImg = true; 188 }, 189 error: function () { 190 createdImg = false; 191 } 192 }); 193 194 return createdImg; 195 } 196 else { 197 return createdImg; 198 } 199} 200// Back Button Detected 201function CallBackButtonDetected() { 202 // call web service to save back button press in log 203 var cvxhr = $.ajax({ 204 type: 'POST', 205 url: serviceURL + 'BackButtonPress', 206 data: '{"isForwardButton":"0","pageUrl":"' + window.location.pathname + '"}', 207 contentType: 'application/json; charset=utf-8', 208 async: false, 209 dataType: 'json', 210 success: OnSuccessBackButtonDetected, 211 error: OnBackButtonDetectedError 212 }); 213 214 cvxhr.abort(); 215}; 216 217function OnSuccessBackButtonDetected(data, status) { 218 // add here any code for execution after the web service call 219 220}; 221 222// On Back Button Detected Error 223function OnBackButtonDetectedError(request, status, error) { // on error - submit the form for a complete postback 224 alert('Fail! ' + status + ' ' + error) 225}; 226 227function cancelBackspace(event) { 228 if (event.keyCode == 8) { 229 return false; 230 } 231}; 232 233function tabstrip_onTabSelect(sender, eventArgs) { 234 showHideBackToTop(); 235}; 236 237function showHideBackToTop() { 238 if ($(document).height() > ($(window).height() + 50)) { 239 $('#backToTop').show(); 240 $('#backToTopSpacer').hide(); 241 } 242 else { 243 $('#backToTop').hide(); 244 $('#backToTopSpacer').show(); 245 } 246}; 247 248function resetDDLsForPostBack() { 249 $("#aspnetForm").find("[id*='hfDDLIVQuestion']").each(function (i) { 250 var questionID = $(this).attr("id").replace('hfDDLIVQuestion', ''); 251 var initialValues = $(this).val(); 252 var ddlListItems = initialValues.split('|'); 253 var val; 254 var text; 255 $("#ddlQuestion" + questionID + " >option").remove(); // remove all the existing options from the list 256 for (i = 0; i <= ddlListItems.length - 1; i++) { 257 var valtext = ddlListItems[i].split('~'); 258 val = valtext[0]; // value 259 text = valtext[1]; // text 260 $("#ddlQuestion" + questionID).append($('<option></option>').val(val).html(text)); // add new options from the service call 261 } // for 262 }); // each 263 264 resetMultinationalAddressDdlsForPostBack(); 265}; 266 267function resetMultinationalAddressDdlsForPostBack() { 268 $("#aspnetForm").find("[id*='hfDdlIvProvince']").each(function (i) { 269 var questionId = $(this).attr("id").replace('hfDdlIvProvince', '') 270 var initialValues = $(this).val(); 271 var ddlListItems = initialValues.split('|'); 272 var val; 273 var text; 274 $("#ddlQuestion" + questionId + " >option").remove(); // remove all the existing options from the list 275 for (i = 0; i <= ddlListItems.length - 1; i++) { 276 var valtext = ddlListItems[i].split('~'); 277 val = valtext[0]; // value 278 text = valtext[1]; // text 279 $("#ddlQuestion" + questionId).append($('<option></option>').val(val).html(text)); // add new options from the service call 280 } // for 281 }); // each 282}; 283 284function testGetData() { 285 var dropDown = $("[data-question-client-id='ddlQuestion642']"); 286 var length = dropDown.length; 287 288 var cal = $("[data-question-client-id='calQuestion636']"); 289 var length1 = cal.length; 290 291 var rbl = $("[data-question-id='4426']"); 292 var pnlitem = $("#pnlitm1021"); 293 var find = $(rbl).find(":checked").val(); 294 var length2 = rbl.length; 295 296} 297function getResponsesFromForm() { 298 var responses = []; 299 $("[data-question-id]").each(function (index) { 300 301 var response = { 302 QuestionID: 0, 303 QuestionTypeID: 0, 304 QuestionIndex: 0, 305 TextAnswer: '', 306 NumericAnswer: 0, 307 DateAnswer: null, 308 TrueFalseAnswer: false, 309 SelectableAnswerID: 0, 310 SelectableAnswerText: '', 311 ResponseTypeID: 0 312 }; 313 314 var questionTypeId = $(this).attr("data-question-type-id"); 315 var questionId = $(this).attr("data-question-id"); 316 317 response.QuestionID = questionId; 318 response.QuestionTypeID = questionTypeId;
319 320 if (questionTypeId == 6) { 321 if ($(this).find(":checked").length > 0) { 322 response.SelectableAnswerId = 323 $(this).find(":checked").val(); 324 } else { 325 response.SelectableAnswerId = 0; 326 } 327 response.ResponseTypeID = 2; 328 responses.push(response); 329 } 330 else if (questionTypeId == 1) { 331 if ($(this).find(":checked").length > 0) { 332 response.TrueFalseAnswer = true; 333 } 334 else { 335 response.TrueFalseAnswer = false; 336 } 337 response.ResponseTypeID = 1; 338 responses.push(response); 339 } 340 else if (questionTypeId == 2) { 341 342 response.TextAnswer = $(this).val(); 343 response.ResponseTypeID = 2; 344 responses.push(response); 345 } 346 else if (questionTypeId == 3) { // we have 3 types of numberic types of control 347 var ctrl = $(this).find("[id$='ejNumber']"); 348 if (ctrl.length == 0) { 349 ctrl = $(this).find("[id$='ejCurrency']"); 350 } 351 if (ctrl.length == 0) { 352 ctrl = $(this).find("[id$='ejPercentage']"); 353 } 354 355 if (ctrl.attr('aria-valuenow') === undefined) { 356 response.NumericAnswer = ctrl[0].value; 357 } 358 else { 359 response.NumericAnswer = ctrl.attr('aria-valuenow'); 360 } 361 //response.NumericAnswer = ctrl[0].value.toString(); 362 response.ResponseTypeID = 3; 363 responses.push(response); 364 } 365 else if (questionTypeId == 4) { 366 var ctrl = $(this).find("[id$='_datepick']"); 367 response.DateAnswer = ctrl[0].value;// $("#calQuestion" + questionId + "_selecteddates").val(); 368 response.ResponseTypeID = 5; 369 responses.push(response); 370 } 371 else if (questionTypeId == 5) { 372 response.SelectableAnswerText = $(this).find(":selected").text(); 373 response.SelectableAnswerID = $(this).find(":selected").val(); 374 response.ResponseTypeID = 2; 375 responses.push(response); 376 } 377 else { 378 response.TextAnswer = $(this).val(); 379 response.ResponseTypeID = 2; 380 responses.push(response); 381 } 382 }); 383 384 return responses; 385} 386function getCookie(name) { 387 const value = `; ${document.cookie}`; 388 const parts = value.split(`; ${name}=`); 389 if (parts.length === 2) return parts.pop().split(';').shift(); 390} 391 392function getCookieValue(name) { 393 const regex = new RegExp(`(^| )${name}=([^;]+)`) 394 const match = document.cookie.match(regex) 395 if (match) { 396 return match[2] 397 } 398} 399function getFormValues() { 400 var effectiveDate; 401 402 if ($('#hfEffectiveDate').length < 1) { 403 effectiveDate = ""; 404 } 405 else { 406 effectiveDate = $('#hfEffectiveDate').val(); 407 } 408 409 var cultureCode = $('#hfCulture').val(); 410 411 var questionAnswers = ''; 412 var questionId = 0; 413 var selAnsId = 0; 414 415 $("#aspnetForm").find("[id*='Question']").each(function (i) { 416 // Check Boxes 417 if ($(this).is("[id^='cbQ']")) { 418 if ($(this).is("input:checked")) { 419 questionAnswers = questionAnswers + $(this).attr("id") + '~1|'; 420 } 421 else { 422 questionAnswers = questionAnswers + $(this).attr("id") + '~0|'; 423 } 424 } 425 426 // Text Boxes 427 else if ($(this).is("[id^='txtText']")) { 428 var response = ''; 429 response = $(this).val() 430 .replace(/\\/g, '\\\\') 431 .replace(/"/g, '%22'); 432 questionAnswers = questionAnswers + $(this).attr("id") + '~' + response + '|'; 433 } 434 435 // Number Boxes 436 else if ($(this).is("[id*='nbQ']")) { 437 questionAnswers = questionAnswers + $(this).attr("id") + '~' + $(this).attr('aria-valuenow') + '|'; 438 } 439 440 // Calendars 441 else if ($(this).is("[id^='calpickerQ']")) { 442 if ($(this).is("[id*='selecteddates']")) { 443 questionAnswers = questionAnswers + $(this).attr("id") + '~' + $(this).val() + '|'; 444 } 445 } 446 447 // Drop Down Lists 448 else if ($(this).is("[id^='ddlQ']")) { 449 questionAnswers = questionAnswers + $(this).attr("id") + '~' + $(this).find("option:selected").val() + '^' + $(this).find("option:selected").text() + '|'; 450 } 451 452 // Calculated Values 453 else if ($(this).is("[id^='cvQ']")) { 454 questionAnswers = questionAnswers + $(this).attr("id") + '~' + $(this).text() + '|'; 455 } 456 457 // Text Values 458 else if ($(this).is("[id^='tvQ']")) { 459 response = $(this).text(); 460 questionAnswers = questionAnswers + $(this).attr("id") + '~' + response + '|'; 461 } 462 463 // Radio Button - Locked 464 else if ($(this).is("[id^='rblL']")) { 465 response = $(this).text(); 466 questionAnswers = questionAnswers + $(this).attr("id") + '~' + response + '|'; 467 } 468 469 // Drop Down List - Locked 470 else if ($(this).is("[id^='ddlL']")) { 471 response = $(this).text(); 472 questionAnswers = questionAnswers + $(this).attr("id") + '~' + response + '|'; 473 } 474 475 else { 476 // do nothing 477 } 478 479 }); // each 480 481 $("#aspnetForm").find("[id^='rblQ']").not("[id*='_']").each(function (i) { 482 // Radio Button Lists 483 if ($(this).find("input:checked").val() == undefined) { 484 questionAnswers = questionAnswers + $(this).attr("id") + '~|'; 485 } 486 else { 487 questionAnswers = questionAnswers + $(this).attr("id") + '~' + $(this).find("input:checked").val() + '|'; 488 } 489 490 }); // each 491 492 questionAnswers = questionAnswers.replace(new RegExp('"', 'g'), '%22'); 493 494 return questionAnswers; 495}; 496 497// Conditional Displays 498function InitializeQuoteCacheForRequest(quoteID) { 499 var requestId = $("#hdnRequestId").val(); 500 var dataToSend = JSON.stringify({ 'quoteId': quoteID, 'requestId': requestId }); 501 $.ajax({
502 type: 'POST', 503 url: serviceURL + 'InitializeQuoteCacheForRequest', 504 data: dataToSend, 505 contentType: 'application/json; charset=utf-8', 506 async: false, 507 dataType: 'json' 508 }); 509} 510function UpdateConditionalDisplay(panelItemID, quoteID, currentUserId, asynch = 0) { 511 var effectiveDate; 512 var asyn = false; 513 514 if ($('#hfEffectiveDate').length < 1) { 515 effectiveDate = ""; 516 } 517 else { 518 effectiveDate = $('#hfEffectiveDate').val(); 519 } 520 521 if (asynch == 1) { 522 asyn = true; 523 } 524 525 var requestId = $("#hdnRequestId").val(); 526 var dataToSend = JSON.stringify({ 'panelItemId': panelItemID, 'quoteId': quoteID, 'formResponses': getResponsesFromForm(), 'effectiveDate': effectiveDate, 'page': page, 'currentUserId': currentUserId, 'requestId': requestId }); 527 var perfInMiliSeconds = (new Date()).getTime(); 528 $.ajax({ 529 type: 'POST', 530 url: serviceURL + 'EvaluateConditionalDisplay', 531 data: dataToSend, 532 contentType: 'application/json; charset=utf-8', 533 async: asyn, 534 dataType: 'json' 535 }).done(function (data, status) { 536 if (data.d == '0') { 537 if ($("#pnlitm" + panelItemID).css("display") == "block") { 538 $("#pnlitm" + panelItemID).css("display", "none"); 539 $("#pnlitm" + panelItemID).find($("[id$='_txtDecimalValue']")).removeClass("validationOverride") 540 var element = $("#pnlitm" + panelItemID); 541 $(".isActiveResponse", element).each(function (index) { 542 $(this).val("false"); 543 // console.log("panel id not visible" + panelItemID) 544 }); 545 } 546 } 547 else if (data.d == '1') { 548 if ($("#pnlitm" + panelItemID).css("display") == "none") { 549 $("#pnlitm" + panelItemID).css("display", "block"); 550 $("#pnlitm" + panelItemID).find($("[id$='_txtDecimalValue']")).addClass("validationOverride"); 551 var element = $("#pnlitm" + panelItemID); 552 $(".isActiveResponse", element).each(function (index) { 553 $(this).val("true"); 554 // console.log("panel id visible" + panelItemID) 555 }); 556 } 557 } 558 else { // on fail - submit the form for a complete postback 559 resetDDLsForPostBack(); 560 document.forms[0].submit(); // do a full postback if the web service cannot resolve condition 561 } 562 perfInMiliSeconds = (new Date()).getTime() - perfInMiliSeconds; 563 console.log("UpdateConditionalDisplay executed in miliseconds : " + perfInMiliSeconds); 564 console.log("network speed: " + navigator.connection.downlink); 565 }) 566 .fail(OnError) 567 .always(function () { });
568} 569 570function OnSuccessUpdateConditionalDisplay(data, status) { 571 if (data.d == '0') { 572 if ($("#pnlitm" + panelItemID).css("display") == "block") { 573 $("#pnlitm" + panelItemID).css("display", "none"); 574 $("#pnlitm" + panelItemID).find($("[id$='_txtDecimalValue']")).removeClass("validationOverride") 575 var element = $("#pnlitm" + panelItemID); 576 $(".isActiveResponse", element).each(function (index) { 577 $(this).val("false"); 578 //console.log("panel id not visible" + panelItemID) 579 }); 580 } 581 } 582 else if (data.d == '1') { 583 if ($("#pnlitm" + panelItemID).css("display") == "none") { 584 $("#pnlitm" + panelItemID).css("display", "block"); 585 $("#pnlitm" + panelItemID).find($("[id$='_txtDecimalValue']")).addClass("validationOverride"); 586 var element = $("#pnlitm" + panelItemID); 587 $(".isActiveResponse", element).each(function (index) { 588 $(this).val("true"); 589 // console.log("panel id visible" + panelItemID) 590 }); 591 } 592 perfInSeconds = (new Date()).getTime() - perfInSeconds; 593 console.log("UpdateConditionalDisplay executed in miliseconds: " + perfInSeconds); 594 console.log("network speed: " + navigator.connection.downlink); 595 } 596 else { // on fail - submit the form for a complete postback 597 resetDDLsForPostBack(); 598 document.forms[0].submit(); // do a full postback if the web service cannot resolve condition 599 } 600} 601var calcPerf; 602// Calculated Values 603function UpdateCalculatedValue(panelItemId, quoteId, currentUserId) { 604 605 var effectiveDate; 606 if ($('#hfEffectiveDate').length < 1) { 607 effectiveDate = ""; 608 } 609 else { 610 effectiveDate = $('#hfEffectiveDate').val(); 611 } 612 var cultureCode = getCookieValue("culture");// $('#hfCulture').val(); 613 var requestId = $("#hdnRequestId").val(); 614 var dataToSend = JSON.stringify({ 'panelItemId': panelItemId, 'quoteId': quoteId, 'formResponses': getResponsesFromForm(), 'effectiveDate': effectiveDate, 'page': page, 'cultureCode': cultureCode, 'currentUserId': currentUserId, 'requestId': requestId }); 615 calcPerf = (new Date()).getTime(); 616 $.ajax({
617 type: 'POST', 618 url: serviceURL + 'EvaluateCalculatedValue', 619 data: dataToSend, 620 contentType: 'application/json; charset=utf-8', 621 async: false, 622 target: '{"panelItemId":"' + panelItemId + '"}', 623 dataType: 'json' 624 }).done(OnSuccessUpdateCalculatedValue) 625 .fail(OnError); 626} 627 628function OnSuccessUpdateCalculatedValue(data, status) { 629 if (data.d == 'f') { // on fail - submit the form for a complete postback 630 resetDDLsForPostBack(); 631 document.forms[0].submit(); // do a full postback if the web service cannot resolve condition 632 } 633 else { 634 $("#pnlitm" + JSON.parse(this.target).panelItemId).find($("[id$='lblCalculatedValue']")).text(data.d); 635 $("#pnlitm" + JSON.parse(this.target).panelItemId).find($("[id$='txtDecimalValue']")).val(data.d); 636 } 637 calcPerf = (new Date()).getTime() - calcPerf; 638 console.log("UpdateCalculatedValue executed in miliseconds: " + calcPerf) 639 console.log("network speed: " + navigator.connection.downlink); 640}; 641 642 643function UpdateTextValue(panelItemId, quoteId, currentUserId) { 644 var effectiveDate; 645 if ($('#hfEffectiveDate').length < 1) { 646 effectiveDate = ""; 647 } 648 else { 649 effectiveDate = $('#hfEffectiveDate').val(); 650 } 651 652 var cultureCode = $('#hfCulture').val(); 653 var requestId = $("#hdnRequestId").val(); 654 var dataToSend = JSON.stringify({ 'panelItemId': panelItemId, 'quoteId': quoteId, 'formResponses': getResponsesFromForm(), 'effectiveDate': effectiveDate, 'page': page, 'cultureCode': cultureCode, 'currentUserId': currentUserId, 'requestId': requestId }); 655 656 $.ajax({
657 type: 'POST', 658 url: serviceURL + 'EvaluateTextValue', 659 data: dataToSend, 660 contentType: 'application/json; charset=utf-8', 661 async: false, 662 target: '{"panelItemId":"' + panelItemId + '"}', 663 dataType: 'json' 664 }).done(OnSuccessUpdateTextValue) 665 .fail(OnError); 666} 667 668function OnSuccessUpdateTextValue(data, status) { 669 if (data.d == 'f') { // on fail - submit the form for a complete postback 670 resetDDLsForPostBack(); 671 document.forms[0].submit(); // do a full postback if the web service cannot resolve condition 672 } 673 else { 674 $("#pnlitm" + JSON.parse(this.target).panelItemId).find($("[id$='txtText']")).val(data.d); 675 } 676}; 677 678function updateCurrencyDisplay(number, selector, cultureTypeId) { 679 680 var dataToSend = JSON.stringify({ 'number': number, 'cultureTypeId': cultureTypeId }); 681 //serviceURL = document.URL.replace(window.location.pathname, "") + "/WebService1-Refactor.asmx/"; 682 683 $.ajax({ 684 type: 'POST', 685 url: serviceURL + 'FormatNumberAsCurrency', 686 data: dataToSend, 687 contentType: 'application/json; charset=utf-8', 688 async: false, 689 dataType: 'json' 690 }).done(function (data) { OnSuccessUpdateCurrencyDisplay(data, selector); }) 691 .fail(OnError); 692} 693 694function OnSuccessUpdateCurrencyDisplay(data, selector) { 695 $(selector).text(data.d); 696} 697 698function saveFinalQuoteFiguresToDb(finalQuoteFigures, quoteId, noteTypeId, notes, userId) { 699 700 var dataToSend = JSON.stringify({ 'finalQuoteFiguresObject': finalQuoteFigures, 'quoteId': quoteId, 'noteTypeId': noteTypeId, 'notes': notes, 'userId': userId }); 701 702 $.ajax({
703 type: 'POST', 704 url: serviceURL + 'SaveFinalQuoteFiguresToDb', 705 data: dataToSend, 706 contentType: 'application/json; charset=utf-8', 707 async: false, 708 dataType: 'json' 709 }).done(function (data) { OnSuccessSaveFinalQuoteFiguresOverride(); }) 710 .fail(OnError); 711} 712function OnSuccessSaveFinalQuoteFiguresOverride() { 713 714 $("[id$='hfCommittedOverride']").val($("[id$='hfStagedOverride']").val()); 715 setOverrideEditMode('readonly'); 716} 717 718 719 720var formatNumber = function (nStr) { 721 nStr += ''; 722 x = nStr.split('.'); 723 x1 = x[0]; 724 x2 = x.length > 1 ? '.' + x[1] : ''; 725 var rgx = /(\d+)(\d{3})/; 726 while (rgx.test(x1)) { 727 x1 = x1.replace(rgx, '$1' + ',' + '$2'); 728 } 729 return x1 + x2; 730} 731 732// On Error 733function OnError(request, status, error) { // on error - submit the form for a complete postback 734 735 console.log('OnError'); 736 //alert('Fail!' + status + ' ' + error) 737 alert(error + '\n' + 'Please try again!'); 738 resetDDLsForPostBack(); 739 document.forms[0].submit(); // do a full postback if the ajax call returned an error 740}; 741 742function OnErrorLockBox(request, status, error) { // on error - submit the form for a complete postback 743 744 console.log('OnErrorLockBox'); 745 console.log(error); 746 //alert('Fail!' + status + ' ' + error) 747 //alert(error + '\n' + 'Please try again!'); 748 //resetDDLsForPostBack(); 749 //document.forms[0].submit(); // do a full postback if the ajax call returned an error 750}; 751 752function OnErrorCondDispSelectQuestion(request, status, error) { // on error - submit the form for a complete postback 753 console.log('OnErrorCondDispSelectQuestion'); 754 //alert('Fail!' + status + ' ' + error) 755 alert(error + '\n' + 'Please try again!'); 756 var page = window.location; 757 //var serviceURL = "/WebService1.asmx/"; 758 var cdxhr = $.ajax({ 759 type: 'POST', 760 url: serviceURL + 'LogError', 761 data: '{"Message":"' + status + '","source":"' + 'function SetConditionalDisplayForSelectableQuestion' + '","Line":"' + 0 + '","col":"' + 0 + '","Err"
761:"' + 0 + '","page":"' + page + '"}', 762 contentType: 'application/json; charset=utf-8', 763 async: true, 764 dataType: 'json', 765 success: LoggSuccess, 766 error: LoggError 767 }); 768 resetDDLsForPostBack(); 769 document.forms[0].submit(); // do a full postback if the ajax call returned an error 770}; 771 772 773function OnCondDispleyError(request, status) { // on error - submit the form for a complete postback 774 console.log('OnCondDispleyError'); 775 //alert('Fail!' + status + ' ' + error) 776 alert('Error! Please try again!'); 777 // resetDDLsForPostBack(); 778 // document.forms[0].submit(); // do a full postback if the ajax call returned an error 779 // throw "OnCondDispleyError /n" + status + "/n" + request; 780 var page = window.location; 781 //var serviceURL = "/WebService1.asmx/"; 782 var cdxhr = $.ajax({ 783 type: 'POST', 784 url: serviceURL + 'LogError', 785 data: '{"Message":"' + status + '","source":"' + request + '","Line":"' + 0 + '","col":"' + 0 + '","Err":"' + 0 + '","page":"' + page + '"}', 786 contentType: 'application/json; charset=utf-8', 787 async: false, 788 dataType: 'json', 789 success: LoggSuccess, 790 error: LoggError 791 }); 792}; 793 794function saveRenewalNotificationData(data) { 795 var stringData = JSON.stringify(data); 796 var rnxhr = $.ajax({ 797 type: "POST", 798 url: serviceURL + 'SaveRenewalNotificationData', 799 data: "{data:" + stringData + "}", 800 contentType: 'application/json; charset=utf-8', 801 async: false, 802 dataType: "json", 803 success: OnSuccessSaveRenewalNotificationData, 804 error: OnError 805 }); 806 807 rnxhr.abort(); 808 809}; 810 811function OnSuccessSaveRenewalNotificationData(data, status) { 812 if (data.d == 'f') { // on fail - submit the form for a complete postback 813 document.forms[0].submit(); // do a full postback if the web service cannot resolve condition 814 } 815}; 816 817function GetQuestionValueFromDb(quoteId, questionId) { 818 var questionValue; 819 $.ajax({
820 type: 'POST', 821 async: false, 822 url: serviceURL + 'GetQuestionValueFromDb', 823 data: '{"quoteId":"' + quoteId + '","questionId":"' + questionId + '"}', 824 contentType: 'application/json; charset=utf-8', 825 dataType: 'json', 826 success: function (data) { questionValue = data.d; }, 827 }); 828 829 return questionValue; 830}; 831 832function getInForceBlanketBondPolicyCount(userId) { 833 var inforcePolicyCount; 834 835 var cdxhr = $.ajax({ 836 type: 'POST', 837 url: serviceURL + 'GetInForceBlanketBondPolicyCount', 838 data: '{"userId":"' + userId + '"}', 839 contentType: 'application/json; charset=utf-8', 840 async: false, 841 dataType: 'json', 842 success: function (data) { inforcePolicyCount = data.d; }, 843 error: OnError 844 }); 845 846 return inforcePolicyCount; 847}; 848 849function crossDomainAjax(url, successCallback, failureCallback) { 850 var ieVers = getInternetExplorerVersion(); 851 // IE8 & 9 only Cross domain JSON GET request 852 if ('XDomainRequest' in window && window.XDomainRequest !== null) { 853 854 var xdr = new XDomainRequest(); // Use Microsoft XDR 855 xdr.open('get', url); 856 xdr.onload = function () { 857 var dom = new ActiveXObject('Microsoft.XMLDOM'), 858 JSON = $.parseJSON(xdr.responseText); 859 860 dom.async = false; 861 862 if (JSON == null || typeof (JSON) == 'undefined') { 863 JSON = $.parseJSON(data.firstChild.textContent); 864 } 865 866 successCallback(JSON); // internal function 867 }; 868 869 xdr.onerror = function () { 870 failureCallback(); 871 _result = false; 872 }; 873 874 xdr.send(); 875 } 876 877 // IE7 and lower can't do cross domain 878 // I'm using jQuery's $.browser (deprecated in 1.9 of course) 879 // You could change this to navigator.userAgent, whatever works for you of course 880 881 882 883 else if (ieVers > 0 && ieVers <= 7) { 884 return false; 885 } 886 887 // Do normal jQuery AJAX for everything else 888 else { 889 $.ajax({
890 url: url, 891 cache: false, 892 dataType: 'json', 893 type: 'GET', 894 async: false, // must be set to false 895 success: function (data, success) { 896 successCallback(data); 897 }, 898 error: failureCallback 899 }); 900 } 901}; 902 903function crossDomainAjaxAuthenticated(url, successCallback, failureCallback, authentication) { 904 var ieVers = getInternetExplorerVersion(); 905 // IE8 & 9 only Cross domain JSON GET request 906 if ('XDomainRequest' in window && window.XDomainRequest !== null) { 907 908 var xdr = new XDomainRequest(); // Use Microsoft XDR 909 xdr.open('get', url); 910 xdr.onload = function () { 911 var dom = new ActiveXObject('Microsoft.XMLDOM'), 912 JSON = $.parseJSON(xdr.responseText); 913 914 dom.async = false; 915 916 if (JSON == null || typeof (JSON) == 'undefined') { 917 JSON = $.parseJSON(data.firstChild.textContent); 918 } 919 920 successCallback(JSON); // internal function 921 }; 922 923 xdr.onerror = function () { 924 failureCallback(); 925 _result = false; 926 }; 927 928 xdr.send(); 929 } 930 931 // IE7 and lower can't do cross domain 932 // I'm using jQuery's $.browser (deprecated in 1.9 of course) 933 // You could change this to navigator.userAgent, whatever works for you of course 934 935 936 937 else if (ieVers > 0 && ieVers <= 7) { 938 return false; 939 } 940 941 // Do normal jQuery AJAX for everything else 942 else if (ieVers > 0 && ieVers < 20) { 943 $.ajax({
944 url: url, 945 cache: false, 946 dataType: 'json', 947 type: 'GET', 948 async: false, // must be set to false 949 success: function (data, success) { 950 successCallback(data); 951 }, 952 error: failureCallback, 953 beforeSend: function (xhr) { 954 xhr.setRequestHeader("Authorization", "Basic " + authentication); 955 }, 956 }); 957 } 958 959 else { 960 $.ajax({ 961 type: "POST", 962 url: serviceURL + 'CreateWebCall', 963 data: '{"url":"' + url + '", "username":"' + username + '", "password":"' + password + '"}', 964 contentType: 'application/json; charset=utf-8', 965 async: false, 966 dataType: "json", 967 success: MembershipSuccess, 968 error: MembershipFailure 969 }); 970 971 } 972}; 973 974function getBrowser() { 975 976 navigator.sayswho = (function () { 977 var ua = navigator.userAgent, tem, 978 M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || []; 979 if (/trident/i.test(M[1])) { 980 tem = /\brv[ :]+(\d+)/g.exec(ua) || []; 981 return 'IE ' + (tem[1] || ''); 982 } 983 if (M[1] === 'Chrome') { 984 tem = ua.match(/\bOPR\/(\d+)/); 985 if (tem != null) return 'Opera ' + tem[1]; 986 } 987 M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?']; 988 if ((tem = ua.match(/version\/(\d+)/i)) != null) M.splice(1, 1, tem[1]); 989 return M.join(' '); 990 })(); 991 992 return navigator.sayswho.split(" "); 993 994}; 995 996function escapeApostrophe(str) { 997 str = str.replace("'", "\\'"); 998 return str; 999} 1000 1001function unescapeApostrophe(str) { 1002 str = str.replace("\\'", "'"); 1003 return str; 1004} 1005 1006var spinnerTimer = 0, spinnerCloseButtonTimer = 0; 1007function showSpinner() { 1008 1009 spinnerTimer = setTimeout(function () { 1010 1011 var spinnerBackground = $('<div />'); 1012 spinnerBackground.addClass("spinner-background"); 1013 $('body').append(spinnerBackground); 1014 $('.spinner__close-btn').addClass('hidden'); 1015 $(".spinner__wrapper").show(); 1016 }, 100); 1017 1018 showSpinnerCloseButton(); 1019} 1020 1021 1022function hideSpinner() { 1023 if (spinnerTimer != null) { 1024 clearTimeout(spinnerTimer); 1025 } 1026 spinnerTimer = 0; 1027 1028 if (spinnerCloseButtonTimer != null) { 1029 clearTimeout(spinnerCloseButtonTimer); 1030 } 1031 spinnerCloseButtonTimer = 0; 1032 1033 $(".spinner__wrapper").hide(); 1034 $('.spinner-background').remove(); 1035 window.location(window.location.href); 1036}; 1037function hideSpinner2(message) { 1038 if (spinnerTimer != null) { 1039 clearTimeout(spinnerTimer); 1040 } 1041 spinnerTimer = 0; 1042 1043 if (spinnerCloseButtonTimer != null) { 1044 clearTimeout(spinnerCloseButtonTimer); 1045 } 1046 spinnerCloseButtonTimer = 0; 1047 $(".spinner__wrapper").hide(); 1048 $('.spinner-background').remove(); 1049 1050 // setTimeout(function () { 1051 1052 //alert(message); 1053 $(".message").show(); 1054 //}, 100); 1055}; 1056 1057 1058function showSpinnerCloseButton() { 1059 spinnerCloseButtonTimer = setTimeout(function () { 1060 $('.spinner__close-btn').addClass('displayBlock'); 1061 $('.spinner__close-btn').removeClass('hidden'); 1062 $('.spinner__wrapper').css('border-style', 'solid'); 1063 }, 100); 1064} 1065 1066var disableSpinner = false; 1067 1068var getJsonData = function (data, dataURL) { 1069 return $.ajax({ 1070 type: 'POST', 1071 data: data, 1072 dataType: 'json', 1073 contentType: 'application/json; charset=utf-8', 1074 url: dataURL 1075 }); 1076} 1077 1078function OpenPolicy(quoteId, policyId, action, folder) { 1079 1080 window.location.assign("/" + folder + "/apply.aspx?QID=" + quoteId); 1081} 1082 1083function OpenQuote(quoteId, action, folder) { 1084 window.location.assign("/" + folder + "/apply.aspx?QID=" + quoteId); 1085} 1086 1087 1088function RenewPolicy(policyId, userId, folder) { 1089 1090 var cdxhr = $.ajax({ 1091 type: 'POST', 1092 url: serviceURL + 'CreateRefactorRenewal', 1093 data: '{"policyId":"' + policyId + '","userId":"' + userId + '"}', 1094 contentType: 'application/json; charset=utf-8', 1095 async: false, 1096 dataType: 'json',
1097 success: function (data) { OnSuccessRenewPolicy(data, folder); }, 1098 error: OnError 1099 }); 1100 1101 cdxhr.abort(); 1102}; 1103 1104function OnSuccessRenewPolicy(data, folder) { 1105 window.location.assign("/" + folder + "/apply.aspx?QID=" + data.d); 1106}; 1107 1108function CheckSelectableAnswersConditionalDispalys() { 1109 $('.sacd').each(function (i, obj) { 1110 obj.dispatchEvent(startEvent); 1111 }); 1112} 1113 1114function CheckNumbericBoxLocking() { 1115 var x = $(document).find('.e-currencytextbox'); 1116 $.each(x, function () { 1117 var iboxId = this.id; 1118 // console.log("inputbox: " + iboxId); 1119 var element = document.getElementById(iboxId); 1120 element.dispatchEvent(startNBLEvent); 1121 }); 1122} 1123 1124function SetConditionalDisplayForSelectableQuestion(questionId, quoteID, effectiveDate) { 1125 var requestId = $("#hdnRequestId").val(); 1126 var dataToSend = JSON.stringify({ 'questionId': questionId, 'quoteId': quoteID, 'formContents': getResponsesFromForm(), 'effectiveDate': effectiveDate, 'requestId': requestId }); 1127 perfInSeconds = (new Date()).getTime(); 1128 1129 var cdxhr = $.ajax({ 1130 type: 'POST', 1131 url: serviceURL + 'GetConditionalDisplaysForSelectableQuestion', 1132 data: dataToSend, 1133 contentType: 'application/json; charset=utf-8', 1134 async: true, 1135 dataType: 'json', 1136 success: OnSuccessSetConditionalDisplayForSelectableQuestion, 1137 error: OnErrorCondDispSelectQuestion 1138 }); 1139 1140}; 1141 1142function OnSuccessSetConditionalDisplayForSelectableQuestion(data, status) { 1143 if (data.d == null) 1144 return; 1145 1146 var results = JSON.parse(data.d); 1147 if (results.length == 0) 1148 return; 1149 1150 //drop down list 1151 if (results[0].InputTypeId == 5) { 1152 $.each(results, function (key, value) { 1153 var ddl = $(document).find("[data-question-id='" + value.QuestionId + "']"); 1154 if (value.ShouldShow) { 1155 $(ddl).find('option[value="' + value.SelectableAnswerId + '"]').css("display", "inline"); 1156 } 1157 else { 1158 $(ddl).find('option[value="' + value.SelectableAnswerId + '"]').css("display", "none"); 1159 } 1160 }); 1161 } 1162 //radio button list 1163 if (results[0].InputTypeId == 6) { 1164 $.each(results, function (key, value) { 1165 var rbList_table = $(document).find("[data-question-id='" + value.QuestionId + "']"); 1166 var radioButton = rbList_table.find("[value='" + value.SelectableAnswerId + "']"); 1167 if (value.ShouldShow) { 1168 radioButton.parent().removeClass("radio-button-list-vertical__item--hidden"); 1169 radioButton.parent().addClass("radio-button-list-vertical__item"); 1170 } 1171 else { 1172 radioButton.parent().addClass("radio-button-list-vertical__item--hidden"); 1173 radioButton.parent().removeClass("radio-button-list-vertical__item"); 1174 radioButton.prop('checked', false); 1175 } 1176 }); 1177 } 1178 perfInSeconds = (new Date()).getTime() - perfInSeconds; 1179 console.log("GetConditionalDisplaysForSelectableQuestion executed in miliseconds: " + perfInSeconds); 1180 console.log("network speed: " + navigator.connection.downlink); 1181}; 1182 1183//Numeric Box - Conditional Lock 1184function SetConditionalLockForNumericBox(questionId, quoteID) { 1185 var effectiveDate; 1186 if ($('#hfEffectiveDate').length < 1) { 1187 effectiveDate = ""; 1188 } 1189 else { 1190 effectiveDate = $('#hfEffectiveDate').val(); 1191 } 1192 var requestId = $("#hdnRequestId").val(); 1193 var dataToSend = JSON.stringify({ 'questionId': questionId, 'quoteId': quoteID, 'cultureCode': $('#hfCulture').val(), 'formContents': getResponsesFromForm(), 'effectiveDate': effectiveDate, 'requestId': requestId }); 1194 var cdxhr = $.ajax({ 1195 type: 'POST', 1196 url: serviceURL + 'GetConditionalLockForNumericBox', 1197 data: dataToSend, 1198 contentType: 'application/json; charset=utf-8', 1199 async: false, 1200 dataType: 'json', 1201 success: OnSuccessGetConditionalLockForNumericBox, 1202 error: OnErrorLockBox 1203 });
1204 1205 cdxhr.abort(); 1206}; 1207 1208 1209function CheckPurchaseCode(purchaseCode) { 1210 1211 var dataToSend = JSON.stringify({ 'purchaseCode': purchaseCode, 'formContents': getResponsesFromForm() }); 1212 var cdxhr = $.ajax({ 1213 type: 'POST', 1214 url: serviceURL + 'CheckPurchaseCode', 1215 data: dataToSend, 1216 contentType: 'application/json; charset=utf-8', 1217 async: false, 1218 dataType: 'json', 1219 success: OnSuccessCheckCanasaPurchaseCode, 1220 error: OnErrorLockBox 1221 }); 1222 cdxhr.promise(); 1223 // cdxhr.abort(); 1224}; 1225function OnSuccessCheckCanasaPurchaseCode(data, status) { 1226 console.log('OnSuccessCheckCanasaPurchaseCode'); 1227 var bool = false; 1228 // debugger; 1229 if (data.d == null) 1230 bool = false; 1231 if (data.d == "0") { bool = false; } 1232 else if (data.d == "1") { bool = true; } 1233 $('#hdnVal').val(bool); 1234 // else return false 1235 1236 // return data.d; 1237} 1238 1239///function OnSuccessGetConditionalLockForNumericBox works only for CurrencyBox type - we need to extend to work with Numberic and % types also 1240function OnSuccessGetConditionalLockForNumericBox(data, status) { 1241 // console.log('OnSuccessGetConditionalLockForNumericBox'); 1242 if (data.d == null) 1243 return; 1244 var results = JSON.parse(data.d); 1245 var questionElement = $(document).find("[data-question-id='" + results.QuestionId + "']"); 1246 var numericInputBox = questionElement.find('.e-currencytextbox')[0]; 1247 if (results.ShouldLock) { 1248 console.log("Lock amoutn " + results.LockAmount); 1249 $(numericInputBox).attr('disabled', 'disabled'); 1250 $(numericInputBox).ejCurrencyTextbox({ 1251 value: results.LockAmount 1252 }); 1253 $(questionElement).addClass('disabled'); 1254 $(numericInputBox).addClass('disabled'); 1255 } 1256 else { 1257 if ($(numericInputBox).attr('disabled') == 'disabled') { 1258 $(questionElement).removeClass('disabled'); 1259 $(numericInputBox).removeClass('disabled'); 1260 $(numericInputBox).removeAttr('disabled'); 1261 $(numericInputBox).ejCurrencyTextbox({ 1262 value: '' 1263 }); 1264 } 1265 } 1266 1267 //also update the cbIsDirty Flag to true so response is updatd in database 1268 var $panelItem = questionElement.closest("div[id*='pnlitm']"); 1269 var $checkbox = $panelItem.find("input[type='checkbox'][name*='cbIsDirty']"); 1270 $checkbox.prop("checked", true); 1271 1272}; 1273 1274function generateUUID() { // Public Domain/MIT 1275 var d = new Date().getTime();//Timestamp 1276 var d2 = ((typeof performance !== 'undefined') && performance.now && (performance.now() * 1000)) || 0;//Time in microseconds since page-load or 0 if unsupported 1277 return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { 1278 var r = Math.random() * 16;//random number between 0 and 16 1279 if (d > 0) {//Use timestamp until depleted 1280 r = (d + r) % 16 | 0; 1281 d = Math.floor(d / 16); 1282 } else {//Use microseconds since page-load if supported 1283 r = (d2 + r) % 16 | 0; 1284 d2 = Math.floor(d2 / 16); 1285 } 1286 return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16); 1287 }); 1288} 1289
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.