');\r\n\t\t\t\t}\r\n\r\n\t\t\t\titem.inlineElement = el;\r\n\t\t\t\treturn el;\r\n\t\t\t}\r\n\r\n\t\t\tmfp.updateStatus('ready');\r\n\t\t\tmfp._parseMarkup(template, {}, item);\r\n\t\t\treturn template;\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/*>>inline*/\r\n\r\n/*>>ajax*/\r\nvar AJAX_NS = 'ajax',\r\n\t_ajaxCur,\r\n\t_removeAjaxCursor = function() {\r\n\t\tif(_ajaxCur) {\r\n\t\t\t$(document.body).removeClass(_ajaxCur);\r\n\t\t}\r\n\t},\r\n\t_destroyAjaxRequest = function() {\r\n\t\t_removeAjaxCursor();\r\n\t\tif(mfp.req) {\r\n\t\t\tmfp.req.abort();\r\n\t\t}\r\n\t};\r\n\r\n$.magnificPopup.registerModule(AJAX_NS, {\r\n\r\n\toptions: {\r\n\t\tsettings: null,\r\n\t\tcursor: 'mfp-ajax-cur',\r\n\t\ttError: '
The content could not be loaded.'\r\n\t},\r\n\r\n\tproto: {\r\n\t\tinitAjax: function() {\r\n\t\t\tmfp.types.push(AJAX_NS);\r\n\t\t\t_ajaxCur = mfp.st.ajax.cursor;\r\n\r\n\t\t\t_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);\r\n\t\t\t_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);\r\n\t\t},\r\n\t\tgetAjax: function(item) {\r\n\r\n\t\t\tif(_ajaxCur) {\r\n\t\t\t\t$(document.body).addClass(_ajaxCur);\r\n\t\t\t}\r\n\r\n\t\t\tmfp.updateStatus('loading');\r\n\r\n\t\t\tvar opts = $.extend({\r\n\t\t\t\turl: item.src,\r\n\t\t\t\tsuccess: function(data, textStatus, jqXHR) {\r\n\t\t\t\t\tvar temp = {\r\n\t\t\t\t\t\tdata:data,\r\n\t\t\t\t\t\txhr:jqXHR\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\t\t_mfpTrigger('ParseAjax', temp);\r\n\r\n\t\t\t\t\tmfp.appendContent( $(temp.data), AJAX_NS );\r\n\r\n\t\t\t\t\titem.finished = true;\r\n\r\n\t\t\t\t\t_removeAjaxCursor();\r\n\r\n\t\t\t\t\tmfp._setFocus();\r\n\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tmfp.wrap.addClass(READY_CLASS);\r\n\t\t\t\t\t}, 16);\r\n\r\n\t\t\t\t\tmfp.updateStatus('ready');\r\n\r\n\t\t\t\t\t_mfpTrigger('AjaxContentAdded');\r\n\t\t\t\t},\r\n\t\t\t\terror: function() {\r\n\t\t\t\t\t_removeAjaxCursor();\r\n\t\t\t\t\titem.finished = item.loadError = true;\r\n\t\t\t\t\tmfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));\r\n\t\t\t\t}\r\n\t\t\t}, mfp.st.ajax.settings);\r\n\r\n\t\t\tmfp.req = $.ajax(opts);\r\n\r\n\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/*>>ajax*/\r\n\r\n/*>>image*/\r\nvar _imgInterval,\r\n\t_getTitle = function(item) {\r\n\t\tif(item.data && item.data.title !== undefined)\r\n\t\t\treturn item.data.title;\r\n\r\n\t\tvar src = mfp.st.image.titleSrc;\r\n\r\n\t\tif(src) {\r\n\t\t\tif($.isFunction(src)) {\r\n\t\t\t\treturn src.call(mfp, item);\r\n\t\t\t} else if(item.el) {\r\n\t\t\t\treturn item.el.attr(src) || '';\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn '';\r\n\t};\r\n\r\n$.magnificPopup.registerModule('image', {\r\n\r\n\toptions: {\r\n\t\tmarkup: '
',\r\n\t\tcursor: 'mfp-zoom-out-cur',\r\n\t\ttitleSrc: 'title',\r\n\t\tverticalFit: true,\r\n\t\ttError: '
The image could not be loaded.'\r\n\t},\r\n\r\n\tproto: {\r\n\t\tinitImage: function() {\r\n\t\t\tvar imgSt = mfp.st.image,\r\n\t\t\t\tns = '.image';\r\n\r\n\t\t\tmfp.types.push('image');\r\n\r\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\r\n\t\t\t\tif(mfp.currItem.type === 'image' && imgSt.cursor) {\r\n\t\t\t\t\t$(document.body).addClass(imgSt.cursor);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\r\n\t\t\t\tif(imgSt.cursor) {\r\n\t\t\t\t\t$(document.body).removeClass(imgSt.cursor);\r\n\t\t\t\t}\r\n\t\t\t\t_window.off('resize' + EVENT_NS);\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn('Resize'+ns, mfp.resizeImage);\r\n\t\t\tif(mfp.isLowIE) {\r\n\t\t\t\t_mfpOn('AfterChange', mfp.resizeImage);\r\n\t\t\t}\r\n\t\t},\r\n\t\tresizeImage: function() {\r\n\t\t\tvar item = mfp.currItem;\r\n\t\t\tif(!item || !item.img) return;\r\n\r\n\t\t\tif(mfp.st.image.verticalFit) {\r\n\t\t\t\tvar decr = 0;\r\n\t\t\t\t// fix box-sizing in ie7/8\r\n\t\t\t\tif(mfp.isLowIE) {\r\n\t\t\t\t\tdecr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);\r\n\t\t\t\t}\r\n\t\t\t\titem.img.css('max-height', mfp.wH-decr);\r\n\t\t\t}\r\n\t\t},\r\n\t\t_onImageHasSize: function(item) {\r\n\t\t\tif(item.img) {\r\n\r\n\t\t\t\titem.hasSize = true;\r\n\r\n\t\t\t\tif(_imgInterval) {\r\n\t\t\t\t\tclearInterval(_imgInterval);\r\n\t\t\t\t}\r\n\r\n\t\t\t\titem.isCheckingImgSize = false;\r\n\r\n\t\t\t\t_mfpTrigger('ImageHasSize', item);\r\n\r\n\t\t\t\tif(item.imgHidden) {\r\n\t\t\t\t\tif(mfp.content)\r\n\t\t\t\t\t\tmfp.content.removeClass('mfp-loading');\r\n\r\n\t\t\t\t\titem.imgHidden = false;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Function that loops until the image has size to display elements that rely on it asap\r\n\t\t */\r\n\t\tfindImageSize: function(item) {\r\n\r\n\t\t\tvar counter = 0,\r\n\t\t\t\timg = item.img[0],\r\n\t\t\t\tmfpSetInterval = function(delay) {\r\n\r\n\t\t\t\t\tif(_imgInterval) {\r\n\t\t\t\t\t\tclearInterval(_imgInterval);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// decelerating interval that checks for size of an image\r\n\t\t\t\t\t_imgInterval = setInterval(function() {\r\n\t\t\t\t\t\tif(img.naturalWidth > 0) {\r\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(counter > 200) {\r\n\t\t\t\t\t\t\tclearInterval(_imgInterval);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcounter++;\r\n\t\t\t\t\t\tif(counter === 3) {\r\n\t\t\t\t\t\t\tmfpSetInterval(10);\r\n\t\t\t\t\t\t} else if(counter === 40) {\r\n\t\t\t\t\t\t\tmfpSetInterval(50);\r\n\t\t\t\t\t\t} else if(counter === 100) {\r\n\t\t\t\t\t\t\tmfpSetInterval(500);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, delay);\r\n\t\t\t\t};\r\n\r\n\t\t\tmfpSetInterval(1);\r\n\t\t},\r\n\r\n\t\tgetImage: function(item, template) {\r\n\r\n\t\t\tvar guard = 0,\r\n\r\n\t\t\t\t// image load complete handler\r\n\t\t\t\tonLoadComplete = function() {\r\n\t\t\t\t\tif(item) {\r\n\t\t\t\t\t\tif (item.img[0].complete) {\r\n\t\t\t\t\t\t\titem.img.off('.mfploader');\r\n\r\n\t\t\t\t\t\t\tif(item === mfp.currItem){\r\n\t\t\t\t\t\t\t\tmfp._onImageHasSize(item);\r\n\r\n\t\t\t\t\t\t\t\tmfp.updateStatus('ready');\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\titem.hasSize = true;\r\n\t\t\t\t\t\t\titem.loaded = true;\r\n\r\n\t\t\t\t\t\t\t_mfpTrigger('ImageLoadComplete');\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t// if image complete check fails 200 times (20 sec), we assume that there was an error.\r\n\t\t\t\t\t\t\tguard++;\r\n\t\t\t\t\t\t\tif(guard < 200) {\r\n\t\t\t\t\t\t\t\tsetTimeout(onLoadComplete,100);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tonLoadError();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\r\n\t\t\t\t// image error handler\r\n\t\t\t\tonLoadError = function() {\r\n\t\t\t\t\tif(item) {\r\n\t\t\t\t\t\titem.img.off('.mfploader');\r\n\t\t\t\t\t\tif(item === mfp.currItem){\r\n\t\t\t\t\t\t\tmfp._onImageHasSize(item);\r\n\t\t\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\titem.hasSize = true;\r\n\t\t\t\t\t\titem.loaded = true;\r\n\t\t\t\t\t\titem.loadError = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\timgSt = mfp.st.image;\r\n\r\n\r\n\t\t\tvar el = template.find('.mfp-img');\r\n\t\t\tif(el.length) {\r\n\t\t\t\tvar img = document.createElement('img');\r\n\t\t\t\timg.className = 'mfp-img';\r\n\t\t\t\tif(item.el && item.el.find('img').length) {\r\n\t\t\t\t\timg.alt = item.el.find('img').attr('alt');\r\n\t\t\t\t}\r\n\t\t\t\titem.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);\r\n\t\t\t\timg.src = item.src;\r\n\r\n\t\t\t\t// without clone() \"error\" event is not firing when IMG is replaced by new IMG\r\n\t\t\t\t// TODO: find a way to avoid such cloning\r\n\t\t\t\tif(el.is('img')) {\r\n\t\t\t\t\titem.img = item.img.clone();\r\n\t\t\t\t}\r\n\r\n\t\t\t\timg = item.img[0];\r\n\t\t\t\tif(img.naturalWidth > 0) {\r\n\t\t\t\t\titem.hasSize = true;\r\n\t\t\t\t} else if(!img.width) {\r\n\t\t\t\t\titem.hasSize = false;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tmfp._parseMarkup(template, {\r\n\t\t\t\ttitle: _getTitle(item),\r\n\t\t\t\timg_replaceWith: item.img\r\n\t\t\t}, item);\r\n\r\n\t\t\tmfp.resizeImage();\r\n\r\n\t\t\tif(item.hasSize) {\r\n\t\t\t\tif(_imgInterval) clearInterval(_imgInterval);\r\n\r\n\t\t\t\tif(item.loadError) {\r\n\t\t\t\t\ttemplate.addClass('mfp-loading');\r\n\t\t\t\t\tmfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );\r\n\t\t\t\t} else {\r\n\t\t\t\t\ttemplate.removeClass('mfp-loading');\r\n\t\t\t\t\tmfp.updateStatus('ready');\r\n\t\t\t\t}\r\n\t\t\t\treturn template;\r\n\t\t\t}\r\n\r\n\t\t\tmfp.updateStatus('loading');\r\n\t\t\titem.loading = true;\r\n\r\n\t\t\tif(!item.hasSize) {\r\n\t\t\t\titem.imgHidden = true;\r\n\t\t\t\ttemplate.addClass('mfp-loading');\r\n\t\t\t\tmfp.findImageSize(item);\r\n\t\t\t}\r\n\r\n\t\t\treturn template;\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/*>>image*/\r\n\r\n/*>>zoom*/\r\nvar hasMozTransform,\r\n\tgetHasMozTransform = function() {\r\n\t\tif(hasMozTransform === undefined) {\r\n\t\t\thasMozTransform = document.createElement('p').style.MozTransform !== undefined;\r\n\t\t}\r\n\t\treturn hasMozTransform;\r\n\t};\r\n\r\n$.magnificPopup.registerModule('zoom', {\r\n\r\n\toptions: {\r\n\t\tenabled: false,\r\n\t\teasing: 'ease-in-out',\r\n\t\tduration: 300,\r\n\t\topener: function(element) {\r\n\t\t\treturn element.is('img') ? element : element.find('img');\r\n\t\t}\r\n\t},\r\n\r\n\tproto: {\r\n\r\n\t\tinitZoom: function() {\r\n\t\t\tvar zoomSt = mfp.st.zoom,\r\n\t\t\t\tns = '.zoom',\r\n\t\t\t\timage;\r\n\r\n\t\t\tif(!zoomSt.enabled || !mfp.supportsTransition) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar duration = zoomSt.duration,\r\n\t\t\t\tgetElToAnimate = function(image) {\r\n\t\t\t\t\tvar newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),\r\n\t\t\t\t\t\ttransition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,\r\n\t\t\t\t\t\tcssObj = {\r\n\t\t\t\t\t\t\tposition: 'fixed',\r\n\t\t\t\t\t\t\tzIndex: 9999,\r\n\t\t\t\t\t\t\tleft: 0,\r\n\t\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\t\t'-webkit-backface-visibility': 'hidden'\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tt = 'transition';\r\n\r\n\t\t\t\t\tcssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;\r\n\r\n\t\t\t\t\tnewImg.css(cssObj);\r\n\t\t\t\t\treturn newImg;\r\n\t\t\t\t},\r\n\t\t\t\tshowMainContent = function() {\r\n\t\t\t\t\tmfp.content.css('visibility', 'visible');\r\n\t\t\t\t},\r\n\t\t\t\topenTimeout,\r\n\t\t\t\tanimatedImg;\r\n\r\n\t\t\t_mfpOn('BuildControls'+ns, function() {\r\n\t\t\t\tif(mfp._allowZoom()) {\r\n\r\n\t\t\t\t\tclearTimeout(openTimeout);\r\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\r\n\r\n\t\t\t\t\t// Basically, all code below does is clones existing image, puts in on top of the current one and animated it\r\n\r\n\t\t\t\t\timage = mfp._getItemToZoom();\r\n\r\n\t\t\t\t\tif(!image) {\r\n\t\t\t\t\t\tshowMainContent();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tanimatedImg = getElToAnimate(image);\r\n\r\n\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\r\n\r\n\t\t\t\t\tmfp.wrap.append(animatedImg);\r\n\r\n\t\t\t\t\topenTimeout = setTimeout(function() {\r\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset( true ) );\r\n\t\t\t\t\t\topenTimeout = setTimeout(function() {\r\n\r\n\t\t\t\t\t\t\tshowMainContent();\r\n\r\n\t\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t\tanimatedImg.remove();\r\n\t\t\t\t\t\t\t\timage = animatedImg = null;\r\n\t\t\t\t\t\t\t\t_mfpTrigger('ZoomAnimationEnded');\r\n\t\t\t\t\t\t\t}, 16); // avoid blink when switching images\r\n\r\n\t\t\t\t\t\t}, duration); // this timeout equals animation duration\r\n\r\n\t\t\t\t\t}, 16); // by adding this timeout we avoid short glitch at the beginning of animation\r\n\r\n\r\n\t\t\t\t\t// Lots of timeouts...\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {\r\n\t\t\t\tif(mfp._allowZoom()) {\r\n\r\n\t\t\t\t\tclearTimeout(openTimeout);\r\n\r\n\t\t\t\t\tmfp.st.removalDelay = duration;\r\n\r\n\t\t\t\t\tif(!image) {\r\n\t\t\t\t\t\timage = mfp._getItemToZoom();\r\n\t\t\t\t\t\tif(!image) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tanimatedImg = getElToAnimate(image);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tanimatedImg.css( mfp._getOffset(true) );\r\n\t\t\t\t\tmfp.wrap.append(animatedImg);\r\n\t\t\t\t\tmfp.content.css('visibility', 'hidden');\r\n\r\n\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\tanimatedImg.css( mfp._getOffset() );\r\n\t\t\t\t\t}, 16);\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\r\n\t\t\t\tif(mfp._allowZoom()) {\r\n\t\t\t\t\tshowMainContent();\r\n\t\t\t\t\tif(animatedImg) {\r\n\t\t\t\t\t\tanimatedImg.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t\timage = null;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\t_allowZoom: function() {\r\n\t\t\treturn mfp.currItem.type === 'image';\r\n\t\t},\r\n\r\n\t\t_getItemToZoom: function() {\r\n\t\t\tif(mfp.currItem.hasSize) {\r\n\t\t\t\treturn mfp.currItem.img;\r\n\t\t\t} else {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t// Get element postion relative to viewport\r\n\t\t_getOffset: function(isLarge) {\r\n\t\t\tvar el;\r\n\t\t\tif(isLarge) {\r\n\t\t\t\tel = mfp.currItem.img;\r\n\t\t\t} else {\r\n\t\t\t\tel = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);\r\n\t\t\t}\r\n\r\n\t\t\tvar offset = el.offset();\r\n\t\t\tvar paddingTop = parseInt(el.css('padding-top'),10);\r\n\t\t\tvar paddingBottom = parseInt(el.css('padding-bottom'),10);\r\n\t\t\toffset.top -= ( $(window).scrollTop() - paddingTop );\r\n\r\n\r\n\t\t\t/*\r\n\r\n\t\t\tAnimating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.\r\n\r\n\t\t\t */\r\n\t\t\tvar obj = {\r\n\t\t\t\twidth: el.width(),\r\n\t\t\t\t// fix Zepto height+padding issue\r\n\t\t\t\theight: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop\r\n\t\t\t};\r\n\r\n\t\t\t// I hate to do this, but there is no another option\r\n\t\t\tif( getHasMozTransform() ) {\r\n\t\t\t\tobj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';\r\n\t\t\t} else {\r\n\t\t\t\tobj.left = offset.left;\r\n\t\t\t\tobj.top = offset.top;\r\n\t\t\t}\r\n\t\t\treturn obj;\r\n\t\t}\r\n\r\n\t}\r\n});\r\n\r\n\r\n\r\n/*>>zoom*/\r\n\r\n/*>>iframe*/\r\n\r\nvar IFRAME_NS = 'iframe',\r\n\t_emptyPage = '//about:blank',\r\n\r\n\t_fixIframeBugs = function(isShowing) {\r\n\t\tif(mfp.currTemplate[IFRAME_NS]) {\r\n\t\t\tvar el = mfp.currTemplate[IFRAME_NS].find('iframe');\r\n\t\t\tif(el.length) {\r\n\t\t\t\t// reset src after the popup is closed to avoid \"video keeps playing after popup is closed\" bug\r\n\t\t\t\tif(!isShowing) {\r\n\t\t\t\t\tel[0].src = _emptyPage;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// IE8 black screen bug fix\r\n\t\t\t\tif(mfp.isIE8) {\r\n\t\t\t\t\tel.css('display', isShowing ? 'block' : 'none');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n$.magnificPopup.registerModule(IFRAME_NS, {\r\n\r\n\toptions: {\r\n\t\tmarkup: '
'+\r\n\t\t\t\t\t'
'+\r\n\t\t\t\t\t'
'+\r\n\t\t\t\t'
',\r\n\r\n\t\tsrcAction: 'iframe_src',\r\n\r\n\t\t// we don't care and support only one default type of URL by default\r\n\t\tpatterns: {\r\n\t\t\tyoutube: {\r\n\t\t\t\tindex: 'youtube.com',\r\n\t\t\t\tid: 'v=',\r\n\t\t\t\tsrc: '//www.youtube.com/embed/%id%?autoplay=1'\r\n\t\t\t},\r\n\t\t\tvimeo: {\r\n\t\t\t\tindex: 'vimeo.com/',\r\n\t\t\t\tid: '/',\r\n\t\t\t\tsrc: '//player.vimeo.com/video/%id%?autoplay=1'\r\n\t\t\t},\r\n\t\t\tgmaps: {\r\n\t\t\t\tindex: '//maps.google.',\r\n\t\t\t\tsrc: '%id%&output=embed'\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\tproto: {\r\n\t\tinitIframe: function() {\r\n\t\t\tmfp.types.push(IFRAME_NS);\r\n\r\n\t\t\t_mfpOn('BeforeChange', function(e, prevType, newType) {\r\n\t\t\t\tif(prevType !== newType) {\r\n\t\t\t\t\tif(prevType === IFRAME_NS) {\r\n\t\t\t\t\t\t_fixIframeBugs(); // iframe if removed\r\n\t\t\t\t\t} else if(newType === IFRAME_NS) {\r\n\t\t\t\t\t\t_fixIframeBugs(true); // iframe is showing\r\n\t\t\t\t\t}\r\n\t\t\t\t}// else {\r\n\t\t\t\t\t// iframe source is switched, don't do anything\r\n\t\t\t\t//}\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {\r\n\t\t\t\t_fixIframeBugs();\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tgetIframe: function(item, template) {\r\n\t\t\tvar embedSrc = item.src;\r\n\t\t\tvar iframeSt = mfp.st.iframe;\r\n\r\n\t\t\t$.each(iframeSt.patterns, function() {\r\n\t\t\t\tif(embedSrc.indexOf( this.index ) > -1) {\r\n\t\t\t\t\tif(this.id) {\r\n\t\t\t\t\t\tif(typeof this.id === 'string') {\r\n\t\t\t\t\t\t\tembedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tembedSrc = this.id.call( this, embedSrc );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tembedSrc = this.src.replace('%id%', embedSrc );\r\n\t\t\t\t\treturn false; // break;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvar dataObj = {};\r\n\t\t\tif(iframeSt.srcAction) {\r\n\t\t\t\tdataObj[iframeSt.srcAction] = embedSrc;\r\n\t\t\t}\r\n\t\t\tmfp._parseMarkup(template, dataObj, item);\r\n\r\n\t\t\tmfp.updateStatus('ready');\r\n\r\n\t\t\treturn template;\r\n\t\t}\r\n\t}\r\n});\r\n\r\n\r\n\r\n/*>>iframe*/\r\n\r\n/*>>gallery*/\r\n/**\r\n * Get looped index depending on number of slides\r\n */\r\nvar _getLoopedId = function(index) {\r\n\t\tvar numSlides = mfp.items.length;\r\n\t\tif(index > numSlides - 1) {\r\n\t\t\treturn index - numSlides;\r\n\t\t} else if(index < 0) {\r\n\t\t\treturn numSlides + index;\r\n\t\t}\r\n\t\treturn index;\r\n\t},\r\n\t_replaceCurrTotal = function(text, curr, total) {\r\n\t\treturn text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);\r\n\t};\r\n\r\n$.magnificPopup.registerModule('gallery', {\r\n\r\n\toptions: {\r\n\t\tenabled: false,\r\n\t\tarrowMarkup: '
',\r\n\t\tpreload: [0,2],\r\n\t\tnavigateByImgClick: true,\r\n\t\tarrows: true,\r\n\r\n\t\ttPrev: 'Previous (Left arrow key)',\r\n\t\ttNext: 'Next (Right arrow key)',\r\n\t\ttCounter: '%curr% of %total%'\r\n\t},\r\n\r\n\tproto: {\r\n\t\tinitGallery: function() {\r\n\r\n\t\t\tvar gSt = mfp.st.gallery,\r\n\t\t\t\tns = '.mfp-gallery';\r\n\r\n\t\t\tmfp.direction = true; // true - next, false - prev\r\n\r\n\t\t\tif(!gSt || !gSt.enabled ) return false;\r\n\r\n\t\t\t_wrapClasses += ' mfp-gallery';\r\n\r\n\t\t\t_mfpOn(OPEN_EVENT+ns, function() {\r\n\r\n\t\t\t\tif(gSt.navigateByImgClick) {\r\n\t\t\t\t\tmfp.wrap.on('click'+ns, '.mfp-img', function() {\r\n\t\t\t\t\t\tif(mfp.items.length > 1) {\r\n\t\t\t\t\t\t\tmfp.next();\r\n\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t_document.on('keydown'+ns, function(e) {\r\n\t\t\t\t\tif (e.keyCode === 37) {\r\n\t\t\t\t\t\tmfp.prev();\r\n\t\t\t\t\t} else if (e.keyCode === 39) {\r\n\t\t\t\t\t\tmfp.next();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn('UpdateStatus'+ns, function(e, data) {\r\n\t\t\t\tif(data.text) {\r\n\t\t\t\t\tdata.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {\r\n\t\t\t\tvar l = mfp.items.length;\r\n\t\t\t\tvalues.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn('BuildControls' + ns, function() {\r\n\t\t\t\tif(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {\r\n\t\t\t\t\tvar markup = gSt.arrowMarkup,\r\n\t\t\t\t\t\tarrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, gSt.tPrev).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),\r\n\t\t\t\t\t\tarrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, gSt.tNext).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);\r\n\r\n\t\t\t\t\tarrowLeft.click(function() {\r\n\t\t\t\t\t\tmfp.prev();\r\n\t\t\t\t\t});\r\n\t\t\t\t\tarrowRight.click(function() {\r\n\t\t\t\t\t\tmfp.next();\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tmfp.container.append(arrowLeft.add(arrowRight));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t_mfpOn(CHANGE_EVENT+ns, function() {\r\n\t\t\t\tif(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);\r\n\r\n\t\t\t\tmfp._preloadTimeout = setTimeout(function() {\r\n\t\t\t\t\tmfp.preloadNearbyImages();\r\n\t\t\t\t\tmfp._preloadTimeout = null;\r\n\t\t\t\t}, 16);\r\n\t\t\t});\r\n\r\n\r\n\t\t\t_mfpOn(CLOSE_EVENT+ns, function() {\r\n\t\t\t\t_document.off(ns);\r\n\t\t\t\tmfp.wrap.off('click'+ns);\r\n\t\t\t\tmfp.arrowRight = mfp.arrowLeft = null;\r\n\t\t\t});\r\n\r\n\t\t},\r\n\t\tnext: function() {\r\n\t\t\tmfp.direction = true;\r\n\t\t\tmfp.index = _getLoopedId(mfp.index + 1);\r\n\t\t\tmfp.updateItemHTML();\r\n\t\t},\r\n\t\tprev: function() {\r\n\t\t\tmfp.direction = false;\r\n\t\t\tmfp.index = _getLoopedId(mfp.index - 1);\r\n\t\t\tmfp.updateItemHTML();\r\n\t\t},\r\n\t\tgoTo: function(newIndex) {\r\n\t\t\tmfp.direction = (newIndex >= mfp.index);\r\n\t\t\tmfp.index = newIndex;\r\n\t\t\tmfp.updateItemHTML();\r\n\t\t},\r\n\t\tpreloadNearbyImages: function() {\r\n\t\t\tvar p = mfp.st.gallery.preload,\r\n\t\t\t\tpreloadBefore = Math.min(p[0], mfp.items.length),\r\n\t\t\t\tpreloadAfter = Math.min(p[1], mfp.items.length),\r\n\t\t\t\ti;\r\n\r\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {\r\n\t\t\t\tmfp._preloadItem(mfp.index+i);\r\n\t\t\t}\r\n\t\t\tfor(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {\r\n\t\t\t\tmfp._preloadItem(mfp.index-i);\r\n\t\t\t}\r\n\t\t},\r\n\t\t_preloadItem: function(index) {\r\n\t\t\tindex = _getLoopedId(index);\r\n\r\n\t\t\tif(mfp.items[index].preloaded) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar item = mfp.items[index];\r\n\t\t\tif(!item.parsed) {\r\n\t\t\t\titem = mfp.parseEl( index );\r\n\t\t\t}\r\n\r\n\t\t\t_mfpTrigger('LazyLoad', item);\r\n\r\n\t\t\tif(item.type === 'image') {\r\n\t\t\t\titem.img = $('
![]()
').on('load.mfploader', function() {\r\n\t\t\t\t\titem.hasSize = true;\r\n\t\t\t\t}).on('error.mfploader', function() {\r\n\t\t\t\t\titem.hasSize = true;\r\n\t\t\t\t\titem.loadError = true;\r\n\t\t\t\t\t_mfpTrigger('LazyLoadError', item);\r\n\t\t\t\t}).attr('src', item.src);\r\n\t\t\t}\r\n\r\n\r\n\t\t\titem.preloaded = true;\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/*>>gallery*/\r\n\r\n/*>>retina*/\r\n\r\nvar RETINA_NS = 'retina';\r\n\r\n$.magnificPopup.registerModule(RETINA_NS, {\r\n\toptions: {\r\n\t\treplaceSrc: function(item) {\r\n\t\t\treturn item.src.replace(/\\.\\w+$/, function(m) { return '@2x' + m; });\r\n\t\t},\r\n\t\tratio: 1 // Function or number. Set to 1 to disable.\r\n\t},\r\n\tproto: {\r\n\t\tinitRetina: function() {\r\n\t\t\tif(window.devicePixelRatio > 1) {\r\n\r\n\t\t\t\tvar st = mfp.st.retina,\r\n\t\t\t\t\tratio = st.ratio;\r\n\r\n\t\t\t\tratio = !isNaN(ratio) ? ratio : ratio();\r\n\r\n\t\t\t\tif(ratio > 1) {\r\n\t\t\t\t\t_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {\r\n\t\t\t\t\t\titem.img.css({\r\n\t\t\t\t\t\t\t'max-width': item.img[0].naturalWidth / ratio,\r\n\t\t\t\t\t\t\t'width': '100%'\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t});\r\n\t\t\t\t\t_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {\r\n\t\t\t\t\t\titem.src = st.replaceSrc(item, ratio);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t}\r\n});\r\n\r\n/*>>retina*/\r\n _checkInstance(); }));","var clientApp = clientApp || {\r\n modules: {}\r\n};","clientApp.modules.helpers = (function () {\r\n 'use strict';\r\n\r\n var hasAttr = function (e, attrName) {\r\n if(e.length){\r\n var attrVal = e.attr(attrName);\r\n if (typeof attrVal !== typeof undefined && attrVal !== false && attrVal.length) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n var parseYoutubeID = function (url) {\r\n var regExp = /^.*(youtu\\.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|\\&v=)([^#\\&\\?]*).*/;\r\n var match = url.match(regExp);\r\n if (match && match[2].length == 11) {\r\n return match[2];\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n return {\r\n hasAttr: hasAttr,\r\n parseYoutubeID: parseYoutubeID,\r\n };\r\n\r\n}());\r\n","clientApp.modules.generalResize = (function () {\r\n 'use strict';\r\n\r\n var init = function () {\r\n resize();\r\n };\r\n\r\n $(window).on('resize', function () {\r\n resize();\r\n \r\n });\r\n\r\n var getBootstrapVisibleMediaQuery = function() {\r\n var boostrapBreakpoints = ['lg-down', 'md-down', 'sm-down', 'xs-down'];\r\n var query = 'xs';\r\n $('body').append('
');\r\n $.each(boostrapBreakpoints, function (k, v) {\r\n $('#bootstrap-media-checker-wrap').append('
');\r\n if ($('#bootstrap-media-checker-wrap .hidden-' + v ).is(':visible')) {\r\n $('#bootstrap-media-checker-wrap').remove();\r\n query = v.replace('-down','');\r\n return false;\r\n }\r\n });\r\n return query;\r\n }\r\n\r\n\r\n var resize = function () {\r\n console.log('resized to '+getBootstrapVisibleMediaQuery());\r\n }\r\n\r\n return {\r\n init: init,\r\n getBootstrapMediaQuery: getBootstrapVisibleMediaQuery\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.generalResize.init();","clientApp.modules.forms = (function () {\r\n 'use strict';\r\n\r\n var init = function () {\r\n var pageUrlElement = $(\".pageurl\");\r\n if (pageUrlElement.length) {\r\n var inputElement = pageUrlElement.find(\"input\");\r\n inputElement.val(window.location.href);\r\n }\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.forms.init();\r\n","clientApp.modules.hp = (function () {\r\n 'use strict';\r\n\r\n var init = function () {\r\n if($('.bulletin-list--unpublished .icons-link-list').length){\r\n $('.bulletin-list--unpublished .icons-link-list').slick({\r\n //infinite: true,\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n dots: false,\r\n responsive: [\r\n {\r\n breakpoint: 992,\r\n settings: {\r\n slidesToShow: 3,\r\n slidesToScroll: 3\r\n }\r\n },\r\n {\r\n breakpoint: 768,\r\n settings: {\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n\r\n breakpoint: 544,\r\n settings: \"unslick\" // destroys slick\r\n\r\n }]\r\n });\r\n $('.slick-fake-btn--left').on('click', function(){\r\n $('.slick-prev.slick-arrow').trigger('click');\r\n });\r\n $('.slick-fake-btn--right').on('click', function () {\r\n $('.slick-next.slick-arrow').trigger('click');\r\n });\r\n\r\n if ($('.slick-arrow').length) {\r\n $('.slick-fake-btn').removeClass('hidden-xs-up');\r\n }\r\n\r\n if (clientApp.modules.generalResize.getBootstrapMediaQuery() == 'xs') {\r\n\r\n }\r\n }\r\n $('.slick-slide').show();\r\n resize();\r\n };\r\n\r\n $(window).on('resize', function () {\r\n resize();\r\n });\r\n\r\n var resize = function () {\r\n if ($('.bulletin-list--hp').length) {\r\n var $latest = $('.bulletin-list--latest');\r\n var $unpublished = $('.bulletin-list--unpublished');\r\n if (clientApp.modules.generalResize.getBootstrapMediaQuery() == 'xs') {\r\n if ($latest.length && !$latest.hasClass('moved')) {\r\n $latest.addClass('moved').insertBefore($unpublished);\r\n }\r\n } else if ($latest.length && $latest.hasClass('moved')) {\r\n $latest.removeClass('moved').insertAfter($unpublished);\r\n }\r\n }\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.hp.init();\r\n","clientApp.modules.maps = (function () {\r\n 'use strict';\r\n\r\n var init = function() {\r\n var latitude = $(\"#map\").data(\"latitude\");\r\n var longitude = $(\"#map\").data(\"longitude\");\r\n var zoom = $(\"#map\").data(\"zoom\");\r\n var searchtype = $(\"#map\").data(\"search-type\");\r\n\r\n var uluru = { lat: latitude, lng: longitude };\r\n\r\n var map = new google.maps.Map(document.getElementById(\"map\"), {\r\n zoom: zoom,\r\n center: uluru\r\n });\r\n var marker = new google.maps.Marker({\r\n position: uluru,\r\n map: map\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n}());","clientApp.modules.responsiveTables = (function () {\r\n 'use strict';\r\n\r\n var init = function () {\r\n makeResponsive();\r\n resize();\r\n };\r\n\r\n var makeResponsive = function () {\r\n $(\".rte table\").each(function (index) {\r\n $(this).addClass('table').wrapAll(\"
\")\r\n });\r\n }\r\n\r\n var resize = function () {\r\n var $e = $(\".responsive-table-container\");\r\n if ($e.length) {\r\n $e.each(function () {\r\n var $t = $(this);\r\n var $w = $t.parents('.responsive-table-wrap').first();\r\n //tables\r\n if ($w.length) {\r\n $w.removeClass('has-scroll');\r\n if ($t.find('table').length &&\r\n $t[0].scrollWidth > $t.width() // compare scroll width and width\r\n ) {\r\n $w.addClass('has-scroll');\r\n }\r\n }\r\n\r\n });\r\n }\r\n }\r\n\r\n $(window).on('resize', function () {\r\n resize();\r\n });\r\n \r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.responsiveTables.init();","clientApp.modules.rte = (function () {\r\n 'use strict';\r\n\r\n var init = function () {\r\n resize();\r\n initPopupLinks();\r\n };\r\n\r\n $(window).on('resize', function () {\r\n resize();\r\n });\r\n\r\n var initPopupLinks = function () {\r\n var youtubeUrl = \"https://www.youtube.com/watch?v=\";\r\n var youtubeImagePre = \"http://img.youtube.com/vi/\";\r\n var youtubeImageSuf = \"/hqdefault.jpg\";\r\n var $e = $('.rte img, .rte iframe');\r\n if ($e.length) {\r\n $e.each(function () {\r\n var $t = $(this);\r\n if ($t.parents('.contour').length < 1) {\r\n var isImage = $t.is('img');\r\n var captionText = ($t.next('p').hasClass('caption')) ? ' title=\"'+$t.next('p.caption').text()+'\"' : \"\";\r\n if (isImage) {\r\n $t.wrap('
');\r\n $('
').insertAfter($t);\r\n } else {\r\n var isYoutube = ($t.is('iframe')) ? clientApp.modules.helpers.parseYoutubeID($t.attr('src')) : false;\r\n if (isYoutube.length && $t.parents('.video-wrapper').length) {\r\n var newHtml = ('
');\r\n $(newHtml).insertAfter($t.parents('.video-wrapper'));\r\n $t.parents('.video-wrapper').remove();\r\n }\r\n }\r\n \r\n }\r\n });\r\n $('.popup-link').magnificPopup({\r\n callbacks: {\r\n open: function () {\r\n //dataLayer.push({\r\n // 'event': this.currItem.type == 'image' ? 'View Image' : 'View Video',\r\n // 'url': this.currItem.src\r\n //});\r\n }\r\n }\r\n });\r\n }\r\n\r\n };\r\n\r\n var resize = function () {\r\n if ($('.rte').length) {\r\n $('.rte').each(function () {\r\n var chIframe = $(this).find('iframe');\r\n if (chIframe.length && !chIframe.hasClass('embed-responsive-item')) {\r\n chIframe.addClass('embed-responsive-item').wrap('
')\r\n }\r\n });\r\n $('.rte img').each(function () {\r\n if (!$(this).hasClass('img-fluid')) {\r\n $(this).addClass('img-fluid');\r\n }\r\n });\r\n }\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.rte.init();","clientApp.modules.searchbar = (function () {\r\n 'use strict';\r\n\r\n var searchInputSelector = \"#SearchTerm\";\r\n var searched = false;\r\n\r\n var init = function () {\r\n resize();\r\n hideMobileFilters();\r\n };\r\n\r\n $(window).on('load', function () {\r\n googleTranslateElementInit();\r\n });\r\n\r\n $(window).on('resize', function () {\r\n resize();\r\n });\r\n\r\n $('.search-component-wrap [type=\"submit\"]').on('click', function () {\r\n searched = true;\r\n });\r\n\r\n $(\"select.search-dropdown\").on(\"change\", function (e) { \r\n $('.search-filter-apply').removeClass('disabled');\r\n $('.search-result-list-wrap').addClass('apply-opacity');\r\n\r\n var $this = $(this);\r\n var selectedItems = $(':selected', $this);\r\n if (selectedItems.length > 0 && selectedItems[0].value === 'All') {\r\n $this.selectpicker('deselectAll');\r\n $this.selectpicker('toggle');\r\n }\r\n });\r\n\r\n $('.search-filter-apply').on('click', function (e) {\r\n e.preventDefault();\r\n search();\r\n });\r\n\r\n var search = function () {\r\n var queryString = '';\r\n var url = window.location.origin + window.location.pathname;\r\n\r\n if (searchData.termToSearch !== '') {\r\n queryString += \"?term=\" + searchData.termToSearch;\r\n }\r\n\r\n var dataQuery = {\r\n year: [],\r\n type: [],\r\n category: [],\r\n controllers: [],\r\n series: [],\r\n models: [],\r\n region: [],\r\n language: [],\r\n bulletintype: [],\r\n other: []\r\n };\r\n\r\n $('select.search-dropdown :selected').each(function (index, element) {\r\n var parentName = element.parentNode.name;\r\n var value = element.value;\r\n\r\n /*if (parentName !== \"other\") {\r\n value = element.innerText;\r\n } else {\r\n value = element.value;\r\n }*/\r\n\r\n if (dataQuery[parentName] !== undefined) {\r\n dataQuery[parentName].push(value);\r\n }\r\n });\r\n\r\n for (var p in dataQuery) {\r\n\r\n (dataQuery[p].filter(function (x) { return (x === 'All')}).length > 0) && (dataQuery[p] = []);\r\n\r\n if (dataQuery[p].length !== 0) {\r\n if (queryString === '') {\r\n queryString += \"?\" + p + \"=\" + dataQuery[p].join(';');\r\n } else {\r\n queryString += \"&\" + p + \"=\" + dataQuery[p].join(';');\r\n }\r\n }\r\n }\r\n\r\n url += queryString;\r\n location.href = url;\r\n };\r\n \r\n var resize = function () {\r\n var $sb = $('.search-component-wrap');\r\n var mediaQuery = clientApp.modules.generalResize.getBootstrapMediaQuery();\r\n if ($sb.length) {\r\n changeBgForMediaQuery($sb, mediaQuery);\r\n }\r\n //if not sm or xs show filters\r\n if ($('.search-filter-wrap').length && $.inArray(\r\n clientApp.modules.generalResize.getBootstrapMediaQuery(),\r\n ['xs', 'sm']) == -1) {\r\n $('#collapsing-filter-bar').collapse('show');\r\n }\r\n }\r\n \r\n var hideMobileFilters = function () {\r\n //if sm or xs trigger click on filter\r\n if ($('.search-filter-wrap').length && $.inArray(\r\n clientApp.modules.generalResize.getBootstrapMediaQuery(),\r\n ['xs']) !== -1) {\r\n $('.search-filter-wrap [data-target=\"#collapsing-filter-bar\"]').trigger('click');\r\n }\r\n };\r\n\r\n var changeBgForMediaQuery = function (c, mq) {\r\n if (clientApp.modules.helpers.hasAttr(c, 'data-desktop-img') && mq != 'xs') {\r\n c.css('background-image', 'url(' + c.attr('data-desktop-img') + ')');\r\n }\r\n if (clientApp.modules.helpers.hasAttr(c, 'data-handset-img') && mq == 'xs') {\r\n c.css('background-image', 'url(' + c.attr('data-handset-img') + ')');\r\n }\r\n }\r\n\r\n var googleTranslateElementInit = function () {\r\n var searchElementId = 'google_translate_element_desktop';\r\n if (clientApp.modules.generalResize.getBootstrapMediaQuery() != 'lg') {\r\n searchElementId = 'google_translate_element_mobile';\r\n }\r\n if ($('#' + searchElementId).length) {\r\n new google.translate.TranslateElement({ \r\n pageLanguage: 'en',\r\n includedLanguages: 'en,es,fr,pt,ru',\r\n layout: google.translate.TranslateElement.InlineLayout.SIMPLE,\r\n gaTrack: true,\r\n gaId: waratahGAId\r\n }, searchElementId);\r\n }\r\n }\r\n\r\n return {\r\n init: init,\r\n googleTranslateElementInit : googleTranslateElementInit\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.searchbar.init();","clientApp.modules.truncateText = (function () {\r\n 'use strict';\r\n\r\n var truncateTextClass = 'truncateText';\r\n var textTruncated = false;\r\n\r\n var init = function () {\r\n truncateText();\r\n };\r\n\r\n var truncateText = function () {\r\n $('.' + truncateTextClass).each(function () {\r\n var $this = $(this);\r\n\r\n // get line count from current breakpoint\r\n var attrName = 'data-lines-' + clientApp.modules.generalResize.getBootstrapMediaQuery();\r\n // if not found, then just go home\r\n if (!$this[0].hasAttribute(attrName) || parseInt($this.attr(attrName)) < 1) {\r\n $this.trigger(\"destroy\");\r\n return;\r\n }\r\n var lineCount = parseInt($this.attr(attrName));\r\n var lineHeight = $this.css('line-height');\r\n\r\n // treat line height values\r\n if (lineHeight.toLowerCase().indexOf('px') > -1) {\r\n lineHeight = parseInt(lineHeight, 10);\r\n } else if (lineHeight.indexOf('%') > -1) {\r\n lineHeight = (parseInt(lineHeight, 10) / 100) * parseInt($this.css('font-size'), 10);\r\n } else {\r\n lineHeight = parseInt(lineHeight, 10) * parseInt($this.css('font-size'), 10);\r\n }\r\n\r\n // apply parameters\r\n $this.dotdotdot({\r\n height: (lineCount * lineHeight) + lineHeight / 3,\r\n watch: true,\r\n wrap: 'letter'\r\n });\r\n\r\n });\r\n textTruncated = true;\r\n }\r\n\r\n var resize = function () {\r\n }\r\n\r\n $(window).on('resize', function () {\r\n resize();\r\n });\r\n\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.truncateText.init();\r\n\r\n","clientApp.modules.user = (function () {\r\n 'use strict';\r\n\r\n var init = function() {\r\n $(\"#changeDetailsButton\").click(function (e) {\r\n e.preventDefault();\r\n $(\"#changeDetailsButton\").prop(\"disabled\", true);\r\n\r\n var postUserName = $(\"#UserName\").val();\r\n var postEmail = $(\"#Email\").val();\r\n var postCompany = $(\"#Company\").val();\r\n var postRegion = $(\"#Region\").val();\r\n var postLanguage = $(\"#Language\").val();\r\n $.ajax({\r\n url: \"/umbraco/surface/members/ChangeDetails/\",\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: \"{ UserName: '\" + postUserName + \"', Email: '\" + postEmail + \"', Company: '\" + postCompany + \"', Region: '\" + postRegion + \"', Language: '\" + postLanguage + \"' }\",\r\n contentType: \"application/json; charset=utf-8\",\r\n success: function (data) {\r\n if (data.success) {\r\n $(\"#changeDetailsButton\").prop(\"disabled\", false);\r\n $(\"#changeDetailsMessage\").removeClass();\r\n $(\"#changeDetailsMessage\").addClass(\"alert alert-success\");\r\n $(\"#changeDetailsMessage\").html(\"
\" + data.message + \"\");\r\n } else {\r\n $(\"#changeDetailsButton\").prop(\"disabled\", false);\r\n $(\"#changeDetailsMessage\").removeClass();\r\n $(\"#changeDetailsMessage\").addClass(\"alert alert-warning\");\r\n $(\"#changeDetailsMessage\").html(\"
\" + data.message + \"\");\r\n }\r\n },\r\n error: function (data) {\r\n $(\"#changeDetailsButton\").prop(\"disabled\", false);\r\n $(\"#changeDetailsMessage\").removeClass();\r\n $(\"#changeDetailsMessage\").addClass(\"alert alert-warning\");\r\n $(\"#changeDetailsMessage\").html(\"
Error!\");\r\n }\r\n });\r\n });\r\n\r\n $(\"#changePasswordButton\").click(function (e) {\r\n e.preventDefault();\r\n $(\"#changePasswordButton\").prop(\"disabled\", true);\r\n\r\n var postUserName = $(\"#UserName\").val();\r\n var postPassword = $(\"#Password\").val();\r\n var postConfirmPassword = $(\"#ConfirmPassword\").val();\r\n $.ajax({\r\n url: \"/umbraco/surface/members/ChangePassword/\",\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: \"{ UserName: '\" + postUserName + \"', Password: '\" + postPassword + \"', ConfirmPassword: '\" + postConfirmPassword + \"' }\",\r\n contentType: \"application/json; charset=utf-8\",\r\n success: function (data) {\r\n if (data.success) {\r\n $(\"#Password\").val(\"\");\r\n $(\"#ConfirmPassword\").val(\"\");\r\n $(\"#changePasswordMessage\").removeClass();\r\n $(\"#changePasswordMessage\").addClass(\"alert alert-success\");\r\n $(\"#changePasswordMessage\").html(\"
\" + data.message + \"\");\r\n } else {\r\n $(\"#changePasswordButton\").prop(\"disabled\", false);\r\n $(\"#changePasswordMessage\").removeClass();\r\n $(\"#changePasswordMessage\").addClass(\"alert alert-warning\");\r\n $(\"#changePasswordMessage\").html(\"
\" + data.message + \"\");\r\n }\r\n },\r\n error: function (data) {\r\n $(\"#changePasswordButton\").prop(\"disabled\", false);\r\n $(\"#changePasswordMessage\").removeClass();\r\n $(\"#changePasswordMessage\").addClass(\"alert alert-warning\");\r\n $(\"#changePasswordMessage\").html(\"
Error!\");\r\n }\r\n });\r\n });\r\n\r\n $(\"#forgottenPasswordButton\").click(function (e) {\r\n e.preventDefault();\r\n $(\"#forgottenPasswordButton\").prop(\"disabled\", true);\r\n\r\n var postEmail = $(\"#Email\").val();\r\n $.ajax({\r\n url: \"/umbraco/surface/members/ForgottenPassword/\",\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: \"{ Email: '\" + postEmail + \"' }\",\r\n contentType: \"application/json; charset=utf-8\",\r\n success: function (data) {\r\n if (data.success) {\r\n $(\"#forgottenPasswordMessage\").removeClass();\r\n $(\"#forgottenPasswordMessage\").addClass(\"alert alert-success\");\r\n $(\"#forgottenPasswordMessage\").html(\"
\" + data.message + \"\");\r\n } else {\r\n $(\"#forgottenPasswordButton\").prop(\"disabled\", false);\r\n $(\"#forgottenPasswordMessage\").removeClass();\r\n $(\"#forgottenPasswordMessage\").addClass(\"alert alert-warning\");\r\n $(\"#forgottenPasswordMessage\").html(\"
\" + data.message + \"\");\r\n }\r\n },\r\n error: function (data) {\r\n $(\"#forgottenPasswordButton\").prop(\"disabled\", false);\r\n $(\"#forgottenPasswordMessage\").removeClass();\r\n $(\"#forgottenPasswordMessage\").addClass(\"alert alert-warning\");\r\n $(\"#forgottenPasswordMessage\").html(\"
Error!\");\r\n }\r\n });\r\n });\r\n\r\n $(\"#setPasswordButton\").click(function (e) {\r\n e.preventDefault();\r\n $(\"#setPasswordButton\").prop(\"disabled\", true);\r\n\r\n var postId = $(\"#Id\").val();\r\n var postToken = $(\"#Token\").val();\r\n var postPassword = $(\"#Password\").val();\r\n var postConfirmPassword = $(\"#ConfirmPassword\").val();\r\n $.ajax({\r\n url: \"/umbraco/surface/members/SetPassword/\",\r\n type: \"POST\",\r\n dataType: \"json\",\r\n data: \"{ Id: '\" + postId + \"', Token: '\" + postToken + \"', Password: '\" + postPassword + \"', ConfirmPassword: '\" + postConfirmPassword + \"' }\",\r\n contentType: \"application/json; charset=utf-8\",\r\n success: function (data) {\r\n if (data.success) {\r\n $(\"#Password\").val(\"\");\r\n $(\"#setPasswordMessage\").val(\"\");\r\n $(\"#setPasswordMessage\").removeClass();\r\n $(\"#setPasswordMessage\").addClass(\"alert alert-success\");\r\n $(\"#setPasswordMessage\").html(\"
\" + data.message + \"\");\r\n } else {\r\n $(\"#setPasswordButton\").prop(\"disabled\", false);\r\n $(\"#setPasswordMessage\").removeClass();\r\n $(\"#setPasswordMessage\").addClass(\"alert alert-warning\");\r\n $(\"#setPasswordMessage\").html(\"
\" + data.message + \"\");\r\n }\r\n },\r\n error: function (data) {\r\n $(\"#setPasswordButton\").prop(\"disabled\", false);\r\n $(\"#setPasswordMessage\").removeClass();\r\n $(\"#setPasswordMessage\").addClass(\"alert alert-warning\");\r\n $(\"#setPasswordMessage\").html(\"
Error!\");\r\n }\r\n });\r\n });\r\n }\r\n\r\n return {\r\n init: init\r\n };\r\n\r\n}());\r\n\r\nclientApp.modules.user.init();\r\n","$(function () {\r\n 'use strict';\r\n});"]}