1// Forked from DDSlick 2(function (e) { 3 e.fn.ddslick = function (l) { 4 if (c[l]) { 5 return c[l].apply(this, Array.prototype.slice.call(arguments, 1)); 6 } else { 7 if (typeof l === "object" || !l) { 8 return c.init.apply(this, arguments); 9 } else { 10 e.error("Method " + l + " does not exists."); 11 } 12 } 13 }; 14 var c = {}, 15 d = { 16 data: [], 17 keepJSONItemsOnTop: false, 18 width: 260, 19 height: null, 20 background: "#eee", 21 selectText: "", 22 defaultSelectedIndex: null, 23 truncateDescription: true, 24 imagePosition: "left", 25 showSelectedHTML: true, 26 clickOffToClose: true, 27 embedCSS: true, 28 onSelected: function () {}, 29 }, 30 i = '<div class="dd-select"><input class="dd-selected-value" type="hidden" /><a class="dd-selected"></a><span class="dd-pointer dd-pointer-down"></span></div>', 31 a = '<ul class="dd-options"></ul>', 32 b = 33 '<style id="css-ddslick" type="text/css">.dd-select{ border-radius:2px; border:solid 1px #ccc; position:relative; cursor:pointer;}.dd-desc { color:#aaa; display:block; overflow: hidden; font-weight:normal; line-height: 1.4em; }.dd-selected{ overflow:hidden; display:block; padding:10px; font-weight:bold;}.dd-pointer{ width:0; height:0; position:absolute; right:10px; top:50%; margin-top:-3px;}.dd-pointer-down{ border:solid 5px transparent; border-top:solid 5px #000; }.dd-pointer-up{border:solid 5px transparent !important; border-bottom:solid 5px #000 !important; margin-top:-8px;}.dd-options{ border:solid 1px #ccc; border-top:none; list-style:none; box-shadow:0px 1px 5px #ddd; display:none; position:absolute; z-index:2000; margin:0; padding:0;background:#fff; overflow:auto;}.dd-option{ padding:10px; display:block; border-bottom:solid 1px #ddd; overflow:hidden; text-decoration:none; color:#333; cursor:pointer;-webkit-transition: all 0.25s ease-in-out; -moz-transition: all 0.25s ease-in-out;-o-transition: all 0.25s ease-in-out;-ms-transition: all 0.25s ease-in-out; }.dd-options > li:last-child > .dd-option{ border-bottom:none;}.dd-option:hover{ background:#f3f3f3; color:#000;}.dd-selected-description-truncated { text-overflow: ellipsis; white-space:nowrap; }.dd-option-selected { background:#f6f6f6; }.dd-option-image, .dd-selected-image { vertical-align:middle; float:left; margin-right:5px; max-width:64px;}.dd-image-right { float:right; margin-right:15px; margin-left:5px;}.dd-container{ position:relative;}â .dd-selected-text { font-weight:bold}â</style>'; 34 c.init = function (l) { 35 var l = e.extend({}, d, l); 36 if (e("#css-ddslick").length <= 0 && l.embedCSS) { 37 e(b).appendTo("head"); 38 } 39 return this.each(function () { 40 var p = e(this), 41 q = p.data("ddslick"); 42 if (!q) { 43 var n = [], 44 o = l.data; 45 p.find("option").each(function () { 46 var w = e(this), 47 v = w.data(); 48 // 3.13.7 49 //var pushdata = { text: e.trim(w.text()), value: w.val(), selected: w.is(":selected"), description: v.description, imageSrc: v.imagesrc }; 50 var pushdata = { text: w.text().trim(), value: w.val(), selected: w.is(":selected"), description: v.description, imageSrc: v.imagesrc }; // 3.21.2, replaced deprecated e.trim() (jQuery.trim()) with String.trim() 51 if ( v.imagesrcFull ) { 52 pushdata.imagesrcFull = v.imagesrcFull; 53 } 54 if ( v.imagesrcWidth ) { 55 pushdata.imagesrcWidth = v.imagesrcWidth; 56 } 57 if ( v.imagesrcHeight ) { 58 pushdata.imagesrcHeight = v.imagesrcHeight; 59 } 60 n.push( pushdata ); 61 }); 62 if (l.keepJSONItemsOnTop) { 63 e.merge(l.data, n); 64 } else { 65 l.data = e.merge(n, l.data); 66 } 67 var m = p, 68 s = e('<div id="' + p.attr("id") + '"></div>'); 69 // Added this to ensure original select field isn't destroyed 70 var gc = p.clone().attr('id',p.attr('data-select-id')); 71 p.after(gc); 72 p.replaceWith(s); 73 p = s; 74 p.addClass("dd-container").append(i).append(a); 75 var n = p.find(".dd-select"), 76 u = p.find(".dd-options"); 77 u.css({ width: l.width }); 78 n.css({ width: l.width, background: l.background }); 79 p.css({ width: l.width }); 80 if (l.height != null) { 81 u.css({ height: l.height, overflow: "auto" }); 82 } 83 e.each(l.data, function (v, w) { 84 if (w.selected) { 85 l.defaultSelectedIndex = v; 86 } 87 u.append( 88 '<li><a class="dd-option">' + 89 (w.value ? ' <input class="dd-option-value" type="hidden" value="' + w.value + '" />' : "") + 90 (w.imageSrc ? ' <img class="dd-option-image' + (l.imagePosition == "right" ? " dd-image-right" : "") + '" src="' + w.imageSrc + '" />' : "") + 91 (w.text ? ' <label class="dd-option-text">' + w.text + "</label>" : "") +
92 (w.description ? ' <small class="dd-option-description dd-desc">' + w.description + "</small>" : "") + 93 "</a></li>" 94 ); 95 }); 96 var t = { settings: l, original: m, selectedIndex: -1, selectedItem: null, selectedData: null }; 97 p.data("ddslick", t); 98 if (l.selectText.length > 0 && l.defaultSelectedIndex == null) { 99 p.find(".dd-selected").html(l.selectText); 100 } else { 101 var r = l.defaultSelectedIndex != null && l.defaultSelectedIndex >= 0 && l.defaultSelectedIndex < l.data.length ? l.defaultSelectedIndex : 0; 102 j(p, r); 103 } 104 p.find(".dd-select").on("click.ddslick", function () { 105 f(p); 106 }); 107 p.find(".dd-option").on("click.ddslick", function () { 108 j(p, e(this).closest("li").index()); 109 }); 110 if (l.clickOffToClose) { 111 u.addClass("dd-click-off-close"); 112 p.on("click.ddslick", function (v) { 113 v.stopPropagation(); 114 }); 115 e("body").on("click", function () { 116 e(".dd-click-off-close").slideUp(50).siblings(".dd-select").find(".dd-pointer").removeClass("dd-pointer-up"); 117 }); 118 } 119 } 120 }); 121 }; 122 c.select = function (l) { 123 return this.each(function () { 124 if (l.index !== undefined) { 125 j(e(this), l.index); 126 } 127 }); 128 }; 129 c.open = function () { 130 return this.each(function () { 131 var m = e(this), 132 l = m.data("ddslick"); 133 if (l) { 134 f(m); 135 } 136 }); 137 }; 138 c.close = function () { 139 return this.each(function () { 140 var m = e(this), 141 l = m.data("ddslick"); 142 if (l) { 143 k(m); 144 } 145 }); 146 }; 147 c.destroy = function () { 148 return this.each(function () { 149 var n = e(this), 150 m = n.data("ddslick"); 151 if (m) { 152 var l = m.original; 153 n.removeData("ddslick").unbind(".ddslick").replaceWith(l); 154 } 155 }); 156 }; 157 function j(q, s) { 158 var u = q.data("ddslick"); 159 var r = q.find(".dd-selected"), 160 n = r.siblings(".dd-selected-value"), 161 v = q.find(".dd-options"), 162 l = r.siblings(".dd-pointer"), 163 p = q.find(".dd-option").eq(s), 164 m = p.closest("li"), 165 o = u.settings, 166 t = u.settings.data[s]; 167 q.find(".dd-option").removeClass("dd-option-selected"); 168 p.addClass("dd-option-selected"); 169 u.selectedIndex = s; 170 u.selectedItem = m; 171 u.selectedData = t; 172 if (o.showSelectedHTML) { 173 r.html( 174 (t.imageSrc ? '<img class="dd-selected-image' + (o.imagePosition == "right" ? " dd-image-right" : "") + '" src="' + t.imageSrc + '" />' : "") + 175 (t.text ? '<label class="dd-selected-text">' + t.text + "</label>" : "") + 176 (t.description ? '<small class="dd-selected-description dd-desc' + (o.truncateDescription ? " dd-selected-description-truncated" : "") + '" >' + t.description + "</small>" : "") + 177 (t.imagesrcFull ? '<input type="hidden" class="dd-selected-image-full" data-imgsrc-width="' + ( t.imagesrcWidth ? t.imagesrcWidth : '' ) + '" data-imgsrc-height="' + ( t.imagesrcHeight ? t.imagesrcHeight : '' ) + '" value="' + t.imagesrcFull + '">' : "" ) 178 ); 179 } else { 180 r.html(t.text); 181 } 182 n.val(t.value); 183 u.original.val(t.value); 184 q.data("ddslick", u); 185 k(q); 186 g(q); 187 if (typeof o.onSelected == "function") { 188 o.onSelected.call(this, u); 189 } 190 } 191 function f(p) { 192 var o = p.find(".dd-select"), 193 m = o.siblings(".dd-options"), 194 l = o.find(".dd-pointer"), 195 n = m.is(":visible"); 196 e(".dd-click-off-close").not(m).slideUp(50); 197 e(".dd-pointer").removeClass("dd-pointer-up"); 198 if (n) { 199 m.slideUp("fast"); 200 l.removeClass("dd-pointer-up"); 201 } else { 202 m.slideDown("fast"); 203 l.addClass("dd-pointer-up"); 204 } 205 h(p); 206 } 207 function k(l) {
208 l.find(".dd-options").slideUp(50); 209 l.find(".dd-pointer").removeClass("dd-pointer-up").removeClass("dd-pointer-up"); 210 } 211 function g(o) { 212 var n = o.find(".dd-select").css("height"); 213 var m = o.find(".dd-selected-description"); 214 var l = o.find(".dd-selected-image"); 215 if (m.length <= 0 && l.length > 0 && pewc_vars.disable_line_height_select_box != 'yes' ) { 216 o.find(".dd-selected-text").css("lineHeight", n); // 3.17.2, this causes inconsistent height on the selected option, so we added a filter. pewc_disable_line_height_select_box is true by default 217 } 218 } 219 function h(l) { 220 l.find(".dd-option").each(function () { 221 var p = e(this); 222 if ( p.find(".dd-option-text").attr( "style" ) ) { 223 // 3.13.7, line-height was already set, return to prevent continuous increase of line-height 224 return; 225 } 226 var n = p.css("height"); 227 var o = p.find(".dd-option-description"); 228 var m = l.find(".dd-option-image"); 229 if (o.length <= 0 && m.length > 0 && pewc_vars.disable_line_height_select_box != 'yes' ) { 230 p.find(".dd-option-text").css("lineHeight", n); // 3.17.2, this causes inconsistent heights when not all options have prices, so we added a filter (see above) 231 } 232 }); 233 } 234})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.