{"version":3,"sources":["httpInterceptor.service.js","languages.service.js","menu.ctrl.js","routes.config.js","redirectControl.directive.js","mobileMenu.directive.js","responsiveImg.directive.js","scrollHeader.directive.js","loaderState.directive.js","app.ctrl.js","collections.service.js","contact.service.js","dealers.service.js","diamondTracking.service.js","items.service.js","mines.service.js","adjustCollectionsSlider.directive.js","adjustHomeSlider.directive.js","adjustWindow.directive.js","checkboxFilters.directive.js","dealersMap.directive.js","engagementSize.directive.js","fullpage.directive.js","ngEnter.directive.js","setResponsiveLayout.directive.js","socialShare.directive.js","5c.ctrl.js","canadianDiamonds.ctrl.js","certification.ctrl.js","collectionDetail.ctrl.js","collections.ctrl.js","contact.ctrl.js","dealerLocator.ctrl.js","diamondTracking.ctrl.js","filtersMenu.ctrl.js","main.ctrl.js","mines.ctrl.js","pieceDetail.ctrl.js","preciousMetals.ctrl.js","privacyPolicy.ctrl.js","termsConditions.ctrl.js","app.js","angular-retina.directive.js"],"names":["httpInterceptor","$q","$rootScope","loadingCount","request","config","$broadcast","when","response","responseError","reject","Languages","$http","get_texts","lang","length","get","menuController","$scope","$localStorage","$route","$location","$window","$cookies","$timeout","$on","$ev","current","previous","angular","element","removeClass","$","$watch","siteTexts","newVal","oldVal","texts","isDefined","headerTexts","header","getTexts","headerLinks","url","preventDefault","path","location","href","engagementURL","innerWidth","scrollTo","goToSection","search","put","toMinesMap","isActive","regexp","test","changeLanguage","isSegment","segment","undefined","split","isLanguage","language","$routeProvider","$locationProvider","html5Mode","hashPrefix","controller","templateUrl","resolve","version","otherwise","redirectTo","a","restrict","link","scope","elem","attrs","ngClick","on","e","toggleMenu","$document","menu","bind","querySelector","hasClass","addClass","img","replace","bgImg","$interval","isUndefined","noop","stop","askSrc","style","backgroundImage","verifyImg","stopAsking","isRetina","isUHD","cancel","imgController","hdImage","src","isBg","indexOf","getImgUrl","msie","isIE","document","documentMode","isEdge","window","StyleMedia","isMobile","ask","navigator","userAgent","substr","devicePixelRatio","extension","index","origin","suffix","this","scrollHeader","windowTopOffset","checkWindow","askOnce","attr","actualTheme","resetAskOne","setTimeout","pageYOffset","height","home","offset","about","collections","tracking","locator","engagement","innerHeight","top","initMap","lat","lng","firstVersion","attributes","value","sections","i","mapleLoader","showLoader","hideLoader","appController","then","data","d","Date","year","getFullYear","querySelectorAll","Collections","coronaURL","getCollections","params","method","headers","content-type","getItems","getFilters","openCollectionSubmenu","currenPath","closeCollectionSubmenu","makeSearch","item","frontImage","title","description","viewAll","Contact","sendForm","Dealers","sendData","getMoreInformation","DiamondTracking","sendNumber","Items","sendHint","getItemDetails","moreInfo","Mines","$sce","mines","slug","content","trustAsHtml","get_mine","mine","tempMine","sliderCollections","resize","winHeight","css","background-image","slider","min-height","adjust","checkbox","dealersMap","$mdDialog","template","map","dealersCenterCoords","dealersZoom","lastPosition","userPosition","lastZoom","markers","markersposition","firstAlert","isOpera","opr","addons","opera","isFirefox","InstallTrigger","isSafari","isChrome","chrome","webstore","mapOptions","center","google","maps","LatLng","zoom","mapTypeId","MapTypeId","ROADMAP","scrollwheel","gestureHandling","zoomControlOptions","position","ControlPosition","RIGHT_TOP","streetViewControlOptions","checkposition","latLng","marker","Marker","name","push","setMap","splice","confirm","ariaLabel","ok","show","dealerLoader","userSelection","latitude","longitude","coords","geocoder","Geocoder","geocode","address","results","status","GeocoderStatus","OK","resultsZipCode","formatted_address","console","log","getClosestDealersFromZipCode","accept","clientHeight","winWidth","float","margin-top","searchONclick","addListener","getZoom","Map","userLocation","rebuildToUserCoords","setMarker","dealers","newMarkers","mapDim","mapHeight","mapWidth","getElementById","clientWidth","width","remove","dealer","parseFloat","icon","id","ID","event","setCenter","setZoom","bounds","boundsTemp","LatLngBounds","each","extend","getPosition","fixBounds","getCenter","WORLD_DIM","latRad","sin","Math","PI","radX2","max","min","mapPx","worldPx","fraction","floor","LN2","ne","getNorthEast","sw","getSouthWest","latFraction","lngDiff","lngFraction","latZoom","lngZoom","getBoundsZoomLevel","locationBtn","protocol","ifBrowserSupportLocation","geolocation","getCurrentPosition","pos","geocodeSuccess","dealerStatusText","geocodeError","centerMap","handleLocationError","error","code","alert","parent","clickOutsideToClose","message","centerByLocation","checkBrowserLocatorEnable","centerByCountry","country","geometry","fitBounds","zoomToDealer","dealerID","backToListOfDealers","engagementSize","size","initFullpage","$routeParams","actualIndex","destroyed","askDealerSection","checkMenu","section","children","el","find","dhref","regex","RegExp","match","next","off","loadHomeDirective","fullpage","scrollOverflow","navigation","fitToSection","responsiveWidth","afterLoad","anchorLink","onLeave","nextIndex","direction","changeTheme","scrolledEl","locatorIndex","ifDealerSection","cleanError","ifLeaveDealerSection","afterResponsive","isResponsive","fn","destroy","setAutoScrolling","setFitToSection","insertNavigation","loadAboutDirective","destroyDirective","rebuildDirective","reBuild","elementId","elId","setScrollingSpeed","moveTo","append","ev","downSection","moveSectionDown","checkMousePosition","clientY","setMouseWheelScrolling","setAllowScrolling","ngEnter","which","$apply","$eval","resizeResponsive","debounce","func","wait","immediate","timeout","context","args","arguments","callNow","clearTimeout","apply","randomString","len","an","toLowerCase","str","r","random","String","fromCharCode","fiveCsController","fivecs","cutShape","paragraph1","paragraph2","paragraph3","paragraph4","idealProportions","colour","paragraph5","paragraph6","paragraph7","paragraph8","clarity","carat","canadian","footerTexts","socials","footer","copyright","contact","privacy","flashSite","terms","canadianDiamondsController","canadianDiamonds","exquisite","formation","imgTitle","discovery","exploration","part1","part2","certificationController","certification","certificate","responsible","canadamark","goToTrack","collectionDetailController","askBottom","noResultsText","loader","items","itemsStart","callingItems","stopCalling","singleCollection","arrayID","offsetTop","start","catFilter","shapeFilter","styleFilter","category","indexx","Number","shape","urlFilters","collection","styles","shapes","categories","filters","record_start","record_count","device","fbq","CollectionFilters","ItemStart","temp","noResults","statusText","headerImage","addEventListener","goToDetail","piece","itemsList","absUrl","collectionId","collectionController","isEngagement","headerImg","isENgagement","headerImg_tablet","headerImg_mob","engagementData","engagementTitle","subtitle","engagementSubtitle","colFilter","EngagementFilters","partial","contactUsController","$mdToast","vcRecaptchaService","recaptchaKey","recaptchaLanguage","user","email","phone","storename","storeaddress","comments","DEBUG_TargetEmail","contactLoader","widgetId","setResponse","setWidgetId","cbExpiration","reload","send","valid","simple","textContent","completeAll","toastClass","recaptcha_sitekey","recaptcha_response_field","successMessage","recaptcha","locatorController","openManualModal","selectDealer","countrySelect","postalCode","locatorPartial","dealerLogo","showManualModal","hideManualModal","localorTexts","instructions","weekday","daysOfWeek","day","getDay","countrySelected","searchZipCode","zipcode","pattern","enterZIP","city","zeroResults","overQuota","requestDenied","requestInvalid","hoursTitle","paymentsTitle","servicesTitle","viewSearch","back","dealerDetail","locatorTexts","currentLocation","showDealerDetail","logo","acceptDealer","understand","focus","animate","scrollTop","isManualModalOpen","manualModalgoBack","trackingController","diamondInfo","trackingNumber","trackLoader","diamondPartial","trackingTexts","inputLabelError","inputLabel","trackTitle","sendTrackingNumber","reCaptchaResponse","enterNumber","getResponse","anotherTitle","recaptchaText","filtersMenuController","resultsChanged","appliedFilters","selectedCollections","selectedCategories","selectedStyles","selectedShapes","collectionsArray","categoriesArray","stylesArray","shapesArray","filtersChanged","countCollections","countCategories","countStyles","countShapes","backupFilters","checkFilters","ind","ele","count","getSlug","filter","showFilterItems","showCollections","showCat","showStyle","showShape","filtersTexts","filtersMenu","applyFilters","urlSearch","collectionSearch","categorySearch","shapeSearch","stylesSearch","contCollections","collectionSlug","categorySlug","styleSlug","shapeSlug","urlCollectionID","lastString","charAt","substring","recaptcha_skip","innerText","setSearchUrls","toggle","list","idx","exists","toggleAll","tempArray","filterChanged","clearAllCheckbox","showFilter","mainController","y","PrincipalSlickConfig","autoplay","lazyLoad","arrows","infinite","dots","slidesToShow","slidesToScroll","goToContact","open","interval","stopWatcher","doScroll","removeStyle","RecaptchaResponse","CollectionsSlickConfig","enabled","speed","draggable","initOnload","successResponse","nItems","captchaResponse","greyScreen","createElement","prepend","minesController","ekati","diavik","gahcho","renard","pieceDetailController","keys","currentURL","hidePreviousArrows","hideNextArrows","previousPiecePath","nextPiecePath","pieceViews","actualSlideItem","itemDetail","currentPiece","previousNextItems","ifItemExist","description1","description2","cataloque","social","title1","image","video","large","type","tempImg","images","cont","principalSlickConfig","asNavFor","fade","beforeChange","slick","currentSlide","nextSlide","stopPropagation","videoId","myVideo","tagName","pause","afterChange","play","slidesNumber","eneableArrows","infiniteSlider","verifyScreenSize","thumbnailSlickConfig","focusOnSelect","init","paused","showClon","clonItem","setTempItem","sliderHeight","sliderWidth","removeTempItem","sendHintController","actualSlide","hintParams","recipientName","recipientEmail","recipientPhone","imageUrl","cancelPopupHint","recipientNameError","recipientEmailError","emailPattern","recipientEmailWrongFormat","nameError","emailError","emailWrongFormat","sendParams","senderName","senderPhone","senderEmail","referenceType","referenceId","referenceURL","succesMsg","backToCollection","openPopupSendHint","body","targetEvent","escapeToClose","locals","moreInfoController","moreInfoParams","cancelMoreInfo","askMoreInfo","commentsError","dealerId","moreItems","setPreviousNextArrow","shareItem","overrideLink","overrideTitle","overrideDescription","overrideImage","FB","ui","action_type","action_properties","JSON","stringify","object","og:url","og:title","og:description","og:image","setArrowsOffset","styleSheets","head","getElementsByTagName","styleSheet","innerHTML","appendChild","hideDownloadVideo","shareOverrideOGMeta","checkLoginState","testAPI","itewm","getLoginStatus","login","statusChangeCallback","preciousMetalsController","metals","gold","karat","colours","pure","platinum","privacyPolicyController","privacyPolicy","termsConditionsController","module","run","$templateCache","removeAll","onbeforeunload","ready","bodyOffsetLeft","offsetLinkHtml","constant","$httpProvider","$interpolateProvider","defaults","common","$mdThemingProvider","$compileProvider","theme","primaryPalette","accentPalette","factory","interceptors","$inject","directive","infix","dataUrlRegex","allowedImageTypesRegex","fadeInWhenLoaded","ngRetina","$provide","decorator","$delegate","compile","provider","setInfix","setFadeInWhenLoaded","setLoadErrorHandler","handler","$get","$log","parseInt","exec","matchMedia","mediaQuery","matches","setImgSrc","Image","onload","$set","prop","onerror","getSessionStorageItem","sessionStorage","getItem","warn","setSessionStorageItem","imageUrl2x","setItem","set2xVariant","at2x","isPath","getHighResolutionURL","catch","$observe","oldValue","uri","isDataUri","opacity","-o-transition","-moz-transition","-webkit-transition","transition","noretina","fbId","fbAsyncInit","appId","channelUrl","xfbml","js","ref","async","parentNode","insertBefore","shares","transclude","res","total_count","toString","decimal","slice","unbind","renderTwitterButton","twttr","widgets","createShareButton","text","via","renderLinkedinButton","jsonp","toLocaleString","encodeURIComponent","summary","googleShare","gapi","po","renderGoogleButton","s","googleButton","setAttribute","plusone","render","tumblr_button","renderTumblrText","styling","renderTumblrQoute","qoute","source","renderTumblrImage","caption","clickthru","renderTumblrVideo","embedcode","pintrestButtonRenderer","pin_button","pinDo","pinConfig","parsePins"],"mappings":"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","file":"main.min.js","sourcesContent":["angular.module('mapleLeafApp')\r\n .factory('httpInterceptor', [\"$q\", \"$rootScope\", httpInterceptor])\r\n .config(['$httpProvider', function ($httpProvider) {\r\n $httpProvider.interceptors.push('httpInterceptor');\r\n }]).$inject = [\"$httpProvider\"];\r\n\r\nfunction httpInterceptor($q, $rootScope) {\r\n var loadingCount = 0;\r\n\r\n return {\r\n request: function (config) {\r\n if (++loadingCount === 1) $rootScope.$broadcast('loading:progress');\r\n return config || $q.when(config);\r\n },\r\n\r\n response: function (response) {\r\n if (--loadingCount === 0) $rootScope.$broadcast('loading:finish');\r\n return response || $q.when(response);\r\n },\r\n\r\n responseError: function (response) {\r\n if (--loadingCount === 0) $rootScope.$broadcast('loading:finish');\r\n return $q.reject(response);\r\n }\r\n };\r\n}","angular.module('mapleLeafApp')\r\n .factory('Languages', [\"$http\", \"$q\", Languages]);\r\n\r\n/** Lang Service **/\r\nfunction Languages($http, $q) {\r\n\r\n return {\r\n\r\n get_texts: function (lang) {\r\n \r\n if (lang == '' || lang.length <= 0) {\r\n lang = 'en-ca';\r\n }\r\n \r\n if(lang == \"en-ca\") {\r\n return $http.get('/json/text-en-ca.json');\r\n } else if(lang == \"en-us\") {\r\n return $http.get('/json/text-en-us.json');\r\n } else {\r\n return $http.get('/json/text-fr-ca.json');\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .controller('menuController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$route\", \"$location\", \"$window\", \"$cookies\", \"$timeout\", menuController]);\r\n\r\nfunction menuController($scope, $rootScope, $localStorage, $route, $location, $window, $cookies, $timeout) {\r\n\r\n $scope.$on('$routeChangeStart', function ($ev, current, previous) {\r\n angular.element('.phoneMenu').removeClass('open');\r\n $('html, body').removeClass('no-overflow');\r\n });\r\n\r\n $scope.$watch(function () {\r\n return $localStorage.siteTexts;\r\n }, function (newVal, oldVal) {\r\n getTexts(newVal);\r\n });\r\n\r\n function getTexts(texts) {\r\n if (angular.isDefined($localStorage.siteTexts)) {\r\n $scope.headerTexts = $localStorage.siteTexts.header;\r\n };\r\n };\r\n\r\n /** Function for the menu options **/\r\n $rootScope.headerLinks = function ($ev, url) {\r\n $ev.preventDefault();\r\n var path = url;\r\n\r\n if (url == \"engagement\") {\r\n $window.location.href = engagementURL;\r\n } else {\r\n\r\n if ($location.path() == '/') {\r\n if ($window.innerWidth < 768) {\r\n $timeout(function () {\r\n angular.element('.phoneMenu').removeClass('open');\r\n $rootScope.scrollTo(path);\r\n });\r\n } else {\r\n $rootScope.goToSection(path);\r\n }\r\n } else {\r\n $location.search('collection', null);\r\n $location.search('category', null);\r\n $location.search('style', null);\r\n $location.search('shape', null);\r\n $timeout(function () {\r\n $cookies.put(\"scrollID\", path);\r\n $location.path('/');\r\n });\r\n\r\n }\r\n\r\n }\r\n };\r\n\r\n $rootScope.toMinesMap = function () {\r\n $location.search('collection', null);\r\n $location.search('category', null);\r\n $location.search('style', null);\r\n $location.search('shape', null);\r\n $timeout(function () {\r\n $cookies.put(\"scrollID\", 'exploration-of-canadian-diamonds');\r\n $location.path('/about/canadian-diamonds');\r\n });\r\n };\r\n\r\n $scope.isActive = function (path) {\r\n if ($route.current && $route.current.regexp) {\r\n return $route.current && $route.current.regexp.test(path);\r\n }\r\n return false;\r\n };\r\n\r\n $scope.changeLanguage = function (lang) {\r\n $cookies.put(\"siteLanguage\", lang);\r\n };\r\n\r\n $scope.isSegment = function (path, segment) {\r\n\r\n if (segment == undefined) {\r\n segment = 1;\r\n }\r\n var url = $location.path().split('/');\r\n url = url[segment];\r\n\r\n if ('/' + url == path && $location.url() != '/collections?category=9,21') {\r\n return true;\r\n }\r\n if ($location.url() == '/collections?category=9,21' && path == '/engagement') {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n $scope.isLanguage = function (language) {\r\n return ($cookies.get(\"siteLanguage\") == language) ? true : false;\r\n };\r\n\r\n}\r\n","angular\n .module('mapleLeafApp')\n .config([\"$routeProvider\", \"$locationProvider\", config]);\n\nfunction config($routeProvider, $locationProvider) {\n\n /** Routes **/\n\n $locationProvider.html5Mode(true).hashPrefix('/');\n\n $routeProvider\n .when('/', {\n controller: 'mainController',\n templateUrl: 'partials/home.html'\n })\n .when('/locator', {\n controller: 'locatorController',\n templateUrl: 'partials/locator.html'\n })\n .when('/tracking', {\n controller: 'trackingController',\n templateUrl: 'partials/tracking.html'\n })\n .when('/tracking/:anything', {\n resolve: {\n version: ['$rootScope', '$location', function ($rootScope, $location) {\n $location.path('/tracking');\n }]\n }\n })\n .when('/collections', {\n controller: 'collectionController',\n templateUrl: 'partials/collection.html'\n })\n .when('/collections/:collection', {\n controller: 'collectionDetailController',\n templateUrl: 'partials/collectionDetail.html'\n })\n .when('/collections/:collection/:piece', {\n controller: 'pieceDetailController',\n templateUrl: 'partials/piece.html'\n })\n .when('/piece/:piece', {\n controller: 'pieceDetailController',\n templateUrl: 'partials/piece.html'\n })\n .when('/contact-us', {\n controller: 'contactUsController',\n templateUrl: 'partials/contact_us.html'\n })\n .when('/about', {\n resolve: {\n version: ['$location', function ($location) {\n $location.path('/about/canadian-diamonds');\n }]\n }\n })\n .when('/about/precious-metals', {\n controller: 'preciousMetalsController',\n templateUrl: 'partials/precious_metals.html'\n })\n .when('/about/canadian-diamonds', {\n controller: 'canadianDiamondsController',\n templateUrl: 'partials/canadian_diamonds.html'\n })\n .when('/about/canadian-diamonds/:mine', {\n controller: 'minesController',\n templateUrl: 'partials/canadian_mines.html'\n })\n .when('/about/5c', {\n controller: '5cController',\n templateUrl: 'partials/5c.html'\n })\n .when('/about/certification', {\n controller: 'certificationController',\n templateUrl: 'partials/certification.html'\n })\n .when('/privacy-policy', {\n controller: 'privacyPolicyController',\n templateUrl: 'partials/privacyPolicy.html'\n })\n .when('/terms-and-conditions', {\n controller: 'termsConditionsController',\n templateUrl: 'partials/termsConditions.html'\n })\n .otherwise({\n redirectTo: '/'\n });\n\n}","angular.module('mapleLeafApp')\r\n .directive('a', [a]);\r\n\r\n/** Directive that prevents the redirect event if the element has \"#\" **/\r\nfunction a() {\r\n\r\n function link(scope, elem, attrs) {\r\n if (attrs.ngClick || attrs.href === '' || attrs.href === '#') {\r\n elem.on('click', function (e) {\r\n e.preventDefault();\r\n });\r\n }\r\n }\r\n\r\n return {\r\n restrict: 'E',\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('toggleMenu', [\"$document\", toggleMenu]);\r\n\r\n/** Directive for toggle the mobile menu **/\r\nfunction toggleMenu($document) {\r\n\r\n /** Directive link function **/\r\n function link(scope, element, attrs) {\r\n angular.element(element).bind('click', function (e) {\r\n menu = angular.element($document[0].querySelector('.' + scope.menu));\r\n if (angular.element(menu).hasClass('open')) {\r\n // $('html, body').removeClass('no-overflow'); */\r\n angular.element(menu).removeClass('open');\r\n } else {\r\n // $('html, body').addClass('no-overflow'); */ \r\n angular.element(menu).addClass('open');\r\n }\r\n\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n 'menu': '=toggleMenu'\r\n },\r\n link: link\r\n }\r\n}","angular.module('mapleLeafApp')\r\n .directive('img', [\"$timeout\", \"$http\", img])\r\n .directive('bgImg', [\"$interval\", bgImg])\r\n .controller('imgController', [\"$scope\", \"hdImage\", imgController])\r\n .factory('hdImage', [\"$http\", \"$q\", \"$window\", hdImage]);\r\n \r\n/** Directive to verify the resolution of the screen and to change the images **/\r\nfunction img($timeout, $http) {\r\n\r\n var dataUrlRegex = /^data:([a-z]+\\/[a-z]+(;[a-z\\-]+\\=[a-z\\-]+)?)?(;base64)?,(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/, allowedImageTypesRegex = /(png|jp[e]?g)$/, fadeInWhenLoaded = false;\r\n\r\n function link(scope, elem, attrs) {\r\n\r\n /* if(angular.isDefined(scope.replace) && !scope.replace) return angular.noop();\r\n\r\n // $timeout(function () {\r\n // if ((scope.isRetina() || scope.isUHD()) && attrs.src !== undefined && elem[0].tagName === 'IMG' && attrs.src.match(allowedImageTypesRegex) && !attrs.src.match(dataUrlRegex)) {\r\n // attrs.$observe('src', function(newImg, oldVal) {\r\n // var newSrc = scope.verifyImg(newImg);\r\n // if (!scope.msie()) {\r\n // var img = new Image();\r\n // img.onload = function(e) {\r\n // attrs.$set('src', newSrc);\r\n // };\r\n // img.onerror = function() {\r\n // attrs.$set('src', '/images/placeholder.jpg'); \r\n // };\r\n // img.src = newSrc;\r\n // } else {\r\n // var img = new Image();\r\n // img.onload = function() {\r\n // elem.prop('src', newSrc); \r\n // };\r\n // img.onerror = function() {\r\n // elem.prop('src', '/images/placeholder.jpg'); \r\n // };\r\n // img.src = newSrc;\r\n // }\r\n // });\r\n // }\r\n // }); */\r\n }\r\n\r\n return {\r\n scope: {\r\n replace: \"=replace\"\r\n },\r\n restrict: 'E',\r\n controller: 'imgController',\r\n link: link\r\n }\r\n\r\n}\r\n\r\n/** Directive to verify the resolution of the screen and to change background images **/\r\nfunction bgImg($interval) {\r\n\r\n function link(scope, elem, attrs) {\r\n\r\n if(angular.isUndefined(scope.replace) || !scope.replace) return angular.noop();\r\n \r\n var stop;\r\n scope.askSrc = function () {\r\n stop = $interval(function () {\r\n\r\n if (elem[0].style.backgroundImage !== 'url(\"\")') {\r\n elem[0].style.backgroundImage = \"url('\" + scope.verifyImg(elem[0].style.backgroundImage, true) + \"')\";\r\n scope.stopAsking();\r\n }\r\n\r\n }, 500);\r\n };\r\n\r\n if (scope.isRetina() || scope.isUHD()) {\r\n scope.askSrc();\r\n }\r\n\r\n scope.stopAsking = function () {\r\n if (angular.isDefined(stop)) {\r\n $interval.cancel(stop);\r\n stop = undefined;\r\n }\r\n };\r\n\r\n }\r\n\r\n return {\r\n scope: {\r\n replace: \"=replace\"\r\n },\r\n restrict: 'AC',\r\n controller: 'imgController',\r\n link: link\r\n }\r\n\r\n}\r\n\r\nfunction imgController($scope, hdImage) {\r\n\r\n $scope.verifyImg = function (src, isBg) {\r\n if(src.indexOf('@2x') >= 0 || src.indexOf('@3x') >= 0 || src.indexOf('placeholder') >= 0) return src;\r\n\r\n return hdImage.getImgUrl(src, isBg);\r\n }\r\n\r\n $scope.msie = function () {\r\n return hdImage.msie();\r\n }\r\n\r\n $scope.isUHD = function () {\r\n return hdImage.isUHD();\r\n }\r\n\r\n $scope.isRetina = function () {\r\n return hdImage.isRetina(); \r\n }\r\n\r\n}\r\n\r\nfunction hdImage($http, $q, $window) {\r\n\r\n return {\r\n\r\n msie: function () {\r\n var isIE = false || !!document.documentMode;\r\n var isEdge = !isIE && !!window.StyleMedia;\r\n return (isIE || isEdge) || false;\r\n },\r\n\r\n isMobile: function() {\r\n var ask = false;\r\n if (/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent)\r\n || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(navigator.userAgent.substr(0, 4))) ask = true;\r\n return ask; \r\n },\r\n\r\n isUHD: function () {\r\n return (window.devicePixelRatio && window.devicePixelRatio >= 3);\r\n },\r\n\r\n isRetina: function () {\r\n return (window.devicePixelRatio && (window.devicePixelRatio >= 1 && window.devicePixelRatio < 3));\r\n },\r\n\r\n getImgUrl: function(src, isBg) {\r\n var extension = \"\";\r\n isBg = (isBg != undefined || false);\r\n\r\n if(isBg) {\r\n var path = src.split(\"url(\\\"\");\r\n path = path[1];\r\n path = path.split(\"\\\")\");\r\n src = path[0]; \r\n }\r\n \r\n for (var index = src.length; index >= 0; index--) {\r\n var element = src[index - 1];\r\n extension = element + extension;\r\n if (element === \".\") {\r\n break;\r\n }\r\n }\r\n\r\n var url = src.split(extension);\r\n if ((!url[0].indexOf(\"http\") >= 0 || url[0].indexOf(\"https\") >= 0) && !isBg) {\r\n url[0] = window.location.origin + url[0];\r\n }\r\n\r\n var suffix = \"\";\r\n if (this.isRetina()) {\r\n suffix = '@2x';\r\n } else if (this.isUHD()) {\r\n if(this.isMobile()) {\r\n suffix = '@2x';\r\n } else {\r\n suffix = '@2x';\r\n }\r\n }\r\n\r\n return url[0] + suffix + extension;\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('scrollHeader', [\"$window\", \"$location\", \"$rootScope\", \"hdImage\", scrollHeader]);\r\n\r\n/** Directive to change the header background in responsive **/\r\nfunction scrollHeader($window, $location, $rootScope, hdImage) {\r\n\r\n function link(scope, elem, attrs) {\r\n var headerLimit, windowTopOffset, scrollFunction, checkWindow, windowWidth, askOnce = false;\r\n\r\n $('header').addClass('dark');\r\n $('.stripes').addClass('dark');\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n\r\n var url = $location.path().split('/');\r\n url = url[1];\r\n\r\n var actualTheme = \"\";\r\n\r\n $rootScope.resetAskOne = function () {\r\n askOnce = false;\r\n };\r\n\r\n checkWindow = function () {\r\n if ($window.innerWidth <= 767 && $location.path() == '/') {\r\n setTimeout(function () {\r\n windowTopOffset = $window.pageYOffset + $('header').height();\r\n\r\n var home = $('#home').offset();\r\n var about = $('#about').offset();\r\n var collections = $('#collections').offset();\r\n var tracking = $('#tracking').offset();\r\n var locator = $('#locator').offset();\r\n var engagement = $('#engagement').offset();\r\n\r\n if ($window.pageYOffset + $window.innerHeight >= locator.top && !askOnce) {\r\n var coords = {\r\n lat: 57.8230229,\r\n lng: -102.6326396\r\n };\r\n $rootScope.initMap(coords);\r\n askOnce = true;\r\n }\r\n\r\n if ($rootScope.firstVersion) {\r\n if (windowTopOffset >= home.top && windowTopOffset <= tracking.top) {\r\n actualTheme = $('#home')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n }\r\n } else if (windowTopOffset >= tracking.top && windowTopOffset <= locator.top) {\r\n actualTheme = $('#tracking')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-whiteletters-244x69.png')\r\n });\r\n\r\n }\r\n } else if (windowTopOffset >= locator.top) {\r\n actualTheme = $('#locator')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n\r\n }\r\n }\r\n } else {\r\n if (windowTopOffset >= home.top && windowTopOffset <= collections.top) {\r\n actualTheme = $('#home')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n }\r\n } else if (windowTopOffset >= collections.top && windowTopOffset <= engagement.top) {\r\n actualTheme = $('#collections')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-whiteletters-244x69.png')\r\n });\r\n }\r\n } else if (windowTopOffset >= engagement.top && windowTopOffset <= tracking.top) {\r\n actualTheme = $('#engagement')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n\r\n }\r\n } else if (windowTopOffset >= tracking.top && windowTopOffset <= about.top) {\r\n actualTheme = $('#tracking')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-whiteletters-244x69.png')\r\n });\r\n\r\n }\r\n } else if (windowTopOffset >= about.top && windowTopOffset <= locator.top) {\r\n actualTheme = $('#about')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n\r\n }\r\n } else if (windowTopOffset >= locator.top) {\r\n actualTheme = $('#locator')[0].attributes['color'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n\r\n }\r\n }\r\n }\r\n }, 100);\r\n } else if ($window.innerWidth <= 769 && url == 'about') {\r\n\r\n var sections = $('section');\r\n windowTopOffset = $window.pageYOffset + $('header').height();\r\n\r\n\r\n for (var i = 0; i < sections.length; i++) {\r\n\r\n var top = $(sections[i]).offset();\r\n var height = $(sections[i]).height();\r\n\r\n if (windowTopOffset >= top.top && top.top > -height) {\r\n\r\n actualTheme = $(sections[i])[0].attributes['bgrd'].value;\r\n\r\n if (!angular.element(elem).hasClass(actualTheme)) {\r\n $(elem).removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $(elem).addClass(actualTheme);\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark light-transparent dark-transparent');\r\n $('.stripes').addClass(actualTheme);\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n angular.element($window).bind('scroll DOMMouseScroll mousewheel touchmove onmousewheel', function () {\r\n if ($location.path() == '/') {\r\n checkWindow();\r\n }\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\n .directive('mapleLoader', [mapleLoader]);\n\n/** Directive for show or hide the main loader **/\nfunction mapleLoader() {\n\n function link(scope, elem, attrs) {\n \n }\n\n return {\n restrict: 'A',\n scope:{\n showLoader: '&',\n hideLoader: '&'\n },\n link: link\n }\n\n}","angular.module('mapleLeafApp')\n .controller('appController', [\"$scope\", \"$rootScope\", \"$cookies\", \"$localStorage\", \"Languages\", appController]);\n\nfunction appController($scope, $rootScope, $cookies, $localStorage, Languages) {\n\n $scope.$watch(function () {\n return $cookies.get(\"siteLanguage\");\n }, function (newVal, oldVal) {\n getTexts();\n });\n\n var d = new Date();\n $rootScope.year = d.getFullYear();\n\n $rootScope.$on('loading:finish', function () {\n $scope.hideLoader();\n });\n\n $scope.hideLoader = function () {\n (!angular.element(document.querySelectorAll('#loading')).hasClass(\"ng-hide\")) ? angular.element(document.querySelectorAll('#loading')).addClass(\"ng-hide\") : angular.noop();\n };\n\n $scope.showLoader = function () {\n (angular.element(document.querySelectorAll('#loading')).hasClass(\"ng-hide\")) ? angular.element(document.querySelectorAll('#loading')).removeClass(\"ng-hide\") : angular.noop();\n };\n\n function getTexts() {\n Languages.get_texts($cookies.get(\"siteLanguage\"))\n .then(function (response) {\n $localStorage.siteTexts = response.data;\n });\n };\n\n}\n","angular.module('mapleLeafApp')\r\n .factory('Collections', [\"$http\", \"$location\", \"$window\", \"$timeout\", \"coronaURL\", \"$q\", Collections]);\r\n\r\n/** Collections Service **/\r\nfunction Collections($http, $location, $window, $timeout, coronaURL, $q) {\r\n\r\n return {\r\n\r\n getCollections: function (params) {\r\n return $http({\r\n \"url\": coronaURL + \"/GetCollections/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n },\r\n\r\n getItems: function (params) {\r\n return $http({\r\n \"url\": coronaURL + \"/GetItems/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n },\r\n\r\n getFilters: function (params) {\r\n return $http({\r\n \"url\": coronaURL + \"/GetFilters/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n },\r\n\r\n openCollectionSubmenu: function () {\r\n var url = $location.path().split('/');\r\n var currenPath = url[1];\r\n if (currenPath == 'collections' || currenPath == 'search') {\r\n $('.submenu').addClass('active');\r\n } else {\r\n return false;\r\n }\r\n },\r\n\r\n closeCollectionSubmenu: function () {\r\n $('.submenu').removeClass('active');\r\n },\r\n\r\n makeSearch: function (search) {\r\n var item = null;\r\n if (search == 'engagement') {\r\n item = {\r\n frontImage: '/images/Engagement_header.png',\r\n title: 'Engagement Rings',\r\n description: 'Find out more about our engagement collection',\r\n viewAll: 'VIEW ALL ENGAGEMENT RINGS'\r\n }\r\n }\r\n return item;\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .factory('Contact', [\"$http\", \"coronaURL\", Contact]);\r\n\r\n/** Contact Service **/\r\nfunction Contact($http, coronaURL) {\r\n\r\n return {\r\n sendForm: function (params) {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/ContactUs/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n }\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .factory('Dealers', [\"$http\", \"$rootScope\", \"coronaURL\", Dealers]);\r\n\r\n/** Dealer Locator Service **/\r\nfunction Dealers($http, $rootScope, coronaURL) {\r\n\r\n return {\r\n\r\n sendData: function (params) {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/GetDealers/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n },\r\n\r\n getMoreInformation: function() {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/GetMoreInformation/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .factory('DiamondTracking', [\"$http\", \"coronaURL\", DiamondTracking]);\r\n\r\n/** Diamond Tracking Service **/\r\nfunction DiamondTracking($http, coronaURL) {\r\n\r\n return {\r\n\r\n sendNumber: function (params) {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/GetDiamondDetails/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .factory('Items', [\"$http\", \"coronaURL\", \"Collections\", \"$window\", Items]);\r\n\r\n/** Items Service **/\r\nfunction Items($http, coronaURL, Collections, $window) {\r\n\r\n return {\r\n\r\n sendHint: function (params) {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/SendPageReference/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n },\r\n\r\n getItemDetails: function (params) {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/GetItemDetails/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n },\r\n\r\n moreInfo: function (params) {\r\n\r\n return $http({\r\n \"url\": coronaURL + \"/GetMoreInformation/\",\r\n \"method\": \"POST\",\r\n \"headers\": {\r\n \"content-type\": \"application/json\"\r\n },\r\n \"data\": params\r\n });\r\n\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .factory('Mines', [\"$http\", \"$sce\", Mines]);\r\n\r\nfunction Mines($http, $sce) {\r\n\r\n return {\r\n\r\n mines: function () {\r\n\r\n return [\r\n {\r\n title: 'Ekati',\r\n slug: 'ekati',\r\n content: [\r\n $sce.trustAsHtml('The Ekati Diamond Mine is Canada’s first surface and underground mine. Ekati started full production in October 1998. Ekati’s rich deposits were discovered by Canadian geologists Charles Fipke and Stuart Blusson in 1991, and are now mined by Dominion Diamond Corporation. Both Ekati & Diavik mines are located in the Lac de Gras region in the remote Arctic tundra 300 kilometres northeast of Yellowknife and 200 kilometres south of the Arctic Circle. It is accessible by air only, except during a three-month period in winter, when a 400-kilometre ice road allows trucks to supply the site.'),\r\n 'The Ekati Diamond Mine adheres to some of the world’s most stringent environmental standards. In addition to the regulatory requirements, an Environmental Agreement was negotiated with the governments of Canada and Northwest Territories to address environmental concerns that were not covered by existing legislation and regulations. The result is some of the world’s cleanest, most beautiful diamonds, mined in a socially and environmentally responsible manner.',\r\n 'The Ekati mine is renowned for the premium gem quality diamonds it produces. The most valuable gem quality rough diamond from the Ekati diamond mine was discovered in 2010. It is the 78 carat Ekati Spirit which was sold in 2011 for over 6 million dollars.'\r\n ]\r\n },\r\n {\r\n title: 'Renard',\r\n slug: 'renard',\r\n content: [\r\n $sce.trustAsHtml('Renard, the French word for fox, is located approximately 350 km north of Chibougamau in the James Bay region of north-central Québec. Diamond exploration began on what was originally called the Foxtrot property in 1996. Five years later, partners Ashton Mining Canada and Soquem, had discovered and drilled five kimberlites. Construction began on July 10, 2014 and it is now, the mine is the first diamond mine in Québec, and one of only five operating in Canada. The project benefits from a large and growing resource, good mining conditions, strong social acceptance, a modest environmental footprint, and the development of direct-to-mine road infrastructure.'),\r\n 'An important aspect of the Renard Mine, which none of the other operating diamond mines in Canada has is the Route 167 extension, allowing all-season access to Renard by way of the Chibougamau and Mistissini communities and avoids the reliance other mines have on the ice roads.',\r\n 'Now in commercial production, the mine is expected to produce an average of 1.6 million carats per year over an initial 14-year mine life, representing approximately 2% of global supply. First ore was delivered to the plant approximately 10 weeks ahead of schedule on July 15, 2016. Commercial production was declared on January 1, 2017.',\r\n 'The Renard Project was constructed under the terms of the March 2012 Mecheshoo Agreement. The Mecheshoo Agreement provides training, employment and business opportunities for Crees during project construction, operation and closure, as well as setting out social, cultural and environmental principles under which the mine will be managed and respected. The Mecheshoo Agreement also includes a mechanism by which the Cree parties will financially benefit from the success of the project on a long-term basis, consistent with the mining industry’s best practices for engagement with First Nations communities.'\r\n ]\r\n },\r\n {\r\n title: 'Diavik',\r\n slug: 'diavik',\r\n content: [\r\n $sce.trustAsHtml('The Diavik Diamond Mine is Canada’s largest diamond mine in terms of carat production. Diavik was established following the discovery of four diamond-bearing deposits, called kimberlite pipes, in 1994 and 1995 and began production in January 2003. The Diavik mine is located 300km North East of Yellowknife and at its outermost borders is only 30 km from the Ekati diamond mine.'),\r\n 'The Diavik mine is 40% owned by Dominion Diamond Corporation and 60% by RioTinto. In Diavik’s lifespan, which is estimated to take the production to 2023, it is expected to yield and estimated total of 90 million carats of rough diamonds, reaching annually 6-7 million carats of mostly gem-quality diamonds.',\r\n 'Diavik adheres to some of the world’s most rigorous environmental standards, its environmental management system is ISO 14001:2004 certified, and includes conspicuous protection for caribou, other wildlife and fish habitats.',\r\n 'Diavik’s exceptional production makes it one of the most valuable diamond mines in the world.'\r\n ]\r\n },\r\n {\r\n title: 'Gahcho Kué',\r\n slug: 'gahcho',\r\n content: [\r\n $sce.trustAsHtml('Billed as the largest and richest new mine in the world in 2016 Gahcho Kué diamond mine is located on federal land in Canada\\'s Northwest Territories.. The mine is on a 10,353 acre site located at Kennady Lake, approximately 280 kilometres northeast of Yellowknife in the Northwest Territories. The Gahcho Kué Mine is a joint venture between De Beers Canada Inc. (51%) and Mountain Province Diamonds Inc. (49%).'),\r\n 'Gahcho Kué, which means ‘place of the big rabbits or hares’ in the local Chipewyan language, began in 1995 when Mountain Province discovered the first kimberlite pipe, known as 5034. Three other pipes were discovered by De Beers Exploration two years later, with two of them, the Hearne and Tuzo kimberlites, having excellent economic potential. Extensive drilling and analysis followed and environmental permits were sought and granted for 5034, Hearne and Tuzo. Gahcho Kué is an open pit operation, mining three kimberlite pipes in sequence: 5034, Hearne and Tuzo. The mine is under full operation as of the fall of 2016 with about 500 employees and contractors. Unless more pipes are brought online the mine life is estimated to be 12 years. Both mine owners are committed to sustainable development in local communities and have signed six Impact Benefit Agreements (IBA) for the Gahcho Kué Mine. De Beers, as the mine operator, is committed to operating this new mine to high safety standards and with deep respect for the land. The total cost to open the mine is approximately C$1 billion.'\r\n ]\r\n }\r\n ];\r\n\r\n },\r\n\r\n get_mine: function (mine) {\r\n\r\n var mines = this.mines();\r\n for (var index = 0; index < mines.length; index++) {\r\n var tempMine = mines[index];\r\n if (tempMine.slug == mine) {\r\n return tempMine;\r\n }\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('sliderCollections', [\"$window\", \"coronaURL\", sliderCollections])\r\n\r\n/** Directive for the height of the collections slides **/\r\nfunction sliderCollections($window, coronaURL) {\r\n\r\n function link(scope, elem, attrs) {\r\n function resize() {\r\n var winHeight;\r\n /* if ($window.innerWidth < 768) {\r\n // winHeight = ($window.innerHeight - $('header').height()) * 0.7;\r\n // } else if ($window.innerWidth < 1025 && $window.innerWidth >= 768) {\r\n // winHeight = ($window.innerHeight - $('header').height()) * 0.7;\r\n // } else { */\r\n winHeight = ($window.innerHeight - $('header').height()) * 0.8;\r\n /* } */\r\n\r\n elem.css({\r\n \"background-image\": \"url('\" + coronaURL + scope.data + \"')\",\r\n \"height\": winHeight + \"px\"\r\n });\r\n }\r\n\r\n resize();\r\n\r\n angular.element($window).bind('resize', function () {\r\n resize();\r\n })\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n data: '=data'\r\n },\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('slider', [\"$window\", \"$rootScope\", slider]);\r\n\r\n/** Directive for the height of the home slides **/\r\nfunction slider($window, $rootScope) {\r\n\r\n function link(scope, elem, attrs) {\r\n function resize() {\r\n\r\n var height = $('header').height();\r\n var winHeight = ($window.innerHeight - height) * 0.8;\r\n\r\n if($window.innerWidth > 767) {\r\n elem.css({\r\n 'height': winHeight + 'px',\r\n 'min-height': winHeight + 'px' \r\n });\r\n } else {\r\n elem.css({\r\n 'height': winHeight + 'px',\r\n 'min-height': winHeight + 'px'\r\n });\r\n }\r\n\r\n /* var bulletsTop = winHeight;\r\n // bulletsTop = bulletsTop * 0.8;\r\n // bulletsTop = bulletsTop - 40;\r\n\r\n // if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n // if ($window.innerHeight > $window.innerWidth) {\r\n // bulletsTop = bulletsTop + 50;\r\n // }\r\n // }\r\n\r\n // $('#home slick .slick-dots').css({\r\n // 'top': bulletsTop + 'px'\r\n // }); */\r\n\r\n }\r\n\r\n setTimeout(function () {\r\n resize();\r\n }, 100);\r\n\r\n angular.element($window).bind('resize', function () {\r\n resize();\r\n })\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('adjust', [\"$window\", adjust]);\r\n\r\n/** Directive to adjust item to screen size **/\r\nfunction adjust($window) {\r\n\r\n function link(scope, elem, attrs) {\r\n function adjust() {\r\n var winHeight = $window.innerHeight;\r\n var winWidth = $window.innerWidth;\r\n \r\n $('.imgContact').css({\r\n 'min-height': winHeight + 'px'\r\n });\r\n \r\n if ($window.innerWidth > $window.innerHeight && $window.innerHeight >= 500) {\r\n elem.css({\r\n 'height': winHeight + 'px'\r\n });\r\n }\r\n \r\n if ($window.innerWidth > $window.innerHeight && $window.innerHeight < 500) {\r\n elem.css({\r\n 'min-height': winHeight + 'px',\r\n 'height': \"auto\"\r\n });\r\n }\r\n \r\n if ($window.innerWidth < $window.innerHeight) {\r\n elem.css({\r\n 'height': 'auto'\r\n });\r\n }\r\n }\r\n\r\n adjust();\r\n\r\n angular.element($window).bind('resize', function () {\r\n adjust();\r\n })\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n data: '@'\r\n },\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('checkboxc', [\"$window\", \"$location\", checkbox]);\r\n\r\nfunction checkbox($window, $location) {\r\n\r\n function link(scope, elem, attrs) {\r\n var url = $location.path().split('/');\r\n url = url[1];\r\n }\r\n\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n data: '@'\r\n },\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('dealersMap', [\"$window\", \"Dealers\", \"$rootScope\", \"$timeout\", \"$mdDialog\", \"$cookies\", dealersMap]);\r\n\r\n/** Directive For Init Dealers Locator Map **/\r\nfunction dealersMap($window, Dealers, $rootScope, $timeout, $mdDialog, $cookies) {\r\n\r\n /** Directive link function **/\r\n function link(scope, element, attrs) {\r\n\r\n var map, dealersCenterCoords, dealersZoom, lastPosition, lastZoom = 4,\r\n userPosition, infoWindow, markers = [],\r\n markersposition = [],\r\n lastCountry = 'Canada';\r\n\r\n $rootScope.firstAlert = 0;\r\n\r\n /* Opera 8.0+ */\r\n var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\r\n /* Firefox 1.0+ */\r\n var isFirefox = typeof InstallTrigger !== 'undefined';\r\n\r\n /* Safari 3.0+ \"[object HTMLElementConstructor]\" */\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n\r\n /* Internet Explorer 6-11 */\r\n var isIE = /*@cc_on!@*/ false || !!document.documentMode;\r\n\r\n /* Edge 20+ */\r\n var isEdge = !isIE && !!window.StyleMedia;\r\n\r\n /* Chrome 1+ */\r\n var isChrome = !!window.chrome && !!window.chrome.webstore;\r\n\r\n /** map config **/\r\n var mapOptions = {\r\n center: new google.maps.LatLng(56.130366, -106.34677099999999),\r\n zoom: lastZoom,\r\n mapTypeId: google.maps.MapTypeId.ROADMAP,\r\n scrollwheel: false,\r\n gestureHandling: 'cooperative',\r\n zoomControlOptions: {\r\n position: google.maps.ControlPosition.RIGHT_TOP\r\n },\r\n streetViewControlOptions: {\r\n position: google.maps.ControlPosition.RIGHT_TOP\r\n }\r\n };\r\n\r\n $rootScope.searchONclick = function () {\r\n /* if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n // map.addListener('dblclick', function(e) {\r\n // checkposition(e.latLng, map);\r\n // }); \r\n // } else { */\r\n map.addListener('click', function (e) {\r\n checkposition(e.latLng, map);\r\n });\r\n /* } */\r\n map.addListener('zoom_changed', function (e) {\r\n lastZoom = map.getZoom();\r\n });\r\n\r\n };\r\n\r\n /** init the map **/\r\n $rootScope.initMap = function (coords) {\r\n /* if (map === void 0) { */\r\n lastPosition = new google.maps.LatLng(coords.lat, coords.lng);\r\n mapOptions.center = new google.maps.LatLng(coords.lat, coords.lng);\r\n map = new google.maps.Map(element[0], mapOptions);\r\n /* } */\r\n $rootScope.searchONclick();\r\n $rootScope.userLocation(false);\r\n\r\n adjust();\r\n };\r\n\r\n $rootScope.rebuildToUserCoords = function () {\r\n mapOptions.center = lastPosition;\r\n mapOptions.zoom = lastZoom;\r\n map = new google.maps.Map(element[0], mapOptions);\r\n $rootScope.searchONclick();\r\n adjust();\r\n };\r\n\r\n /** Function to determine the map zoom **/\r\n function getBoundsZoomLevel(bounds, mapDim) {\r\n var WORLD_DIM = {\r\n height: 256,\r\n width: 256\r\n };\r\n var ZOOM_MAX = 21;\r\n\r\n function latRad(lat) {\r\n var sin = Math.sin(lat * Math.PI / 180);\r\n var radX2 = Math.log((1 + sin) / (1 - sin)) / 2;\r\n return Math.max(Math.min(radX2, Math.PI), -Math.PI) / 2;\r\n }\r\n\r\n function zoom(mapPx, worldPx, fraction) {\r\n return Math.floor(Math.log(mapPx / worldPx / fraction) / Math.LN2);\r\n }\r\n\r\n var ne = bounds.getNorthEast();\r\n var sw = bounds.getSouthWest();\r\n\r\n var latFraction = (latRad(ne.lat()) - latRad(sw.lat())) / Math.PI;\r\n\r\n var lngDiff = ne.lng() - sw.lng();\r\n var lngFraction = ((lngDiff < 0) ? (lngDiff + 360) : lngDiff) / 360;\r\n\r\n var latZoom = zoom(mapDim.height, WORLD_DIM.height, latFraction);\r\n var lngZoom = zoom(mapDim.width, WORLD_DIM.width, lngFraction);\r\n\r\n return Math.min(latZoom, lngZoom, ZOOM_MAX);\r\n };\r\n\r\n function checkposition(latLng, map) {\r\n\r\n lastPosition = latLng;\r\n\r\n var marker = new google.maps.Marker({\r\n position: latLng,\r\n map: map,\r\n name: \"markerposition\"\r\n });\r\n\r\n if (markersposition.length == 0) {\r\n markersposition.push(marker);\r\n } else {\r\n for (var i = 0; i < markersposition.length; i++) {\r\n if (markersposition[i]['name'] == \"markerposition\") {\r\n markersposition[i].setMap(null);\r\n markersposition.splice(i, 1);\r\n }\r\n }\r\n markersposition.push(marker);\r\n }\r\n\r\n var confirm = $mdDialog.confirm()\r\n .title('Do you want to find dealers near the chosen location?')\r\n .ariaLabel('Browser Location')\r\n .ok('Find Dealer')\r\n .cancel('Cancel');\r\n\r\n $mdDialog.show(confirm)\r\n .then(function () {\r\n accept();\r\n }, function () {\r\n cancel();\r\n });\r\n\r\n function accept() {\r\n\r\n $rootScope.dealerLoader = true;\r\n\r\n $rootScope.userSelection = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"latitude\": latLng.lat(),\r\n \"longitude\": latLng.lng()\r\n };\r\n\r\n var coords = latLng.lat() + ',' + latLng.lng();\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({\r\n 'address': coords\r\n }, function (results, status) {\r\n\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n\r\n $rootScope.resultsZipCode = results[0].formatted_address;\r\n\r\n } else {\r\n\r\n console.log(\"Geocode was not successful for the following reason: \" + status);\r\n }\r\n });\r\n\r\n $rootScope.dealerLoader = true;\r\n\r\n $rootScope.getClosestDealersFromZipCode($rootScope.userSelection);\r\n }\r\n\r\n function cancel() {\r\n return false;\r\n }\r\n\r\n };\r\n\r\n /** put markers **/\r\n $rootScope.setMarker = function (dealers) {\r\n\r\n var newMarkers, mapDim = {},\r\n mapHeight, mapWidth;\r\n\r\n mapHeight = document.getElementById('gmaps').clientHeight;\r\n mapWidth = document.getElementById('gmaps').clientWidth;\r\n\r\n mapDim = {\r\n height: mapHeight,\r\n width: mapWidth\r\n }\r\n\r\n /** remove old markers **/\r\n for (var i = 0; i < markers.length; i++) {\r\n markers[i].setMap(null);\r\n markers.splice(i, 1);\r\n }\r\n\r\n markers = [];\r\n\r\n newMarkers = dealers;\r\n\r\n /** add marker to array **/\r\n for (i = 0; i < newMarkers.length; i++) {\r\n markers.push(newMarkers[i]);\r\n }\r\n\r\n /* Remove style from old selected dealer */\r\n function remove() {\r\n for (a = 0; a < markers.length; a++) {\r\n angular.element('#' + markers[a].dealer).removeClass('active');\r\n }\r\n };\r\n\r\n for (i = 0; i < markers.length; i++) {\r\n var coords = {\r\n lat: parseFloat(markers[i].latitude),\r\n lng: parseFloat(markers[i].longitude)\r\n };\r\n\r\n markers[i] = new google.maps.Marker({\r\n position: new google.maps.LatLng(coords),\r\n map: map,\r\n icon: window.location.origin + '/images/diamond_map.png',\r\n id: i,\r\n dealer: markers[i].ID\r\n });\r\n\r\n google.maps.event.addListener(markers[i], 'click', (function (marker, i) {\r\n return function () {\r\n remove();\r\n map.setCenter(marker.position);\r\n map.setZoom(15);\r\n angular.element('#' + marker.dealer).addClass('active');\r\n }\r\n })(markers[i], i));\r\n\r\n }\r\n\r\n var bounds = null;\r\n\r\n if (markers.length > 0) {\r\n var boundsTemp = new google.maps.LatLngBounds();\r\n\r\n $.each(markers, function () {\r\n boundsTemp.extend(this.getPosition());\r\n });\r\n bounds = boundsTemp;\r\n }\r\n\r\n var fixBounds = {\r\n lat: 0,\r\n lng: 0\r\n };\r\n\r\n fixBounds.lat = bounds.getCenter().lat();\r\n fixBounds.lng = bounds.getCenter().lng();\r\n\r\n dealersCenterCoords = (bounds) ? fixBounds : new google.maps.LatLng(0, 0);\r\n dealersZoom = (bounds) ? getBoundsZoomLevel(bounds, mapDim) : 0;\r\n\r\n mapOptions.center = dealersCenterCoords;\r\n mapOptions.zoom = dealersZoom;\r\n map = new google.maps.Map(element[0], mapOptions);\r\n\r\n adjust();\r\n\r\n map.addListener('click', function (e) {\r\n checkposition(e.latLng, map);\r\n });\r\n\r\n $.each(markers, function () {\r\n this.setMap(map);\r\n });\r\n\r\n };\r\n\r\n /** Function to verify the current location of the user **/\r\n $rootScope.userLocation = function (locationBtn) {\r\n if (((isChrome || isOpera || isSafari) && location.protocol === 'https:') || (isFirefox || isIE || isEdge)) {\r\n\r\n $rootScope.ifBrowserSupportLocation = true;\r\n /* Try HTML5 geolocation. */\r\n\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(\r\n function (position) {\r\n var pos = {\r\n lat: parseFloat(position.coords.latitude),\r\n lng: parseFloat(position.coords.longitude)\r\n };\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n\r\n geocoder.geocode({\r\n 'location': {\r\n lat: parseFloat(position.coords.latitude),\r\n lng: parseFloat(position.coords.longitude)\r\n }\r\n }, function (results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n geocodeSuccess(results);\r\n } else {\r\n geocodeError(status);\r\n }\r\n });\r\n\r\n $rootScope.centerMap(pos);\r\n\r\n userPosition = pos;\r\n lastPosition = new google.maps.LatLng(pos.latitude, pos.longitude);\r\n\r\n if (locationBtn) {\r\n\r\n $rootScope.dealerLoader = true;\r\n\r\n $rootScope.userSelection = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"latitude\": position.coords.latitude,\r\n \"longitude\": position.coords.longitude\r\n };\r\n\r\n $rootScope.getClosestDealersFromZipCode($rootScope.userSelection, $rootScope.resultsZipCode);\r\n\r\n }\r\n\r\n },\r\n function (params) {\r\n handleLocationError(params);\r\n }\r\n );\r\n\r\n } else {\r\n /* Browser doesn't support Geolocation */\r\n handleLocationError(params);\r\n }\r\n\r\n }\r\n\r\n function handleLocationError(error) {\r\n console.log(error);\r\n if (error.code == 1 && $rootScope.firstAlert == 1) {\r\n $mdDialog.show(\r\n $mdDialog.alert()\r\n .parent(angular.element(document.querySelector('#popupContainer')))\r\n .clickOutsideToClose(true)\r\n .title(error.message)\r\n .ariaLabel(error.message)\r\n .ok('Close window')\r\n );\r\n }\r\n $rootScope.firstAlert = 1;\r\n }\r\n\r\n function geocodeSuccess(results) {\r\n $rootScope.resultsZipCode = results[0].formatted_address;\r\n }\r\n\r\n function geocodeError(status) {\r\n $rootScope.dealerLoader = false;\r\n $scope.dealerStatusText = \"Geocode was not successful for the following reason: \" + status;\r\n return false;\r\n }\r\n };\r\n\r\n $rootScope.centerByLocation = function () {\r\n\r\n if (userPosition == undefined) {\r\n $rootScope.userLocation(true);\r\n return false;\r\n }\r\n\r\n $rootScope.dealerLoader = true;\r\n\r\n var userSelection = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"latitude\": userPosition.lat,\r\n \"longitude\": userPosition.lng\r\n };\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n\r\n geocoder.geocode({\r\n 'location': {\r\n lat: parseFloat(userPosition.lat),\r\n lng: parseFloat(userPosition.lng)\r\n }\r\n }, function (results, status) {\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n geocodeSuccess(results);\r\n } else {\r\n geocodeError(status);\r\n }\r\n });\r\n\r\n function geocodeSuccess(results) {\r\n $rootScope.resultsZipCode = results[0].formatted_address;\r\n }\r\n\r\n function geocodeError(status) {\r\n $rootScope.dealerLoader = false;\r\n $scope.dealerStatusText = \"Geocode was not successful for the following reason: \" + status;\r\n return false;\r\n }\r\n\r\n $rootScope.getClosestDealersFromZipCode(userSelection, $rootScope.resultsZipCode);\r\n\r\n };\r\n\r\n $rootScope.checkBrowserLocatorEnable = function () {\r\n if (navigator.geolocation) {\r\n\r\n navigator.geolocation.getCurrentPosition(function (params) {\r\n console.log(params);\r\n }, function (params) {\r\n console.log(params);\r\n });\r\n\r\n } else {\r\n // Browser doesn't support Geolocation */\r\n handleLocationError(false, map.getCenter());\r\n }\r\n\r\n function handleLocationError(browserHasGeolocation, pos) {\r\n $rootScope.ifBrowserSupportLocation = false;\r\n }\r\n };\r\n\r\n /** Function to center the map **/\r\n $rootScope.centerMap = function (coords) {\r\n\r\n lastPosition = new google.maps.LatLng(coords.lat, coords.lng);\r\n mapOptions.center = new google.maps.LatLng(coords.lat, coords.lng);\r\n mapOptions.zoom = 16;\r\n map = new google.maps.Map(element[0], mapOptions);\r\n\r\n var marker = new google.maps.Marker({\r\n position: new google.maps.LatLng(coords.lat, coords.lng),\r\n });\r\n\r\n marker.setMap(map);\r\n\r\n $rootScope.searchONclick();\r\n\r\n };\r\n\r\n $rootScope.centerByCountry = function (country) {\r\n\r\n lastCountry = country;\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n\r\n geocoder.geocode({\r\n 'address': country\r\n }, function (results, status) {\r\n\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n geocodeSuccess(results);\r\n } else {\r\n geocodeError(status);\r\n }\r\n\r\n });\r\n\r\n function geocodeSuccess(results) {\r\n if (country == 'usa') {\r\n lastZoom = 5;\r\n lastPosition = new google.maps.LatLng(39.9871241, -100.418167);\r\n if ($window.innerWidth <= 1024) {\r\n lastZoom = 4;\r\n lastPosition = new google.maps.LatLng(38.4972538, -100.373718);\r\n }\r\n if ($window.innerWidth <= 767) {\r\n lastZoom = 3;\r\n lastPosition = new google.maps.LatLng(39.7660699, -99.2497037);\r\n }\r\n if ($window.innerWidth <= 375) {\r\n lastZoom = 3;\r\n lastPosition = new google.maps.LatLng(39.2401735, -101.8395946);\r\n }\r\n map.setZoom(lastZoom);\r\n }\r\n if (country == 'canada') {\r\n lastZoom = 4;\r\n lastPosition = new google.maps.LatLng(57.8230229, -102.6326396);\r\n if ($window.innerWidth <= 1024) {\r\n lastZoom = 3;\r\n lastPosition = new google.maps.LatLng(56.176862, -101.5623277);\r\n }\r\n if ($window.innerWidth <= 992) {\r\n lastZoom = 3;\r\n lastPosition = new google.maps.LatLng(53.8079058, -99.4529527);\r\n }\r\n if ($window.innerWidth <= 767) {\r\n lastZoom = 3;\r\n lastPosition = new google.maps.LatLng(54.4771763, -99.5408433);\r\n }\r\n if ($window.innerWidth <= 767) {\r\n lastZoom = 3;\r\n lastPosition = new google.maps.LatLng(54.3236887, -99.5408433);\r\n }\r\n map.setZoom(lastZoom);\r\n }\r\n if (country == 'uk') {\r\n lastPosition = results[0].geometry.location;\r\n map.fitBounds(results[0].geometry.bounds);\r\n lastZoom = map.getZoom() + 1;\r\n map.setZoom(lastZoom);\r\n }\r\n if (country == 'ireland') {\r\n lastPosition = results[0].geometry.location;\r\n map.fitBounds(results[0].geometry.bounds);\r\n lastZoom = map.getZoom();\r\n }\r\n if (country == 'australia') {\r\n lastPosition = results[0].geometry.location;\r\n map.fitBounds(results[0].geometry.bounds);\r\n lastZoom = map.getZoom() + 1;\r\n map.setZoom(lastZoom);\r\n }\r\n map.setCenter(lastPosition);\r\n }\r\n\r\n function geocodeError(status) {\r\n $rootScope.dealerLoader = false;\r\n $scope.dealerStatusText = \"Geocode was not successful for the following reason: \" + status;\r\n return false;\r\n }\r\n\r\n };\r\n\r\n $rootScope.zoomToDealer = function (dealerID) {\r\n for (var index = 0; index < markers.length; index++) {\r\n if (dealerID == markers[index].dealer) {\r\n map.setCenter(markers[index].position);\r\n map.setZoom(15);\r\n }\r\n }\r\n };\r\n\r\n $rootScope.backToListOfDealers = function () {\r\n map.setCenter(dealersCenterCoords);\r\n map.setZoom(dealersZoom);\r\n };\r\n\r\n function adjust() {\r\n\r\n setTimeout(function () {\r\n\r\n var winHeight = $window.innerHeight - $('header')[0].clientHeight - 2;\r\n\r\n var winWidth = $window.innerWidth;\r\n\r\n if (winWidth >= 960) {\r\n $('#mapControls').css({\r\n 'height': winHeight + 'px',\r\n \"float\": \"left\"\r\n // \"margin-top\": $('header')[0].clientHeight + 'px' */\r\n });\r\n $('.contOptionsMap').css({\r\n 'height': winHeight + 'px'\r\n });\r\n element.css({\r\n 'height': (winHeight + 2) + 'px'\r\n // \"margin-top\": $('header')[0].clientHeight + 'px' */\r\n });\r\n } else if (winWidth >= 768 && winWidth < 960) {\r\n $('#mapControls').css({\r\n 'height': (winHeight / 2) + 'px',\r\n \"margin-top\": '0px'\r\n });\r\n $('.contOptionsMap').css({\r\n 'height': winHeight + 'px'\r\n });\r\n if ($window.innerHeight > winWidth) {\r\n element.css({\r\n 'height': (winHeight / 2) + 'px'\r\n // \"margin-top\": $('header')[0].clientHeight + 'px' */\r\n });\r\n } else {\r\n element.css({\r\n 'height': '250px'\r\n // \"margin-top\": $('header')[0].clientHeight + 'px' */\r\n });\r\n }\r\n } else {\r\n $('#mapControls').css({\r\n \"margin-top\": '0px',\r\n 'height': 'auto'\r\n });\r\n $('.contOptionsMap').css({\r\n 'height': 'auto'\r\n });\r\n if ($window.innerHeight > winWidth) {\r\n element.css({\r\n 'height': ($window.innerHeight / 2) + 'px'\r\n // \"margin-top\": $('header')[0].clientHeight + 'px' */\r\n });\r\n } else {\r\n element.css({\r\n 'height': '250px'\r\n // \"margin-top\": $('header')[0].clientHeight + 'px' */\r\n });\r\n }\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n angular.element($window).bind('resize', function () {\r\n adjust();\r\n })\r\n\r\n if ((isChrome || isOpera || isSafari) && location.protocol === 'https:') {\r\n $rootScope.ifBrowserSupportLocation = true;\r\n } else if (isFirefox || isIE || isEdge) {\r\n $rootScope.ifBrowserSupportLocation = true;\r\n }\r\n\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n template: '
',\r\n replace: true,\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('engagementSize', [\"$window\", engagementSize]);\r\n\r\n/** Directive for set Height of Engagement Section **/\r\nfunction engagementSize($window) {\r\n\r\n function link(scope, element, attrs) {\r\n function resize() {\r\n if($window.innerWidth >= 768) {\r\n var size = $window.innerHeight - $('header').height();\r\n element.css({\r\n height: size + 'px'\r\n });\r\n }\r\n }\r\n\r\n resize();\r\n\r\n angular.element($window).bind('resize', function () {\r\n resize();\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('initFullpage', [\"$window\", \"$location\", \"$rootScope\", \"$routeParams\", \"$cookies\", \"$timeout\", \"hdImage\", initFullpage]);\r\n\r\n/** Directive For Init Full page **/\r\nfunction initFullpage($window, $location, $rootScope, $routeParams, $cookies, $timeout, hdImage) {\r\n\r\n function link(scope, element, attrs) {\r\n\r\n var actualIndex = 1,\r\n actualTheme = '',\r\n destroyed = true,\r\n askDealerSection = false;\r\n\r\n $cookies.put(\"fullPageLoaded\", false);\r\n\r\n scope.$on('$routeChangeStart', function (e, next, current) {\r\n $('.arrow.down').off('resize', function() {\r\n angular.noop();\r\n });\r\n $($window).off('resize', function () {\r\n angular.noop();\r\n });\r\n });\r\n\r\n /** Function to create the \"Init full Page\" of home **/\r\n $rootScope.loadHomeDirective = function () {\r\n if ($window.innerWidth > 767 && $cookies.get(\"fullPageLoaded\") == \"false\" && angular.isDefined($cookies.get(\"fullPageLoaded\"))) {\r\n\r\n $(element).fullpage({\r\n scrollOverflow: false,\r\n navigation: false,\r\n fitToSection: true,\r\n responsiveWidth: 767,\r\n afterLoad: function (anchorLink, index) {\r\n $cookies.put(\"fullPageLoaded\", true);\r\n },\r\n onLeave: function (index, nextIndex, direction) {\r\n actualIndex = nextIndex;\r\n changeTheme(nextIndex);\r\n ifDealerSection(nextIndex);\r\n ifLeaveDealerSection(index);\r\n checkMenu(nextIndex);\r\n },\r\n afterResponsive: function (isResponsive) {\r\n $cookies.put(\"fullPageLoaded\", false); \r\n destroyed = true;\r\n $.fn.fullpage.destroy('all');\r\n $.fn.fullpage.setAutoScrolling(false);\r\n $.fn.fullpage.setFitToSection(false);\r\n }\r\n });\r\n\r\n destroyed = false;\r\n insertNavigation();\r\n }\r\n\r\n changeTheme(1);\r\n\r\n if($window.innerWidth <= 767 && !$('html').hasClass('fp-enabled')) {\r\n $timeout(function () {\r\n $rootScope.$on('loading:finish', function (){ \r\n if($cookies.get(\"scrollID\") != undefined && $cookies.get(\"scrollID\") != \"\") {\r\n $rootScope.scrollTo($cookies.get(\"scrollID\"));\r\n }\r\n });\r\n }); \r\n } \r\n };\r\n\r\n /** Function to create the \"Init full Page\" of about **/\r\n $rootScope.loadAboutDirective = function () {\r\n if ($window.innerWidth > 767 && $cookies.get(\"fullPageLoaded\") == \"false\" && angular.isDefined($cookies.get(\"fullPageLoaded\"))) {\r\n $timeout(function () {\r\n $(element).fullpage({\r\n scrollOverflow: true,\r\n navigation: false,\r\n fitToSection: false,\r\n responsiveWidth: 767,\r\n afterLoad: function (anchorLink, index) {\r\n $cookies.put(\"fullPageLoaded\", true);\r\n },\r\n onLeave: function (index, nextIndex, direction) {\r\n actualIndex = nextIndex;\r\n changeTheme(nextIndex);\r\n },\r\n afterResponsive: function (isResponsive) {\r\n $cookies.put(\"fullPageLoaded\", false);\r\n destroyed = true;\r\n $.fn.fullpage.destroy('all');\r\n $.fn.fullpage.setAutoScrolling(false);\r\n $.fn.fullpage.setFitToSection(false);\r\n }\r\n });\r\n });\r\n\r\n destroyed = false;\r\n insertNavigation();\r\n }\r\n \r\n changeTheme(1);\r\n\r\n $timeout(function () {\r\n $rootScope.$on('loading:finish', function (){ \r\n if($window.innerWidth <= 767 && $cookies.get(\"scrollID\") != undefined && $cookies.get(\"scrollID\") != \"\") {\r\n $rootScope.scrollTo($cookies.get(\"scrollID\"));\r\n }\r\n });\r\n }); \r\n };\r\n\r\n /** Function to destroy the \"Init Full Page\" **/\r\n $rootScope.destroyDirective = function () {\r\n if ($('html').hasClass('fp-enabled')) {\r\n $cookies.put(\"fullPageLoaded\", false); \r\n $.fn.fullpage.destroy('all');\r\n $.fn.fullpage.setAutoScrolling(false);\r\n $.fn.fullpage.setFitToSection(false);\r\n }\r\n };\r\n\r\n /** Function to rebuild the \"Init Full Page\" **/\r\n $rootScope.rebuildDirective = function () {\r\n $.fn.fullpage.reBuild();\r\n };\r\n\r\n /** Function to change section **/\r\n $rootScope.goToSection = function (url) {\r\n if (url != undefined && url != \"\") {\r\n $.each($(element)[0].children, function (i, el) {\r\n\r\n var elementId = $(el)[0].attributes['id'].value;\r\n\r\n if (elementId == url) {\r\n var elId = i + 1;\r\n checkMenu(elId);\r\n $.fn.fullpage.setScrollingSpeed(0);\r\n $.fn.fullpage.moveTo(elId);\r\n $.fn.fullpage.setScrollingSpeed(700); \r\n }\r\n\r\n if ($window.innerWidth < 960) {\r\n angular.element('.phoneMenu').removeClass('open');\r\n }\r\n });\r\n /* $cookies.put(\"scrollID\", \"\");\r\n // scrolling = false; */\r\n }\r\n };\r\n\r\n /* $rootScope.scrollTo = function(url) {\r\n // $timeout(function () {\r\n // var offset = $('#' + url)[0].offsetTop;\r\n \r\n // $('html, body').animate({\r\n // scrollTop: offset\r\n // }, 0, function () {\r\n // if ($('html, body').hasClass('no-overflow')) {\r\n // $('html, body').removeClass('no-overflow');\r\n // }\r\n // $cookies.put(\"scrollID\", \"\");\r\n // });\r\n // });\r\n // }; */\r\n\r\n /** Function to turn menu options to red **/\r\n function checkMenu(index) {\r\n var section = '',\r\n url = '';\r\n\r\n $.each($(element)[0].children, function (i, el) {\r\n if (i + 1 == index) {\r\n section = $(el)[0].attributes.id.value;\r\n }\r\n });\r\n\r\n if($window.innerWidth > 959) {\r\n $.each($('header nav > div'), function (i, el) {\r\n url = $(el).find('a')[0].attributes.dhref.value;\r\n\r\n var regex = new RegExp(section, 'g');\r\n ($(el).find('a').hasClass('active')) ? $(el).find('a').removeClass('active') : angular.noop();\r\n \r\n if (url.match(regex) != null && url.match(regex).length > 0) {\r\n $(el).find('a').addClass('active');\r\n }\r\n });\r\n } else {\r\n $.each($('.phoneMenu a'), function (i, el) {\r\n if(angular.isDefined($(el)[0].attributes.dhref)) {\r\n\r\n url = $(el)[0].attributes.dhref.value;\r\n \r\n var regex = new RegExp(section, 'g');\r\n \r\n ($(el).hasClass('active')) ? $(el).removeClass('active') : angular.noop();\r\n \r\n if (url.match(regex) != null && url.match(regex).length > 0) {\r\n $(el).addClass('active');\r\n }\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n /** Function to determine if you are in the \"Dealer Locator\" section **/\r\n function ifDealerSection(index) {\r\n\r\n if (askDealerSection) {\r\n return false\r\n }\r\n\r\n var scrolledEl = $(element)[0].children[index - 1];\r\n var locatorIndex = 0;\r\n var coords = {\r\n lat: 57.8230229,\r\n lng: -102.6326396\r\n };\r\n\r\n $.each($(element)[0].children, function (i, e) {\r\n if ($(e).attr('id') == \"locator\") {\r\n locatorIndex = i + 1;\r\n }\r\n });\r\n\r\n if (index > locatorIndex) {\r\n $rootScope.initMap(coords);\r\n\r\n askDealerSection = true;\r\n }\r\n\r\n\r\n if ($(scrolledEl)[0].attributes.id.value == 'locator') {\r\n $rootScope.initMap(coords);\r\n\r\n askDealerSection = true;\r\n }\r\n\r\n };\r\n\r\n function ifLeaveDealerSection(index) {\r\n var scrolledEl = $(element)[0].children[index - 1];\r\n if($(scrolledEl)[0].attributes.id.value == 'locator') {\r\n $rootScope.cleanError();\r\n }\r\n };\r\n\r\n /** Function to enable \"Init Full Page\" when resizing screen **/\r\n function resize() {\r\n var segment = $location.path().split('/');\r\n if ($window.innerWidth > 768) {\r\n if (destroyed) {\r\n checkMenu(1);\r\n if (segment[1] == '') {\r\n $rootScope.loadHomeDirective();\r\n } else if (segment[1] == 'about') {\r\n $rootScope.loadAboutDirective();\r\n }\r\n }\r\n } else {\r\n $('.arrow.down').remove();\r\n }\r\n };\r\n\r\n /** Directive to change the header background in desktop **/\r\n var changeTheme = function (index) {\r\n $.each($(element)[0].children, function (i, el) {\r\n if (i == index - 1) {\r\n\r\n $('#fp-nav').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.arrow').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('header').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.languages').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.arrowBack').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.menuBtn .stripes').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n actualTheme = \"\";\r\n actualTheme = $(el)[0].attributes['color'].value;\r\n $('#fp-nav').addClass(actualTheme);\r\n $('.arrow').addClass(actualTheme);\r\n $('header').addClass(actualTheme);\r\n $('.languages').addClass(actualTheme);\r\n $('.arrowBack').addClass(actualTheme);\r\n $('.menuBtn .stripes').addClass(actualTheme);\r\n\r\n if (actualTheme == 'light' || actualTheme == 'light-rgba' || actualTheme == 'light-transparent') {\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-whiteletters-244x69.png')\r\n });\r\n } else {\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-254x71.png')\r\n });\r\n }\r\n\r\n }\r\n });\r\n };\r\n\r\n /** Function to verify if it is desktop **/\r\n var isDesktop = function () {\r\n if ($window.innerWidth > 1024) {\r\n return true\r\n }\r\n return false\r\n };\r\n\r\n var insertNavigation = function () {\r\n\r\n var arrowDown = '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
';\r\n\r\n $('body').append(arrowDown);\r\n $('.arrow.down').bind('click', function (ev) {\r\n downSection(ev);\r\n });\r\n };\r\n\r\n /** Function to go to the lower section **/\r\n var downSection = function () {\r\n $.fn.fullpage.moveSectionDown();\r\n };\r\n\r\n /** Functions to verify mouse actions **/\r\n var checkMousePosition = function (ev) {\r\n if ($location.path() == '/' || $location.path() == '/about/precious-metals' || $location.path() == '/about/canadian-diamonds' || $location.path() == '/about/5c' || $location.path() == '/about/certification') {\r\n /* if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) && isDesktop()) { */\r\n if (actualIndex < $(element)[0].children.length) {\r\n if (ev >= $($window).height() - 110) {\r\n $('.arrow.down').addClass(\"show\");\r\n } else {\r\n $('.arrow').removeClass(\"show\");\r\n }\r\n } else {\r\n $('.arrow').removeClass(\"show\");\r\n }\r\n /* } */\r\n }\r\n };\r\n\r\n $($window).bind('resize', function () {\r\n resize();\r\n });\r\n\r\n $($window).on('mousemove', function (ev) {\r\n checkMousePosition(ev.clientY);\r\n });\r\n\r\n $(document).on('mouseenter', '.cont ', function (ev) {\r\n if ($('#mapControls > div').height() > $('#mapControls').height()) {\r\n $.fn.fullpage.setMouseWheelScrolling(false);\r\n $.fn.fullpage.setAllowScrolling(false);\r\n }\r\n });\r\n\r\n $(document).on('mouseleave', '.cont ', function (ev) {\r\n if ($('#mapControls > div').height() > $('#mapControls').height()) {\r\n $.fn.fullpage.setMouseWheelScrolling(true);\r\n $.fn.fullpage.setAllowScrolling(true);\r\n }\r\n });\r\n\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('ngEnter', [ngEnter]);\r\n\r\n/** Directive to activate a function with enter key **/\r\nfunction ngEnter() {\r\n\r\n function link(scope, element, attrs) {\r\n element.bind(\"keydown keypress\", function (event) {\r\n if (event.which === 13) {\r\n scope.$apply(function () {\r\n scope.$eval(attrs.ngEnter);\r\n });\r\n\r\n event.preventDefault();\r\n }\r\n });\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n link: link\r\n }\r\n\r\n}","angular.module('mapleLeafApp')\r\n .directive('resizeResponsive', [\"$window\", resizeResponsive]);\r\n\r\n/** Directive for height of sections in responsive **/\r\nfunction resizeResponsive($window) {\r\n\r\n function link(scope, elem, attrs) {\r\n function resize() {\r\n var winHeight = $window.innerHeight;\r\n if ($window.innerHeight <= 500) {\r\n elem.css({\r\n 'min-height': 'auto',\r\n 'height': 'auto'\r\n });\r\n } else {\r\n elem.css({\r\n 'min-height': 100 + '%',\r\n 'height': 100 + '%'\r\n });\r\n }\r\n }\r\n\r\n resize();\r\n\r\n angular.element($window).bind('resize', function () {\r\n resize();\r\n })\r\n }\r\n\r\n return {\r\n restrict: 'A',\r\n scope: {\r\n data: '@'\r\n },\r\n link: link\r\n }\r\n\r\n}","\r\n/*\r\n * * angular-socialshare v0.0.2\r\n * * ♡ CopyHeart 2014 by Dayanand Prabhu https://djds4rce.github.io\r\n * * Copying is an act of love. Please copy.\r\n * */\r\n\r\nangular.module('djds4rce.angular-socialshare', [])\r\n .factory('$FB', ['$window', function ($window) {\r\n return {\r\n init: function (fbId) {\r\n if (fbId) {\r\n this.fbId = fbId;\r\n $window.fbAsyncInit = function () {\r\n FB.init({\r\n appId: fbId,\r\n channelUrl: 'app/channel.html',\r\n status: true,\r\n xfbml: true\r\n });\r\n };\r\n (function (d) {\r\n var js,\r\n id = 'facebook-jssdk',\r\n ref = d.getElementsByTagName('script')[0];\r\n if (d.getElementById(id)) {\r\n return;\r\n }\r\n\r\n js = d.createElement('script');\r\n js.id = id;\r\n js.async = true;\r\n js.src = \"//connect.facebook.net/en_US/all.js\";\r\n\r\n ref.parentNode.insertBefore(js, ref);\r\n\r\n }(document));\r\n } else {\r\n throw (\"FB App Id Cannot be blank\");\r\n }\r\n }\r\n };\r\n\r\n }]).directive('facebook', ['$http', function ($http) {\r\n return {\r\n scope: {\r\n shares: '='\r\n },\r\n transclude: true,\r\n template: '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n 'Share' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
',\r\n link: function (scope, element, attr) {\r\n attr.$observe('url', function () {\r\n if (attr.shares && attr.url) {\r\n $http.get('https://api.facebook.com/method/links.getStats?urls=' + attr.url + '&format=json').then(function (res) {\r\n var count = res[0] ? res[0].total_count.toString() : 0;\r\n var decimal = '';\r\n if (count.length > 6) {\r\n if (count.slice(-6, -5) != \"0\") {\r\n decimal = '.' + count.slice(-6, -5);\r\n }\r\n count = count.slice(0, -6);\r\n count = count + decimal + 'M';\r\n } else if (count.length > 3) {\r\n if (count.slice(-3, -2) != \"0\") {\r\n decimal = '.' + count.slice(-3, -2);\r\n }\r\n count = count.slice(0, -3);\r\n count = count + decimal + 'k';\r\n }\r\n scope.shares = count;\r\n }, function () {\r\n scope.shares = 0;\r\n });\r\n }\r\n element.unbind();\r\n element.bind('click', function (e) {\r\n FB.ui({\r\n method: 'share',\r\n href: attr.url\r\n });\r\n e.preventDefault();\r\n });\r\n });\r\n }\r\n };\r\n }]).directive('twitter', ['$timeout', function ($timeout) {\r\n return {\r\n link: function (scope, element, attr) {\r\n var renderTwitterButton = debounce(function () {\r\n if (attr.url) {\r\n $timeout(function () {\r\n element[0].innerHTML = '';\r\n twttr.widgets.createShareButton(\r\n attr.url,\r\n element[0],\r\n function () { }, {\r\n count: attr.count,\r\n text: attr.text,\r\n via: attr.via,\r\n size: attr.size\r\n }\r\n );\r\n });\r\n }\r\n }, 75);\r\n attr.$observe('url', renderTwitterButton);\r\n attr.$observe('text', renderTwitterButton);\r\n }\r\n };\r\n }]).directive('linkedin', ['$timeout', '$http', '$window', function ($timeout, $http, $window) {\r\n return {\r\n scope: {\r\n shares: '='\r\n },\r\n transclude: true,\r\n template: '
' +\r\n '
' +\r\n '
' +\r\n '
in' +\r\n '
' +\r\n 'Share' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
',\r\n link: function (scope, element, attr) {\r\n var renderLinkedinButton = debounce(function () {\r\n if (attr.shares && attr.url) {\r\n $http.jsonp('https://www.linkedin.com/countserv/count/share?url=' + attr.url + '&callback=JSON_CALLBACK&format=jsonp').then(function (res) {\r\n scope.shares = res.count.toLocaleString();\r\n }, function () {\r\n scope.shares = 0;\r\n });\r\n }\r\n $timeout(function () {\r\n element.unbind();\r\n element.bind('click', function () {\r\n var url = encodeURIComponent(attr.url).replace(/'/g, \"%27\").replace(/\"/g, \"%22\")\r\n $window.open(\"//www.linkedin.com/shareArticle?mini=true&url=\" + url + \"&title=\" + attr.title + \"&summary=\" + attr.summary);\r\n });\r\n });\r\n }, 100);\r\n attr.$observe('url', renderLinkedinButton);\r\n attr.$observe('title', renderLinkedinButton);\r\n attr.$observe('summary', renderLinkedinButton);\r\n }\r\n };\r\n }]).directive('gplus', [function () {\r\n return {\r\n link: function (scope, element, attr) {\r\n var googleShare = debounce(function () {\r\n if (typeof gapi == \"undefined\") {\r\n (function () {\r\n var po = document.createElement('script');\r\n po.type = 'text/javascript';\r\n po.async = true;\r\n po.src = 'https://apis.google.com/js/platform.js';\r\n po.onload = renderGoogleButton;\r\n var s = document.getElementsByTagName('script')[0];\r\n s.parentNode.insertBefore(po, s);\r\n })();\r\n } else {\r\n renderGoogleButton();\r\n }\r\n }, 100);\r\n //voodo magic */\r\n var renderGoogleButton = (function (ele, attr) {\r\n return function () {\r\n var googleButton = document.createElement('div');\r\n var id = attr.id || randomString(5);\r\n attr.id = id;\r\n googleButton.setAttribute('id', id);\r\n element.innerHTML = '';\r\n element.append(googleButton);\r\n window.gapi.plusone.render(id, attr);\r\n }\r\n }(element, attr));\r\n attr.$observe('href', googleShare);\r\n }\r\n };\r\n }]).directive('tumblrText', [function () {\r\n return {\r\n link: function (scope, element, attr) {\r\n var tumblr_button = document.createElement(\"a\");\r\n var renderTumblrText = debounce(function () {\r\n tumblr_button.setAttribute(\"href\", \"https://www.tumblr.com/share/link?url=\" + encodeURIComponent(attr.url) + \"&name=\" + encodeURIComponent(attr.name) + \"&description=\" + encodeURIComponent(attr.description));\r\n tumblr_button.setAttribute(\"title\", attr.title || \"Share on Tumblr\");\r\n tumblr_button.setAttribute(\"style\", attr.styling || \"display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url('https://platform.tumblr.com/v1/share_1.png') top left no-repeat transparent;\");\r\n element[0].innerHTML = '';\r\n element.append(tumblr_button);\r\n }, 100);\r\n attr.$observe('url', renderTumblrText);\r\n attr.$observe('name', renderTumblrText);\r\n attr.$observe('description', renderTumblrText);\r\n }\r\n\r\n }\r\n }]).directive('tumblrQoute', [function () {\r\n return {\r\n link: function (scope, element, attr) {\r\n var tumblr_button = document.createElement(\"a\");\r\n var renderTumblrQoute = debounce(function () {\r\n tumblr_button.setAttribute(\"href\", \"https://www.tumblr.com/share/quote?quote=\" + encodeURIComponent(attr.qoute) + \"&source=\" + encodeURIComponent(attr.source));\r\n tumblr_button.setAttribute(\"title\", attr.title || \"Share on Tumblr\");\r\n tumblr_button.setAttribute(\"style\", attr.styling || \"display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url('https://platform.tumblr.com/v1/share_1.png') top left no-repeat transparent;\");\r\n element[0].innerHTML = '';\r\n element.append(tumblr_button);\r\n }, 100);\r\n attr.$observe('qoute', renderTumblrQoute);\r\n attr.$observe('source', renderTumblrQoute);\r\n }\r\n }\r\n }]).directive('tumblrImage', [function () {\r\n return {\r\n link: function (scope, element, attr) {\r\n var tumblr_button = document.createElement(\"a\");\r\n var renderTumblrImage = debounce(function () {\r\n tumblr_button.setAttribute(\"href\", \"https://www.tumblr.com/share/photo?source=\" + encodeURIComponent(attr.source) + \"&caption=\" + encodeURIComponent(attr.caption) + \"&clickthru=\" + encodeURIComponent(attr.clickthru));\r\n tumblr_button.setAttribute(\"title\", attr.title || \"Share on Tumblr\");\r\n tumblr_button.setAttribute(\"style\", attr.styling || \"display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url('https://platform.tumblr.com/v1/share_1.png') top left no-repeat transparent;\");\r\n element[0].innerHTML = '';\r\n element.append(tumblr_button);\r\n }, 100);\r\n attr.$observe('source', renderTumblrImage);\r\n attr.$observe('caption', renderTumblrImage);\r\n attr.$observe('clickthru', renderTumblrImage);\r\n }\r\n }\r\n }]).directive('tumblrVideo', [function () {\r\n return {\r\n link: function (scope, element, attr) {\r\n var tumblr_button = document.createElement(\"a\");\r\n var renderTumblrVideo = debounce(function () {\r\n tumblr_button.setAttribute(\"href\", \"https://www.tumblr.com/share/video?embed=\" + encodeURIComponent(attr.embedcode) + \"&caption=\" + encodeURIComponent(attr.caption));\r\n tumblr_button.setAttribute(\"title\", attr.title || \"Share on Tumblr\");\r\n tumblr_button.setAttribute(\"style\", attr.styling || \"display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url('https://platform.tumblr.com/v1/share_1.png') top left no-repeat transparent;\");\r\n element[0].innerHTML = '';\r\n element.append(tumblr_button);\r\n }, 100);\r\n attr.$observe('embedcode', renderTumblrVideo);\r\n attr.$observe('caption', renderTumblrVideo);\r\n }\r\n }\r\n }]).directive('pintrest', ['$window', '$timeout', function ($window, $timeout) {\r\n return {\r\n template: '',\r\n link: function (scope, element, attr) {\r\n var pintrestButtonRenderer = debounce(function () {\r\n var pin_button = document.createElement(\"a\");\r\n pin_button.setAttribute(\"href\", '//www.pinterest.com/pin/create/button/?url=' + encodeURIComponent(attr.href) + '&media=' + encodeURIComponent(attr.img) + '&description=' + encodeURIComponent(attr.description));\r\n pin_button.setAttribute(\"pinDo\", attr.pinDo || \"buttonPin\");\r\n pin_button.setAttribute(\"pinConfig\", attr.pinConfig || \"beside\");\r\n element[0].innerHTML = '';\r\n element.append(pin_button);\r\n $timeout(function () {\r\n $window.parsePins(element);\r\n });\r\n }, 100);\r\n\r\n attr.$observe('href', pintrestButtonRenderer);\r\n attr.$observe('img', pintrestButtonRenderer);\r\n attr.$observe('description', pintrestButtonRenderer);\r\n }\r\n }\r\n }]);\r\n/** Simple Debounce Implementation\r\n//http://davidwalsh.name/javascript-debounce-function */\r\nfunction debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this,\r\n args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n};\r\n/* http://stackoverflow.com/questions/1349404/generate-a-string-of-5-random-characters-in-javascript */\r\n/**\r\n * RANDOM STRING GENERATOR\r\n *\r\n * Info: http://stackoverflow.com/a/27872144/383904\r\n * Use: randomString(length [,\"A\"] [,\"N\"] );\r\n * Default: return a random alpha-numeric string\r\n * Arguments: If you use the optional \"A\", \"N\" flags:\r\n * \"A\" (Alpha flag) return random a-Z string\r\n * \"N\" (Numeric flag) return random 0-9 string\r\n */\r\nfunction randomString(len, an) {\r\n an = an && an.toLowerCase();\r\n var str = \"\", i = 0, min = an == \"a\" ? 10 : 0, max = an == \"n\" ? 10 : 62;\r\n for (; i++ < len;) {\r\n var r = Math.random() * (max - min) + min << 0;\r\n str += String.fromCharCode(r += r > 9 ? r < 36 ? 55 : 61 : 48);\r\n }\r\n return str;\r\n}","angular.module('mapleLeafApp')\r\n .controller('5cController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$timeout\", \"$sce\", fiveCsController]);\r\n\r\nfunction fiveCsController($scope, $rootScope, $localStorage, $timeout, $sce) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('.arrowBack').removeClass('none');\r\n angular.element('.phoneMenu').removeClass('open');\r\n if ($('header').hasClass('absolute')) {\r\n $('header').removeClass('absolute');\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $rootScope.destroyDirective();\r\n $('.arrowBack').addClass('none');\r\n });\r\n\r\n (function getTexts() {\r\n $scope.texts = {\r\n \"title\": $localStorage.siteTexts.fivecs.title,\r\n \"cutShape\": {\r\n \"title\": $localStorage.siteTexts.fivecs.cutShape.title,\r\n \"description\": {\r\n \"paragraph1\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.cutShape.description.paragraph1),\r\n \"paragraph2\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.cutShape.description.paragraph2),\r\n \"paragraph3\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.cutShape.description.paragraph3),\r\n \"paragraph4\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.cutShape.description.paragraph4),\r\n }\r\n },\r\n \"idealProportions\": {\r\n \"title\": $localStorage.siteTexts.fivecs.idealProportions.title,\r\n \"description\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.idealProportions.description)\r\n },\r\n \"colour\": {\r\n \"title\": $localStorage.siteTexts.fivecs.colour.title,\r\n \"description\": {\r\n \"paragraph1\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph1),\r\n \"paragraph2\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph2),\r\n \"paragraph3\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph3),\r\n \"paragraph4\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph4),\r\n \"paragraph5\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph5),\r\n \"paragraph6\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph6),\r\n \"paragraph7\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph7),\r\n \"paragraph8\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.colour.description.paragraph8)\r\n }\r\n },\r\n \"clarity\": {\r\n \"title\": $localStorage.siteTexts.fivecs.clarity.title,\r\n \"description\": {\r\n \"paragraph1\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.clarity.description.paragraph1),\r\n \"paragraph2\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.clarity.description.paragraph2),\r\n \"paragraph3\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.clarity.description.paragraph3),\r\n \"paragraph4\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.clarity.description.paragraph4),\r\n \"paragraph5\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.clarity.description.paragraph5),\r\n \"paragraph6\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.clarity.description.paragraph6)\r\n }\r\n },\r\n \"carat\": {\r\n \"title\": $localStorage.siteTexts.fivecs.carat.title,\r\n \"description\": {\r\n \"paragraph1\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.carat.description.paragraph1),\r\n \"paragraph2\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.carat.description.paragraph2)\r\n }\r\n },\r\n \"canadian\": {\r\n \"title\": $localStorage.siteTexts.fivecs.canadian.title,\r\n \"description\": {\r\n \"paragraph1\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.canadian.description.paragraph1),\r\n \"paragraph2\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.canadian.description.paragraph2),\r\n \"paragraph3\": $sce.trustAsHtml($localStorage.siteTexts.fivecs.canadian.description.paragraph3)\r\n }\r\n }\r\n };\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n $timeout(function () {\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n $rootScope.loadAboutDirective();\r\n } else {\r\n $rootScope.loadAboutDirective();\r\n }\r\n });\r\n })();\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('canadianDiamondsController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$cookies\", \"$sce\", \"$interval\", canadianDiamondsController]);\r\n\r\nfunction canadianDiamondsController($scope, $rootScope, $localStorage, $cookies, $sce, $interval) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n $rootScope.loadAboutDirective();\r\n } else {\r\n $rootScope.loadAboutDirective();\r\n }\r\n $('.arrowBack').removeClass('none');\r\n if ($('header').hasClass('absolute')) {\r\n $('header').removeClass('absolute');\r\n }\r\n });\r\n\r\n function loadDirective() {\r\n if (!$(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.loadAboutDirective();\r\n } else {\r\n $rootScope.destroyDirective();\r\n $scope.setInterval();\r\n }\r\n };\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $rootScope.destroyDirective();\r\n $('.arrowBack').addClass('none');\r\n });\r\n\r\n $scope.$watch(function () {\r\n return $cookies.get(\"fullPageLoaded\");\r\n }, function (newVal, oldVal) {\r\n if (angular.isDefined(newVal)) {\r\n if (newVal == \"true\") {\r\n $rootScope.goToSection($cookies.get(\"scrollID\"));\r\n }\r\n }\r\n });\r\n\r\n (function getTexts() {\r\n\r\n $scope.texts = {\r\n \"title\": $sce.trustAsHtml($localStorage.siteTexts.canadianDiamonds.title),\r\n \"exquisite\": {\r\n \"title\": $sce.trustAsHtml($localStorage.siteTexts.canadianDiamonds.title),\r\n \"description\": {\r\n \"paragraph1\": $sce.trustAsHtml($localStorage.siteTexts.canadianDiamonds.exquisite.description.paragraph1),\r\n \"paragraph2\": $localStorage.siteTexts.canadianDiamonds.exquisite.description.paragraph2,\r\n \"paragraph3\": $sce.trustAsHtml($localStorage.siteTexts.canadianDiamonds.exquisite.description.paragraph3)\r\n }\r\n },\r\n \"formation\": {\r\n \"title\": $localStorage.siteTexts.canadianDiamonds.formation.title,\r\n \"imgTitle\": $localStorage.siteTexts.canadianDiamonds.formation.imgTitle,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.canadianDiamonds.formation.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.canadianDiamonds.formation.description.paragraph2,\r\n \"paragraph3\": $localStorage.siteTexts.canadianDiamonds.formation.description.paragraph3,\r\n \"paragraph4\": $localStorage.siteTexts.canadianDiamonds.formation.description.paragraph4\r\n }\r\n },\r\n \"discovery\": {\r\n \"title\": $localStorage.siteTexts.canadianDiamonds.discovery.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.canadianDiamonds.discovery.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.canadianDiamonds.discovery.description.paragraph2,\r\n \"paragraph3\": $localStorage.siteTexts.canadianDiamonds.discovery.description.paragraph3,\r\n \"paragraph4\": $localStorage.siteTexts.canadianDiamonds.discovery.description.paragraph4,\r\n \"paragraph5\": $localStorage.siteTexts.canadianDiamonds.discovery.description.paragraph5,\r\n }\r\n },\r\n \"exploration\": {\r\n \"title\": {\r\n \"part1\": $localStorage.siteTexts.canadianDiamonds.exploration.title.part1,\r\n \"part2\": $localStorage.siteTexts.canadianDiamonds.exploration.title.part2\r\n },\r\n \"description\": $sce.trustAsHtml($localStorage.siteTexts.canadianDiamonds.exploration.description)\r\n }\r\n };\r\n\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n })();\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('certificationController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$window\", \"$location\", \"$cookies\", \"$sce\", \"$timeout\", certificationController]);\r\n\r\nfunction certificationController($scope, $rootScope, $localStorage, $window, $location, $cookies, $sce, $timeout) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('.arrowBack').removeClass('none');\r\n angular.element('.phoneMenu').removeClass('open');\r\n if ($('header').hasClass('absolute')) {\r\n $('header').removeClass('absolute');\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $rootScope.destroyDirective();\r\n $('.arrowBack').addClass('none');\r\n });\r\n\r\n (function getTexts() {\r\n\r\n $scope.texts = {\r\n \"title\": $localStorage.siteTexts.certification.title,\r\n \"certificate\": {\r\n \"title\": $localStorage.siteTexts.certification.certificate.title,\r\n \"description\": $localStorage.siteTexts.certification.certificate.description\r\n },\r\n \"tracking\": {\r\n \"title\": $localStorage.siteTexts.certification.tracking.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.certification.tracking.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.certification.tracking.description.paragraph2\r\n },\r\n \"url\": $localStorage.siteTexts.certification.tracking.url\r\n },\r\n \"responsible\": {\r\n \"title\": $localStorage.siteTexts.certification.responsible.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.certification.responsible.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.certification.responsible.description.paragraph2,\r\n \"paragraph3\": $localStorage.siteTexts.certification.responsible.description.paragraph3\r\n }\r\n },\r\n \"canadamark\": {\r\n \"title\": $localStorage.siteTexts.certification.canadamark.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.certification.canadamark.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.certification.canadamark.description.paragraph2,\r\n \"paragraph3\": $sce.trustAsHtml($localStorage.siteTexts.certification.canadamark.description.paragraph3)\r\n }\r\n }\r\n };\r\n\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n $timeout(function () {\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n $rootScope.loadAboutDirective();\r\n } else {\r\n $rootScope.loadAboutDirective();\r\n }\r\n });\r\n\r\n })();\r\n\r\n $scope.goToTrack = function ($ev) {\r\n $ev.preventDefault();\r\n $location.path('/');\r\n setTimeout(function () {\r\n if ($window.innerWidth < 992) {\r\n $rootScope.scrollTo($ev, 'tracking');\r\n } else {\r\n $rootScope.goToSection('tracking');\r\n }\r\n }, 500);\r\n };\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('collectionDetailController', [\"$scope\", \"$rootScope\", \"$location\", \"Collections\", \"$window\", \"$cookies\", \"$routeParams\", \"coronaURL\", \"hdImage\", \"$localStorage\", \"$sce\", \"$timeout\", collectionDetailController]);\r\n\r\nfunction collectionDetailController($scope, $rootScope, $location, Collections, $window, $cookies, $routeParams, coronaURL, hdImage, $localStorage, $sce, $timeout) {\r\n\r\n $window.scrollTo(0, 0);\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').addClass('dark');\r\n $('header').addClass('absolute');\r\n $('.stripes').addClass('dark');\r\n $('.languages').addClass('dark');\r\n $('.logo-header').attr({\r\n 'src': '/images/maple-leaf-diamonds-logo-254x71.png'\r\n });\r\n\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $('header').removeClass('absolute');\r\n $scope.$on(\"$destroy\", function () {\r\n angular.element($window).off('scroll', askBottom);\r\n });\r\n });\r\n\r\n $scope.coronaURL = coronaURL;\r\n $scope.noResultsText = '';\r\n $scope.backgroundImage = '';\r\n $scope.loader = true;\r\n\r\n $scope.items = [];\r\n $scope.itemsStart = 1;\r\n $scope.callingItems = false;\r\n $scope.stopCalling = false;\r\n\r\n (function getTexts() {\r\n $scope.texts = $localStorage.siteTexts.singleCollection;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n $scope.search = $routeParams.search;\r\n\r\n })();\r\n\r\n var arrayID = 0;\r\n\r\n $scope.getItems = function (start) {\r\n\r\n $scope.callingItems = true;\r\n var catFilter = [];\r\n var shapeFilter = [];\r\n var styleFilter = [];\r\n var filtersCount = 0;\r\n\r\n if ($location.search().category != undefined) {\r\n var category = $location.search().category;\r\n category = category.split('-');\r\n for (var index = 0; index < category.length; index++) {\r\n var element = category[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n catFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n if ($location.search().shape != undefined) {\r\n var shape = $location.search().shape;\r\n shape = shape.split('-');\r\n for (var index = 0; index < shape.length; index++) {\r\n var element = shape[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n shapeFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n if ($location.search().style != undefined) {\r\n var style = $location.search().style;\r\n style = style.split('-');\r\n for (var index = 0; index < style.length; index++) {\r\n var element = style[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n styleFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n var urlFilters = [];\r\n $scope.urlFilters = urlFilters = [{\r\n \"collections\": [\r\n Number($routeParams.collection)\r\n ],\r\n \"styles\": styleFilter,\r\n \"shapes\": shapeFilter,\r\n \"categories\": catFilter\r\n }];\r\n\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"filters\": urlFilters,\r\n \"search\": \"\",\r\n \"record_start\": ($scope.items.length <= 0) ? 1 : $scope.items.length + 1,\r\n \"record_count\": 21,\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n\r\n// console.log(params);\r\n if (params.record_start != null) {\r\n \tfbq('track', 'ViewContent', { \"CollectionFilters\" : urlFilters, \"ItemStart\" : params.record_start } );\r\n Collections.getItems(params)\r\n .then(function (response) {\r\n if (response.data.items.length > 0) {\r\n for (var index = 0; index < response.data.items.length; index++) {\r\n var temp = response.data.items[index];\r\n temp.arrayID = arrayID;\r\n $scope.items.push(temp);\r\n $scope.itemsStart = $scope.items.length + 1;\r\n arrayID++;\r\n }\r\n } else {\r\n $scope.stopCalling = true;\r\n if ($scope.items.length <= 0) {\r\n $scope.noResultsText = $scope.texts.noResults;\r\n }\r\n }\r\n\r\n if (response.data.items.length < 21) {\r\n $scope.stopCalling = true;\r\n }\r\n $scope.callingItems = false;\r\n $scope.loader = true;\r\n }, function (response) {\r\n console.log(response);\r\n $scope.noResultsText = $scope.texts.noResults;\r\n $scope.statusText = response.statusText;\r\n $scope.callingItems = false;\r\n $scope.stopCalling = true;\r\n $scope.loader = true;\r\n });\r\n }\r\n\r\n };\r\n\r\n $scope.getItems($scope.itemsStart);\r\n\r\n function getCollections() {\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n\r\n Collections.getCollections(params)\r\n .then(function (response) {\r\n for (var index = 0; index < response.data.collections.length; index++) {\r\n var element = response.data.collections[index];\r\n if (Number(element.id) == Number($routeParams.collection)) {\r\n $scope.collection = element;\r\n $scope.backgroundImage = $scope.coronaURL + element.headerImage;\r\n }\r\n }\r\n }, function (response) {\r\n console.log(response);\r\n });\r\n\r\n };\r\n getCollections();\r\n\r\n function askBottom() {\r\n if ($scope.stopCalling) return;\r\n\r\n if ($scope.callingItems) return;\r\n\r\n if (angular.element('infiniteScrollBottom').length > 0) {\r\n if (($window.pageYOffset + $window.innerHeight + 350) > angular.element('infiniteScrollBottom')[0].offsetTop) {\r\n $scope.loader = false;\r\n $scope.getItems($scope.itemsStart);\r\n }\r\n }\r\n }\r\n\r\n angular.element($window).bind('scroll mousewheel', function () {\r\n askBottom();\r\n });\r\n\r\n document.addEventListener('touchmove', function () {\r\n askBottom();\r\n });\r\n\r\n var url = $location.path().split('/collections/');\r\n $scope.currenPath = url[1];\r\n\r\n $scope.goToDetail = function (piece) {\r\n $localStorage.itemsList = $scope.items;\r\n $localStorage.filters = $scope.urlFilters;\r\n $localStorage.urlFilters = $location.absUrl();\r\n var url = \"/collections/\" + piece.collectionId + \"/\" + piece.id;\r\n $timeout(function () {\r\n $location.path(url);\r\n });\r\n };\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('collectionController', [\"$scope\", \"$rootScope\", \"$location\", \"$window\", \"$cookies\", \"$localStorage\", \"Collections\", \"coronaURL\", \"hdImage\", \"$sce\", \"$timeout\", collectionController]);\r\n\r\nfunction collectionController($scope, $rootScope, $location, $window, $cookies, $localStorage, Collections, coronaURL, hdImage, $sce, $timeout) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').addClass('absolute dark');\r\n $('.logo-header').attr({\r\n 'src': '/images/maple-leaf-diamonds-logo-254x71.png'\r\n });\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $('header').removeClass('absolute dark');\r\n });\r\n\r\n $scope.coronaURL = coronaURL;\r\n $scope.noResultsText = '';\r\n $scope.loader = false;\r\n $scope.items = [];\r\n\r\n $scope.isEngagement = function () {\r\n\r\n $scope.headerImg = '';\r\n var isENgagement = false;\r\n if ($location.search().collections == undefined && $location.search().style == undefined && $location.search().category == \"9,21\" && $location.search().shape == undefined) {\r\n isENgagement = true;\r\n $scope.headerImg_tablet = '/images/engagement_header_tablet.jpg';\r\n $scope.headerImg_mob = '/images/engagement_header_mob.jpg';\r\n $scope.headerImg = '/images/engagement_header.jpg';\r\n } else {\r\n $scope.headerImg_tablet = '/images/collections_header_tablet.jpg';\r\n $scope.headerImg_mob = '/images/collections_header_mob.jpg';\r\n $scope.headerImg = '/images/collections_header.jpg';\r\n }\r\n return isENgagement;\r\n };\r\n $scope.isEngagement();\r\n\r\n angular.element(window).bind('resize', function () {\r\n $scope.isEngagement();\r\n });\r\n\r\n (function getTexts(language) {\r\n $scope.texts = $localStorage.siteTexts.collections;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n if ($scope.isEngagement()) {\r\n $scope.engagementData = {\r\n title: $scope.texts.engagementTitle,\r\n subtitle: $scope.texts.engagementSubtitle\r\n };\r\n } else {\r\n $scope.engagementData = {\r\n title: $scope.texts.title,\r\n subtitle: $scope.texts.description\r\n };\r\n }\r\n\r\n })();\r\n\r\n function getCollections() {\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n\r\n Collections.getCollections(params)\r\n .then(function (params) {\r\n $scope.collections = params.data.collections;\r\n }, function (params) {\r\n console.log(params);\r\n });\r\n\r\n };\r\n\r\n var arrayID = 0;\r\n\r\n $scope.getItems = function (start) {\r\n\r\n $scope.callingItems = true;\r\n var colFilter = [];\r\n var catFilter = [];\r\n var shapeFilter = [];\r\n var styleFilter = [];\r\n var filtersCount = 0;\r\n\r\n if ($location.search().collections != undefined) {\r\n var collection = $location.search().collections;\r\n collection = collection.split('-');\r\n for (var index = 0; index < collection.length; index++) {\r\n var element = collection[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n colFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n if ($location.search().category != undefined) {\r\n var category = $location.search().category;\r\n category = category.split('-');\r\n for (var index = 0; index < category.length; index++) {\r\n var element = category[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n catFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n if ($location.search().shape != undefined) {\r\n var shape = $location.search().shape;\r\n shape = shape.split('-');\r\n for (var index = 0; index < shape.length; index++) {\r\n var element = shape[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n shapeFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n if ($location.search().style != undefined) {\r\n var style = $location.search().style;\r\n style = style.split('-');\r\n for (var index = 0; index < style.length; index++) {\r\n var element = style[index].split(',');\r\n for (var indexx = 0; indexx < element.length; indexx++) {\r\n styleFilter.push(Number(element[indexx]));\r\n }\r\n }\r\n }\r\n\r\n var urlFilters = [];\r\n $scope.urlFilters = urlFilters = [{\r\n \"collections\": colFilter,\r\n \"styles\": styleFilter,\r\n \"shapes\": shapeFilter,\r\n \"categories\": catFilter\r\n }];\r\n\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"filters\": urlFilters,\r\n \"search\": \"\",\r\n \"record_start\": ($scope.items.length <= 0) ? 1 : $scope.items.length + 1,\r\n \"record_count\": 21,\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n\r\n// console.log(params);\r\n if (params.record_start != null) {\r\n \tfbq('track', 'ViewContent', { \"EngagementFilters\" : urlFilters, \"ItemStart\" : params.record_start } );\r\n Collections.getItems(params)\r\n .then(function (response) {\r\n if (response.data.items.length > 0) {\r\n for (var index = 0; index < response.data.items.length; index++) {\r\n var temp = response.data.items[index];\r\n temp.arrayID = arrayID;\r\n $scope.items.push(temp);\r\n arrayID++;\r\n }\r\n } else {\r\n $scope.stopCalling = true;\r\n if ($scope.items.length <= 0) {\r\n $scope.noResultsText = 'No Results';\r\n }\r\n }\r\n\r\n if (response.data.items.length < 21) {\r\n $scope.stopCalling = true;\r\n }\r\n\r\n $scope.callingItems = false;\r\n $scope.loader = true;\r\n }, function (response) {\r\n console.log(response);\r\n $scope.noResultsText = 'No Results';\r\n $scope.statusText = response.statusText;\r\n $scope.callingItems = false;\r\n $scope.stopCalling = true;\r\n $scope.loader = true;\r\n });\r\n }\r\n\r\n };\r\n\r\n if ($location.search().collections == undefined && $location.search().style == undefined && $location.search().category == undefined && $location.search().shape == undefined) {\r\n $scope.partial = 'partials/collections_partial.html';\r\n $scope.collections = [];\r\n getCollections();\r\n } else {\r\n $scope.partial = 'partials/pieces_partial.html';\r\n $scope.items = [];\r\n $scope.itemsStart = 1;\r\n $scope.callingItems = false;\r\n $scope.stopCalling = false;\r\n $scope.getItems($scope.itemsStart);\r\n\r\n function askBottom() {\r\n if ($scope.stopCalling) return;\r\n\r\n if ($scope.callingItems) return;\r\n\r\n if (angular.element('infiniteScrollBottom').length > 0) {\r\n if (($window.pageYOffset + $window.innerHeight + 350) > angular.element('infiniteScrollBottom')[0].offsetTop) {\r\n $scope.itemsStart += 21;\r\n $scope.loader = false;\r\n $scope.getItems($scope.itemsStart);\r\n }\r\n }\r\n };\r\n\r\n angular.element($window).bind('scroll mousewheel', function () {\r\n askBottom();\r\n });\r\n\r\n document.addEventListener('touchmove', function () {\r\n askBottom();\r\n });\r\n }\r\n\r\n $scope.goToDetail = function (piece) {\r\n $localStorage.itemsList = $scope.items;\r\n $localStorage.filters = $scope.urlFilters;\r\n $localStorage.urlFilters = $location.absUrl();\r\n var url = \"/collections/\" + piece.collectionId + \"/\" + piece.id;\r\n $timeout(function () {\r\n $location.path(url);\r\n });\r\n };\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('contactUsController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$mdToast\", \"Contact\", \"vcRecaptchaService\", \"$cookies\", \"hdImage\", \"$sce\", \"recaptchaKey\", contactUsController]);\r\n\r\nfunction contactUsController($scope, $rootScope, $localStorage, $mdToast, Contact, vcRecaptchaService, $cookies, hdImage, $sce, recaptchaKey) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').addClass('dark');\r\n $('.stripes').addClass('dark');\r\n $('.languages').addClass('dark');\r\n $('.logo-header').attr({\r\n 'src': '/images/maple-leaf-diamonds-logo-254x71.png'\r\n });\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n });\r\n\r\n $scope.recaptchaKey = recaptchaKey;\r\n\r\n (function getTexts() {\r\n $scope.texts = $localStorage.siteTexts.contact;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n if ($cookies.get(\"siteLanguage\") == \"en-ca\" || $cookies.get(\"siteLanguage\") == \"en-us\") {\r\n $scope.recaptchaLanguage = \"en\";\r\n } else {\r\n $scope.recaptchaLanguage = \"fr-CA\";\r\n }\r\n\r\n })();\r\n\r\n /** Contact controller variables **/\r\n if (!$rootScope.firstVersion) {\r\n $scope.user = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"name\": \"Efrain\",\r\n \"email\": \"efrain@ggamma.com\",\r\n \"phone\": \"416-555-1212\",\r\n \"storename\": \"some store name\",\r\n \"storeaddress\": \"some store address\",\r\n \"comments\": \"some comments\",\r\n \"DEBUG_TargetEmail\": \"efrain@ggamma.com\"\r\n };\r\n }\r\n\r\n $scope.user = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"name\": \"\",\r\n \"email\": \"\",\r\n \"phone\": \"\",\r\n \"storename\": \"\",\r\n \"storeaddress\": \"\",\r\n \"comments\": \"\",\r\n \"DEBUG_TargetEmail\": \"\"\r\n };\r\n\r\n $rootScope.contactLoader = false;\r\n $scope.response = null;\r\n $scope.widgetId = null;\r\n\r\n /**Validations for the repcatcha**/\r\n $scope.setResponse = function (response) {\r\n $scope.response = response;\r\n };\r\n\r\n $scope.setWidgetId = function (widgetId) {\r\n $scope.widgetId = widgetId;\r\n };\r\n\r\n $scope.cbExpiration = function () {\r\n vcRecaptchaService.reload($scope.widgetId);\r\n $scope.response = null;\r\n };\r\n\r\n /** Function to send the form **/\r\n $scope.send = function (params) {\r\n\r\n var valid = false;\r\n\r\n if ($scope.user.name == '' || $scope.user.email == '' || $scope.user.phone == '' || $scope.user.storename == '' || $scope.user.storeaddress == '' || $scope.user.comments == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.completeAll)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if ($scope.response != null && $scope.response != \"\") {\r\n $rootScope.contactLoader = true;\r\n vcRecaptchaService.reload($scope.widgetId);\r\n valid = true;\r\n }\r\n\r\n if (valid == true) {\r\n setTimeout(function () {\r\n\r\n params.recaptcha_sitekey = recaptchaKey;\r\n params.recaptcha_response_field = $scope.response;\r\n\r\n Contact.sendForm(params)\r\n .then(function successCallback(response) {\r\n $rootScope.contactLoader = false;\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.successMessage)\r\n .position('bottom right')\r\n .toastClass('md-success')\r\n );\r\n $scope.user = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"name\": \"\",\r\n \"email\": \"\",\r\n \"phone\": \"\",\r\n \"storename\": \"\",\r\n \"storeaddress\": \"\",\r\n \"comments\": \"\",\r\n \"DEBUG_TargetEmail\": \"\"\r\n };\r\n }, function errorCallback(response) {\r\n console.log(response);\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(response.statusText)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n });\r\n\r\n }, 2000);\r\n\r\n } else {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.recaptcha)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n }\r\n };\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('locatorController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"Dealers\", \"$window\", \"$cookies\", \"coronaURL\", \"$location\", \"$mdDialog\", \"$timeout\", locatorController]);\r\n\r\nfunction locatorController($scope, $rootScope, $localStorage, Dealers, $window, $cookies, coronaURL, $location, $mdDialog, $timeout) {\r\n\r\n $scope.showLoader();\r\n $scope.openManualModal = false;\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n var coords = {\r\n lat: 57.8230229,\r\n lng: -102.6326396\r\n };\r\n setTimeout(function () {\r\n $rootScope.initMap(coords);\r\n }, 1000);\r\n $('header').addClass('dark-rgba');\r\n $('.stripes').addClass('dark-rgba');\r\n $('.languages').addClass('dark-rgba');\r\n $('.logo-header').attr({\r\n 'src': '/images/maple-leaf-diamonds-logo-254x71.png'\r\n });\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $rootScope.resetAskOne();\r\n $mdDialog.cancel();\r\n if ($cookies.get(\"locatorPiece\") != '') {\r\n $cookies.put(\"locatorPiece\", '');\r\n }\r\n });\r\n\r\n /** Locator controller variables **/\r\n $scope.selectDealer = false;\r\n $scope.coronaURL = coronaURL;\r\n $rootScope.dealerLoader = false;\r\n $scope.dealers = [];\r\n $scope.dealerStatusText = \"\";\r\n $scope.countrySelect = \"canada\";\r\n $scope.postalCode = \"\";\r\n $rootScope.locatorPartial = 1;\r\n $scope.dealerLogo = '';\r\n\r\n $scope.showManualModal = function () {\r\n $scope.openManualModal = true;\r\n };\r\n\r\n $scope.hideManualModal = function () {\r\n $scope.openManualModal = false;\r\n };\r\n\r\n (function getTexts() {\r\n $scope.localorTexts = $localStorage.siteTexts.locator;\r\n $scope.texts = $localStorage.siteTexts.locator.instructions;\r\n\r\n /** Functions to get the date **/\r\n var d = new Date();\r\n var weekday = $scope.localorTexts.daysOfWeek;\r\n $scope.day = weekday[d.getDay()];\r\n\r\n if ($cookies.get(\"locatorPiece\") != \"\" && $cookies.get(\"locatorPiece\") != undefined) {\r\n $timeout(function () {\r\n $scope.showManualModal();\r\n }, 500)\r\n // $mdDialog.show({\r\n // controller: selectDealerInstructionsController,\r\n // templateUrl: '/partials/selectDealerInstructions.tmpl.html',\r\n // clickOutsideToClose: false,\r\n // escapeToClose: false\r\n // })\r\n // .then(function () {\r\n // if ($window.innerWidth > 767) {\r\n // angular.element(\"#zipCode\").focus();\r\n // } else {\r\n // $('html, body').animate({\r\n // scrollTop: $('body').height()\r\n // }, 0, function () {\r\n // angular.element(\"#zipCode\").focus();\r\n // });\r\n // }\r\n // });\r\n }\r\n })();\r\n\r\n /** Function to select country **/\r\n $scope.countrySelected = function (country) {\r\n $scope.postalCode = \"\";\r\n $scope.countrySelect = country;\r\n $rootScope.centerByCountry(country);\r\n };\r\n\r\n /** Search functions for dealers **/\r\n $rootScope.searchZipCode = function (zipcode) {\r\n\r\n var pattern = new RegExp(\"^\\s*([0-9a-zA-Z? ,\\/]*)\\s*$\");\r\n\r\n if (!pattern.test(zipcode)) {\r\n $scope.dealerStatusText = $scope.texts.locator.regex;\r\n return false;\r\n }\r\n\r\n if ($scope.countrySelect != 'ireland') {\r\n\r\n if (zipcode == '') {\r\n $scope.dealerStatusText = $scope.texts.enterZIP;\r\n return false;\r\n }\r\n var address = $scope.countrySelect + ' ' + zipcode;\r\n\r\n } else {\r\n\r\n if (zipcode == '') {\r\n var address = $scope.countrySelect;\r\n }\r\n var address = $scope.countrySelect + ' ' + zipcode;\r\n\r\n }\r\n\r\n $rootScope.dealerLoader = true;\r\n $scope.postalCode = zipcode;\r\n $scope.city = zipcode;\r\n\r\n $rootScope.userSelection = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"latitude\": '',\r\n \"longitude\": ''\r\n };\r\n\r\n $rootScope.dealerLoader = false;\r\n\r\n var address = $scope.countrySelect + ' ' + zipcode;\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({\r\n 'address': address\r\n }, function (results, status) {\r\n\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n geocodeSuccess(results);\r\n } else {\r\n geocodeError(status);\r\n }\r\n });\r\n\r\n function geocodeSuccess(results) {\r\n $rootScope.userSelection.latitude = results[0].geometry.location.lat();\r\n $rootScope.userSelection.longitude = results[0].geometry.location.lng();\r\n $scope.dealerStatusText = '';\r\n $rootScope.getClosestDealersFromZipCode($rootScope.userSelection, results[0].formatted_address);\r\n }\r\n\r\n function geocodeError(status) {\r\n $rootScope.dealerLoader = false;\r\n console.log(status);\r\n\r\n if (status == \"ZERO_RESULTS\") {\r\n $scope.dealerStatusText = $scope.localorTexts.zeroResults;\r\n } else if (status == \"OVER_QUERY_LIMIT\" || status == \"UNKNOWN_ERROR\" || status == \"ERROR\") {\r\n $scope.dealerStatusText = $scope.localorTexts.overQuota;\r\n } else if (status == \"REQUEST_DENIED\") {\r\n $scope.dealerStatusText = $scope.localorTexts.requestDenied;\r\n } else if (status == \"INVALID_REQUEST\") {\r\n $scope.dealerStatusText = $scope.localorTexts.requestInvalid;\r\n } else {\r\n $scope.dealerStatusText = $scope.localorTexts.overQuota;\r\n }\r\n }\r\n\r\n };\r\n\r\n $rootScope.getClosestDealersFromZipCode = function (params, city) {\r\n\r\n $rootScope.resultsZipCode = city;\r\n $scope.dealers = [];\r\n\r\n Dealers.sendData(params)\r\n .then(function successCallback(response) {\r\n $scope.locatorPartial = 2;\r\n $scope.dealers = response.data.dealers;\r\n $scope.hoursTitle = response.data.hoursTitle;\r\n $scope.paymentsTitle = response.data.paymentsTitle;\r\n $scope.servicesTitle = response.data.servicesTitle;\r\n $rootScope.setMarker($scope.dealers);\r\n $scope.viewSearch = false;\r\n }, function errorCallback(response) {\r\n $scope.dealerStatusText = response.statusText;\r\n });\r\n\r\n $rootScope.dealerLoader = false;\r\n\r\n };\r\n\r\n /** Function \"Back\" of dealer locator **/\r\n $scope.back = function () {\r\n $scope.postalCode = \"\";\r\n if ($scope.locatorPartial == 3) {\r\n $scope.locatorPartial = 2;\r\n $scope.dealerDetail = {};\r\n $rootScope.backToListOfDealers();\r\n } else if ($scope.locatorPartial == 2) {\r\n $scope.locatorPartial = 1;\r\n $scope.dealers = {};\r\n $scope.locatorTexts.hoursTitle = \"\";\r\n $scope.locatorTexts.paymentsTitle = \"\";\r\n $scope.locatorTexts.servicesTitle = \"\";\r\n $scope.dealerStatusText = \"\";\r\n $rootScope.rebuildToUserCoords();\r\n }\r\n };\r\n\r\n /** Function to use your current location **/\r\n $scope.currentLocation = function () {\r\n $rootScope.centerByLocation();\r\n }\r\n\r\n /** Function to see dealer detail **/\r\n $scope.showDealerDetail = function (dealer) {\r\n\r\n $scope.locatorPartial = 3;\r\n $scope.dealerDetail = dealer;\r\n if (dealer.logo != undefined) {\r\n $scope.dealerLogo = coronaURL + dealer.logo;\r\n }\r\n\r\n var coords = {\r\n lat: parseFloat(dealer.latitude),\r\n lng: parseFloat(dealer.longitude)\r\n }\r\n\r\n $rootScope.zoomToDealer(dealer.ID);\r\n\r\n if ($cookies.get(\"locatorPiece\") != \"\" && $cookies.get(\"locatorPiece\") != undefined) {\r\n addSelectDealerButton();\r\n }\r\n\r\n };\r\n\r\n /** Function for Dealer Locator Function **/\r\n function addSelectDealerButton() {\r\n $scope.selectDealer = true;\r\n angular.element(\".dealerDetail\").addClass('dealerButtonPadding');\r\n }\r\n\r\n $scope.acceptDealer = function (dealer) {\r\n $cookies.put(\"selectedDealer\", dealer.ID);\r\n var piece = $cookies.get(\"locatorPiece\");\r\n $cookies.put(\"locatorPiece\", \"\");\r\n $location.path(piece);\r\n }\r\n\r\n $scope.understand = function () {\r\n $scope.showManualModal();\r\n if ($window.innerWidth > 767) {\r\n angular.element(\"#zipCode\").focus();\r\n } else {\r\n $('html, body').animate({\r\n scrollTop: $('body').height()\r\n }, 0, function () {\r\n angular.element(\"#zipCode\").focus();\r\n });\r\n }\r\n }\r\n\r\n $scope.isManualModalOpen = function () {\r\n return $scope.openManualModal\r\n }\r\n\r\n $scope.manualModalgoBack = function () {\r\n var piece = $cookies.get(\"locatorPiece\");\r\n $cookies.put(\"locatorPiece\", \"\");\r\n $scope.hideManualModal();\r\n $location.path(piece);\r\n }\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('trackingController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$mdToast\", \"vcRecaptchaService\", \"DiamondTracking\", \"$cookies\", \"coronaURL\", \"hdImage\", \"recaptchaKey\", trackingController]);\r\n\r\nfunction trackingController($scope, $rootScope, $localStorage, $mdToast, vcRecaptchaService, DiamondTracking, $cookies, coronaURL, hdImage, recaptchaKey) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$watch(function () {\r\n return $cookies.get(\"siteLanguage\");\r\n }, function (newVal, oldVal) {\r\n getTexts();\r\n });\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('header').addClass('light-rgba tracking');\r\n $('.logo-header').attr({\r\n 'src': hdImage.getImgUrl('/images/maple-leaf-diamonds-logo-whiteletters-244x69.png')\r\n });\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $('header').removeClass('light-rgba tracking');\r\n });\r\n\r\n /** Tracking controller variables **/\r\n $scope.coronaURL = coronaURL;\r\n $scope.recaptchaKey = recaptchaKey;\r\n $scope.response = null;\r\n $scope.widgetId = null;\r\n $scope.diamondInfo = \"\";\r\n $scope.trackingNumber = \"\";\r\n $rootScope.trackLoader = false;\r\n $scope.diamondPartial = '/partials/trackingForm.html';\r\n\r\n (function getTexts() {\r\n $scope.trackingTexts = $localStorage.siteTexts.tracking;\r\n $scope.trackingTexts.inputLabelError = '';\r\n $scope.trackingTexts.inputLabel = $scope.trackingTexts.trackTitle;\r\n\r\n if ($cookies.get(\"siteLanguage\") == \"en-ca\" || $cookies.get(\"siteLanguage\") == \"en-us\") {\r\n $scope.recaptchaLanguage = \"en\";\r\n } else {\r\n $scope.recaptchaLanguage = \"fr-CA\";\r\n }\r\n\r\n })();\r\n\r\n /**Validations for the repcatcha**/\r\n $scope.setResponse = function (response, trackingNumber) {\r\n $scope.response = response;\r\n $scope.sendTrackingNumber(null, trackingNumber, response);\r\n };\r\n\r\n $scope.setWidgetId = function (widgetId) {\r\n $scope.widgetId = widgetId;\r\n };\r\n\r\n $scope.cbExpiration = function () {\r\n vcRecaptchaService.reload($scope.widgetId);\r\n $scope.response = null;\r\n };\r\n\r\n /**Function to search for a diamond**/\r\n $scope.sendTrackingNumber = function (ev, trackingNumber, reCaptchaResponse) {\r\n\r\n if (trackingNumber.length <= 0 || trackingNumber == \"\") {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.trackingTexts.enterNumber)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if (vcRecaptchaService.getResponse($scope.widgetId) != '') {\r\n\r\n vcRecaptchaService.reload($scope.widgetId);\r\n\r\n $rootScope.trackLoader = true;\r\n\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"id\": trackingNumber,\r\n \"recaptcha_sitekey\": recaptchaKey,\r\n \"recaptcha_response_field\": reCaptchaResponse\r\n };\r\n\r\n DiamondTracking.sendNumber(params)\r\n .then(function successCallback(response) {\r\n $scope.trackingTexts.inputLabelError = \"\";\r\n $scope.trackingTexts.inputLabel = $scope.trackingTexts.anotherTitle;\r\n $scope.diamondInfo = response.data;\r\n $rootScope.trackLoader = false;\r\n $scope.diamondPartial = '/partials/trackingResult.html';\r\n vcRecaptchaService.reload($scope.widgetId);\r\n }, function errorCallback(response) {\r\n $scope.trackingTexts.inputLabelError = response.statusText;\r\n $scope.trackingTexts.inputLabel = $scope.trackingTexts.anotherTitle;\r\n $rootScope.trackLoader = false;\r\n vcRecaptchaService.reload($scope.widgetId);\r\n });\r\n\r\n } else {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.trackingTexts.recaptchaText)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n }\r\n };\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('filtersMenuController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$route\", \"$location\", \"$window\", \"$cookies\", \"$routeParams\", \"$mdToast\", \"$timeout\", \"Items\", \"Collections\", \"recaptchaKey\", filtersMenuController]);\r\n\r\nfunction filtersMenuController($scope, $rootScope, $localStorage, $route, $location, $window, $cookies, $routeParams, $mdToast, $timeout, Items, Collections, recaptchaKey) {\r\n\r\n /** Variables and functions for Collections Submenu **/\r\n $scope.categories = null;\r\n $scope.styles = null;\r\n $scope.shapes = null;\r\n $scope.resultsChanged = '';\r\n $scope.appliedFilters = [];\r\n $scope.collections = [];\r\n $scope.categories = [];\r\n $scope.styles = [];\r\n $scope.shapes = [];\r\n $scope.selectedCollections = null;\r\n $scope.selectedCategories = [];\r\n $scope.selectedStyles = [];\r\n $scope.selectedShapes = [];\r\n $scope.filters = [];\r\n $scope.collectionsArray = [];\r\n $scope.categoriesArray = [];\r\n $scope.stylesArray = [];\r\n $scope.shapesArray = [];\r\n $scope.filtersChanged = false;\r\n $scope.countCollections = 0;\r\n $scope.countCategories = 0;\r\n $scope.countStyles = 0;\r\n $scope.countShapes = 0;\r\n $scope.backupFilters = null;\r\n\r\n var collectionsSearch = [],\r\n categoriesSearch = [],\r\n stylesSearch = [],\r\n shapesSearch = [];\r\n\r\n $scope.$on('$routeChangeStart', function ($ev, current, previous) {\r\n $scope.closeCollectionSubmenu();\r\n });\r\n\r\n (function getTexts() {\r\n $scope.filtersTexts = $localStorage.siteTexts.filtersMenu;\r\n })();\r\n\r\n $scope.closeCollectionSubmenu = function () {\r\n if ($window.innerWidth < 1024) {\r\n $scope.showCollections = false;\r\n $scope.showCat = false;\r\n $scope.showStyle = false;\r\n $scope.showShape = false;\r\n } else {\r\n $scope.showCollections = true;\r\n $scope.showCat = true;\r\n $scope.showStyle = true;\r\n $scope.showShape = true;\r\n }\r\n Collections.closeCollectionSubmenu();\r\n var urlFilters = checkFilters();\r\n\r\n $scope.selectedCollections = urlFilters.collection.items;\r\n $scope.countCollections = urlFilters.collection.count;\r\n\r\n $scope.selectedCategories = urlFilters.categories.items;\r\n $scope.countCategories = urlFilters.categories.count;\r\n\r\n $scope.selectedStyles = urlFilters.styles.items;\r\n $scope.countStyles = urlFilters.styles.count;\r\n\r\n $scope.selectedShapes = urlFilters.shapes.items;\r\n $scope.countShapes = urlFilters.shapes.count;\r\n };\r\n\r\n $scope.applyFilters = function () {\r\n $scope.resultsChanged = '';\r\n Collections.closeCollectionSubmenu();\r\n if ($scope.filtersChanged) {\r\n $scope.items = [];\r\n $scope.itemsStart = 0;\r\n search($scope.selectedCollections, $scope.selectedCategories, $scope.selectedStyles, $scope.selectedShapes);\r\n }\r\n };\r\n\r\n $rootScope.openCollectionSubmenu = function () {\r\n Collections.openCollectionSubmenu();\r\n };\r\n\r\n function setSearchUrls() {\r\n var urlSearch = $location.search();\r\n\r\n if (urlSearch.collections && urlSearch.collections != undefined)\r\n collectionsSearch = urlSearch.collections\r\n\r\n if (urlSearch.categories && urlSearch.categories != undefined)\r\n categoriesSearch = urlSearch.categories\r\n\r\n if (urlSearch.styles && urlSearch.styles != undefined)\r\n stylesSearch = urlSearch.styles\r\n\r\n if (urlSearch.shapes && urlSearch.shapes != undefined)\r\n shapesSearch = urlSearch.shapes\r\n\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"recaptcha_sitekey\": recaptchaKey,\r\n \"recaptcha_response_field\": \"000\",\r\n \"recaptcha_skip\": \"skiprecaptcha\"\r\n };\r\n\r\n var filters = {};\r\n\r\n Collections.getFilters(params)\r\n .then(function (data) {\r\n filters = data.data;\r\n\r\n $scope.selectedCollections = [];\r\n $scope.selectedCategories = [];\r\n $scope.selectedStyles = [];\r\n $scope.selectedShapes = [];\r\n $scope.collectionsArray = [];\r\n $scope.categoriesArray = [];\r\n $scope.stylesArray = [];\r\n $scope.shapesArray = [];\r\n\r\n $scope.collections = filters.collections;\r\n $scope.categories = filters.categories;\r\n $scope.styles = filters.styles;\r\n $scope.shapes = filters.shapes;\r\n\r\n for (var i = 0; i < $scope.collections.length; i++) {\r\n $scope.collectionsArray.push($scope.collections[i]);\r\n }\r\n\r\n if ($scope.categories.length > 0) {\r\n for (var i = 0; i < $scope.categories.length; i++) {\r\n $scope.categoriesArray.push($scope.categories[i]);\r\n }\r\n }\r\n\r\n if ($scope.styles.length > 0) {\r\n for (var i = 0; i < $scope.styles.length; i++) {\r\n $scope.stylesArray.push($scope.styles[i]);\r\n }\r\n }\r\n\r\n if ($scope.shapes.length > 0) {\r\n for (var i = 0; i < $scope.shapes.length; i++) {\r\n $scope.shapesArray.push($scope.shapes[i]);\r\n }\r\n }\r\n\r\n var urlFilters = checkFilters();\r\n\r\n $scope.selectedCollections = urlFilters.collection.items;\r\n $scope.countCollections = urlFilters.collection.count;\r\n\r\n $scope.selectedCategories = urlFilters.categories.items;\r\n $scope.countCategories = urlFilters.categories.count;\r\n\r\n $scope.selectedStyles = urlFilters.styles.items;\r\n $scope.countStyles = urlFilters.styles.count;\r\n\r\n $scope.selectedShapes = urlFilters.shapes.items;\r\n $scope.countShapes = urlFilters.shapes.count;\r\n\r\n if (urlFilters.count > 0) {\r\n angular.element('.number')[0].innerText = \"(\" + urlFilters.count + \")\";\r\n }\r\n\r\n }, function (data) {\r\n console.log(data.statusText);\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(data.statusText)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n });\r\n\r\n };\r\n setSearchUrls();\r\n\r\n function checkFilters() {\r\n var collections = [],\r\n categories = [],\r\n styles = [],\r\n shapes = [],\r\n countCollections = 0,\r\n countCategories = 0,\r\n countStyles = 0,\r\n countShapes = 0;\r\n\r\n if ($routeParams.collection != undefined) {\r\n $.each($scope.collections, function (ind, ele) {\r\n if (ele.id == $routeParams.collection) {\r\n collections.push(ele.name);\r\n countCollections++;\r\n }\r\n });\r\n } else if ($routeParams.collections != undefined) {\r\n var params = $routeParams.collections.split('-');\r\n\r\n $.each(params, function (i, e) {\r\n $.each($scope.collections, function (ind, ele) {\r\n if (ele.id == e) {\r\n collections.push(ele.name);\r\n countCollections++;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if ($routeParams.category != undefined) {\r\n var params = $routeParams.category.split('-');\r\n $.each($scope.categories, function (ind, ele) {\r\n $.each(params, function (i, e) {\r\n if (ele.id == e) {\r\n categories.push(ele.name);\r\n countCategories++;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if ($routeParams.style != undefined) {\r\n var params = $routeParams.style.split('-');\r\n\r\n $.each($scope.styles, function (ind, ele) {\r\n $.each(params, function (i, e) {\r\n if (ele.id == e) {\r\n styles.push(ele.name);\r\n countStyles++;\r\n }\r\n });\r\n });\r\n }\r\n\r\n if ($routeParams.shape != undefined) {\r\n var params = $routeParams.shape.split('-');\r\n\r\n $.each($scope.shapes, function (ind, ele) {\r\n $.each(params, function (i, e) {\r\n if (ele.id == e) {\r\n shapes.push(ele.name);\r\n countShapes++;\r\n }\r\n });\r\n });\r\n }\r\n\r\n var data = {\r\n \"collection\": {\r\n \"items\": collections,\r\n \"count\": countCollections,\r\n },\r\n \"categories\": {\r\n \"items\": categories,\r\n \"count\": countCategories,\r\n },\r\n \"styles\": {\r\n \"items\": styles,\r\n \"count\": countStyles,\r\n },\r\n \"shapes\": {\r\n \"items\": shapes,\r\n \"count\": countShapes,\r\n },\r\n \"count\": countCollections + countCategories + countStyles + countShapes\r\n }\r\n\r\n return data;\r\n };\r\n\r\n $scope.toggle = function (item, list, filter) {\r\n $scope.filtersChanged = true;\r\n var idx;\r\n\r\n if (filter == 'collection') {\r\n idx = $scope.selectedCollections.indexOf(item);\r\n if (idx > -1) {\r\n $scope.selectedCollections.splice(idx, 1);\r\n $scope.countCollections--;\r\n } else {\r\n $scope.selectedCollections.push(item);\r\n $scope.countCollections++;\r\n }\r\n }\r\n\r\n if (filter == 'category') {\r\n idx = $scope.selectedCategories.indexOf(item);\r\n if (idx > -1) {\r\n $scope.selectedCategories.splice(idx, 1);\r\n $scope.countCategories--;\r\n } else {\r\n $scope.selectedCategories.push(item);\r\n $scope.countCategories++;\r\n }\r\n }\r\n\r\n if (filter == 'style') {\r\n idx = $scope.selectedStyles.indexOf(item);\r\n if (idx > -1) {\r\n $scope.selectedStyles.splice(idx, 1);\r\n $scope.countStyles--;\r\n } else {\r\n $scope.selectedStyles.push(item);\r\n $scope.countStyles++;\r\n }\r\n }\r\n\r\n if (filter == 'shape') {\r\n idx = $scope.selectedShapes.indexOf(item);\r\n if (idx > -1) {\r\n $scope.selectedShapes.splice(idx, 1);\r\n $scope.countShapes--;\r\n } else {\r\n $scope.selectedShapes.push(item);\r\n $scope.countShapes++;\r\n }\r\n }\r\n\r\n };\r\n\r\n $scope.exists = function (item, list) {\r\n return list.indexOf(item) > -1;\r\n };\r\n\r\n $scope.toggleAll = function (filter) {\r\n $scope.filtersChanged = true;\r\n\r\n if (filter == 'collections') {\r\n if ($scope.selectedCollections.length >= 0) {\r\n if ($scope.selectedCollections.length < $scope.collectionsArray.length) {\r\n var tempArray = [];\r\n $.each($scope.collections, function (i, e) {\r\n tempArray.push(e.name);\r\n });\r\n $scope.selectedCollections = tempArray;\r\n } else {\r\n $scope.selectedCollections = [];\r\n }\r\n }\r\n }\r\n\r\n if (filter == 'categories') {\r\n if ($scope.selectedCategories.length >= 0) {\r\n if ($scope.selectedCategories.length < $scope.categoriesArray.length) {\r\n var tempArray = [];\r\n $.each($scope.categories, function (i, e) {\r\n tempArray.push(e.name);\r\n });\r\n $scope.selectedCategories = tempArray;\r\n } else {\r\n $scope.selectedCategories = [];\r\n }\r\n }\r\n }\r\n\r\n if (filter == 'styles') {\r\n if ($scope.styles.length >= 0) {\r\n if ($scope.selectedStyles.length < $scope.stylesArray.length) {\r\n var tempArray = [];\r\n $.each($scope.styles, function (i, e) {\r\n tempArray.push(e.name);\r\n });\r\n $scope.selectedStyles = tempArray;\r\n } else {\r\n $scope.selectedStyles = [];\r\n }\r\n }\r\n }\r\n\r\n if (filter == 'shapes') {\r\n if ($scope.selectedShapes.length >= 0) {\r\n if ($scope.selectedShapes.length < $scope.shapesArray.length) {\r\n var tempArray = [];\r\n $.each($scope.shapes, function (i, e) {\r\n tempArray.push(e.name);\r\n });\r\n $scope.selectedShapes = tempArray;\r\n } else {\r\n $scope.selectedShapes = [];\r\n }\r\n }\r\n }\r\n\r\n };\r\n\r\n $scope.filterChanged = function () {\r\n $scope.filtersChanged = true;\r\n };\r\n\r\n function search(collection, category, styles, shapes) {\r\n var urlSearch = '';\r\n var collectionSearch = '';\r\n var categorySearch = '';\r\n var shapeSearch = '';\r\n var stylesSearch = '';\r\n var contCollections = 0;\r\n\r\n if (collection.length > 0) {\r\n for (var index = 0; index < collection.length; index++) {\r\n var collectionSlug = getSlug(collection[index], 'collection');\r\n if (collectionSearch == '') {\r\n collectionSearch = collectionSearch + collectionSlug;\r\n } else {\r\n collectionSearch = collectionSearch + '-' + collectionSlug;\r\n }\r\n contCollections++;\r\n }\r\n\r\n if (contCollections === 1) {\r\n collectionSearch = 'collections/' + collectionSearch;\r\n } else {\r\n collectionSearch = 'collections=' + collectionSearch;\r\n }\r\n }\r\n\r\n if (category.length > 0) {\r\n for (var index = 0; index < category.length; index++) {\r\n var categorySlug = getSlug(category[index], 'category');\r\n if (categorySearch == '') {\r\n categorySearch = categorySearch + categorySlug;\r\n } else {\r\n categorySearch = categorySearch + '-' + categorySlug;\r\n }\r\n }\r\n categorySearch = 'category=' + categorySearch;\r\n }\r\n\r\n if (styles.length > 0) {\r\n for (var index = 0; index < styles.length; index++) {\r\n var styleSlug = getSlug(styles[index], 'style');\r\n if (stylesSearch == '') {\r\n stylesSearch = stylesSearch + styleSlug;\r\n } else {\r\n stylesSearch = stylesSearch + '-' + styleSlug;\r\n }\r\n }\r\n stylesSearch = 'style=' + stylesSearch;\r\n }\r\n\r\n if (shapes.length > 0) {\r\n for (var index = 0; index < shapes.length; index++) {\r\n var shapeSlug = getSlug(shapes[index], 'shape');\r\n if (shapeSearch == '') {\r\n shapeSearch = shapeSearch + shapeSlug;\r\n } else {\r\n shapeSearch = shapeSearch + '-' + shapeSlug;\r\n }\r\n }\r\n shapeSearch = 'shape=' + shapeSearch;\r\n }\r\n\r\n var urlCollectionID = '';\r\n\r\n if (collectionSearch.length > 0) {\r\n if (contCollections === 1) {\r\n urlCollectionID = '/' + collectionSearch;\r\n } else {\r\n urlSearch = urlSearch + collectionSearch + '&';\r\n }\r\n }\r\n\r\n if (categorySearch.length > 0) {\r\n urlSearch = urlSearch + categorySearch + '&';\r\n }\r\n\r\n if (stylesSearch.length > 0) {\r\n urlSearch = urlSearch + stylesSearch + '&';\r\n }\r\n\r\n if (shapeSearch.length > 0) {\r\n urlSearch = urlSearch + shapeSearch;\r\n }\r\n\r\n if (urlSearch != '' || urlCollectionID != '') {\r\n if (contCollections !== 1) {\r\n urlSearch = '?' + urlSearch;\r\n } else {\r\n urlSearch = urlCollectionID + '?' + urlSearch;\r\n }\r\n }\r\n\r\n var lastString = urlSearch.charAt(urlSearch.length - 1);\r\n if (lastString == '&') {\r\n urlSearch = urlSearch.substring(0, urlSearch.length - 1);\r\n }\r\n\r\n var url = '';\r\n url = url + urlSearch;\r\n if (contCollections !== 1) {\r\n $window.location.href = 'collections' + url;\r\n } else {\r\n $window.location.href = url;\r\n }\r\n };\r\n\r\n function getSlug(name, filter) {\r\n var temp;\r\n if (filter == 'collection') {\r\n temp = $scope.collections;\r\n } else if (filter == 'category') {\r\n temp = $scope.categories;\r\n } else if (filter == 'style') {\r\n temp = $scope.styles;\r\n } else if (filter == 'shape') {\r\n temp = $scope.shapes;\r\n }\r\n\r\n var slug;\r\n\r\n $.each(temp, function (i, e) {\r\n if (e.name == name) {\r\n slug = e.id;\r\n }\r\n });\r\n\r\n return slug;\r\n };\r\n\r\n function showFilterItems() {\r\n if ($window.innerWidth <= 959) {\r\n hideAllFilters();\r\n } else {\r\n $timeout(function () {\r\n $scope.showCollections = true;\r\n $scope.showCat = true;\r\n $scope.showStyle = true;\r\n $scope.showShape = true;\r\n });\r\n }\r\n };\r\n\r\n function hideAllFilters() {\r\n $timeout(function () {\r\n $scope.showCollections = false;\r\n $scope.showCat = false;\r\n $scope.showStyle = false;\r\n $scope.showShape = false;\r\n });\r\n };\r\n\r\n showFilterItems();\r\n\r\n angular.element($window).bind('resize', function () {\r\n showFilterItems();\r\n });\r\n\r\n $scope.clearAllCheckbox = function () {\r\n $scope.resultsChanged = '';\r\n $scope.filtersChanged = true;\r\n $scope.selectedCollections = [];\r\n $scope.selectedCategories = [];\r\n $scope.selectedStyles = [];\r\n $scope.selectedShapes = [];\r\n $scope.countCollections = 0;\r\n $scope.countCategories = 0;\r\n $scope.countStyles = 0;\r\n $scope.countShapes = 0;\r\n\r\n /* search(undefined, $scope.selectedCategories, $scope.selectedStyles, $scope.selectedShapes); */\r\n\r\n };\r\n\r\n $scope.showFilter = function (item) {\r\n if ($window.innerWidth < 959) {\r\n if (item == 'collection') {\r\n $scope.showCollections = !$scope.showCollections;\r\n } else if (item == 'category') {\r\n $scope.showCat = !$scope.showCat;\r\n } else if (item == 'style') {\r\n $scope.showStyle = !$scope.showStyle;\r\n } else if (item == 'shape') {\r\n $scope.showShape = !$scope.showShape;\r\n }\r\n }\r\n };\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('mainController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$location\", \"Dealers\", \"$window\", \"DiamondTracking\", \"vcRecaptchaService\", \"$mdToast\", \"Languages\", \"$cookies\", \"Collections\", \"$timeout\", \"coronaURL\", \"$sce\", \"recaptchaKey\", \"$interval\", mainController]);\r\n\r\nfunction mainController($scope, $rootScope, $localStorage, $location, Dealers, $window, DiamondTracking, vcRecaptchaService, $mdToast, Languages, $cookies, Collections, $timeout, coronaURL, $sce, recaptchaKey, $interval) {\r\n $scope.showLoader();\r\n\r\n $scope.$watch(function () {\r\n return $localStorage.siteTexts;\r\n }, function (newVal, oldVal) {\r\n getTexts();\r\n });\r\n\r\n $scope.goToContact = function (contact) {\r\n $window.open(contact, \"_blank\");\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n $rootScope.loadHomeDirective();\r\n }\r\n };\r\n\r\n $scope.$watch(function () {\r\n return $cookies.get(\"fullPageLoaded\");\r\n }, function (newVal, oldVal) {\r\n if (angular.isDefined(newVal)) {\r\n if (newVal == \"true\") {\r\n $rootScope.goToSection($cookies.get(\"scrollID\"));\r\n }\r\n }\r\n });\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n if ($('header').hasClass('absolute')) {\r\n $('header').removeClass('absolute');\r\n }\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n $rootScope.loadHomeDirective();\r\n } else {\r\n $rootScope.loadHomeDirective();\r\n }\r\n });\r\n\r\n $rootScope.scrollTo = function (url) {\r\n\r\n $timeout(function () {\r\n\r\n var offset = 0;\r\n var interval;\r\n\r\n function doScroll(offset) {\r\n $('html, body').animate({\r\n scrollTop: offset\r\n }, 0, function () {\r\n if ($('html, body').hasClass('no-overflow')) {\r\n $('html, body').removeClass('no-overflow');\r\n }\r\n $cookies.put(\"scrollID\", \"\");\r\n });\r\n }\r\n\r\n function stopWatcher() {\r\n $interval.cancel(interval);\r\n }\r\n\r\n var initWatcher = function () {\r\n stopWatcher();\r\n\r\n interval = $interval(function () {\r\n if ($('#' + url)[0].offsetTop != window.pageYOffset) {\r\n offset = $('#' + url)[0].offsetTop;\r\n doScroll(offset);\r\n } else {\r\n stopWatcher();\r\n $scope.hideLoader();\r\n }\r\n }, 500);\r\n }();\r\n\r\n });\r\n\r\n };\r\n\r\n $scope.coronaURL = coronaURL;\r\n $scope.recaptchaKey = recaptchaKey;\r\n\r\n $rootScope.removeStyle = function () {\r\n $('header').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.stripes').removeClass('light light-rgba dark-rgba dark light-transparent dark-transparent');\r\n $('.arrow').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n $('.languages').removeClass('light light-rgba dark-rgba dark background-light light-transparent dark-transparent');\r\n };\r\n\r\n function getTexts() {\r\n\r\n $scope.texts = $localStorage.siteTexts.home;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n $scope.localorTexts = $localStorage.siteTexts.locator;\r\n\r\n /** Functions to get the date **/\r\n var weekday = $scope.localorTexts.daysOfWeek;\r\n var d = new Date();\r\n $scope.day = weekday[d.getDay()];\r\n var y = d.getFullYear();\r\n $rootScope.year = y;\r\n\r\n $scope.trackingTexts = $localStorage.siteTexts.tracking;\r\n $scope.trackingTexts.inputLabelError = '';\r\n $scope.trackingTexts.inputLabel = $scope.trackingTexts.trackTitle;\r\n\r\n $scope.PrincipalSlickConfig = {\r\n autoplay: true,\r\n lazyLoad: 'ondemand',\r\n arrows: false,\r\n infinite: true,\r\n dots: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n };\r\n\r\n if ($cookies.get(\"siteLanguage\") == \"en-ca\" || $cookies.get(\"siteLanguage\") == \"en-us\") {\r\n $scope.recaptchaLanguage = \"en\";\r\n } else {\r\n $scope.recaptchaLanguage = \"fr-CA\";\r\n }\r\n };\r\n\r\n /** Main controller variables **/\r\n $rootScope.ifBrowserSupportLocation = false;\r\n\r\n $rootScope.dealerLoader = false;\r\n $rootScope.trackLoader = false;\r\n $scope.response = null;\r\n $scope.widgetId = null;\r\n $scope.diamondInfo = \"\";\r\n $scope.dealerStatusText = \"\";\r\n $scope.trackingNumber = \"\";\r\n $scope.dealers = [];\r\n $scope.countrySelect = \"canada\";\r\n $scope.postalCode = \"\";\r\n $scope.locatorPartial = 1;\r\n $scope.dealerLogo = '';\r\n $scope.RecaptchaResponse = '';\r\n\r\n $scope.diamondPartial = '/partials/trackingForm.html';\r\n\r\n function getCollections() {\r\n $timeout(function () {\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n\r\n Collections.getCollections(params)\r\n .then(function (params) {\r\n successResponse(params.data);\r\n }, function (params) {\r\n console.log(params);\r\n });\r\n\r\n function successResponse(response) {\r\n $scope.items = response.collections;\r\n\r\n $scope.CollectionsSlickConfig = {\r\n enabled: true,\r\n speed: 500,\r\n autoplay: true,\r\n draggable: true,\r\n arrows: false,\r\n infinite: true,\r\n dots: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n initOnload: true\r\n };\r\n\r\n if (angular.isUndefined($cookies.get(\"scrollID\")) || $cookies.get(\"scrollID\") == \"\") {\r\n $scope.hideLoader();\r\n }\r\n\r\n if ($window.innerWidth <= 767 && !$('html').hasClass('fp-enabled')) {\r\n $timeout(function () {\r\n $rootScope.$on('loading:finish', function () {\r\n if ($cookies.get(\"scrollID\") != undefined && $cookies.get(\"scrollID\") != \"\") {\r\n $rootScope.scrollTo($cookies.get(\"scrollID\"));\r\n }\r\n });\r\n });\r\n }\r\n }\r\n });\r\n };\r\n getCollections();\r\n\r\n /** Validation for the collection carousel, on mobile phones **/\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n if ($window.innerWidth <= 600) {\r\n $scope.nItems = 2;\r\n } else {\r\n $scope.nItems = 4;\r\n }\r\n } else {\r\n $scope.nItems = 4;\r\n }\r\n\r\n function getCategories() {\r\n console.log(recaptchaKey);\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"recaptcha_sitekey\": recaptchaKey,\r\n \"recaptcha_response_field\": \"000\",\r\n \"recaptcha_skip\": \"skiprecaptcha\"\r\n };\r\n console.log(params);\r\n\r\n var filters = {};\r\n\r\n Collections.getFilters(params)\r\n .then(function (data) {\r\n filters = data.data;\r\n var categories = filters.categories;\r\n var url = '/collections?category=';\r\n for (var index = 0; index < categories.length; index++) {\r\n if (categories[index].name == 'Engagement') {\r\n if (index <= 0) {\r\n url = url + categories[index].id;\r\n } else {\r\n url = url + ',' + categories[index].id;\r\n }\r\n }\r\n }\r\n $scope.engagementURL = url;\r\n });\r\n };\r\n\r\n /**Validations for the repcatcha**/\r\n $scope.setResponse = function (response, trackingNumber) {\r\n $scope.response = response;\r\n $scope.sendTrackingNumber(null, trackingNumber, response);\r\n };\r\n\r\n $scope.setWidgetId = function (widgetId) {\r\n $scope.widgetId = widgetId;\r\n };\r\n\r\n $scope.cbExpiration = function () {\r\n vcRecaptchaService.reload($scope.widgetId);\r\n $scope.response = null;\r\n };\r\n\r\n /**Function to search for a diamond**/\r\n $scope.sendTrackingNumber = function (ev, trackingNumber, reCaptchaResponse) {\r\n\r\n if (trackingNumber.length <= 0 || trackingNumber == \"\") {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.trackingTexts.enterNumber)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n var captchaResponse = vcRecaptchaService.getResponse($scope.widgetId);\r\n\r\n if ($window.innerWidth < 768) {\r\n var greyScreen = document.createElement('div');\r\n greyScreen.id = \"greyScreen\";\r\n angular.element('#tracking form').prepend(greyScreen);\r\n }\r\n\r\n if (captchaResponse != '') {\r\n\r\n vcRecaptchaService.reload($scope.widgetId);\r\n\r\n $rootScope.trackLoader = true;\r\n\r\n console.log(recaptchaKey);\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"id\": trackingNumber,\r\n \"recaptcha_sitekey\": recaptchaKey,\r\n \"recaptcha_response_field\": $scope.response\r\n };\r\n console.log(params);\r\n\r\n DiamondTracking.sendNumber(params)\r\n .then(function successCallback(response) {\r\n $scope.trackingTexts.inputLabelError = \"\";\r\n $scope.trackingTexts.inputLabel = $scope.trackingTexts.anotherTitle;\r\n $scope.diamondInfo = response.data;\r\n $rootScope.trackLoader = false;\r\n $scope.diamondPartial = '/partials/trackingResult.html';\r\n\r\n vcRecaptchaService.reload($scope.widgetId);\r\n\r\n if ($window.innerWidth < 768) {\r\n angular.element(\"#greyScreen\").remove();\r\n $timeout(function () {\r\n $('html, body').animate({\r\n scrollTop: angular.element('#tracking')[0].offsetTop\r\n }, 0);\r\n });\r\n }\r\n }, function errorCallback(response) {\r\n angular.element('#greyScreen').remove();\r\n $scope.trackingTexts.inputLabelError = response.statusText;\r\n $scope.trackingTexts.inputLabel = $scope.trackingTexts.anotherTitle;\r\n $rootScope.trackLoader = false;\r\n vcRecaptchaService.reload($scope.widgetId);\r\n });\r\n\r\n } else {\r\n\r\n if ($window.innerWidth < 768) {\r\n angular.element('#greyScreen').remove();\r\n $timeout(function () {\r\n $('html, body').animate({\r\n scrollTop: angular.element('#tracking')[0].offsetTop\r\n }, 0);\r\n });\r\n }\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.trackingTexts.recaptchaText)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n }\r\n };\r\n\r\n /** Function to select country **/\r\n $scope.countrySelected = function (country) {\r\n $scope.postalCode = \"\";\r\n $scope.countrySelect = country;\r\n $rootScope.centerByCountry(country);\r\n };\r\n\r\n /** Search functions for dealers **/\r\n $rootScope.searchZipCode = function (zipcode) {\r\n\r\n var pattern = new RegExp(\"^\\s*([0-9a-zA-Z? ,\\/]*)\\s*$\");\r\n\r\n if (!pattern.test(zipcode)) {\r\n $scope.dealerStatusText = $scope.localorTexts.regex;\r\n return false;\r\n }\r\n\r\n if ($scope.countrySelect != 'ireland') {\r\n if (zipcode == '') {\r\n $scope.dealerStatusText = $scope.localorTexts.enterZIP;\r\n return false;\r\n }\r\n var address = $scope.countrySelect + ' ' + zipcode;\r\n\r\n } else {\r\n\r\n if (zipcode == '') {\r\n var address = $scope.countrySelect;\r\n }\r\n var address = $scope.countrySelect + ' ' + zipcode;\r\n\r\n }\r\n\r\n $rootScope.dealerLoader = true;\r\n $scope.postalCode = zipcode;\r\n $scope.city = zipcode;\r\n\r\n $rootScope.userSelection = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"latitude\": '',\r\n \"longitude\": ''\r\n };\r\n\r\n $rootScope.dealerLoader = false;\r\n\r\n var address = $scope.countrySelect + ' ' + zipcode;\r\n\r\n var geocoder = new google.maps.Geocoder();\r\n geocoder.geocode({\r\n 'address': address\r\n }, function (results, status) {\r\n\r\n if (status == google.maps.GeocoderStatus.OK) {\r\n geocodeSuccess(results);\r\n } else {\r\n geocodeError(status);\r\n }\r\n });\r\n\r\n function geocodeSuccess(results) {\r\n $rootScope.userSelection.latitude = results[0].geometry.location.lat();\r\n $rootScope.userSelection.longitude = results[0].geometry.location.lng();\r\n $scope.dealerStatusText = '';\r\n $rootScope.getClosestDealersFromZipCode($rootScope.userSelection, results[0].formatted_address);\r\n }\r\n\r\n function geocodeError(status) {\r\n $rootScope.dealerLoader = false;\r\n\r\n if (status == \"ZERO_RESULTS\") {\r\n $scope.dealerStatusText = $scope.localorTexts.zeroResults;\r\n } else if (status == \"OVER_QUERY_LIMIT\" || status == \"UNKNOWN_ERROR\" || status == \"ERROR\") {\r\n $scope.dealerStatusText = $scope.localorTexts.overQuota;\r\n } else if (status == \"REQUEST_DENIED\") {\r\n $scope.dealerStatusText = $scope.localorTexts.requestDenied;\r\n } else if (status == \"INVALID_REQUEST\") {\r\n $scope.dealerStatusText = $scope.localorTexts.requestInvalid;\r\n } else {\r\n $scope.dealerStatusText = $scope.localorTexts.overQuota;\r\n }\r\n }\r\n\r\n };\r\n\r\n $rootScope.getClosestDealersFromZipCode = function (params, city) {\r\n\r\n $rootScope.resultsZipCode = city;\r\n $scope.dealers = [];\r\n\r\n Dealers.sendData(params)\r\n .then(function successCallback(response) {\r\n $scope.locatorPartial = 2;\r\n $scope.dealers = response.data.dealers;\r\n $scope.hoursTitle = response.data.hoursTitle;\r\n $scope.paymentsTitle = response.data.paymentsTitle;\r\n $scope.servicesTitle = response.data.servicesTitle;\r\n\r\n $rootScope.setMarker($scope.dealers);\r\n $scope.viewSearch = false;\r\n }, function errorCallback(response) {\r\n $scope.dealerStatusText = response.statusText;\r\n });\r\n\r\n $rootScope.dealerLoader = false;\r\n\r\n };\r\n\r\n $rootScope.cleanError = function () {\r\n if ($scope.dealerStatusText != '') {\r\n $scope.dealerStatusText = \"\";\r\n $scope.postalCode = \"\";\r\n $scope.city = \"\";\r\n $rootScope.rebuildToUserCoords();\r\n }\r\n };\r\n\r\n /** Function \"Back\" of dealer locator **/\r\n $scope.back = function () {\r\n $scope.postalCode = \"\";\r\n if ($scope.locatorPartial == 3) {\r\n $scope.locatorPartial = 2;\r\n $scope.dealerDetail = {};\r\n $rootScope.backToListOfDealers();\r\n } else if ($scope.locatorPartial == 2) {\r\n $scope.locatorPartial = 1;\r\n $scope.dealers = {};\r\n\r\n if ($scope.locatorTexts != undefined) {\r\n $scope.locatorTexts.hoursTitle = \"\";\r\n $scope.locatorTexts.paymentsTitle = \"\";\r\n $scope.locatorTexts.servicesTitle = \"\";\r\n }\r\n\r\n $scope.dealerStatusText = \"\";\r\n $rootScope.rebuildToUserCoords();\r\n }\r\n };\r\n\r\n /** Function to use your current location **/\r\n $scope.currentLocation = function () {\r\n $rootScope.centerByLocation();\r\n };\r\n\r\n /**Function to see dealer detail**/\r\n $scope.showDealerDetail = function (dealer) {\r\n\r\n $scope.locatorPartial = 3;\r\n $scope.dealerDetail = dealer;\r\n if (dealer.logo != undefined) {\r\n $scope.dealerLogo = coronaURL + dealer.logo;\r\n }\r\n\r\n var coords = {\r\n lat: dealer.latitude,\r\n lng: dealer.longitude\r\n }\r\n\r\n $rootScope.zoomToDealer(dealer.ID);\r\n };\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('minesController', [\"$scope\", \"$localStorage\", \"$routeParams\", \"$sce\", minesController]);\r\n\r\nfunction minesController($scope, $localStorage, $routeParams, $sce) {\r\n\r\n $scope.showLoader();\r\n\r\n (function getTexts() {\r\n $scope.mine = $routeParams.mine;\r\n\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n if ($scope.mine == \"ekati\") {\r\n $scope.texts = $localStorage.siteTexts.ekati;\r\n } else if ($scope.mine == \"diavik\") {\r\n $scope.texts = $localStorage.siteTexts.diavik;\r\n } else if ($scope.mine == \"gahcho\") {\r\n $scope.texts = $localStorage.siteTexts.gahcho;\r\n } else if ($scope.mine == \"renard\") {\r\n $scope.texts = $localStorage.siteTexts.renard;\r\n }\r\n\r\n })();\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('pieceDetailController', [\"$scope\", \"$rootScope\", \"$window\", \"$location\", \"$routeParams\", \"$localStorage\", \"$cookies\", \"$timeout\", \"$mdDialog\", \"$mdToast\", \"coronaURL\", \"Items\", \"Collections\", \"hdImage\", \"$sce\", pieceDetailController]);\r\n\r\nfunction pieceDetailController($scope, $rootScope, $window, $location, $routeParams, $localStorage, $cookies, $timeout, $mdDialog, $mdToast, coronaURL, Items, Collections, hdImage, $sce) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').addClass('dark');\r\n $('header').addClass('absolute');\r\n $('.stripes').addClass('dark');\r\n $('.languages').addClass('dark');\r\n $('.logo-header').attr({\r\n 'src': '/images/maple-leaf-diamonds-logo-254x71.png'\r\n });\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function (e, next, current) {\r\n if (next.keys.length > 0) {\r\n if (next.keys[0].name != \"collection\" && next.keys[0].name != \"piece\") {\r\n delete $localStorage.itemsList;\r\n delete $localStorage.filters;\r\n }\r\n }\r\n angular.element($window).off('resize', function () {\r\n angular.noop();\r\n });\r\n if (angular.isDefined($cookies.get(\"selectedDealer\")) || $cookies.get(\"selectedDealer\") != \"\") {\r\n $cookies.put(\"selectedDealer\", \"\");\r\n }\r\n });\r\n\r\n $scope.coronaURL = coronaURL;\r\n $scope.currentURL = $location.absUrl();\r\n $scope.noResults = false;\r\n $scope.hidePreviousArrows = true;\r\n $scope.hideNextArrows = true;\r\n $scope.previousPiecePath = \"\";\r\n $scope.nextPiecePath = \"\";\r\n\r\n (function getTexts() {\r\n $scope.mine = $routeParams.mine;\r\n $scope.texts = $localStorage.siteTexts.item;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n })();\r\n\r\n $scope.pieceViews = [];\r\n $scope.actualSlideItem = [];\r\n\r\n function getItemDetails() {\r\n\r\n var params;\r\n\r\n if (angular.isUndefined($routeParams.collection)) {\r\n params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"id\": $routeParams.piece,\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n } else {\r\n params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"id\": $routeParams.piece,\r\n \"device\": $cookies.get(\"device\"),\r\n \"collectionId\": $routeParams.collection\r\n };\r\n }\r\n\r\n Items.getItemDetails(params)\r\n .then(function (response) {\r\n\r\n $scope.itemDetail = response.data;\r\n if (angular.isDefined($localStorage.itemsList)) {\r\n ifItemExist($scope.itemDetail);\r\n }\r\n\r\n var description = '';\r\n var oneVideo = false;\r\n\r\n if ($scope.itemDetail.description1 != undefined) {\r\n description += $scope.itemDetail.description1;\r\n }\r\n\r\n if ($scope.itemDetail.description2 != undefined) {\r\n description = ' ' + $scope.itemDetail.description2;\r\n }\r\n\r\n if ($scope.itemDetail.style != undefined) {\r\n description = ' ' + $scope.itemDetail.style;\r\n }\r\n\r\n if ($scope.itemDetail.cataloque != undefined) {\r\n description = ' ' + $scope.itemDetail.cataloque;\r\n }\r\n\r\n $rootScope.social = {\r\n url: $location.absUrl(),\r\n title: $scope.itemDetail.title1 + \" \" + $scope.itemDetail.description1 + \" \" + $scope.itemDetail.description2,\r\n description: description,\r\n image: coronaURL + $scope.itemDetail.image\r\n };\r\n\r\n if (response.data.video != undefined) {\r\n oneVideo = true;\r\n var temp = {\r\n id: 0,\r\n path: coronaURL + response.data.video.large,\r\n title: \"Video\",\r\n type: \"video\"\r\n };\r\n $scope.pieceViews.push(temp);\r\n }\r\n\r\n var tempImg = {\r\n id: $scope.pieceViews.length,\r\n path: coronaURL + response.data.image,\r\n title: \"Earrings\",\r\n type: \"image\"\r\n }\r\n\r\n $scope.pieceViews.push(tempImg);\r\n\r\n if (response.data.images != undefined) {\r\n for (var index = 0; index < response.data.images.length; index++) {\r\n var element = response.data.images[index];\r\n var cont = $scope.pieceViews.length;\r\n var temp = {\r\n id: cont,\r\n path: coronaURL + element.image,\r\n title: \"Earrings\",\r\n type: \"image\"\r\n };\r\n cont++;\r\n $scope.pieceViews.push(temp);\r\n }\r\n }\r\n\r\n $scope.principalSlickConfig = {\r\n enabled: true,\r\n autoplay: false,\r\n arrows: false,\r\n draggable: true,\r\n infinite: true,\r\n dots: false,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n initOnload: true,\r\n asNavFor: \"#slider-nav\",\r\n fade: true,\r\n event: {\r\n beforeChange: function (event, slick, currentSlide, nextSlide) {\r\n event.stopPropagation();\r\n if ($scope.pieceViews[nextSlide].type == \"video\") {\r\n currentSlide -= 1;\r\n var videoId = \"theVideo\" + currentSlide;\r\n var myVideo = document.getElementById(videoId);\r\n if (myVideo.tagName === \"VIDEO\") {\r\n myVideo.pause();\r\n }\r\n }\r\n },\r\n afterChange: function (event, slick, currentSlide, nextSlide) {\r\n event.stopPropagation();\r\n if ($scope.pieceViews[currentSlide].type == \"video\") {\r\n var videoId = \"theVideo\" + currentSlide;\r\n var myVideo = document.getElementById(videoId);\r\n if (myVideo.tagName === \"VIDEO\") {\r\n myVideo.play();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n var slidesNumber = 9,\r\n eneableArrows = true,\r\n infiniteSlider = true;\r\n $scope.actualSlideItem = {};\r\n\r\n function verifyScreenSize() {\r\n if ($window.innerWidth == 768) {\r\n slidesNumber = 7;\r\n eneableArrows = false;\r\n } else if ($window.innerWidth > 767 && $window.innerWidth <= 992) {\r\n slidesNumber = 7;\r\n eneableArrows = false;\r\n } else if ($window.innerWidth > 992 && $window.innerWidth <= 1024) {\r\n slidesNumber = 7;\r\n eneableArrows = false;\r\n } else if ($window.innerWidth <= 767) {\r\n slidesNumber = 7;\r\n eneableArrows = false;\r\n infiniteSlider = false;\r\n }\r\n };\r\n verifyScreenSize();\r\n\r\n $scope.thumbnailSlickConfig = {\r\n enabled: true,\r\n autoplay: false,\r\n draggable: true,\r\n arrows: eneableArrows,\r\n infinite: infiniteSlider,\r\n dots: false,\r\n slidesToShow: slidesNumber,\r\n initOnload: true,\r\n asNavFor: \"#slidePieceDetail\",\r\n focusOnSelect: true,\r\n method: {},\r\n event: {\r\n init: function (slick) {\r\n $scope.actualSlideItem = $scope.pieceViews[0];\r\n\r\n if ($scope.pieceViews.length > 0) {\r\n if ($scope.pieceViews[0].type == \"video\") {\r\n var videoId = \"theVideo\" + 0;\r\n var myVideo = document.getElementById(videoId);\r\n\r\n myVideo.play();\r\n\r\n }\r\n }\r\n\r\n },\r\n beforeChange: function (event, slick, currentSlide, nextSlide) {\r\n if ($scope.pieceViews[nextSlide].type == \"video\") {\r\n var videoId = \"theVideo\" + currentSlide;\r\n var myVideo = document.getElementById(videoId);\r\n\r\n if (myVideo.paused) {\r\n myVideo.play();\r\n } else {\r\n myVideo.pause();\r\n }\r\n } else {\r\n var videoId = \"theVideo\" + currentSlide;\r\n var myVideo = document.getElementById(videoId);\r\n myVideo.pause();\r\n }\r\n },\r\n afterChange: function (event, slick, currentSlide, nextSlide) {\r\n $scope.actualSlideItem = $scope.pieceViews[currentSlide];\r\n if ($scope.pieceViews[currentSlide].type == \"video\") {\r\n var videoId = \"theVideo\" + currentSlide;\r\n var myVideo = document.getElementById(videoId);\r\n if (myVideo.paused) {\r\n myVideo.play();\r\n } else {\r\n myVideo.pause();\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n angular.element($window).bind('resize', function () {\r\n verifyScreenSize();\r\n });\r\n\r\n }, function (response) {\r\n $scope.noResults = true;\r\n console.log(response);\r\n });\r\n };\r\n getItemDetails();\r\n\r\n function ifItemExist(currentPiece) {\r\n var items = $localStorage.itemsList;\r\n\r\n for (var index = 0; index < items.length; index++) {\r\n var element = items[index];\r\n if (currentPiece.id == element.id && currentPiece.collectionId == element.collectionId) {\r\n previousNextItems(currentPiece);\r\n return false;\r\n }\r\n }\r\n delete $localStorage.itemsList;\r\n delete $localStorage.filters;\r\n };\r\n\r\n $scope.showClon = false;\r\n $scope.clonItem = null\r\n\r\n $scope.setTempItem = function (piece) {\r\n if (!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n if (piece.type != \"video\") {\r\n var sliderHeight = $('#slidePieceDetail .slick-current').height();\r\n var sliderWidth = $('#slidePieceDetail .slick-current').width();\r\n\r\n $('.clonedItem').css({\r\n 'height': sliderHeight + 'px',\r\n 'width': sliderWidth + 'px'\r\n });\r\n $scope.clonItem = piece;\r\n $scope.showClon = true;\r\n }\r\n }\r\n };\r\n\r\n $scope.removeTempItem = function () {\r\n $scope.clonItem = null;\r\n $scope.showClon = false;\r\n };\r\n\r\n var url = $location.path().split('/collections/');\r\n $scope.currenPath = url[1];\r\n\r\n $scope.backToCollection = function () {\r\n if ($localStorage.urlFilters != \"\" && angular.isDefined($localStorage.urlFilters)) {\r\n var url = $localStorage.urlFilters;\r\n $localStorage.urlFilters = \"\";\r\n $window.location.href = url;\r\n } else {\r\n $window.location.href = '/collections';\r\n }\r\n };\r\n\r\n $scope.openPopupSendHint = function (ev) {\r\n if ($scope.actualSlideItem.type == \"video\") {\r\n var videoId = \"theVideo\" + $scope.actualSlideItem.id;\r\n var myVideo = document.getElementById(videoId);\r\n if (!myVideo.paused) {\r\n myVideo.pause();\r\n }\r\n }\r\n\r\n $mdDialog.show({\r\n controller: sendHintController,\r\n templateUrl: '/partials/sendHintTemplate.tmpl.html',\r\n parent: angular.element(document.body),\r\n targetEvent: ev,\r\n clickOutsideToClose: false,\r\n escapeToClose: false,\r\n locals: {\r\n texts: $scope.texts.sendHint,\r\n itemDetail: $scope.itemDetail,\r\n items: $scope.pieceViews,\r\n currentURL: $scope.currentURL,\r\n actualSlide: $scope.actualSlideItem\r\n }\r\n });\r\n };\r\n\r\n function sendHintController($scope, $mdDialog, itemDetail, items, currentURL, actualSlide, texts) {\r\n $scope.hintParams = {\r\n recipientName: '',\r\n recipientEmail: '',\r\n recipientPhone: '',\r\n name: '',\r\n email: '',\r\n phone: '',\r\n comments: ''\r\n };\r\n\r\n $scope.texts = texts;\r\n $scope.loader = false;\r\n $scope.itemDetail = itemDetail;\r\n $scope.currentURL = currentURL;\r\n $scope.item = items[1];\r\n $scope.year = new Date();\r\n $scope.year = $scope.year.getFullYear();\r\n $scope.imageUrl = coronaURL + itemDetail.image;\r\n\r\n $scope.cancelPopupHint = function () {\r\n if (actualSlide.type == \"video\") {\r\n var videoId = \"theVideo\" + actualSlide.id;\r\n var myVideo = document.getElementById(videoId);\r\n if (myVideo.paused) {\r\n myVideo.play();\r\n }\r\n }\r\n\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.sendHint = function (params) {\r\n\r\n if ($scope.hintParams.recipientName == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.recipientNameError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if ($scope.hintParams.recipientEmail == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.recipientEmailError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n var emailPattern = /^.+@.+\\..+$/;\r\n if (!emailPattern.test($scope.hintParams.recipientEmail)) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.recipientEmailWrongFormat)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if ($scope.hintParams.name == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.nameError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if ($scope.hintParams.email == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.emailError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if (!emailPattern.test($scope.hintParams.email)) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.emailWrongFormat)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n var sendParams = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"senderName\": params.name,\r\n \"senderPhone\": params.phone,\r\n \"senderEmail\": params.email,\r\n \"recipientName\": params.recipientName,\r\n \"recipientEmail\": params.recipientEmail,\r\n \"recipientPhone\": params.recipientPhone,\r\n \"comments\": params.comments,\r\n \"referenceType\": \"Item\",\r\n \"referenceId\": itemDetail.id,\r\n \"collectionId\": itemDetail.collectionId,\r\n \"referenceURL\": currentURL\r\n };\r\n\r\n $scope.loader = true;\r\n\r\n Items.sendHint(sendParams)\r\n .then(function (data) {\r\n $scope.loader = false;\r\n\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.succesMsg + params.recipientName)\r\n .toastClass('md-success')\r\n .position('bottom right')\r\n );\r\n $scope.cancelPopupHint();\r\n }, function (data) {\r\n $scope.loader = false;\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(data.statusText)\r\n .toastClass('md-warn')\r\n .position('bottom right')\r\n );\r\n });\r\n };\r\n };\r\n\r\n $scope.selectDealer = function () {\r\n $cookies.put(\"locatorPiece\", \"/collections/\" + $routeParams.collection + \"/\" + $routeParams.piece);\r\n $location.path('locator/');\r\n }\r\n\r\n if ($cookies.get(\"selectedDealer\") != \"\" && $cookies.get(\"selectedDealer\") != undefined) {\r\n $scope.$watch(function () {\r\n return $scope.itemDetail;\r\n }, function (newVal, oldVal) {\r\n if (angular.isDefined(newVal)) {\r\n $mdDialog.show({\r\n controller: moreInfoController,\r\n templateUrl: '/partials/moreInformation.tmpl.html',\r\n parent: angular.element(document.body),\r\n clickOutsideToClose: false,\r\n escapeToClose: false,\r\n locals: {\r\n dealerDetail: $cookies.get(\"selectedDealer\"),\r\n itemDetail: newVal,\r\n currentURL: $scope.currentURL\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n function moreInfoController($scope, $localStorage, $mdDialog, dealerDetail, itemDetail, currentURL) {\r\n\r\n $scope.moreInfoParams = {\r\n name: '',\r\n email: '',\r\n phone: '',\r\n comments: '',\r\n };\r\n\r\n $scope.texts = $localStorage.siteTexts.item.moreInfo;\r\n\r\n $scope.loader = false;\r\n\r\n $scope.cancelMoreInfo = function () {\r\n $cookies.put(\"selectedDealer\", \"\");\r\n $mdDialog.cancel();\r\n };\r\n\r\n $scope.askMoreInfo = function (params) {\r\n\r\n if (params.name == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.nameError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if (params.email == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.emailError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n var emailPattern = /^.+@.+\\..+$/;\r\n if (!emailPattern.test(params.email)) {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.emailWrongFormat)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n if (params.comments == '') {\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.commentsError)\r\n .position('bottom right')\r\n .toastClass('md-warn')\r\n );\r\n return false;\r\n }\r\n\r\n var sendParams = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"name\": params.name,\r\n \"phone\": params.phone,\r\n \"email\": params.email,\r\n \"dealerId\": dealerDetail,\r\n \"comments\": params.comments,\r\n \"referenceType\": \"Item\",\r\n \"referenceId\": itemDetail.id,\r\n \"collectionId\": itemDetail.collectionId,\r\n \"referenceURL\": currentURL\r\n };\r\n\r\n $scope.loader = true;\r\n\r\n Items.moreInfo(sendParams)\r\n .then(function (data) {\r\n $scope.loader = false;\r\n $cookies.put(\"selectedDealer\", \"\");\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent($scope.texts.succesMsg)\r\n .toastClass('md-success')\r\n .position('bottom right')\r\n );\r\n $scope.cancelMoreInfo();\r\n }, function (data) {\r\n $scope.loader = false;\r\n $cookies.put(\"selectedDealer\", \"\");\r\n $mdToast.show(\r\n $mdToast.simple()\r\n .textContent(data.statusText)\r\n .toastClass('md-warn')\r\n .position('bottom right')\r\n );\r\n });\r\n\r\n };\r\n\r\n }\r\n\r\n function previousNextItems(currentPiece) {\r\n var items = $localStorage.itemsList;\r\n var filters = $localStorage.filters;\r\n var next = null,\r\n previous = null;\r\n $scope.moreItems = [];\r\n\r\n for (var index = 0; index < items.length; index++) {\r\n var element = items[index];\r\n if (element.id == currentPiece.id && element.collectionId == currentPiece.collectionId) {\r\n if (index > 0) {\r\n previous = items[index - 1];\r\n $scope.hidePreviousArrows = false;\r\n }\r\n\r\n if (index == items.length - 1) {\r\n if (items.length >= 21) {\r\n\r\n moreItems(index + 1, filters);\r\n\r\n $scope.$watch(function () {\r\n return $scope.moreItems;\r\n }, function (newVal, oldVal) {\r\n if (newVal.length > 0) {\r\n next = newVal[0];\r\n for (var index = 0; index < newVal.length; index++) {\r\n items.push(newVal[index]);\r\n }\r\n $localStorage.itemsList = items;\r\n setPreviousNextArrow(previous, next)\r\n } else {\r\n $scope.hideNextArrows = true;\r\n }\r\n });\r\n }\r\n } else {\r\n next = items[index + 1];\r\n }\r\n setPreviousNextArrow(previous, next);\r\n break;\r\n }\r\n }\r\n\r\n };\r\n\r\n function moreItems(index, filters) {\r\n var params = {\r\n \"language\": $cookies.get(\"siteLanguage\"),\r\n \"filters\": filters,\r\n \"search\": \"\",\r\n \"record_start\": index + 1,\r\n \"record_count\": 21,\r\n \"device\": $cookies.get(\"device\")\r\n };\r\n\r\n Collections.getItems(params)\r\n .then(function (response) {\r\n $scope.moreItems = response.data.items;\r\n }, function (response) {\r\n console.log(response);\r\n });\r\n }\r\n\r\n function setPreviousNextArrow(previous, next) {\r\n $scope.previousPiecePath = \"\";\r\n $scope.nextPiecePath = \"\";\r\n\r\n if (angular.isUndefined($routeParams.collection)) {\r\n if (previous != null) {\r\n $scope.previousPiecePath = \"/piece/\" + previous.id;\r\n $scope.hidePreviousArrows = false;\r\n }\r\n if (next != null) {\r\n $scope.nextPiecePath = \"/piece/\" + next.id;\r\n $scope.hideNextArrows = false;\r\n }\r\n } else {\r\n if (previous != null) {\r\n $scope.previousPiecePath = \"/collections/\" + previous.collectionId + \"/\" + previous.id;\r\n $scope.hidePreviousArrows = false;\r\n }\r\n if (next != null) {\r\n $scope.nextPiecePath = \"/collections/\" + next.collectionId + \"/\" + next.id;\r\n $scope.hideNextArrows = false;\r\n }\r\n }\r\n }\r\n\r\n $scope.setArrowsOffset = function () {\r\n $timeout(function () {\r\n $scope.offset = (($window.innerWidth - angular.element('body')[0].clientWidth) / 2) + 10;\r\n });\r\n };\r\n $scope.setArrowsOffset();\r\n\r\n angular.element($window).bind('resize', function () {\r\n $scope.setArrowsOffset();\r\n });\r\n\r\n function hideDownloadVideo() {\r\n var isChrome = !!window.chrome && !!window.chrome.webstore;\r\n var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;\r\n\r\n if (isChrome || isOpera) {\r\n if (document.styleSheets) {\r\n var head = document.getElementsByTagName('head')[0];\r\n var styleSheet = document.createElement('style');\r\n styleSheet.innerHTML = 'video::-internal-media-controls-download-button { display: none; } video::-webkit-media-controls-enclosure { overflow: hidden; } video::-webkit-media-controls-panel { width: calc(100% + 30px) }';\r\n head.appendChild(styleSheet);\r\n }\r\n }\r\n }\r\n hideDownloadVideo();\r\n\r\n $scope.shareOverrideOGMeta = function (item) {\r\n if(checkLoginState()) {\r\n testAPI(itewm);\r\n } else {\r\n\r\n }\r\n }\r\n\r\n function statusChangeCallback(response) {\r\n // The response object is returned with a status field that lets the\r\n // app know the current login status of the person.\r\n // Full docs on the response object can be found in the documentation\r\n // for FB.getLoginStatus().\r\n if (response.status === 'connected') {\r\n // Logged into your app and Facebook.\r\n shareItem($scope.itemDetail);\r\n } else {\r\n FB.login(function(response) {\r\n shareItem($scope.itemDetail);\r\n // handle the response\r\n }, {scope: 'public_profile,email'});\r\n // The person is not logged into your app or we are unable to tell.\r\n // document.getElementById('status').innerHTML = 'Please log ' +\r\n // 'into this app.';\r\n }\r\n }\r\n\r\n // This function is called when someone finishes with the Login\r\n // Button. See the onlogin handler attached to it in the sample\r\n // code below.\r\n $scope.shareOverrideOGMeta = function(item) {\r\n FB.getLoginStatus(function (response) {\r\n statusChangeCallback(response);\r\n });\r\n }\r\n\r\n function shareItem(item) {\r\n var overrideLink = window.location.origin + \"/piece/\" + item.id;\r\n var overrideTitle = item.title1;\r\n var overrideDescription = item.description1 + \" \" + item.description2;\r\n var overrideImage = $scope.coronaURL + item.image;\r\n\r\n FB.ui({\r\n method: 'share_open_graph',\r\n action_type: 'og.shares',\r\n action_properties: JSON.stringify({\r\n object: {\r\n 'og:url': overrideLink,\r\n 'og:title': overrideTitle,\r\n 'og:description': overrideDescription,\r\n 'og:image': overrideImage\r\n }\r\n })\r\n },\r\n function (response) {\r\n console.log(response);\r\n });\r\n }\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('preciousMetalsController', [\"$scope\", \"$rootScope\", \"$localStorage\", \"$sce\", \"$timeout\", preciousMetalsController]);\r\n\r\nfunction preciousMetalsController($scope, $rootScope, $localStorage, $sce, $timeout) {\r\n\r\n $scope.showLoader();\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('.arrowBack').removeClass('none');\r\n angular.element('.phoneMenu').removeClass('open');\r\n if ($('header').hasClass('absolute')) {\r\n $('header').removeClass('absolute');\r\n }\r\n });\r\n\r\n $scope.$on('$routeChangeStart', function () {\r\n $rootScope.destroyDirective();\r\n $('.arrowBack').addClass('none');\r\n });\r\n\r\n (function getTexts() {\r\n\r\n $scope.texts = {\r\n \"title\": $localStorage.siteTexts.metals.title,\r\n \"gold\": {\r\n \"title\": $localStorage.siteTexts.metals.gold.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.metals.gold.description.paragraph1,\r\n \"paragraph2\": $sce.trustAsHtml($localStorage.siteTexts.metals.gold.description.paragraph2),\r\n \"paragraph3\": $localStorage.siteTexts.metals.gold.description.paragraph3\r\n }\r\n },\r\n \"karat\": {\r\n \"title\": $localStorage.siteTexts.metals.karat.title,\r\n \"description\": $sce.trustAsHtml($localStorage.siteTexts.metals.karat.description),\r\n \"list\": $localStorage.siteTexts.metals.karat.list\r\n },\r\n \"colours\": {\r\n \"title\": $localStorage.siteTexts.metals.colours.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.metals.colours.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.metals.colours.description.paragraph2\r\n }\r\n },\r\n \"pure\": {\r\n \"title\": $localStorage.siteTexts.metals.pure.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.metals.pure.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.metals.pure.description.paragraph2,\r\n \"paragraph3\": $localStorage.siteTexts.metals.pure.description.paragraph3\r\n }\r\n },\r\n \"platinum\": {\r\n \"title\": $localStorage.siteTexts.metals.platinum.title,\r\n \"description\": {\r\n \"paragraph1\": $localStorage.siteTexts.metals.platinum.description.paragraph1,\r\n \"paragraph2\": $localStorage.siteTexts.metals.platinum.description.paragraph2,\r\n \"paragraph3\": $localStorage.siteTexts.metals.platinum.description.paragraph3\r\n }\r\n }\r\n };\r\n\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n $timeout(function () {\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n $rootScope.loadAboutDirective();\r\n } else {\r\n $rootScope.loadAboutDirective();\r\n }\r\n });\r\n\r\n })();\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('privacyPolicyController', [\"$scope\", \"$sce\", \"$localStorage\", privacyPolicyController]);\r\n\r\nfunction privacyPolicyController($scope, $sce, $localStorage) {\r\n $scope.showLoader();\r\n\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').addClass('dark');\r\n });\r\n\r\n (function getTexts() {\r\n $scope.texts = $localStorage.siteTexts.privacyPolicy;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n })();\r\n\r\n}\r\n","angular.module('mapleLeafApp')\r\n .controller('termsConditionsController', [\"$scope\", \"$localStorage\", \"$sce\", termsConditionsController]);\r\n\r\nfunction termsConditionsController($scope, $localStorage, $sce) {\r\n $scope.showLoader();\r\n\r\n if ($(\"html\").hasClass('fp-enabled')) {\r\n $rootScope.destroyDirective();\r\n }\r\n\r\n $scope.$on('$viewContentLoaded', function () {\r\n $('header').addClass('dark');\r\n });\r\n\r\n (function getTexts() {\r\n $scope.texts = $localStorage.siteTexts.terms;\r\n $scope.footerTexts = {\r\n \"socials\": $localStorage.siteTexts.footer.socials,\r\n \"copyright\": $localStorage.siteTexts.footer.copyright,\r\n \"contact\": $localStorage.siteTexts.footer.contact,\r\n \"privacy\": $localStorage.siteTexts.footer.privacy,\r\n \"flashSite\": $localStorage.siteTexts.footer.flashSite,\r\n \"terms\": $sce.trustAsHtml($localStorage.siteTexts.footer.terms)\r\n };\r\n\r\n })();\r\n\r\n}\r\n","(function () {\r\n\r\n angular\r\n .module('mapleLeafApp', [\r\n 'ngAnimate',\r\n 'ngMaterial',\r\n 'ngRoute',\r\n 'ngStorage',\r\n 'ngCookies',\r\n 'ngRetina',\r\n 'vcRecaptcha',\r\n 'slickCarousel',\r\n '720kb.socialshare'\r\n ])\r\n .run([\"$rootScope\", \"$templateCache\", \"$location\", \"$cookies\", \"$window\", \"$timeout\", runConfig])\r\n .constant('coronaURL', 'https://services.coronacompany.com')\r\n .constant('recaptchaKey', '6LcWCBwUAAAAAM2xGtNGbvME8a2eJAMGvxfrcPGm')\r\n .config([\"$httpProvider\", \"$interpolateProvider\", headersConfig])\r\n .config([\"$mdThemingProvider\", \"$compileProvider\", angularThemeConfig]);\r\n\r\n function runConfig($rootScope, $templateCache, $location, $cookies, $window, $timeout) {\r\n /**\r\n So the function can apply properly it will have to comment Collections,\r\n Engagement and Abuot Us HTML in home.html partial\r\n **/\r\n\r\n /** Global variable for first version of the site **/\r\n $rootScope.firstVersion = false;\r\n\r\n /** Site Language **/\r\n if (angular.isUndefined($cookies.get(\"siteLanguage\"))) {\r\n $cookies.put(\"siteLanguage\", \"en-ca\");\r\n }\r\n\r\n /** Device **/\r\n var setDeviceCookie = function() {\r\n if ($window.innerWidth > 1024) {\r\n $cookies.put(\"device\", \"desktop\");\r\n } else if ($window.innerWidth >= 600 && $window.innerWidth < 1024) {\r\n $cookies.put(\"device\", \"tablet\");\r\n } else if ($window.innerWidth < 600) {\r\n $cookies.put(\"device\", \"phone\");\r\n }\r\n }();\r\n \r\n /** Fullpage Scroll ID **/\r\n $cookies.put(\"scrollID\", \"\");\r\n\r\n /** Remove all cache when init app **/\r\n $rootScope.$on('$viewContentLoaded', function () {\r\n $templateCache.removeAll();\r\n });\r\n\r\n window.onbeforeunload = function () {\r\n $cookies.put(\"urlFilters\", \"\");\r\n };\r\n\r\n /** Conf for the position of the toastaddapts to the maximum size of the page */\r\n angular.element(document).ready(function () {\r\n $timeout(function () {\r\n var bodyOffsetLeft = ($window.innerWidth - angular.element('body')[0].clientWidth) / 2;\r\n var offsetLinkHtml = document.createElement('style');\r\n offsetLinkHtml.innerHTML = 'md-toast{ right:' + bodyOffsetLeft + 'px !important } ';\r\n \r\n angular.element('head').append(offsetLinkHtml);\r\n });\r\n });\r\n\r\n $rootScope.$on('$routeChangeStart', function () {\r\n $('header nav > div a').removeClass('active');\r\n $('.phoneMenu a').removeClass('active');\r\n });\r\n\r\n }\r\n\r\n function headersConfig($httpProvider, $interpolateProvider) {\r\n $httpProvider.defaults.headers.common[\"X-Requested-With\"] = 'XMLHttpRequest';\r\n\r\n /* initialize get if not there */\r\n if (!$httpProvider.defaults.headers.get) {\r\n $httpProvider.defaults.headers.get = {};\r\n }\r\n\r\n /* Answer edited to include suggestions from comments\r\n because previous version of code introduced browser-related errors */\r\n\r\n /* disable IE ajax request caching */\r\n $httpProvider.defaults.headers.get['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';\r\n /* extra */\r\n $httpProvider.defaults.headers.get['Cache-Control'] = 'no-cache';\r\n $httpProvider.defaults.headers.get['Pragma'] = 'no-cache';\r\n }\r\n\r\n function angularThemeConfig($mdThemingProvider, $compileProvider) {\r\n\r\n // $compileProvider.commentDirectivesEnabled(false);\r\n // $compileProvider.cssClassDirectivesEnabled(false);\r\n\r\n /** Configuration of App palette color **/\r\n $mdThemingProvider.theme('default')\r\n .primaryPalette('red')\r\n .accentPalette('red');\r\n\r\n }\r\n\r\n})();","/*! angular-retina - v0.4.0 - 2016-12-15\n* https://github.com/jrief/angular-retina\n* Copyright (c) 2016 Jacob Rief; Licensed MIT */\n// Add support for Retina displays when using element attribute \"ng-src\".\n// This module overrides the built-in directive \"ng-src\" with one which\n// distinguishes between standard or high-resolution (Retina) displays.\n\n/** \n * \n * This directive was modified By grupo Gamma Peninsular S.A. de C.V.\n * So it fits to the necessities of Maple Leaf Diamonds Company\n * Apr 13th 2018\n*/\n(function (angular, undefined) {\n\tvar infix = '@2x', dataUrlRegex = /^data:([a-z]+\\/[a-z]+(;[a-z\\-]+\\=[a-z\\-]+)?)?(;base64)?,(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/, allowedImageTypesRegex = /(png|jp[e]?g)$/, fadeInWhenLoaded = false, loadErrorHandler = angular.noop;\n\tvar ngRetina = angular.module('ngRetina', []).config([\n\t\t'$provide',\n\t\tfunction ($provide) {\n\t\t\t$provide.decorator('ngSrcDirective', [\n\t\t\t\t'$delegate',\n\t\t\t\tfunction ($delegate) {\n\t\t\t\t\t$delegate[0].compile = function (element, attrs) {\n\t\t\t\t\t};\n\t\t\t\t\treturn $delegate;\n\t\t\t\t}\n\t\t\t]);\n\t\t}\n\t]);\n\t/** From https://gist.github.com/bgrins/6194623#gistcomment-1671744 */\n\tfunction isDataUri(uri) {\n\t\treturn new RegExp(/^\\s*data:([a-z]+\\/[a-z0-9\\-\\+]+(;[a-z\\-]+\\=[a-z0-9\\-]+)?)?(;base64)?,[a-z0-9\\!\\$\\&\\'\\,\\(\\)\\*\\+\\,\\;\\=\\-\\.\\_\\~\\:\\@\\/\\?\\%\\s]*\\s*$/i).test(uri);\n\t}\n\tngRetina.provider('ngRetina', function () {\n\t\tthis.setInfix = function setInfix(value) {\n\t\t\tinfix = value;\n\t\t};\n\t\tthis.setFadeInWhenLoaded = function setFadeInWhenLoaded(value) {\n\t\t\tfadeInWhenLoaded = value;\n\t\t};\n\t\tthis.setLoadErrorHandler = function setLoadErrorHandler(handler) {\n\t\t\tloadErrorHandler = handler;\n\t\t};\n\t\tthis.$get = angular.noop;\n\t});\n\tngRetina.directive('ngSrc', [\n\t\t'$window',\n\t\t'$http',\n\t\t'$log',\n\t\tfunction ($window, $http, $log) {\n\t\t\tvar msie = parseInt((/msie (\\d+)/.exec($window.navigator.userAgent.toLowerCase()) || [])[1], 10);\n\t\t\tvar isRetina = function () {\n\t\t\t\tif (window.matchMedia) {\n\t\t\t\t\tvar mediaQuery = '(-webkit-min-device-pixel-ratio: 1.3), (min--moz-device-pixel-ratio: 1.3), ' + '(-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.3dppx)';\n\t\t\t\t\treturn (mediaQuery && mediaQuery.matches || (window.devicePixelRatio > 1)); \n\t\t\t\t} else {\n\t\t\t\t\tvar mediaQuery = '(-webkit-min-device-pixel-ratio: 1.3), (min--moz-device-pixel-ratio: 1.3), ' + '(-o-min-device-pixel-ratio: 3/2), (min-resolution: 1.3dppx)';\n\t\t\t\t\treturn (mediaQuery && mediaQuery.matches); \n\t\t\t\t}\n\t\t\t}();\n\t\t\tfunction getHighResolutionURL(url) {\n\t\t\t\tvar isPath = false;\n\t\t\t\tvar path = \"\", extension = \"\";\n\t\t\t\tfor (var index = url.length; index > 0; index--) {\n\t\t\t\t\tvar element = url[index - 1];\n\t\t\t\t\t\n\t\t\t\t\tif(isPath) {\n\t\t\t\t\t\tpath = element + path;\n\t\t\t\t\t} else {\n\t\t\t\t\t\textension = element + extension;\n\t\t\t\t\t}\n\t\t\t\t\tif (element === \".\") {\n\t\t\t\t\t\tisPath = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn path + infix + extension;\n\n\t\t\t\t/** var parts = url.split('.');\n\t\t\t\t// if (parts.length < 2) {\n\t\t\t\t// \treturn url;\n\t\t\t\t// }\n\t\t\t\t// parts[parts.length - 2] += infix;\n\t\t\t\t// return parts.join('.'); */\n\t\t\t}\n\t\t\treturn function (scope, element, attrs) {\n\t\t\t\tfunction setImgSrc(imageUrl) {\n\t\t\t\t\t/** element.on('error', loadErrorHandler); */\n\t\t\t\t\tvar img = new Image();\n\t\t\t\t\timg.onload = function() {\n\t\t\t\t\t\tattrs.$set('src', imageUrl);\n\t\t\t\t\t\tif (msie) {\n\t\t\t\t\t\t\telement.prop('src', imageUrl);\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\timg.onerror = function() {\n\t\t\t\t\t\tattrs.$set('src', 'images/placeholder.jpg');\n\t\t\t\t\t\tif (msie) {\n\t\t\t\t\t\t\telement.prop('src', 'images/placeholder.jpg');\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\timg.src = imageUrl;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tfunction getSessionStorageItem(imageUrl) {\n\t\t\t\t\tvar item;\n\t\t\t\t\ttry {\n\t\t\t\t\t\titem = $window.sessionStorage.getItem(imageUrl);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t$log.warn('sessionStorage not supported');\n\t\t\t\t\t\titem = imageUrl;\n\t\t\t\t\t}\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t\tfunction setSessionStorageItem(imageUrl, imageUrl2x) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t$window.sessionStorage.setItem(imageUrl, imageUrl2x);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\t$log.warn('sessionStorage not supported');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfunction set2xVariant(imageUrl) {\n\t\t\t\t\tvar imageUrl2x;\n\t\t\t\t\tif (angular.isUndefined(attrs.at2x)) {\n\t\t\t\t\t\timageUrl2x = getSessionStorageItem(imageUrl);\n\t\t\t\t\t} else {\n\t\t\t\t\t\timageUrl2x = attrs.at2x;\n\t\t\t\t\t}\n\t\t\t\t\tif (!imageUrl2x) {\n\t\t\t\t\t\timageUrl2x = getHighResolutionURL(imageUrl);\n\t\t\t\t\t\t$http.head(imageUrl2x).then(function (data, status) {\n\t\t\t\t\t\t\tsetImgSrc(imageUrl2x);\n\t\t\t\t\t\t\tsetSessionStorageItem(imageUrl, imageUrl2x);\n\t\t\t\t\t\t}).catch(function (data, status, headers, config) {\n\t\t\t\t\t\t\tsetImgSrc(imageUrl);\n\t\t\t\t\t\t\tsetSessionStorageItem(imageUrl, imageUrl);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetImgSrc(imageUrl2x);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tattrs.$observe('ngSrc', function (imageUrl, oldValue) {\n\t\t\t\t\tif (!imageUrl) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tif (isDataUri(imageUrl)) {\n\t\t\t\t\t\treturn setImgSrc(imageUrl);\n\t\t\t\t\t}\n\t\t\t\t\tif (fadeInWhenLoaded && !getSessionStorageItem('fadedIn-' + imageUrl)) {\n\t\t\t\t\t\telement.css({\n\t\t\t\t\t\t\topacity: 0,\n\t\t\t\t\t\t\t'-o-transition': 'opacity 0.5s ease-out',\n\t\t\t\t\t\t\t'-moz-transition': 'opacity 0.5s ease-out',\n\t\t\t\t\t\t\t'-webkit-transition': 'opacity 0.5s ease-out',\n\t\t\t\t\t\t\t'transition': 'opacity 0.5s ease-out'\n\t\t\t\t\t\t});\n\t\t\t\t\t\telement.on('load', function () {\n\t\t\t\t\t\t\tsetSessionStorageItem('fadedIn-' + imageUrl, true);\n\t\t\t\t\t\t\telement.css('opacity', 1);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (isRetina && angular.isUndefined(attrs.noretina) && element[0].tagName === 'IMG' && imageUrl.match(allowedImageTypesRegex) && !imageUrl.match(dataUrlRegex)) {\n\t\t\t\t\t\tset2xVariant(imageUrl);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsetImgSrc(imageUrl);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t};\n\t\t}\n\t]);\n}(window.angular));"]}