PageSourceSearch

https://pho-vietnamesegaterestaurant.com/assets/front/js/functions.js

js pho-vietnamesegaterestaurant.com collected 2026-10-04 12:37:12 UTC 19,043 bytes, 627 lines download raw bytes

1// JavaScript Document
2var current_language = getCookie("alligator_default_language");
3var decimals = getCookie("get_decimals");
4
5var cart_heading = "CART";
6if (current_language == "arabic") {
7  cart_heading = "سلة التسوق";
8}
9$(document).ready(function () {
10  increase_list_view_image_height();
11});
12
13$(window).resize(function () {
14  increase_list_view_image_height();
15});
16
17$(document).on("click", ".selected_item_qty_change", function () {
18  var action = $(this).data("action");
19  var current_val = parseInt($("#selected_item_qty").val());
20  if (action == "increase") {
21    current_val += 1;
22  } else {
23    if (current_val != "1") {
24      current_val -= 1;
25    }
26  }
27  //Assign new value and  change text
28  $("#selected_item_qty").val(current_val);
29  $(".selected_qty_text").text(current_val);
30  update_cost();
31});
32function increase_list_view_image_height() {
33  if ($(document).width() <= 767) {
34    if ($(".list-view-item").length) {
35      $(".list-view-item").each(function () {
36        var item_height = $(this).height();
37
38        $(this).find(".itemsingleimage img").height(item_height);
39      });
40    }
41  }
42}
43function fetch_more(url, offset, search) {
44  var token = "";
45  if ($('[name="system_csrf"]').length > 0)
46    var token = document.tokenform.system_csrf.value;
47
48  $.ajax({
49    type: "POST",
50    url: url,
51    data: "ajax=1&offset=" + offset + "&system_csrf=" + token + search,
52    success: function (data) {
53      $("#content").html(data);
54    },
55  });
56}
57function getCookie(name) {
58  function escape(s) {
59    return s.replace(/([.*+?\^$(){}|\[\]\/\\])/g, "\\$1");
60  }
61  var match = document.cookie.match(
62    RegExp("(?:^|;\\s*)" + escape(name) + "=([^;]*)")
63  );
64  return match ? match[1] : null;
65}
66
67function update_cost() {
68  var final_cost = 0;
69  var addon_cost = 0;
70
71  var qty = 1;
72  var item_id = 0;
73  var item_cost = 0;
74  var item_option_price = 0;
75
76  var modl = "#addons-options-modal";
77
78  item_id = $("" + modl + " #selected_item_id").val();
79  item_cost = parseFloat($("" + modl + " #selected_item_price").val());
80  var qtyval = parseInt($("" + modl + " #selected_item_qty").val());
81  if (qtyval != undefined && !isNaN(qtyval) && qtyval >= 1) {
82    qty = qtyval;
83  }
84  $("" + modl + " .radioInput:checked").each(function () {
85    item_option_price += parseFloat($(this).attr("data-val"));
86  });
87  $(".addoncheckbox").each(function (index) {
88    flag = false;
89    grp = $(this).data("group");
90
91    max = parseInt($(this).data("max"));
92    if (max != 0) {
93      checkedels = $('.addoncheckbox[data-group="' + grp + '"]:checked').length;
94
95      if (checkedels >= max) {
96        flag = true;
97        $('.addoncheckbox[data-group="' + grp + '"]:not(:checked)').prop(
98          "disabled",
99          true
100        );
101      }
102      if (flag == false) {
103        $('.addoncheckbox[data-group="' + grp + '"]:not(:checked)').prop(
104          "disabled",
105          false
106        );
107      }
108    }
109  });
110  $("" + modl + " .dm-add-qty input:checked").each(function (index) {
111    addon_cost += parseFloat($(this).attr("data-val"));
112  });
113
114  final_cost =
115    parseFloat(item_option_price) +
116    parseFloat(addon_cost) +
117    parseFloat(item_cost);
118
119  final_cost = (final_cost * qty).toFixed(decimals);
120
121  $("#hp_final_cost").html(final_cost);
122}
123
124function cart_update_cost() {
125  var final_cost = 0;
126  var addon_cost = 0;
127
128  var item_id = 0;
129  var item_cost = 0;
130  var item_option_price = 0;
131  var itm_qty = 1;
132
133  var modl = "#addons-options-modal";
134
135  item_id = $("" + modl + " #selected_item_id").val();
136  item_cost = parseFloat($("" + modl + " #selected_item_price").val());
137
138  itm_qty = $("" + modl + " #itm_qty").val();
139
140  $("" + modl + " .radioInput:checked").each(function () {
141    item_option_price += parseFloat($(this).attr("data-val"));
142  });
143  $("" + modl + " .dm-add-qty input:checked").each(function () {
144    addon_cost += parseFloat($(this).attr("data-val"));
145  });
146
147  final_cost = (item_option_price + addon_cost + item_cost).toFixed(decimals);
148  $("#hpp_final_cost").html((final_cost * itm_qty).toFixed(decimals));
149}
150
151function update_qty(rowid, type) {
152  if (rowid != "" && type != "") {
153    var min = 0;
154    var max = 99;
155
156    var token = "";
157
158    if ($('[name="csrf_digi_name"]').length)
159      token = document.getElementsByName("csrf_digi_name")[0].value;
160
161    var targeturl = update_cart_target_url;
162
163    $("body").addClass("ajax-load");
164
165    $.post(
166      targeturl,
167      { rowid: rowid, type: type, csrf_digi_name: token, ajax: "1" },
168      function (data) {
169        $("body").removeClass("ajax-load");
170
171        if (data > 0) {
172          if (data == 678) {
173            message = "No more available";
174            if (current_language == "arabic") {
175              message = "لم يعد متاحاً";
176            }
177            checkNotify(cart_heading, message, "info");
178          } else {
179            load_cart_div();
180
181            if (data != 9999) {
182              $("#items_cnt").text(data);
183            } else {
184              $("#items_cnt").text(0);
185            }
186            message = "Cart has been successfully updated.";
187            if (current_language == "arabic") {
188              message = "تم تحديث سلة التسوق بنجاح.";
189            }
190
191            checkNotify(cart_heading, message, "success");
192          }
193        } else {
194          message = "Item has not been updated.";
195          if (current_language == "arabic") {
196            message = "لم يتم تحديث المنتج.";
197          }
198          checkNotify(cart_heading, message, "error");
199        }
200      }
201    );
202  }
203}
204function update_qty_summary(rowid, type) {
205  if (rowid != "" && type != "") {
206    var min = 0;
207    var max = 99;
208
209    var token = "";
210
211    if ($('[name="csrf_digi_name"]').length)
212      token = document.getElementsByName("csrf_digi_name")[0].value;
213
214    var targeturl = update_cart_target_url;
215
216    $("body").addClass("ajax-load");
217
218    $.post(
219      targeturl,
220      { rowid: rowid, type: type, csrf_digi_name: token, ajax: "1" },
221      function (data) {
222        $("body").removeClass("ajax-load");
223
224        if (data > 0) {
225          if (data == 678) {
226            message = "No more available";
227            if (current_language == "arabic") {
228              message = "لم يعد متاحاً";
229            }
230            checkNotify(cart_heading, message, "info");
231          } else {
232            if (
233              $("#order_type").length > 0 &&
234              $("#order_type").val() != "delivery" &&
235              $("#order_type").val() != ""
236            ) {
237              load_cart_summary_div("takeaway");
238            } else {
239              load_cart_summary_div();
240            }
241
242            if (data != 9999) {
243              $("#items_cnt").text(data);
244            } else {
245              $("#items_cnt").text(0);
246            }
247
248            message = "Cart has been successfully updated.";
249            if (current_language == "arabic") {
250              message = "تم تحديث سلة التسوق بنجاح.";
251            }
252            checkNotify(cart_heading, message, "success");
253          }
254        } else {
255          message = "Item has not updated";
256          if (current_language == "arabic") {
257            message = "Item has not updated";
258          }
259          checkNotify(cart_heading, message, "error");
260        }
261      }
262    );
263  }
264}
265$(".chzn-select").chosen({ search_contains: true });
266
267function checkNotify(title, text, type) {
268  var notification = new PNotify({
269    title: title,
270    mode: "dark",
271    text: text,
272    type: type,
273    stack: { dir1: "down", dir2: "right", firstpos1: 25, firstpos2: 25 },
274  });
275
276  notification.open();
277}
278//UPDATE TO CART - POPUP - CUSTOMIZE
279function updateToCart() {
280  var message = "";
281
282  var itemFrom = "items";
283  var item_id = 0;
284
285  var item_option_id = 0;
286  var itm_qty = 1;
287  var item_cost = 0;
288  var special = "";
289
290  var addon_ids = [];
291  var item_options = [];
292
293  var index = 0;
294
295  var modl = "#addons-options-modal";
296
297  item_id = $("" + modl + " #selected_item_id").val();
298
299  itm_qty = $("" + modl + " #itm_qty").val();
300  item_cost = $("" + modl + " #selected_item_price").val();
301  special = $("" + modl + " #special_instructions").val();
302
303  var rowid = $("" + modl + " #rowid").val();
304
305  $("" + modl + " .radioInput:checked").each(function () {
306    item_option_price = parseFloat($(this).attr("data-val"));
307    item_option_id = $(this).val();
308    item_cost += item_option_price;
309    item_options.push(item_option_id);
310  });
311
312  //Prepare Add-ons array
313  $(".dm-add-qty input:checked").each(function () {
314    addon_ids[index++] = $(this).attr("id");
315  });
316  if (rowid != "" && item_id > 0 && item_option_id >= 0 && itm_qty > 0) {
317    var token = "";
318
319    if ($('[name="csrf_digi_name"]').length)
320      token = document.getElementsByName("csrf_digi_name")[0].value;
321
322    var targeturl = add_cart_target_url;
323
324    $("body").addClass("ajax-load");
325
326    $.post(
327      targeturl,
328      {
329        item_id: item_id,
330        quantity: itm_qty,
331        special: special,
332        item_option_id: item_options,
333        addon_ids: addon_ids,
334        csrf_digi_name: token,
335        ajax: "1",
336        item_from: itemFrom,
337        rowid: rowid,
338      },
339      function (data) {
340        $("body").removeClass("ajax-load");
341        if (data == 999) {
342          message = "This item already exists in your cart.";
343          if (current_language == "arabic") {
344            message = "هذا المنتج موجود في سلة التسوق.";
345          }
346          checkNotify(cart_heading, message, "info");
347        } else if (data == 8888) {
348          message = "All the options are mandatory.";
349          if (current_language == "arabic") {
350            message = "جميع الخيارات مطلوبة.";
351          }
352          checkNotify(cart_heading, message, "info");
353        } else if (data == 7777) {
354          message =
355            "Please follow minimum and maximum restrictions for add-ons.";
356          if (current_language == "arabic") {
357            message =
358              "يرجى اتباع الحد الأدني والحد الأقصى للطلب وفقاً للتعلميات.";
359          }
360          checkNotify(cart_heading, message, "info");
361        } else if (data > 0) {
362          if ($("#addons-options-modal").hasClass("in")) {
363            $("#addons-options-modal").modal("hide");
364          }
365
366          load_cart_div();
367
368          if (
369            $("#order_type").length > 0 &&
370            $("#order_type").val() != "delivery" &&
371            $("#order_type").val() != ""
372          ) {
373            load_cart_summary_div("takeaway");
374          } else {
375            load_cart_summary_div();
376          }
377          message = "Cart has been successfully updated.";
378          if (current_language == "arabic") {
379            message = "تم تحديث سلة التسوق بنجاح.";
380          }
381          checkNotify(cart_heading, message, "success");
382        } else {
383          message = "Item was not updated.";
384          if (current_language == "arabic") {
385            message = "لم يتم تحديث المنتج.";
386          }
387          checkNotify(cart_heading, message, "error");
388        }
389      }
390    );
391  } else {
392    message = "Invalid Operation";
393    if (current_language == "arabic") {
394      message = "العملية غير صالحة";
395    }
396    checkNotify(cart_heading, message, "error");
397  }
398}
399
400// ADD TO CART function
401function addToCart(ref) {
402  var message = "";
403  var itemFrom = "items";
404  var item_id = 0;
405  var item_cost = 0;
406  var qty = 1;
407  var item_option_price = 0;
408  var item_option_id = 0;
409
410  var addon_ids = [];
411
412  var index = 0;
413  var item_options = [];
414  var special = "";
415
416  if (ref > 0) {
417    var frm = "#item_form_" + ref + "";
418
419    item_id = ref;
420
421    item_cost = $("" + frm + " #selected_item_cost" + ref + "").val();
422    itemFrom = $("" + frm + " #itemFrom" + ref + "").val();
423  } else {
424    var modl = "#addons-options-modal";
425
426    item_id = $("" + modl + " #selected_item_id").val();
427
428    if ($("" + modl + " #selected_item_qty").length) {
429      let pint = parseInt($("" + modl + " #selected_item_qty").val());
430      if (!isNaN(pint) && pint != undefined && pint > 1) {
431        qty = pint;
432      }
433    }
434    item_cost = $("" + modl + " #selected_item_price").val();
435    itemFrom = $("" + modl + " #itemFrom").val();
436    special = $("" + modl + " #special_instructions").val();
437
438    $("" + modl + " .radioInput:checked").each(function () {
439      item_option_price = parseFloat($(this).attr("data-val"));
440      item_option_id = $(this).val();
441      item_cost += item_option_price;
442      item_options.push(item_option_id);
443    });
444
445    //Prepare Add-ons array
446    $(".dm-add-qty input:checked").each(function () {
447      addon_ids[index++] = $(this).attr("id");
448    });
449  }
450
451  var quantity = qty;
452  if (itemFrom != "" && item_id > 0 && quantity > 0 && item_option_id >= 0) {
453    var token = "";
454
455    if ($('[name="csrf_digi_name"]').length)
456      token = document.getElementsByName("csrf_digi_name")[0].value;
457
458    if (!quantity) quantity = 1;
459
460    var targeturl = add_cart_target_url;
461
462    $("body").addClass("ajax-load");
463    $.post(
464      targeturl,
465      {
466        item_id: item_id,
467        quantity: quantity,
468        special: special,
469        item_option_id: item_options,
470        addon_ids: addon_ids,
471        csrf_digi_name: token,
472        ajax: "1",
473        item_from: itemFrom,
474      },
475      function (data) {
476        $("body").removeClass("ajax-load");
477        if (data == 678) {
478          message = "No more available";
479          if (current_language == "arabic") {
480            message = "لم يعد متاحاً";
481          }
482
483          checkNotify(cart_heading, message, "info");
484        } else if (data == 999) {
485          message = "This item already exists in your cart.";
486          if (current_language == "arabic") {
487            message = "هذا المنتج موجود في سلة التسوق.";
488          }
489
490          checkNotify(cart_heading, message, "info");
491        } else if (data == 8888) {
492          message = "All the options are mandatory.";
493          if (current_language == "arabic") {
494            message = "جميع الخيارات مطلوبة.";
495          }
496          checkNotify(cart_heading, message, "info");
497        } else if (data == 7777) {
498          message =
499            "Please follow minimum and maximum restrictions for add-ons.";
500          if (current_language == "arabic") {
501            message =
502              "يرجى اتباع الحد الأدني والحد الأقصى للطلب وفقاً للتعلميات.";
503          }
504          checkNotify(cart_heading, message, "info");
505        } else if (data > 0) {
506          if ($("#addons-options-modal").hasClass("in")) {
507            $("#addons-options-modal").modal("hide");
508          }
509
510          $("#items_cnt").text(data);
511
512          load_cart_div();
513
514          message = "Item successfully added to your cart.";
515          if (current_language == "arabic") {
516            message = "تم إضافة المنتج إلى سلة التسوق بنجاح.";
517          }
518          checkNotify(cart_heading, message, "success");
519        } else if (data != 999 && data <= 0) {
520          message = "Item was not added to your cart.";
521          if (current_language == "arabic") {
522            message = "لم تتم إضافة المنتج في سلة التسوق";
523          }
524          checkNotify(cart_heading, message, "error");
525        } else {
526          message = "Item does not exist.";
527          if (current_language == "arabic") {
528            message = "المنتج غير متوفر";
529          }
530          checkNotify(cart_heading, message, "error");
531        }
532      }
533    );
534  } else {
535    message = "Invalid Operation";
536    if (current_language == "arabic") {
537      message = "العملية غير صالحة";
538    }
539    checkNotify(cart_heading, message, "error");
540  }
541}
542
543function remove_cart_item(id) {
544  if (!id)
545    //rowid
546    return;
547
548  var token = "";
549
550  if ($('[name="csrf_digi_name"]').length)
551    token = document.getElementsByName("csrf_digi_name")[0].value;
552
553  var targeturl = remove_cart_target_url;
554
555  $("body").addClass("ajax-load");
556
557  $.post(
558    targeturl,
559    { item_row_id: id, csrf_digi_name: token, ajax: "1" },
560    function (data) {
561      $("body").removeClass("ajax-load");
562
563      if (data >= 0) {
564        if (data > 0 && data != 999) {
565          $("#items_cnt").text(data);
566          message = "Item successfully removed from your cart.";
567          if (current_language == "arabic") {
568            message = "تم حذف المنتج بنجاح من سلة التسوق.";
569          }
570
571          refresh_cart();
572          address_cart(); //when item_remove - refresh cart div, summary div
573
574          checkNotify(cart_heading, message, "success");
575        } else if (data <= 0) {
576          message = "Item not removed from your cart.";
577          if (current_language == "arabic") {
578            message = "لم يتم إضافة المنتج من سلة التسوق.";
579          }
580          checkNotify(cart_heading, message, "error");
581          location.reload();
582        } else if (data == 999) {
583          message = "No Items In Cart";
584          if (current_language == "arabic") {
585            message = "لا توجد منتجات في سلة التسوق.";
586          }
587          checkNotify(cart_heading, message, "error");
588          location.reload();
589        }
590      } else {
591        message = "Item does not exist.";
592        if (current_language == "arabic") {
593          message = "المنتج غير متوفر";
594        }
595        checkNotify(cart_heading, message, "error");
596      }
597    }
598  );
599}
600
601const menu = document.querySelector(".menu");
602const menuItems = document.querySelectorAll(".menuItem");
603const hamburger = document.querySelector(".hamburger");
604const closeIcon = document.querySelector(".closeIcon");
605const menuIcon = document.querySelector(".menuIcon");
606
607function toggleMenu() {
608  if (menu.classList.contains("showMenu")) {
609    menu.classList.remove("showMenu");
610    closeIcon.style.display = "none";
611    menuIcon.style.display = "block";
612  } else {
613    menu.classList.add("showMenu");
614    closeIcon.style.display = "block";
615    menuIcon.style.display = "none";
616  }
617}
618if (hamburger) {
619  hamburger.addEventListener("click", toggleMenu);
620}
621if (closeIcon) {
622  closeIcon.addEventListener("click", toggleMenu);
623}
624
625menuItems.forEach(function (menuItem) {
626  menuItem.addEventListener("click", toggleMenu);
627});

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.