1//amounts=parseFloat(amounts); 2var cache_act_id=0; 3var cache_goods_id=0; 4 5var isClick = false; 6function jiesuan() { 7 var len = $("#goods_on").find(".car_on").length; 8 if (len > 0){ 9 window.location.href = "buy_cart.php?spm=p.car.j"; 10 } else { 11 showToast(lang[0],1); 12 } 13} 14 15$("#ckall").click(function (event) { 16 if(isClick){ 17 return false; 18 } 19 isClick =true; 20 var that = $(this).find('.ck_btn') 21 var a = that.hasClass("ck_btnon"); 22 var is_all = 1; 23 if (a) { 24 is_all = 0; 25 } 26 $.ajax({ 27 type: 'POST', 28 url: "cart.php?act=checks", 29 data: {is_all: is_all}, 30 success: function (res) { 31 if (res.error == 1) { 32 showToast("Error",1); 33 } else { 34 if (is_all == 1) { 35 $("#goods_on").find(".car").addClass("car_on"); 36 that.addClass("ck_btnon"); 37 updateCkGoods(1); 38 changeAmount(res); 39 ck_status(); 40 } else { 41 updateCkGoods(0); 42 $("#goods_on").find(".car").removeClass("car_on"); 43 that.removeClass("ck_btnon"); 44 changeAmount(res); 45 ck_status(); 46 } 47 } 48 }, 49 dataType: 'json' 50 }); 51 setTimeout(function(){isClick =false;},700); 52 event.preventDefault(); 53}); 54 55function addFavCar(){} 56 57$("#goods_on").delegate(".ck_btn", "click", function (event) { 58 if(isClick){ 59 return false; 60 } 61 isClick =true; 62 var a = $(this).parent().parent(); 63 var id = $(this).attr("data-id"); 64 cache_goods_id=a.attr("data-id"); 65 cache_act_id=a.attr("data-a"); 66 67 var is_on = 0; 68 var b = a.hasClass("car_on"); 69 if (b) { 70 a.removeClass("car_on"); 71 is_on = 1; 72 } else { 73 a.addClass("car_on"); 74 } 75 $.ajax({ 76 type: 'POST', 77 url: "cart.php?act=checks", 78 data: {id: id, is_all: 3, is_on: is_on}, 79 success: function (res) { 80 if (res.error == 1) { 81 showToast("Error",1); 82 } else { 83 ck_status(); 84 var isc = (is_on === 1) ? 0 : 1; 85 cart_json[cache_act_id]['goods_list'][cache_goods_id]['is_on']=isc; 86 changeAmount(res); 87 } 88 }, 89 dataType: 'json' 90 }); 91 setTimeout(function(){isClick =false;},700); 92 event.preventDefault(); 93}); 94 95function ck_status() { 96 var len = $("#goods_on").find(".car_on").length; 97 var len2 = $("#goods_on").find(".car").length; 98 $("#car_nums2").text(len); 99 $("#car_nums1").text(len); 100 if (len == 0 || len < len2) { 101 $("#ckall").find(".ck_btn").removeClass("ck_btnon"); 102 return; 103 } 104 if (len == len2) { 105 $("#ckall").find(".ck_btn").addClass("ck_btnon"); 106 } 107} 108 109$("#goods_on").delegate(".gnum", "change", function () { 110 var that = $(this); 111 var id = that.attr("data-id"); 112 var v = that.val(); 113 var pa=that.parent().parent().parent(); 114 cache_goods_id=pa.attr("data-id"); 115 cache_act_id=pa.attr("data-a"); 116 if (v<1||v>50) { 117 //cart_json[cache_act_id]['goods_list'][cache_goods_id]['goods_number']=1; 118 v = 1; 119 } 120 $.ajax({ 121 type: 'POST', 122 url: "cart.php?act=change_num", 123 data: {id: id, v: v}, 124 success: function (res) { 125 if (res.error == 1) { 126 showToast("Error",1); 127 } else { 128 that.val(v); 129 cart_json[cache_act_id]['goods_list'][cache_goods_id]['goods_number']=v; 130 if(cart_json[cache_act_id]['goods_list'][cache_goods_id]['is_on']==1){ 131 changeAmount(res); 132 } 133 //$("#count").text("£" + res.total); 134 } 135 }, 136 dataType: 'json' 137 }); 138}).delegate(".cc_sub", "click", function (event) { 139 if(isClick){ 140 return false; 141 } 142 isClick =true; 143 var a = $(this).parent().find(".gnum"); 144 var id = $(this).attr("data-id"); 145 146 var pa=$(this).parent().parent().parent(); 147 cache_goods_id=pa.attr("data-id"); 148 cache_act_id=pa.attr("data-a"); 149 var v = parseInt(a.val()); 150 if (v > 1) { 151 v = v - 1; 152 changeNums(id,v,a); 153 } 154 setTimeout(function(){isClick =false;},500); 155 event.preventDefault(); 156}).delegate(".cc_add", "click", function (event) { 157 if(isClick){ 158 return false;
159 } 160 isClick =true; 161 var a = $(this).parent().find(".gnum"); 162 var id = $(this).attr("data-id"); 163 var pa=$(this).parent().parent().parent(); 164 cache_goods_id=pa.attr("data-id"); 165 cache_act_id=pa.attr("data-a"); 166 var v = parseInt(a.val()); 167 if (v < 50) { 168 v = v + 1; 169 changeNums(id,v,a); 170 } 171 setTimeout(function(){isClick =false;},500); 172 event.preventDefault(); 173}); 174 175function changeNums(id,v,obj){ 176 $.ajax({ 177 type: 'POST', 178 dataType: 'json', 179 url: "cart.php?act=change_num", 180 data: {id: id, v: v}, 181 success: function (res) { 182 if (res.error == 1) { 183 showToast("Error",1); 184 } else { 185 obj.val(v); 186 cart_json[cache_act_id]['goods_list'][cache_goods_id]['goods_number']=v; 187 if(cart_json[cache_act_id]['goods_list'][cache_goods_id]['is_on']==1){ 188 changeAmount(res); 189 } 190 } 191 } 192 }); 193} 194 195$("#goods_on").delegate(".ca_del","click",function(){ 196 var id=$(this).attr("data-id"); 197 var pa=$(this).parent().parent(); 198 cache_goods_id=pa.attr("data-id"); 199 cache_act_id=pa.attr("data-a"); 200 delGoods(id,$(this)); 201}); 202 203$("#out_goods").delegate(".ca_del","click",function(){ 204 var id=$(this).attr("data-id"); 205 delOuter(id,$(this),1); 206}); 207$("#clear_all_ot").click(function(){ 208 delOuter('',$(this),1); 209}); 210function delOuter(id,obj){ 211 $.ajax({ 212 type:'POST', 213 url:'cart.php', 214 data:{act:'delOut',id:id}, 215 dataType: 'json', 216 success: function (res){ 217 if(res.error == 0){ 218 if(id==''){ 219 $("#out_goodsv").remove(); 220 }else{ 221 obj.parent().parent().remove(); 222 if($("#out_goods").children().length<1){ 223 $("#out_goodsv").remove(); 224 } 225 } 226 } else { 227 showToast("Fail",1); 228 } 229 } 230 }); 231} 232 233function delGoods(id,obj){ 234 if(!confirm(lang[1])){ 235 return; 236 } 237 var that=obj.parent().parent(); 238 $.ajax({ 239 type:'POST', 240 url:'cart.php', 241 data:{act:'del',id:id}, 242 dataType: 'json', 243 success: function (res){ 244 if(res.error == 0){ 245 var ison=cart_json[cache_act_id]['goods_list'][cache_goods_id]['is_on']; 246 delete cart_json[cache_act_id]['goods_list'][cache_goods_id]; 247 if(ison){ 248 changeAmount(res); 249 ck_status(); 250 } 251 var zu=that.parent().find(".car").length; 252 if(zu<2){ 253 that.parent().remove(); 254 } 255 that.remove(); 256 } else { 257 showToast("Fail",1); 258 } 259 } 260 }); 261 } 262 263function DelCa(){ 264 var ccx=$("#goods_on").find(".car_on"); 265 if(ccx.length<1){ 266 return; 267 } 268 if(!confirm(lang[2])){ 269 return; 270 } 271 var dl=[]; 272 ccx.each(function(){ 273 var i=$(this).find(".ck_btn").attr("data-id"); 274 dl.push(i); 275 }); 276 var id=dl.join(","); 277 $.ajax({ 278 type:'POST', 279 url:'cart.php', 280 data:{act:'delMult',id:id}, 281 dataType: 'json', 282 success: function (res){ 283 if(res.error == 0){ 284 ccx.remove(); 285 var zu=$("#goods_on").children().length; 286 if(zu<1){ 287 window.location.reload(); 288 }else{ 289 changeAmount(res); 290 ck_status(); 291 } 292 } else { 293 showToast("Fail",1); 294 } 295 } 296 }); 297} 298 299 300 301/****important*****/ 302function changeAmount(res){ 303 if(res.error==1){ 304 return; 305 } 306 goods_total=0; 307 act_jian=0; 308 loot_jian=0; 309 $.each(cart_json,function(a,b){ 310 var gd=b['goods_list']; 311 $.each(gd,function(k,m){ 312 if(m['is_on']==1){ 313 if(m['pid']>0){ 314 var th=$("#rec"+m['rec_id']); 315 var pon=$("#rec"+m['pid']).hasClass("car_on"); 316 if(pon){ 317 m['goods_price']=m['pk_price']; 318 $("#rec"+m['rec_id']).removeClass("car_pk"); 319 th.find(".ca_jg").html('<b class="red">'+cur+''+m['pk_price']+'</b><del>'+m['mk_price']+'</del>'); 320 }else{ 321 m['goods_price']=m['mk_price']; 322 $("#rec"+m['rec_id']).addClass("car_pk"); 323 th.find(".ca_jg").html(cur+''+m['mk_price']); 324 } 325 cart_json[a]['goods_list'][k]['goods_price']=m['goods_price']; 326 } 327 var jax=parseFloat(m['mk_price'])-parseFloat(m['goods_price']); 328 if(jax>0){ 329 loot_jian+=fmNub(jax*parseFloat(m['goods_number'])); 330 } 331 goods_total+=parseFloat(m['goods_price'])*parseFloat(m['goods_number']); 332 } 333 }); 334 335 if(is_act>0){ 336 //act in 337 if(b['act_id']>0){ 338 if(b['act_style']==1){ 339 var nm=calSumGoods(b['goods_list']); 340 var hj=calGradfloor(b['grade'],nm['amount']);
341 cart_json[a]['jian']=hj['val']; 342 act_jian+=parseFloat(hj['val']); 343 doActShowt(a,hj['k'],hj['val']); 344 doActTone(a,hj['k']); 345 }else if(b['act_style']==2){ 346 //NJ 347 var hj=calGradfloorNum(b['grade'],b['goods_list']); 348 cart_json[a]['jian']=hj['val']; 349 act_jian+=parseFloat(hj['val']); 350 doActShowt(a,hj['k'],hj['val']); 351 doActTone(a,hj['k']); 352 }else if(b['act_style']==3){ 353 //NY 354 var hj=calGradfloorNy(b['grade'],b['goods_list']); 355 cart_json[a]['jian']=hj['val']; 356 act_jian+=parseFloat(hj['val']); 357 doActShowt(a,hj['k'],hj['val']); 358 doActTone(a,hj['k']); 359 } 360 } 361 } 362 }); 363 showTotal(); 364} 365 366//N dis 367function calGradfloorNum(act,goods){ 368 var nb=0; 369 var amt=0; 370 for(var i in goods){ 371 if(goods[i]['is_on'] === 1) { 372 goods[i].goods_number=parseInt(goods[i].goods_number); 373 goods[i].goods_price=parseFloat(goods[i].goods_price); 374 amt += parseFloat((goods[i].goods_price * goods[i].goods_number).toFixed(2)); 375 nb += goods[i].goods_number; 376 } 377 } 378 var jian=0; 379 var k=-1;//æ¾å°å¯¹åºå±çº§çkey 380 for(var i in act){ 381 if(nb>=act[i]['item_limit']){ 382 k=i; 383 }else{ 384 break; 385 } 386 } 387 if(k>=0){ 388 if(act[k]['item_maxnum']>0){ 389 var goodsArray = Object.values(goods); 390 var sortedGoods = {}; 391 var glen=goodsArray.length; 392 if(glen>1){ 393 goodsArray.sort(function (a, b) { 394 return parseInt(a.goods_price) - parseInt(b.goods_price); 395 }); 396 } 397 goodsArray.forEach(function (item, index) { 398 sortedGoods[index] = item; 399 }); 400 401 var bi=Math.floor(nb/act[k]['item_limit']);//åç 402 //满2å1 403 for(var i=0;i<act[k]['item_maxnum'];i++){ 404 var lf=1-act[k]['amount_discount']; 405 var jb=act[k]['amount_discount']>0?Math.round(sortedGoods[i]['goods_price']*lf,2):sortedGoods[i]['goods_price']; 406 jian+=Math.round(jb*bi,2); 407 } 408 }else{ 409 //æ£å¸¸ææ£[å ¨é¨ååææ] 410 jian=Math.round(amt*(1-act[k]['amount_discount']),2); 411 } 412 } 413 return {k:k,val:Math.floor(jian)}; 414} 415//N doll 416function calGradfloorNy(act,goods){ 417var acts=act[0]; 418var item_limit=parseInt(acts['item_limit']); 419var min_amount=parseFloat(acts['min_amount']); 420var amount_jian=parseFloat(acts['amount_jian']); 421 var nb=0; 422 var amt=0; 423 var avg_amount=0; 424 for(var i in goods){ 425 if(goods[i]['is_on'] === 1){ 426 goods[i].goods_number=parseInt(goods[i].goods_number); 427 goods[i].goods_price=parseFloat(goods[i].goods_price); 428 amt += parseFloat((goods[i].goods_price * goods[i].goods_number).toFixed(2)); 429 nb += goods[i].goods_number; 430 } 431 } 432 var jian=0; 433 var k=-1; 434 if(nb>=item_limit&&amt>=min_amount){ 435 k=0; 436 }else{ 437 return {k:-1,val:0}; 438 } 439var avg_amount=Math.floor(amt/nb*100)/100; 440var bi=Math.floor(nb/item_limit); 441var discountLevels = Math.min(bi,Math.floor(amt/min_amount)); 442var cy_amount=avg_amount*item_limit*bi; 443jian = cy_amount-amount_jian*discountLevels; 444return {k:0,val:Math.floor(jian)}; 445} 446function doActShowt(a,k,va){ 447 if(k>=0){ 448 $("#act_"+a).find(".svs").removeClass("hid"); 449 $("#act_"+a).find(".au_j").text(fmNub(va)); 450 $("#act_"+a).find(".i_hdi").text(cart_json[a]['grade'][k]['short_tag']); 451 $("#act_"+a).removeClass("gift_off"); 452 }else{ 453 $("#act_"+a).find(".svs").addClass("hid"); 454 $("#act_"+a).find(".i_hdi").text(cart_json[a]['short_tag']); 455 $("#act_"+a).addClass("gift_off"); 456 } 457} 458function doActTone(a,k){ 459 var that=$("#act_"+a); 460 var old_gift=that.find(".gift_gl"); 461 var old_len=old_gift.length; 462 463 var has_gift=k>=0?cart_json[a]['grade'][k]['has_gift']:0; 464 if(has_gift<1){ 465 if(old_len>0){ 466 old_gift.remove(); 467 } 468 return; 469 } 470 471 if(k>=0){ 472 if(old_len>0){ 473 old_gift.html(buildGfthtml(cart_json[a]['grade'][k]['gift'])); 474 }else{ 475 that.append('<div class="gift_gl">'+buildGfthtml(cart_json[a]['grade'][k]['gift'])+'</div>'); 476 } 477 }else{ 478 if(old_len>0){ 479 old_gift.remove(); 480 } 481 } 482} 483function showTotal(){ 484 var total_jian=fmNub(act_jian+loot_jian); 485 goods_total=fmNub(goods_total); 486 var tot=fmNub(goods_total-act_jian); 487 $("#c_gprice").text(goods_total); 488 489 if(total_jian>0){ 490 $("#savej").removeClass("hid"); 491 $("#t_jian").text(total_jian); 492 }else{ 493 $("#savej").addClass("hid"); 494 $("#t_jian").text(0); 495 } 496 if(free_ship>tot){ 497 $("#c_jian").text(shipping_fee); 498 $("#savef").removeClass('hid'); 499 $("#more_sp").text(Math.round((free_ship-tot)*100)/100); 500 $("#count1").text(fmNub(tot+shipping_fee)); 501}else{ 502 $("#c_jian").text('0'); 503 $("#ship_tip").addClass('hid'); 504 $("#count1").text(tot); 505} 506 507} 508function calSumGoods(goods) { 509 let number = 0; 510 let amount = 0; 511 var i; 512 //var len=Object.keys(goods).length 513 for(i in goods){ 514 if(goods[i]['is_on'] === 1) { 515 goods[i].goods_number=parseInt(goods[i].goods_number); 516 goods[i].goods_price=parseFloat(goods[i].goods_price); 517 amount += parseFloat((goods[i].goods_price * goods[i].goods_number).toFixed(2)); 518 number += goods[i].goods_number; 519 } 520 } 521 return { number: number, amount: amount }; 522} 523function calGradfloor(act,val){ 524 var res=0; 525 var k=-1; 526 var i; 527 val=parseFloat(val); 528 for(i in act) { 529 if(val>=parseFloat(act[i]['min_amount'])){ 530 res=act[i]['amount_jian']; 531 k=i; 532 }else{ 533 break; 534 } 535 } 536 return {k:k,val:Math.floor(res)}; 537} 538function buildGfthtml(gf){ 539 var ht='<dl class="car_f">'+ 540 '<dt><a href="goods-'+gf['goods_id']+'.html"><img src="'+gf['goods_img']+'" class="ca_pic"></a></dt>'+ 541 '<dd><a href="goods-'+gf['goods_id']+'.html" class="gk_a"><em class="i_gift">Free</em>'+gf['goods_name']+'</a>'+ 542 '<p class="ca_atr">
542'+gf['goods_attr']+'</p>'+ 543 '<em class="">Quantity:'+gf['goods_number']+'</em>'+ 544 '<div class="ca_jg"><p class="red fB">'+cur+'0.00</p><del>'+cur+''+gf['shop_price']+'</del></div>'+ 545 '</dd></dl>'; 546 return ht; 547} 548function updateCkGoods(is_all){ 549 for(var i in cart_json){ 550 for(var j in cart_json[i]['goods_list']){ 551 cart_json[i]['goods_list'][j]['is_on']=is_all; 552 } 553 } 554} 555function fmNub(v){ 556 return Math.round(v*100)/100; 557}
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.