1var obPopupWin; 2var LicenceButton = function(params) 3{ 4 LicenceButton.superclass.constructor.apply(this, arguments); 5 this.nameNode = BX.create('span', { 6 props : { className : 'bx_medium bx_bt_button', id : this.id }, 7 text: params.text 8 }); 9 this.buttonNode = BX.create('span', { 10 attrs: { className: params.ownerClass }, 11 style: { marginBottom: '0', borderBottom: '0 none transparent' }, 12 children: [this.nameNode], 13 events : this.contextEvents 14 }); 15 if (BX.browser.IsIE()) 16 { 17 this.buttonNode.setAttribute("hideFocus", "hidefocus"); 18 } 19}; 20BX.extend(LicenceButton, BX.PopupWindowButton); 21function Licence() 22{ 23 BX.ajax.load( 24 { 25 url: basketJSParams.PATH_TO_LICENSE, 26 type: 'html', 27 callback: LicenceResult 28 } 29 ); 30} 31 32function LicenceResult(strContent) 33{ 34 var buttons = []; 35 36 if (!!obPopupWin) 37 { 38 obPopupWin.close(); 39 } 40 popupTitle = { 41 content: BX.create('div', { 42 text: BX.message('EULA') 43 }) 44 }; 45 46 InitPopupWindow(); 47 strContent = strContent + '<p>' + BX.message('EULA_AGREE_TEXT') + '</p>'; 48 strContent = strContent + '<div class="row"><input type="checkbox" name="legal_accept" id="edit-legal-accept" value="1" class="form-checkbox" /> '+BX.message('EULA_AGREE')+'</div>'; 49 buttons = [ 50 new LicenceButton({ 51 ownerClass: "btn btn-primary margin", 52 text: BX.message('EULA_CONFIRM'), 53 events: { 54 click: BX.delegate(ValidateEula) 55 } 56 }), 57 new LicenceButton({ 58 ownerClass: "btn btn-default margin", 59 text: BX.message('EULA_CLOSE'), 60 events: { 61 click: BX.delegate(obPopupWin.close, obPopupWin) 62 } 63 }) 64 ]; 65 BX.adjust(obPopupWin.popupContainer, { 66 style : { 67 overflow: 'auto', 68 width: '85%', 69 height: '90%' 70 } 71 }); 72 obPopupWin.popupContainer.className = 'popup-window-license'; 73 obPopupWin.setTitleBar(popupTitle); 74 obPopupWin.setContent(strContent); 75 obPopupWin.setButtons(buttons); 76 obPopupWin.show(); 77} 78function ValidateEula() 79{ 80 if (document.getElementById("edit-legal-accept").checked) 81 document.location.href = basketJSParams.PATH_TO_ORDER; 82 else 83 alert(BX.message('EULA_CHECK')); 84} 85function InitPopupWindow() 86{ 87 if (!!obPopupWin) 88 { 89 return; 90 } 91 obPopupWin = BX.PopupWindowManager.create('Licence', null, { 92 autoHide: true, 93 offsetLeft: 0, 94 offsetTop: 0, 95 overlay : true, 96 closeByEsc: true, 97 titleBar: true, 98 closeIcon: {} 99 }); 100} 101function updateBasketTable(basketItemId, res) 102{ 103 var table = BX("basket_items"); 104 105 if (!table) 106 return; 107 108 var rows = table.rows, 109 newBasketItemId = res['BASKET_ID']; 110 111 // update product params after recalculation 112 for (var id in res.BASKET_DATA.GRID.ROWS) 113 { 114 if (res.BASKET_DATA.GRID.ROWS.hasOwnProperty(id)) 115 { 116 var item = res.BASKET_DATA.GRID.ROWS[id]; 117 118 if (BX('discount_value_' + id)) 119 BX('discount_value_' + id).innerHTML = parseInt(item.DISCOUNT_PRICE_PERCENT)+"%"; 120 121 if (BX('current_price_' + id)) 122 BX('current_price_' + id).innerHTML = item.PRICE_FORMATED; 123 124 if (BX('old_price_' + id)) 125 BX('old_price_' + id).innerHTML = (item.FULL_PRICE_FORMATED !== item.PRICE_FORMATED) ? item.FULL_PRICE_FORMATED : ''; 126 127 if (BX('sum_' + id)) 128 BX('sum_' + id).innerHTML = item.SUM; 129 130 /*if (BX('miles_' + id)) 131 BX('miles_' + id).innerHTML = item.MILES;*/ 132 } 133 } 134 135 // update coupon info 136 if (!!res.BASKET_DATA) 137 couponListUpdate(res.BASKET_DATA); 138 139 // update warnings if any 140 if (res.hasOwnProperty('WARNING_MESSAGE')) 141 { 142 var warningText = ''; 143 144 for (var i = res['WARNING_MESSAGE'].length - 1; i >= 0; i--) 145 warningText += res['WARNING_MESSAGE'][i] + '<br/>'; 146 147 BX('warning_message').innerHTML = warningText; 148 BX.removeClass(BX('warning_message'), 'hidden'); 149 } 150 else 151 { 152 if (!BX.hasClass(BX('warning_message'), 'hidden')) 153 BX.addClass(BX('warning_message'), 'hidden'); 154 } 155 156 if (BX('allSum_FORMATED')) 157 BX('allSum_FORMATED').innerHTML = res['BASKET_DATA']['allSum_FORMATED']; 158 159 if (BX('PRICE_WITHOUT_DISCOUNT')) 160 BX('PRICE_WITHOUT_DISCOUNT').innerHTML = (res['BASKET_DATA']['PRICE_WITHOUT_DISCOUNT'] !== res['BASKET_DATA']['allSum_FORMATED']) ? res['BASKET_DATA']['PRICE_WITHOUT_DISCOUNT'] : ''; 161} 162 163function checkOut(){ 164 BX("basket_form").submit(); 165 return true; 166} 167 168function enterCoupon() 169{ 170 var newCoupon = BX('COUPON'); 171 if (!!newCoupon && !!newCoupon.value) 172 recalcBasketAjax({'COUPON' : newCoupon.value}); 173} 174 175function recalcBasketAjax(params) 176{ 177 BX.showWait(); 178 179 var property_values = {}, 180 action_var = BX('action_var').value, 181 postData, 182 i; 183 184 postData = { 185 'sessid': BX.bitrix_sessid(), 186 'site_id': BX.message('SITE_ID'), 187 'props': property_values, 188 'action_var': action_var, 189 'select_props': BX('column_headers').value, 190 'hide_coupon': BX('hide_coupon').value 191 }; 192 193 postData[action_var] = 'recalculate'; 194 if (!!params && typeof params === 'object') 195 { 196 for (i in params) 197 { 198 if (params.hasOwnProperty(i)) 199 postData[i] = params[i]; 200 } 201 } 202 203 BX.ajax({ 204 url: '/'+BX('lang').value+'/personal/cart/ajax.php', 205 method: 'POST', 206 data: postData, 207 dataType: 'json', 208 onsuccess: function(result) 209 { 210 BX.closeWait();
211 if(params.COUPON) 212 { 213 //hello, gifts! 214 if(!!result && !!result.BASKET_DATA && !!result.BASKET_DATA.NEED_TO_RELOAD_FOR_GETTING_GIFTS) 215 { 216 BX.reload(); 217 } 218 } 219 BX.closeWait(); 220 updateBasketTable(null, result); 221 } 222 }); 223} 224 225function couponListUpdate(res) 226{ 227 var couponBlock, 228 couponClass, 229 fieldCoupon, 230 couponsCollection, 231 couponFound, 232 i, 233 j, 234 key; 235 236 if (!!res && typeof res !== 'object') 237 { 238 return; 239 } 240 241 couponBlock = BX('coupons_block'); 242 if (!!couponBlock) 243 { 244 if (!!res.COUPON_LIST && BX.type.isArray(res.COUPON_LIST)) 245 { 246 fieldCoupon = BX('COUPON'); 247 if (!!fieldCoupon) 248 { 249 fieldCoupon.value = ''; 250 } 251 couponsCollection = BX.findChildren(couponBlock, { tagName: 'div', class: 'basket-coupon-alert' }, true); 252 253 if (!!couponsCollection) 254 { 255 if (BX.type.isElementNode(couponsCollection)) 256 { 257 couponsCollection = [couponsCollection]; 258 } 259 for (i = 0; i < res.COUPON_LIST.length; i++) 260 { 261 couponFound = false; 262 key = -1; 263 for (j = 0; j < couponsCollection.length; j++) 264 { 265 if ($(couponsCollection[j]).data('val') === res.COUPON_LIST[i].COUPON) 266 { 267 couponFound = true; 268 key = j; 269 couponsCollection[j].couponUpdate = true; 270 break; 271 } 272 } 273 if (couponFound) 274 { 275 couponClass = 'basket-coupon-alert'; 276 if (res.COUPON_LIST[i].JS_STATUS === 'APPLYED') 277 couponClass = couponClass+' text-muted text-success'; 278 else 279 couponClass = couponClass+' text-danger'; 280 281 BX.adjust(couponsCollection[key], {props: {className: couponClass}}); 282 $(couponsCollection[key]).find('.js-check-code').html(res.COUPON_LIST[i].JS_CHECK_CODE); 283 } 284 else 285 { 286 couponCreate(couponBlock, res.COUPON_LIST[i]); 287 } 288 } 289 for (j = 0; j < couponsCollection.length; j++) 290 { 291 if (typeof (couponsCollection[j].couponUpdate) === 'undefined' || !couponsCollection[j].couponUpdate) 292 { 293 BX.remove(couponsCollection[j]); 294 couponsCollection[j] = null; 295 } 296 else 297 { 298 couponsCollection[j].couponUpdate = null; 299 } 300 } 301 } 302 else 303 { 304 for (i = 0; i < res.COUPON_LIST.length; i++) 305 { 306 couponCreate(couponBlock, res.COUPON_LIST[i]); 307 } 308 } 309 } 310 } 311 couponBlock = null; 312} 313 314function couponCreate(couponBlock, oneCoupon) 315{ 316 var couponClass = 'basket-coupon-alert'; 317 318 if (!BX.type.isElementNode(couponBlock)) 319 return; 320 321 if (oneCoupon.JS_STATUS === 'APPLYED') 322 couponClass = couponClass+' text-muted text-success'; 323 else 324 couponClass = couponClass+' text-danger'; 325 326 var el = '<strong>'+oneCoupon.COUPON+'</strong> - '+ BX.message('COUPON_NAME')+' <span class="js-check-code">'+oneCoupon.JS_CHECK_CODE+'</span> '; 327 if(oneCoupon.DISCOUNT_NAME != '') 328 el += '('+oneCoupon.DISCOUNT_NAME+')'; 329 330 couponBlock.appendChild(BX.create( 331 'div', 332 { 333 props: { 334 className: couponClass 335 }, 336 attrs: { 337 'data-val': oneCoupon.COUPON 338 }, 339 children: [ 340 BX.create( 341 'span', 342 { 343 props: { 344 className: 'basket-coupon-text' 345 }, 346 html: el 347 } 348 ), 349 BX.create( 350 'span', 351 { 352 props: { 353 className: 'close-link' 354 }, 355 attrs: { 356 'data-coupon': oneCoupon.COUPON, 357 'data-entity': "basket-coupon-delete" 358 }, 359 text: ' '+ BX.message('COUPON_DELETE') 360 } 361 ) 362 ] 363 } 364 )); 365} 366 367function deleteCoupon() 368{ 369 var target = this, 370 value; 371 372 if (BX.type.isElementNode(target) && target.hasAttribute('data-coupon')) 373 { 374 value = target.getAttribute('data-coupon'); 375 if (BX.type.isNotEmptyString(value)) 376 { 377 recalcBasketAjax({'delete_coupon' : value}); 378 } 379 } 380} 381 382BX.ready(function() { 383 384 var couponBlock = BX('coupons_block'); 385 386 if (BX.type.isElementNode(couponBlock)) 387 BX.bindDelegate(couponBlock, 'click', { 'attribute': 'data-coupon' }, deleteCoupon); 388 389});
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.