{"version":3,"file":"jquery.plugins.min.js","sources":["jquery.plugins.js"],"sourcesContent":["(function ($, _) {\r\n function ajaxFailHandler(errResp) {\r\n var responseJson = JSON.parse(errResp.responseText);\r\n var message = responseJson.Message ? responseJson.Message : errResp.statusText;\r\n window.PubSub.publish('notification.error', message);\r\n };\r\n\r\n //#region Jquery extensions\r\n /* Check that value in textbox higher or equal to minimum quantity */\r\n $.minQuantityCheck = function (txbsel, minqty, msgcontsel, msg) {\r\n var t = $(txbsel);\r\n var c = $(msgcontsel);\r\n t.keyup(function () {\r\n c.find('span.MinQtyError').remove();\r\n c.find('span').filter(function () { return $(this).text() == msg; }).remove();\r\n\r\n if (t.length > 0 && t.val().length > 0 && parseFloat(t.val().replace(',', '.')) < parseFloat(minqty)) {\r\n c.append('' + msg + '');\r\n }\r\n\r\n //Retrigger set equal hights\r\n window.SetEqualHeights();\r\n });\r\n };\r\n\r\n /* Bring postal code lookup */\r\n $.getPostalCodeInfo = function (postalCode, callback) {\r\n if (!postalCode || postalCode.length !== 4 || $.isNumeric(postalCode) === false) {\r\n if (callback) {\r\n callback({ result: \"Ugyldig postnummer\", valid: false });\r\n }\r\n\r\n return;\r\n }\r\n\r\n if (postalCode.length === 4) {\r\n var url = \"//fraktguide.bring.no/fraktguide/api/postalCode.json?country=no&pnr=\" + postalCode + \"&callback=?\";\r\n $.getJSON(url, callback);\r\n }\r\n };\r\n\r\n /* Dimension details loader */\r\n $.dimLoader = function (options) {\r\n var o = $.extend({\r\n itemId: 0,\r\n imgWidth: 120,\r\n imgMod: 'crop=none',\r\n drp1: '',\r\n drp2: '',\r\n drp3: '',\r\n prodNo: '',\r\n stock: '',\r\n price: '',\r\n orig: '',\r\n disc: '',\r\n image: '',\r\n error: '',\r\n buyRow: '',\r\n priceFrom: '',\r\n loadImg: window.R + 'Startup/Pics/wait3.gif',\r\n //usePrice: 1, <-- PriceField SHOULD NOT BE HARDCODED (UMWC-319)\r\n errHandler: null,\r\n okHandler: null\r\n }, options || {});\r\n\r\n var loadImg = '';\r\n var d1 = $(o.drp1),\r\n d2 = $(o.drp2),\r\n d3 = $(o.drp3),\r\n drp = d1.add(d2).add(d3),\r\n prodNo = $(o.prodNo),\r\n stock = $(o.stock),\r\n price = $(o.price),\r\n orig = $(o.orig),\r\n disc = $(o.disc),\r\n image = $(o.image),\r\n error = $(o.error),\r\n buyRow = $(o.buyRow);\r\n\r\n if (drp.length > 0) {\r\n //Hookup change event\r\n drp.change(function () {\r\n //Set loading image\r\n prodNo.add(stock).add(price).add(orig).add(disc).html(loadImg);\r\n\r\n //Check if all dims are selected\r\n var allSel = drp.filter(function () { return jQuery(\"option:selected\", this).val() !== \"0\"; }).length === drp.length;\r\n\r\n //Fetch dim details\r\n $.publicFetch({\r\n handler: \"ProductData\",\r\n data: {\r\n a: \"GetDimDetails\",\r\n ItemID: o.itemId,\r\n Dim1: d1.length > 0 ? d1.find(\"option:selected\").val() : \"0\",\r\n Dim2: d2.length > 0 ? d2.find(\"option:selected\").val() : \"0\",\r\n Dim3: d3.length > 0 ? d3.find(\"option:selected\").val() : \"0\",\r\n ImageWidth: o.imgWidth,\r\n ImgMod: o.imgMod,\r\n usePrice: o.usePrice\r\n },\r\n success: function (d) {\r\n //Allow buy\r\n buyRow.css(\"display\", d.AllowBuy === true || allSel === false ? \"\" : \"none\");\r\n //Product number\r\n prodNo.text(d.ProdNo);\r\n //Stock text\r\n stock.text(d.StockText);\r\n stock.css(\"color\", d.StockColor);\r\n //Price\r\n price.text((allSel === false ? o.priceFrom : \"\") + d.Price);\r\n //Original price\r\n orig.text(d.OriginalPrice);\r\n //Discount price\r\n disc.text(d.Discount);\r\n //Image\r\n if (d.ImageURL.length > 0) {\r\n //Set image url\r\n image.attr(\"src\", d.ImageURL);\r\n // Set link to image src\r\n if (d.ImageLBURL) {\r\n image.closest('a.ImageLink').attr('href', d.ImageLBURL).attr('title', d.ImageText ? d.ImageText : d.ProdNo);\r\n }\r\n }\r\n\r\n if (o.okHandler && $.isFunction(o.okHandler)) {\r\n o.okHandler.call(this, d);\r\n }\r\n\r\n if (typeof (window.PubSub) !== 'undefined') {\r\n window.PubSub.publish('product.dimproduct.update', d);\r\n }\r\n },\r\n error: function (err) {\r\n if (error.hasClass('ErrMsg')) { error.text(err.Message); }\r\n else {\r\n if (error.find('.ErrMsg').length > 0) { error.find('.ErrMsg').text(err.Message); }\r\n else { error.append('' + err.Message + ''); }\r\n }\r\n\r\n prodNo.add(stock).add(price).add(orig).add(disc).html(\"\");\r\n\r\n if (o.errHandler && $.isFunction(o.errHandler)) {\r\n o.errHandler.call(this, err);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n };\r\n $.loadDimProdInfo = function (options) {\r\n var o = $.extend({\r\n itemId: 0,\r\n imgWidth: 120,\r\n imgMod: 'crop=none',\r\n dim1Val: '',\r\n dim2Val: '',\r\n dim3Val: '',\r\n prodNo: '',\r\n stock: '',\r\n price: '',\r\n orig: '',\r\n disc: '',\r\n image: '',\r\n error: '',\r\n buyRow: '',\r\n origRow: '',\r\n discRow: '',\r\n priceFrom: '',\r\n loadImg: window.R + 'Startup/Pics/wait3.gif',\r\n //usePrice: 1, <-- PriceField SHOULD NOT BE HARDCODED (UMWC-319)\r\n loadDimProdImg: true,\r\n additionalReqParams: {},\r\n dimImageShouldDifferFromMain: false,\r\n mainProdImageId: 0,\r\n errHandler: null,\r\n okHandler: null,\r\n priceVisible: true\r\n }, options || {});\r\n\r\n var loadImg = '
',\r\n prodNo = $(o.prodNo),\r\n stock = $(o.stock),\r\n price = $(o.price),\r\n orig = $(o.orig),\r\n disc = $(o.disc),\r\n image = $(o.image),\r\n error = $(o.error),\r\n buyRow = $(o.buyRow),\r\n origRow = $(o.origRow),\r\n discRow = $(o.discRow);\r\n\r\n //Set loading image\r\n prodNo.html(loadImg);\r\n\r\n var reqParams = $.extend(o.additionalReqParams, {\r\n a: \"GetDimDetails\",\r\n ItemID: o.itemId,\r\n Dim1: o.dim1Val ? o.dim1Val : \"0\",\r\n Dim2: o.dim2Val ? o.dim2Val : \"0\",\r\n Dim3: o.dim3Val ? o.dim3Val : \"0\",\r\n ImageWidth: o.imgWidth,\r\n ImgMod: o.imgMod,\r\n usePrice: o.usePrice,\r\n priceVisible: o.priceVisible\r\n });\r\n\r\n //Fetch dim details\r\n $.publicFetch({\r\n handler: \"ProductData\",\r\n data: reqParams,\r\n success: function (d) {\r\n //Allow buy\r\n buyRow.css(\"display\", d.AllowBuy === true ? \"\" : \"none\");\r\n //Product number\r\n prodNo.text(d.ProdNo);\r\n //Stock text\r\n stock.text(d.StockText);\r\n stock.css(\"color\", d.StockColor);\r\n //Price\r\n var $priceText = price.find('.notranslate, .PriceValue');\r\n if ($priceText.length > 0) {\r\n $priceText.html(d.Price);\r\n } else {\r\n // Try to keep VAT text if found\r\n price.contents().filter(function () { return this.className != 'PriceVatTxt'; }).remove();\r\n price.prepend(document.createTextNode(d.Price + ' '));\r\n }\r\n price.find('.notranslate.PriceValue.ExclVat').html(d.PriceExclVat);\r\n price.find('.notranslate.PriceValue.InclVat').html(d.PriceInclVat);\r\n\r\n if (d.HasDiscount) {\r\n origRow.show();\r\n discRow.show();\r\n //Original price\r\n var $origPriceText = orig.find('.notranslate, .OriginalPriceValue');\r\n if ($origPriceText.length > 0) {\r\n $origPriceText.text(d.OriginalPrice);\r\n } else {\r\n // Try to keep VAT text if found\r\n orig.contents().filter(function() { return this.className != 'PriceVatTxt'; }).remove();\r\n orig.prepend(document.createTextNode(d.OriginalPrice + ' '));\r\n }\r\n //Discount price\r\n var $discountText = disc.find('.notranslate, .DiscountValue');\r\n if ($discountText.length > 0) {\r\n $discountText.text(d.Discount);\r\n } else {\r\n // Try to keep VAT text if found\r\n disc.contents().filter(function() { return this.className != 'PriceVatTxt'; }).remove();\r\n disc.prepend(document.createTextNode(d.Discount + ' '));\r\n }\r\n } else {\r\n origRow.hide();\r\n discRow.hide();\r\n }\r\n //Image\r\n if (d.ImageURL.length > 0 && o.loadDimProdImg && !(o.dimImageShouldDifferFromMain && d.ImageID == o.mainProdImageId)) {\r\n //Set image url\r\n image.attr(\"src\", d.ImageURL);\r\n if (d.ImageMaxWidth) {\r\n image.css('max-width', d.ImageMaxWidth + 'px');\r\n }\r\n // Set link to image src\r\n if (d.ImageLBURL) {\r\n image.closest('a.ImageLink').attr('href', d.ImageLBURL).attr('title', d.ImageText ? d.ImageText : d.ProdNo);\r\n }\r\n }\r\n // Replacement product\r\n if (d.ReplacementProductInfo) {\r\n if (o.context) {\r\n o.context.find('.ReplacementProductRow').empty().html(d.ReplacementProductInfo).show();\r\n }\r\n\r\n window.PubSub.publish('notification.warning', d.ReplacementProductInfo);\r\n } else {\r\n if (o.context) {\r\n o.context.find('.ReplacementProductRow').empty().hide();\r\n }\r\n }\r\n\r\n if (o.okHandler && $.isFunction(o.okHandler)) {\r\n o.okHandler.call(this, d);\r\n }\r\n\r\n if (typeof (window.PubSub) !== 'undefined') {\r\n window.PubSub.publish('product.dimproduct.update', d);\r\n }\r\n },\r\n error: function (err) {\r\n if (error.hasClass('ErrMsg')) { error.text(err.Message); }\r\n else {\r\n if (error.find('.ErrMsg').length > 0) { error.find('.ErrMsg').text(err.Message); }\r\n else { error.append('' + err.Message + ''); }\r\n }\r\n\r\n prodNo.add(stock).add(price).add(orig).add(disc).html(\"\");\r\n if (o.errHandler && $.isFunction(o.errHandler)) {\r\n o.errHandler.call(this, err);\r\n }\r\n }\r\n });\r\n };\r\n\r\n /* Auto-grow input */\r\n $.fn.autoGrowInput = function (o) {\r\n o = $.extend({\r\n maxWidth: 1000,\r\n minWidth: 0,\r\n comfortZone: 70\r\n }, o);\r\n\r\n this.filter('input:text').each(function () {\r\n var minWidth = o.minWidth || $(this).width(),\r\n val = '',\r\n input = $(this),\r\n testSubject = $('