PageSourceSearch

https://muahang.hachina.vn/static/js/custom.js?v=1790258040

js hachina.vn collected 2026-09-24 13:54:22 UTC 38,241 bytes, 1,395 lines download raw bytes

1jQuery(document).ready(function($){
2	
3	// Grab all elements with the class "hasTooltip"
4	/* tooltip just have text */
5	$('.textTooltip').tooltipster({theme: 'tooltipster-borderless'});
6	
7	/* tooltip with table content */
8	$('.hasTooltip').each(function() {
9		$(this).tooltipster({ // Notice the .each() loop, discussed below
10			content : $($(this).attr('tooltip-content')).html(), // Use the "div" element next to this for the content
11			contentAsHTML : true,
12			theme: 'tooltipster-noir',
13			functionBefore:function(instance, helper) {
14				instance.content($(helper.origin.getAttribute('tooltip-content')).html());
15			}
16		});
17	});
18	
19	
20	$(".item_note").blur(function() {
21		submitAjax(this);
22	});
23	$(".num-product").blur(function() {
24		submitAjax(this);
25	});
26	$(".ajaxForm").submit(function(event){
27		var data = $(this).serializeArray();
28		data.push({name: 'postAjax', value: 1});
29		var task=$("input[name=task]").val();
30		var URL=baseURL+"ajax/"+task;
31		$.ajax({
32			url: URL,
33			type: "post",
34			data: data,
35			success: function (response) {
36			   // you will get response from your php page (what you echo or print)                 
37			   var obj = $.parseJSON(response);
38				if(obj.Response=='Error')
39				{
40					$(".w2ui-msg-body #response_ajax").addClass("alert-error");
41					$(".w2ui-msg-body #response_ajax").html(obj.Error);
42					$(".w2ui-msg-body #response_ajax").show();
43				}else{
44					$(".w2ui-msg-body #response_ajax").addClass("alert-success");
45					$(".w2ui-msg-body #response_ajax").html(obj.Message);
46					$(".w2ui-msg-body #response_ajax").show();
47				}
48			},
49			error: function(jqXHR, textStatus, errorThrown) {
50			   console.log(textStatus, errorThrown);
51			}
52		});
53		return false;
54	});
55	
56    $("#checkAll").click(function() {
57        
58            // check thuộc tính checked cho ô checkAll
59            var checked = $(this).attr("checked");
60            
61            // Thêm thuộc tính checked cho ô checkbox khác
62            $("#cartTable tr td input:checkbox").attr("checked", checked);
63    });
64	
65	
66		
67	// Field Date //
68	$(".pickdate").datepicker({dateFormat:'yy-mm-dd'});
69		// Startdate //
70	$(".pickdate_from").datepicker({dateFormat: 'yy-mm-dd' });
71		// Enddate //
72	$(".pickdate_to").datepicker({dateFormat: 'yy-mm-dd' });
73	
74	
75	/* check all order pending */
76	$(".checkAllOrder").change(function(){
77		$("#preload").show();
78		var checked  = $(this).is(':checked');
79		$(".form_order_pending input.orderCheck:checkbox").attr("checked", checked);
80		$(".form_order_pending input.orderCheck:checkbox").prop("checked", checked);
81	
82		getTotalDepositPrice();
83		
84		return false;
85	});
86	/* cọc đơn */
87	$(".orderCheck").change(function(){
88		$("#preload").show();
89		getTotalDepositPrice();
90		return false;
91	});
92	
93	$("#checkBuyAllSeller").change(function () {
94		$("#preload").show();
95		/*
96		if($(this).is(':checked')){
97        $("input.checkAllItem[type=checkbox]").each(function() {
98            $(this).attr('checked',true);
99            $(this).prop('checked',true);
100        });
101		}else{
102			$("input.checkAllItem[type=checkbox]").each(function() {
103				$(this).attr('checked', false);
104				$(this).prop('checked',false);
105			});
106		}
107		*/
108		
109		var checked  = $(this).is(':checked');
110		var data={'checked':checked,'postAjax':1};
111		var URL=baseURL+"cart/checkAllSeller";
112		$.ajax({
113				url: URL,
114				type: "post",
115				data: data,
116				success: function (response) {
117				   // you will get response from your php page (what you echo or print)   
118				    var obj = $.parseJSON(response);
119					if(obj.Response=='Error')
120					{
121						alert(obj.Error);
122					}else{
123						Object.keys(obj.Data).forEach(function(seller_id) {
124						  var seller_data = obj.Data[seller_id];
125						  if(seller_id == "all_seller"){
126							  $("#total_price_allseller").html(seller_data.total_all_price);
127							  $("#total_all_qty").html(seller_data.total_seller_checked);
128							  $("#total_link_selected").html(seller_data.total_link_checked);
129							  $("#total_quantity_selected").html(seller_data.total_quantity_checked);
130							  if(seller_data.link_over_limit == 1){
131								alert('Lưu ý: Mỗi đơn hàng sẽ giới hạn 200 link sản phẩm. Nếu vượt 200 link hệ thống sẽ tự động tách đơn!')
132							}
133						  }else{
134							  
135							  seller_id = seller_id.replace("http://","").replace("https://","");
136							  
137							  $(".shop_cart_"+seller_id+" .sl_total_price").html(seller_data.sl_total_price);
138							 // phí tạm tính
139							  $(".shop_cart_"+seller_id+" .sl_total_fee").html(seller_data.sl_total_fee);
140							// tiền cọc
141							  $(".shop_cart_"+seller_id+" .sl_percent_deposit").html(seller_data.sl_total_deposit);
142							 // tổng tiền hàng
143							  $(".shop_cart_"+seller_id+" .sl_total_order").html(seller_data.sl_total_order);
144							
145							 // buy fee
146							 $(".shop_cart_"+seller_id+" .sl_buy_fee").html(seller_data.sl_buy_fee);
147							 // fixed fee
148							 $(".shop_cart_"+seller_id+" .sl_fixed_fee").html(seller_data.sl_fixed_fee);
149						  }
150
151						});
152						
153						 $("input.checkAllItem[type=checkbox]").attr('checked',checked);
154						 $("input.checkAllItem[type=checkbox]").prop('checked',checked);
155						 
156						 $("input.itemCheck[type=checkbox]").attr('checked',checked);
157						 $("input.itemCheck[type=checkbox]").prop('checked',checked);
158						  
159					}
160					$("#preload").hide();
161					
162				},
163				error: function(jqXHR, textStatus, errorThrown) {
164				   console.log(textStatus, errorThrown);
165				   $("#preload").hide();
166				}
167		});
168		return false;
169	});
170
171	/* cart process */
172	$(".checkAllItem").change(function(){
173		$("#preload").show();
174		var seller_id  = $(this).attr('seller_id');
175		var checked  = $(this).is(':checked');
176		var data={'seller_id':seller_id,'checked':checked,'postAjax':1};
177		var URL=baseURL+"cart/checkAllItem";
178		$.ajax({
179				url: URL,
180				type: "post",
181				data: data,
182				success: function (response) {
183				   // you will get response from your php page (what you echo or print)   
184				    $("#preload").hide();
185					var obj = $.parseJSON(response);
186					if(obj.Response=='Error')
187					{
188						alert(obj.Error);
189					}
190					$(".shop_cart_"+seller_id+" tr td input:checkbox").attr("checked", checked);
191					$(".shop_cart_"+seller_id+" tr td input:checkbox").prop("checked", checked);
192					// update giá seller cart
193					updateSellerCartPrice(seller_id);
194					
195				},
196				error: function(jqXHR, textStatus, errorThrown) {
197				   console.log(textStatus, errorThrown);
198				   $("#preload").hide();
199				}
200		});
201		return false;
202	});
203	
204	$(".itemCheck").change(function(){
205		$("#preload").show();
206		var seller_id  = $(this).attr('seller_id');
207		var outer_id  = $(this).attr('outer_id');
208		var checked  = $(this).is(':checked');
209		var data={'seller_id':seller_id,'outer_id':outer_id,'checked':checked,'postAjax':1};
210		var URL=baseURL+"cart/checkItem";
211		$.ajax({
212				url: URL,
213				type: "post",
214				data: data,
215				success: function (response) {
216				   // you will get response from your php page (what you echo or print)   
217				    $("#preload").hide();
218					var obj = $.parseJSON(response);
219					if(obj.Response=='Error')
220					{
221						alert(obj.Error);
222					}else{
223						// update giá seller cart
224						updateSellerCartPrice(seller_id);
225					}					
226					
227				},
228				error: function(jqXHR, textStatus, errorThrown) {
229				   console.log(textStatus, errorThrown);
230				   $("#preload").hide();
231				}
232		});
233		return false;
234	});
235	
236	$(".shop_order_note").change(function(){
237		var seller_id  = $(this).attr('seller_id');
238		var shop_note = $(this).val();
239		$("#preload").show();
240		var data={'seller_id':seller_id,'shop_note':shop_note,'postAjax':1};
241		var URL=baseURL+"cart/updateShopNote";
242		$.ajax({
243				url: URL,
244				type: "post",
245				data: data,
246				success: function (response) {
247				   // you will get response from your php page (what you echo or print)   
248					var obj = $.parseJSON(response);
249					if(obj.Response=='Error')
250					{
251						alert(obj.Error);
252					}
253					$("#preload").hide();
254				},
255				error: function(jqXHR, textStatus, errorThrown) {
256				   console.log(textStatus, errorThrown);
257				   $("#preload").hide();
258				}
259		});
260		return false;
261	});
262	
263	$(".cart_item_note").change(function(){
264		var seller_id  = $(this).attr('seller_id');
265		var outer_id  = $(this).attr('outer_id');
266		var item_note = $(this).val();
267		$("#preload").show();
268		var data={'seller_id':seller_id,'outer_id':outer_id,'item_note':item_note,'postAjax':1};
269		var URL=baseURL+"cart/updateItemNote";
270		$.ajax({
271				url: URL,
272				type: "post",
273				data: data,
274				success: function (response) {
275				   // you will get response from your php page (what you echo or print)   
276					var obj = $.parseJSON(response);
277					if(obj.Response=='Error')
278					{
279						alert(obj.Error);
280					}
281					$("#preload").hide();
282				},
283				error: function(jqXHR, textStatus, errorThrown) {
284				   console.log(textStatus, errorThrown);
285				   $("#preload").hide();
286				}
287		});
288		return false;
289	});
290	
291	$(".cart_item_kh_note").change(function(){
292		var seller_id  = $(this).attr('seller_id');
293		var outer_id  = $(this).attr('outer_id');
294		var item_note = $(this).val();
295		$("#preload").show();
296		var data={'seller_id':seller_id,'outer_id':outer_id,'item_note':item_note,'postAjax':1};
297		var URL=baseURL+"cart/updateItemKhNote";
298		$.ajax({
299				url: URL,
300				type: "post",
301				data: data,
302				success: function (response) {
303				   // you will get response from your php page (what you echo or print)   
304					var obj = $.parseJSON(response);
305					if(obj.Response=='Error')
306					{
307						alert(obj.Error);
308					}
309					$("#preload").hide();
310				},
311				error: function(jqXHR, textStatus, errorThrown) {
312				   console.log(textStatus, errorThrown);
313				   $("#preload").hide();
314				}
315		});
316		return false;
317	});
318	/* cập nhật số lượng */
319	$(".cart_item_quantity").change(function(){
320		var seller_id  = $(this).attr('seller_id');
321		var outer_id  = $(this).attr('outer_id');
322		var item_qty = $(this).val();
323		$("#preload").show();
324		var data={'seller_id':seller_id,'outer_id':outer_id,'item_qty':item_qty,'postAjax':1};
325		var URL=baseURL+"cart/updateItemQTY";
326		$.ajax({
327				url: URL,
328				type: "post",
329				data: data,
330				success: function (response) {
331				   // you will get response from your php page (what you echo or print)   
332				   $("#preload").hide();
333					var obj = $.parseJSON(response);
334					if(obj.Response=='Error')
335					{
336						alert(obj.Error);
337					}else{
338						$(".shop_cart_"+seller_id+" .row_item_"+outer_id +" .item_total_price_vnd").html(obj.Item_Total_Price_VND);
339						$(".shop_cart_"+seller_id+" .row_item_"+outer_id +" .item_total_price").html(obj.Item_Total_Price);
340						updateSellerCartPrice(seller_id);
341					}					
342				},
343				error: function(jqXHR, textStatus, errorThrown) {
344				   console.log(textStatus, errorThrown);
345				   $("#preload").hide();
346				}
347		});
348		return false;
349	});
350	
351	/* cập nhật kho */
352	$(".cart_seller_store").change(function(){
353		var seller_id  = $(this).attr('seller_id');
354		var outer_id  = $(this).attr('outer_id');
355		var sub_store = $(this).val();
356		var store =$('option:selected', this).closest('optgroup').attr('value');
357		
358		$("#preload").show();
359		var data={'seller_id':seller_id,'outer_id':outer_id,'store':store,'sub_store':sub_store,'postAjax':1};
360		var URL=baseURL+"cart/updateSellerStore";
361		$.ajax({
362				url: URL,
363				type: "post",
364				data: data,
365				success: function (response) {
366				   // you will get response from your php page (what you echo or print)   
367				   $("#preload").hide();
368					var obj = $.parseJSON(response);
369					if(obj.Response=='Error')
370					{
371						alert(obj.Error);
372					}					
373				},
374				error: function(jqXHR, textStatus, errorThrown) {
375				   console.log(textStatus, errorThrown);
376				   $("#preload").hide();
377				}
378		});
379		return false;
380	});
381	
382	$(".sellerCheckWoodPack").change(function(){
383		var seller_id  = $(this).attr('seller_id');
384		var checked  = $(this).is(':checked');
385		var data={'seller_id':seller_id,'checked':checked,'postAjax':1};
386		var URL=baseURL+"cart/updateWoodPack";
387		$.ajax({
388				url: URL,
389				type: "post",
390				data: data,
391				success: function (response) {
392				   // you will get response from your php page (what you echo or print)   
393				    $("#preload").hide();
394					var obj = $.parseJSON(response);
395					if(obj.Response=='Error')
396					{
397						alert(obj.Error);
398					}					
399					
400				},
401				error: function(jqXHR, textStatus, errorThrown) {
402				   console.log(textStatus, errorThrown);
403				   $("#preload").hide();
404				}
405		});
406		return false;
407	});
408	
409	
410	
411	$(".sellerCPN_HN_SG").change(function(){
412		var seller_id  = $(this).attr('seller_id');
413		var checked  = $(this).is(':checked');
414		var data={'seller_id':seller_id,'checked':checked,'postAjax':1};
415		var URL=baseURL+"cart/updateCpnHnSg";
416		$.ajax({
417				url: URL,
418				type: "post",
419				data: data,
420				success: function (response) {
421				   // you will get response from your php page (what you echo or print)   
422				    $("#preload").hide();
423					var obj = $.parseJSON(response);
424					if(obj.Response=='Error')
425					{
426						alert(obj.Error);
427					}					
428					
429				},
430				error: function(jqXHR, textStatus, errorThrown) {
431				   console.log(textStatus, errorThrown);
432				   $("#preload").hide();
433				}
434		});
435		return false;
436	});
437	
438	$(".sellerNoteMoving").change(function(){
439		var seller_id  = $(this).attr('seller_id');
440		var checked  = $(this).is(':checked');
441		var data={'seller_id':seller_id,'checked':checked,'postAjax':1};
442		var URL=baseURL+"cart/updateIsNoteMoving";
443		$.ajax({
444				url: URL,
445				type: "post",
446				data: data,
447				success: function (response) {
448				   // you will get response from your php page (what you echo or print)   
449				    $("#preload").hide();
450					var obj = $.parseJSON(response);
451					if(obj.Response=='Error')
452					{
453						alert(obj.Error);
454					}					
455					
456				},
457				error: function(jqXHR, textStatus, errorThrown) {
458				   console.log(textStatus, errorThrown);
459				   $("#preload").hide();
460				}
461		});
462		return false;
463	});
464	
465});
466
467function openDiv(divSelector)
468{
469	
470	$(divSelector).show();
471	return false;
472}
473function openPopup(URL,data,width,height){
474	data.postAjax=1;
475	jQuery.ajax({
476        url: URL,
477        type: "post",
478		data: data,
479		beforeSend: function() {
480			jQuery("#ajaxPopup").css('width',width+"px");
481			jQuery("#ajaxPopup").css('height',height+"px");
482			jQuery("#ajaxPopup").html('<p class="loading">Đang tải dữ liệu ...</p>');
483			jQuery("#ajaxPopup").w2popup();
484		},
485        success: function (response) {
486           // you will get response from your php page (what you echo or print)                 
487		   var obj = jQuery.parseJSON(response);
488			if(obj.Response=='Error')
489			{
490				alert(obj.Error);
491			}else{
492				//jQuery("#ajaxPopup").css('width',width+"px");
493				//jQuery("#ajaxPopup").css('height',height+"px");
494				//jQuery("#ajaxPopup").html(obj.Message);
495				jQuery(".w2ui-msg-body").parents('#w2ui-popup').css('margin-top', '30px');
496				jQuery(".w2ui-msg-body").html(obj.Message);
497				//jQuery("#ajaxPopup").w2render('quickview');
498			}
499        },
500        error: function(jqXHR, textStatus, errorThrown) {
501           console.log(textStatus, errorThrown);
502        }
503    });
504	return false;
505}
506
507function format_curency(nStr){
508  nStr += '';
509  x = nStr.split('.');
510  x1 = x[0];
511  x2 = x.length > 1 ? '.' + x[1] : '';
512  var rgx = /(\d+)(\d{3})/;
513  while (rgx.test(x1))
514    x1 = x1.replace(rgx, '$1' + ',' + '$2');
515  return x1 + x2;
516}
517
518
519function checkPayment(self)
520{
521	var payment = document.getElementById("payment");
522    if (payment.selectedIndex==1) {
523        $('#user_receive').addClass('hidden');
524		$('#bank').removeClass('hidden');
525		$('#billpayment').addClass('hidden');
526		$('#method_type').val('1');
527    }else if (payment.selectedIndex==0) {
528		$('#bank').addClass('hidden');
529		
530		$('#billpayment').removeClass('hidden');
531		$('#user_receive').removeClass('hidden');
532		$('#method_type').val('0');
533    } 
534}
535function submitForm(formID)
536{
537	$(formID).submit();
538}
539function checkAll(seft)
540{
541	
542	$(".isCheckBox").prop('checked',$(seft).prop("checked"));
543	
544}
545
546function showNotificationOverLay(seft){
547	$(seft).w2overlay($('#notificationOverlay').html(), { css: { width: '400px', padding: '0px' } });
548}
549
550
551function showCustomerOwe()
552{
553	var ids=[];
554	$('.customer_credit_owe').each(function () {
555	  ids.push($(this).attr('data-id')); // ids.push(this.id) would work as well.
556	});
557	if(ids.length){
558		var URL=baseURL+"member/summaryowe";
559		$.ajax({
560			url: URL,
561			type: "post",
562			data: {"cids":ids.join("|")},
563			success: function (response) {
564				var objs = $.parseJSON(response);
565				$.each( objs.Response, function( key, value ) {
566					$(".owe_"+key).html(value);
567				});
568			},
569			error: function(jqXHR, textStatus, errorThrown) {
570			   console.log(textStatus, errorThrown);
571			}
572		});
573	}
574}
575
576function removeShop(seller_id)
577{
578	$("#preload").show();
579	var data={'seller_id':seller_id,'postAjax':1};
580	var URL=baseURL+"cart/removeShop";
581	$.ajax({
582			url: URL,
583			type: "post",
584			data: data,
585			success: function (response) {
586			   // you will get response from your php page (what you echo or print)   
587			    var obj = $.parseJSON(response);
588				if(obj.Response=='Error')
589				{
590					alert(obj.Error);
591				}else{
592					$(".shop_cart_"+seller_id).remove();
593				}
594				$("#preload").hide();
595			},
596			error: function(jqXHR, textStatus, errorThrown) {
597			   console.log(textStatus, errorThrown);
598			   $("#preload").hide();
599			}
600	});
601	return false;
602}
603
604function removeItem(seller_id,outer_id)
605{
606	$("#preload").show();
607	var data={'seller_id':seller_id,'outer_id':outer_id,'postAjax':1};
608	var URL=baseURL+"cart/removeItem";
609	$.ajax({
610			url: URL,
611			type: "post",
612			data: data,
613			success: function (response) {
614			   // you will get response from your php page (what you echo or print)   
615			    var obj = $.parseJSON(response);
616				if(obj.Response=='Error')
617				{
618					alert(obj.Error);
619				}else{
620					if(obj.RemoveSeller){
621						$(".shop_cart_"+seller_id).remove();
622					}else{
623						$(".shop_cart_"+seller_id+" .row_item_"+outer_id).remove();
624						updateSellerCartPrice(seller_id);
625					}
626				}
627				$("#preload").hide();
628			},
629			error: function(jqXHR, textStatus, errorThrown) {
630			   console.log(textStatus, errorThrown);
631			   $("#preload").hide();
632			}
633	});
634	return false;
635}
636
637function addFavorite(seller_id,outer_id)
638{
639	$("#preload").show();
640	var data={'seller_id':seller_id,'outer_id':outer_id,'postAjax':1};
641	var URL=baseURL+"cart/addFavoriteItem";
642	$.ajax({
643			url: URL,
644			type: "post",
645			data: data,
646			success: function (response) {
647			   // you will get response from your php page (what you echo or print)   
648			    var obj = $.parseJSON(response);
649				if(obj.Response=='Error')
650				{
651					alert(obj.Error);
652				}else{
653					if(obj.RemoveSeller){
654						$(".shop_cart_"+seller_id).remove();
655					}else{
656						$(".shop_cart_"+seller_id+" .row_item_"+outer_id).remove();
657						updateSellerCartPrice(seller_id);
658					}
659				}
660				$("#preload").hide();
661			},
662			error: function(jqXHR, textStatus, errorThrown) {
663			   console.log(textStatus, errorThrown);
664			   $("#preload").hide();
665			}
666	});
667	return false;
668}
669
670
671function updateSellerCartPrice(seller_id)
672{
673	$("#preload").show();
674	var data={'seller_id':seller_id,'postAjax':1};
675	var URL=baseURL+"cart/getSellerPrice";
676	$.ajax({
677			url: URL,
678			type: "post",
679			data: data,
680			success: function (response) {
681			   // you will get response from your php page (what you echo or print)   
682			    var obj = $.parseJSON(response);
683				if(obj.Response=='Error')
684				{
685					alert(obj.Error);
686				}else{
687					//console.log(obj.Data)
688					// tiền hàng
689					seller_id = seller_id.replace("http://","").replace("https://","");
690					$(".shop_cart_"+seller_id+" .sl_total_price").html(obj.Data.sl_total_price);
691					// phí tạm tính
692					$(".shop_cart_"+seller_id+" .sl_total_fee").html(obj.Data.sl_total_fee);
693					// tiền cọc
694					$(".shop_cart_"+seller_id+" .sl_percent_deposit").html(obj.Data.sl_total_deposit);
695					// tổng tiền hàng
696					$(".shop_cart_"+seller_id+" .sl_total_order").html(obj.Data.sl_total_order);
697					
698					// buy fee
699					$(".shop_cart_"+seller_id+" .sl_buy_fee").html(obj.Data.sl_buy_fee);
700					// fixed fee
701					$(".shop_cart_"+seller_id+" .sl_fixed_fee").html(obj.Data.sl_fixed_fee);
702					
703					// total price for cart
704					$("#total_price_allseller").html(obj.Data.total_all_price);
705					$("#total_all_qty").html(obj.Data.total_seller_checked);
706					$("#total_link_selected").html(obj.Data.total_link_checked);
707					$("#total_quantity_selected").html(obj.Data.total_quantity_checked);
708					
709					if(obj.Data.sl_link_over_limit == 1){
710						alert('Lưu ý: Mỗi đơn hàng sẽ giới hạn 200 link sản phẩm. Nếu vượt 200 link hệ thống sẽ tự động tách đơn!')
711					}
712				}
713				$("#preload").hide();
714			},
715			error: function(jqXHR, textStatus, errorThrown) {
716			   console.log(textStatus, errorThrown);
717			   $("#preload").hide();
718			}
719	});
720	return false;
721}
722/* xử lý gửi đơn hàng */
723function bookSellerOrder(seller_id)
724{
725	$("#preload").show();
726	var data={'seller_id':seller_id,'postAjax':1};
727	var URL=baseURL+"cart/bookSellerOrder";
728	$.ajax({
729			url: URL,
730			type: "post",
731			data: data,
732			success: function (response) {
733			   // you will get response from your php page (what you echo or print)   
734			    var obj = $.parseJSON(response);
735				if(obj.Response=='Error')
736				{
737					alert(obj.Error);
738				}else{
739					$("#BookOrderAlert").html(obj.Message);
740					$("#BookOrderAlert").show();
741					$('html,body').animate({
742						scrollTop: $("#BookOrderAlert").offset().top},
743					'slow');
744					$(".shop_cart_"+seller_id).remove();	
745
746					window.location.href = obj.redirectLink;
747				}
748				$("#preload").hide();
749				
750			},
751			error: function(jqXHR, textStatus, errorThrown) {
752			   console.log(textStatus, errorThrown);
753			   $("#preload").hide();
754			}
755	});
756	return false;
757}
758
759function bookAllSellerOrder()
760{
761	$("#preload").show();
762	var data={'postAjax':1};
763	var URL=baseURL+"cart/bookAllSellerOrder";
764	$.ajax({
765			url: URL,
766			type: "post",
767			data: data,
768			success: function (response) {
769			   // you will get response from your php page (what you echo or print)   
770			    var obj = $.parseJSON(response);
771				if(obj.Response=='Error')
772				{
773					alert(obj.Error);
774				}else{
775					
776					$("#BookOrderAlert").html(obj.Message);
777					$("#BookOrderAlert").show();
778					$('html,body').animate({
779						scrollTop: $("#BookOrderAlert").offset().top},
780					'slow');
781					window.location.href = obj.redirectLink;
782				}
783				$("#preload").hide();
784			},
785			error: function(jqXHR, textStatus, errorThrown) {
786			   console.log(textStatus, errorThrown);
787			   $("#preload").hide();
788			}
789	});
790	return false;
791}
792
793function bookAllSellerOrder2()
794{
795	var address_id = $("#default_address").val();
796	if(address_id > 0){
797		console.log("address_id",address_id);
798		
799		$("#preload").show();
800		var data={'address_id':address_id,'postAjax':1};
801		var URL=baseURL+"cart/bookAllSellerOrderDeposit";
802		$.ajax({
803				url: URL,
804				type: "post",
805				data: data,
806				success: function (response) {
807				   // you will get response from your php page (what you echo or print)   
808					var obj = $.parseJSON(response);
809					if(obj.Response=='Error')
810					{
811						alert(obj.Error);
812					}else{
813						console.log(obj); 
814						$("h2.page-title").html("Đơn hàng đã đặt cọc");
815						$("ul.progressbar li").addClass("active");
816						$("#checkout_step3 .row").html(obj.step3_html);
817						$("#checkout_step2").hide();
818						$("#checkout_step3").show();						
819						$('html,body').animate({
820							scrollTop: $("#checkout_step3").offset().top},
821						'slow');
822					}
823					$("#preload").hide();
824				},
825				error: function(jqXHR, textStatus, errorThrown) {
826				   console.log(textStatus, errorThrown);
827				   $("#preload").hide();
828				}
829		});
830		
831		return false;
832	}else{
833		alert("Bạn cần chọn địa chỉ nhận hàng trước khi gửi đơn.");
834		return false;
835	}
836}
837
838
839function bookAllSellerOrder3()
840{
841	var address_id = $("#default_address").val();
842	if(address_id > 0){
843		//console.log("address_id",address_id);
844		$(this).html("Đang gửi đơn...");
845		$(this).prop("disabled",true);
846	
847		$("#preload").show();
848		var data={'address_id':address_id,'postAjax':1};
849		var URL=baseURL+"cart/bookAllSellerOrder";
850		$.ajax({
851				url: URL,
852				type: "post",
853				data: data,
854				success: function (response) {
855				   // you will get response from your php page (what you echo or print)   
856					var obj = $.parseJSON(response);
857					if(obj.Response=='Error')
858					{
859						alert(obj.Error);
860					}else{
861						window.location.href = baseURL+"cart/step3";
862						/*
863						$("h2.page-title").html("Đơn hàng đã đặt cọc");
864						$("ul.progressbar li").addClass("active");
865						$("#checkout_step3 .row").html(obj.step3_html);
866						$("#checkout_step2").hide();
867						$("#checkout_step3").show();						
868						$('html,body').animate({
869							scrollTop: $("#checkout_step3").offset().top},
870						'slow');
871						*/
872					}
873					$("#preload").hide();
874					
875				},
876				error: function(jqXHR, textStatus, errorThrown) {
877				   console.log(textStatus, errorThrown);
878				   $("#preload").hide();
879				}
880		});
881		
882		return false;
883	}else{
884		alert("Bạn cần chọn địa chỉ nhận hàng trước khi gửi đơn.");
885		return false;
886	}
887}
888
889function getTotalDepositPrice(){
890	
891		var listOrderID = [];
892		$('input.orderCheck').each(function () {
893           if (this.checked) {
894			   listOrderID.push($(this).attr('oid'));
895           }
896		});
897		var data={'listOrderID':listOrderID.join(","),'postAjax':1};
898		
899		var URL=baseURL+"order/getTotalDepositPrice";
900		
901		$.ajax({
902				url: URL,
903				type: "post",
904				data: data,
905				success: function (response) {
906				   // you will get response from your php page (what you echo or print)   
907				    $("#preload").hide();
908					var obj = $.parseJSON(response);
909					$("#total_order_price").html(obj.totalPrice);
910					$("#total_deposit_price").html(obj.totalDepositPrice);
911					$(".bookAllSeller .total_order").html(obj.totalOrder);
912					$("#total_customer_credit").html(obj.customerCredit);
913					if(obj.showButton){
914						$(".bookAllSeller .bt_dathang").prop("disabled",false);
915					}else{
916						$(".bookAllSeller .bt_dathang").prop("disabled",true);
917					}
918					if(listOrderID.length > 0){
919						$(".bookAllSeller .bt_huydon").prop("disabled",false);
920					}else{
921						$(".bookAllSeller .bt_huydon").prop("disabled",true);
922					}
923				},
924				error: function(jqXHR, textStatus, errorThrown) {
925				   console.log(textStatus, errorThrown);
926				   $("#preload").hide();
927				}
928		});
929}
930
931/* xu ly hủy đơn don */
932function cancelOrder(){
933	
934	var listOrderID = [];
935	$('input.orderCheck').each(function () {
936      if (this.checked) {
937		  if(listOrderID.indexOf($(this).attr('oid')) < 0){
938			listOrderID.push($(this).attr('oid'));
939		  }
940      }
941	});
942
943	$(this).html("Đang hủy("+listOrderID.length+")...");
944	$(this).prop("disabled",true);
945
946	if(listOrderID.length){
947		$("#preload").show();
948		var data={'listOrderID':listOrderID.join(","),'postAjax':1};
949			
950		var URL=baseURL+"order/cancelOrder";
951			
952		$.ajax({
953					url: URL,
954					type: "post",
955					data: data,
956					success: function (response) {
957					   // you will get response from your php page (what you echo or print)   
958						$("#preload").hide();
959						
960						var obj = $.parseJSON(response);
961						if(obj.Response == "Success")
962						{
963							if(obj.listOrderSuccess.length)
964							{
965								obj.listOrderSuccess.forEach(function (order_id) {
966									$("td.lable_order"+order_id).html('<p class="label label-default">Đã hủy</p>');
967									$(".order_pending_"+order_id).remove();
968								})
969							}
970							$("#BookOrderAlert").html(obj.Message);
971							$("#BookOrderAlert").show();
972							getTotalDepositPrice();
973						}else{
974							alert(obj.Error);
975						}
976					},
977					error: function(jqXHR, textStatus, errorThrown) {
978					   console.log(textStatus, errorThrown);
979					   $("#preload").hide();
980					}
981		});
982	}else{
983		alert("Bạn cần phải chọn ít nhất một đơn hàng !");
984	}
985		
986	return false;
987}
988
989//copy don hang theo id 
990$(document).on("click", ".btncopyorder", function(e) {
991	var oid = $(this).attr('data-oid');
992	var data={'oid':oid};
993	var URL=baseURL+"order/copyorder";
994	$.ajax({
995				url: URL,
996				type: "post",
997				data: data,
998				success: function (response) {
999					$("#preload").hide();
1000					
1001					var obj = $.parseJSON(response);
1002					if(obj.Response == "Success")
1003					{
1004						alert(obj.Message);
1005					}else{
1006						alert(obj.Message);
1007					}
1008				},
1009				error: function(jqXHR, textStatus, errorThrown) {
1010				   console.log(textStatus, errorThrown);
1011				   $("#preload").hide();
1012				}
1013	});
1014});
1015
1016
1017/* xu ly coc don */
1018function bookOrderDeposit(){
1019	
1020	var listOrderID = [];
1021	$('input.orderCheck').each(function () {
1022      if (this.checked) {
1023		if(listOrderID.indexOf($(this).attr('oid')) < 0){
1024			listOrderID.push($(this).attr('oid'));
1025		}
1026      }
1027	});
1028	$(this).html("Đang cọc("+listOrderID.length+")...");
1029	$(this).prop("disabled",true);
1030	if(listOrderID.length){
1031		$("#preload").show();
1032		var data={'listOrderID':listOrderID.join(","),'postAjax':1};
1033			
1034		var URL=baseURL+"order/bookOrderDeposit";
1035			
1036		$.ajax({
1037					url: URL,
1038					type: "post",
1039					data: data,
1040					success: function (response) {
1041					   // you will get response from your php page (what you echo or print)   
1042						$("#preload").hide();
1043						
1044						var obj = $.parseJSON(response);
1045						if(obj.Response == "Success")
1046						{
1047							if(obj.listOrderSuccess.length)
1048							{
1049								obj.listOrderSuccess.forEach(function (order_id) {
1050									$("td.lable_order"+order_id).html('<p class="label label-success">Đặt cọc thành công</p>');
1051									$(".order_pending_"+order_id).remove();
1052								})
1053							}
1054							$("#BookOrderAlert").html(obj.Message);
1055							$("#BookOrderAlert").show();
1056							getTotalDepositPrice();
1057						}else{
1058							alert(obj.Error);
1059						}
1060					},
1061					error: function(jqXHR, textStatus, errorThrown) {
1062					   console.log(textStatus, errorThrown);
1063					   $("#preload").hide();
1064					}
1065		});
1066	}else{
1067		alert("Bạn cần phải chọn ít nhất một đơn hàng !");
1068	}
1069		
1070	return false;
1071}
1072
1073function moveToDiv(seft,divSelector){
1074	$(".view_order_menu li").removeClass("active");
1075	$(seft).parent("li").addClass("active");
1076	$('html,body').animate({
1077		scrollTop: $(divSelector).offset().top},
1078	'slow');
1079	return false;
1080}
1081
1082function loadSubStore(store)
1083{
1084	
1085	  var data={'store':store,'postAjax':1};
1086			
1087		var URL=baseURL+"Register/loadSubStore";
1088			
1089		$.ajax({
1090					url: URL,
1091					type: "post",
1092					data: data,
1093					success: function (response) {
1094					   // you will get response from your php page (what you echo or print)  
1095						var obj = $.parseJSON(response);
1096						if(obj.Response == "Success")
1097						{
1098							$("#sub_store").html(obj.Message);
1099						}
1100						
1101					},
1102					error: function(jqXHR, textStatus, errorThrown) {
1103					   console.log(textStatus, errorThrown);
1104					   $("#preload").hide();
1105					}
1106		});
1107		return false;	
1108}
1109
1110function updateWoodPack(checked,oid)
1111{		
1112		var data={'oid':oid,'checked':checked,'postAjax':1};
1113		$("#preload").show();	
1114		var URL=baseURL+"order/updateWoodPack";
1115		$.ajax({
1116					url: URL,
1117					type: "post",
1118					data: data,
1119					success: function (response) {
1120						$("#preload").hide();
1121					   // you will get response from your php page (what you echo or print)  
1122						var obj = $.parseJSON(response);
1123						if(obj.Response == "Success")
1124						{
1125							alert(obj.Message);
1126						}else{
1127							alert("Lỗi:"+obj.Error);
1128						}
1129						
1130					},
1131					error: function(jqXHR, textStatus, errorThrown) {
1132					   console.log(textStatus, errorThrown);
1133					   $("#preload").hide();
1134					}
1135		});
1136		return false;	
1137}
1138
1139function updateCPN_HN_SG(checked,oid)
1140{		
1141		var data={'oid':oid,'checked':checked,'postAjax':1};
1142		$("#preload").show();	
1143		var URL=baseURL+"order/updateCPN_HN_SG";
1144		$.ajax({
1145					url: URL,
1146					type: "post",
1147					data: data,
1148					success: function (response) {
1149						$("#preload").hide();
1150					   // you will get response from your php page (what you echo or print)  
1151						var obj = $.parseJSON(response);
1152						if(obj.Response == "Success")
1153						{
1154							alert(obj.Message);
1155						}else{
1156							alert("Lỗi:"+obj.Error);
1157						}
1158						
1159					},
1160					error: function(jqXHR, textStatus, errorThrown) {
1161					   console.log(textStatus, errorThrown);
1162					   $("#preload").hide();
1163					}
1164		});
1165		return false;	
1166}
1167
1168function updateNoteMoving(checked,oid)
1169{		
1170		var data={'oid':oid,'checked':checked,'postAjax':1};
1171		$("#preload").show();	
1172		var URL=baseURL+"order/updateNoteMoving";
1173		$.ajax({
1174					url: URL,
1175					type: "post",
1176					data: data,
1177					success: function (response) {
1178						$("#preload").hide();
1179					   // you will get response from your php page (what you echo or print)  
1180						var obj = $.parseJSON(response);
1181						if(obj.Response == "Success")
1182						{
1183							alert(obj.Message);
1184						}else{
1185							alert("Lỗi:"+obj.Error);
1186						}
1187						
1188					},
1189					error: function(jqXHR, textStatus, errorThrown) {
1190					   console.log(textStatus, errorThrown);
1191					   $("#preload").hide();
1192					}
1193		});
1194		return false;	
1195}
1196
1197function activeAddress(address_id)
1198{
1199	var data={'address_id':address_id,'postAjax':1};
1200	$("#preload").show();	
1201	var URL=baseURL+"member/activeAddress";
1202	$.ajax({
1203		url: URL,
1204		type: "post",
1205		data: data,
1206		success: function (response) {
1207			$("#preload").hide();
1208		   // you will get response from your php page (what you echo or print)  
1209			var obj = $.parseJSON(response);
1210			if(obj.Response == "Success")
1211			{
1212				window.location.reload();
1213			}else{
1214				alert("Lỗi:"+obj.Error);
1215			}
1216			
1217		},
1218		error: function(jqXHR, textStatus, errorThrown) {
1219		   console.log(textStatus, errorThrown);
1220		   $("#preload").hide();
1221		}
1222	});
1223	return false;		
1224}
1225
1226function delAddress(address_id)
1227{
1228	var data={'address_id':address_id,'postAjax':1};
1229	$("#preload").show();	
1230	var URL=baseURL+"member/delAddress";
1231	$.ajax({
1232		url: URL,
1233		type: "post",
1234		data: data,
1235		success: function (response) {
1236			$("#preload").hide();
1237		   // you will get response from your php page (what you echo or print)  
1238			var obj = $.parseJSON(response);
1239			if(obj.Response == "Success")
1240			{
1241				window.location.reload();
1242			}else{
1243				alert("Lỗi:"+obj.Error);
1244			}
1245			
1246		},
1247		error: function(jqXHR, textStatus, errorThrown) {
1248		   console.log(textStatus, errorThrown);
1249		   $("#preload").hide();
1250		}
1251	});
1252	return false;		
1253}
1254
1255function updatePhone(){
1256	var phone = $('#phone_update').val();
1257	
1258	if($.trim(phone) == ""){
1259		alert('Vui lòng nhập vào số điện thoại!');
1260		return false;
1261	}
1262	
1263	var data= {'phone':phone, 'postAjax':1};
1264	$("#preload").show();
1265	var URL=baseURL+"member/updatePhone";
1266	$.ajax({
1267				url: URL,
1268				type: "post",
1269				data: data,
1270				success: function (response) {
1271					$("#preload").hide();
1272				   // you will get response from your php page (what you echo or print)  
1273					
1274					var obj = $.parseJSON(response);
1275					if(obj.Response == "Success")
1276					{
1277						alert(obj.Message);
1278						$('#modal_input_phone').modal('hide');
1279					}else{
1280						alert("Lỗi:"+obj.Error);
1281					}
1282				},
1283				error: function(jqXHR, textStatus, errorThrown) {
1284				   console.log(textStatus, errorThrown);
1285				   $("#preload").hide();
1286				}
1287	});
1288	return false;	
1289}
1290
1291function follow_zalo_success(response){
1292	if(response.userId != ""){
1293		var data = {'zalo_user_id':response.userId, 'postAjax':1};
1294		var URL = baseURL+"member/updateZaloUserId";
1295		
1296		$("#preload").show();
1297		
1298		$.ajax({
1299			url: URL,
1300			type: "post",
1301			data: data,
1302			success: function (response) {
1303				$("#preload").hide();
1304				var obj = $.parseJSON(response);
1305				if(obj.Response == "Success")
1306				{
1307					alert(obj.Message);
1308				}else{
1309					alert("Lỗi:"+obj.Error);
1310				}
1311			},
1312			error: function(jqXHR, textStatus, errorThrown) {
1313				$("#preload").hide();
1314			}
1315		});
1316	}
1317}
1318
1319function bookAllSellerOrderNextStep(){
1320	$("#preload").show();
1321	window.location.href = "/cart/step2";
1322}
1323
1324
1325//tinh khoi luong bang kich thuoc
1326$(document).on("blur", "input.convert_dimension", function() {	
1327	var stt=0;
1328	var weight = 1;
1329	var rate = 7000;
1330	$( "input.convert_dimension").each(function( index,value ) {
1331		if(value.value > 0){
1332		  stt++;
1333		  weight =  weight *(value.value);
1334		}
1335		$('.convert_mass').val('');
1336	});
1337	if(stt == 3 && weight >0){
1338		var khoiluong = (weight/rate);
1339		var res = String(khoiluong).split(".");
1340		var weight_round = res[0];
1341
1342		if (typeof res[1] !== 'undefined') {
1343		    var thapphan = res[1];
1344			if(res[1].length >= 2){
1345				if(parseInt(res[1].substr(0,1)) == 9){
1346					weight_round = parseInt(res[0]) + 1;
1347				}else{
1348					thapphan = parseInt(res[1].substr(0,1)) + 1;
1349					weight_round = res[0] + '.'+thapphan;
1350				}
1351			}
1352		}
1353		$('.convert_mass').val(weight_round);
1354	}
1355});
1356
1357function estimationCost(e){
1358	var total_real_price = $(".total_price").val();
1359	var total_mass = $(".total_mass").val();
1360	var store = $(".address_store").val();
1361	var total_estimate_cost = 0;
1362
1363	if(total_real_price <= 0 || total_real_price == ''){
1364		alert('Vui lòng nhập vào tiền hàng!');
1365		return false;
1366	}
1367
1368	if(total_mass <= 0 || total_mass == ''){
1369		alert('Vui lòng nhập vào khối lượng!');
1370		return false;
1371	}
1372
1373	var URL = baseURL+"/item/estimatecost";       
1374	var data = {'total_real_price': total_real_price, 'store' : store, 'weight': total_mass};
1375	$.ajax({
1376		url: URL,
1377		type: 'POST',
1378		data: data,
1379		success: function (response) {
1380			var obj = $.parseJSON(response);
1381			if(obj.Response=='Error'){
1382				alert('Có lỗi xảy ra, vui lòng liên hệ nhân viên hỗ trợ!');
1383			}else{
1384				$('.txt_fixed_fee').html(format_curency(obj.Message.fixed_fee)+'<sup>đ</sup>');
1385				$('.txt_fee_service').html(format_curency(obj.Message.fee_service_vnd)+'<sup>đ</sup>');
1386				$('.txt_fee_weight').html(format_curency(obj.Message.weight_fee)+'<sup>đ</sup>');
1387				$('.txt_total_real_price').html(format_curency(obj.Message.total_real_price_vnd)+'<sup>đ</sup>');
1388				total_estimate_cost = parseInt(obj.Message.fixed_fee) + parseInt(obj.Message.fee_service_vnd) + parseInt(obj.Message.weight_fee) + parseInt(obj.Message.total_real_price_vnd);
1389				$('.txt_estimate_cost').html(format_curency(total_estimate_cost)+'<sup>đ</sup>');
1390				$('.result-estimate').removeClass('hide');
1391			}
1392		},error: function(xhr) {
1393		}
1394	});
1395}

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.