home *** CD-ROM | disk | FTP | other *** search
Text File | 2011-07-23 | 49.0 KB | 1,045 lines |
- $.extend(x5engine.imCart, {
-
- _restoreSpecialChars: function (str) {
- return str.replace(/\{1\}/g, "'").replace(/\{2\}/g, "\"").replace(/\{3\}/g, "\\").replace(/\{4\}/g, "<").replace(/\{5\}/g, ">")
- },
-
- // Test if cookies are working in the current browser
- _testCookie: function () {
- $.imCookie("imCookieTest", "test_content");
- if ($.imCookie("imCookieTest") == "test_content") return true;
- return false;
- },
-
- // Get the product array from cookie
- _getCart: function () {
- try {
- if ($.imCookie(x5engine.imCart.costants.COOKIE_NAME, null, { path: '/' }) != null)
- return $.parseJSON($.imCookie(x5engine.imCart.costants.COOKIE_NAME, null, { path: '/' }));
- else
- return [];
- } catch (e) {
- $.imCookie(x5engine.imCart.costants.COOKIE_NAME, {}, { path: '/' });
- return [];
- }
- },
-
- // Save the product array to the cookie
- _setCart: function (products) {
- if (!x5engine.imCart._testCookie()) {
- alert(x5engine.l10n.getLocalization("cart_err_cookie"));
- return false;
- }
-
- var json = [];
- for (var i = 0, j = 0; i < products.length; i++)
- if (products[i] != null) {
- json[j] = "{\"id\": \"" + products[i].id + "\", \"quantity\": " + products[i].quantity + ", \"option\": \"" + products[i].option + "\"}";
- j++;
- }
- json = json.join(",");
- json = "[" + json + "]";
-
- $.imCookie(x5engine.imCart.costants.COOKIE_NAME, json, { path: '/' });
- },
-
- // Save the form data in a cookie
- _setFormData: function (post) {
- var json;
- for (var i = 0; i < post.length; i++) {
- post[i] = "{\"id\": \"" + post[i].id + "\", \"val\": \"" + post[i].val + "\"}";
- }
- json = "[" + post.join(",") + "]";
- $.imCookie(x5engine.imCart.costants.COOKIE_FORM_NAME, json);
- },
-
- // Get the form data from the cookie
- _getFormData: function () {
- try {
- return $.parseJSON($.imCookie(x5engine.imCart.costants.COOKIE_FORM_NAME));
- } catch (e) {
- $.imCookie(x5engine.imCart.costants.COOKIE_FORM_NAME, {});
- return null;
- }
- },
-
- // Set the currency format
- _setCurrency: function (n, format, currency) {
- var decsep = "";
- var thsep = "";
- var integer;
- var decimal = "";
- currency = currency || x5engine.imCart.settings.currency;
- if (format == null) format = x5engine.imCart.settings.currency_format;
- var value = "";
- var int_value = parseInt(n.toString());
- var dec_value = n - int_value;
-
- // Find the decimal separator
- decsep = Math.max(format.lastIndexOf("."), format.lastIndexOf(","));
- thsep = Math.min(format.indexOf("."), format.indexOf(","));
- if (thsep == -1 && format.indexOf(".") != -1) thsep = format.indexOf(".");
- if (thsep == -1 && format.indexOf(",") != -1) thsep = format.indexOf(",");
-
- if (decsep != -1) {
- integer = format.substr(0, decsep);
- decimal = format.substr(decsep + 1);
- } else
- integer = format;
-
- if (decsep != thsep && thsep != -1) thsep = format.charAt(thsep);
- else
- thsep = "";
- if (decsep == -1) decsep = "";
- else decsep = format.charAt(decsep);
-
- // Format the int part
- int_value += "";
- for (var i = 0; i < Math.max(integer.length, int_value.length); i++) {
- if (i % 3 == 0 && i != 0 && (int_value.length - i > 0 || integer.charAt(integer.length - 2 - i) == "@")) value = thsep + value;
- if (int_value.length - 1 - i >= 0) value = int_value.charAt(int_value.length - 1 - i) + value;
- else if (integer.charAt(integer.length - 1 - i) == "@") value = "0" + value;
- }
-
- // Set the precision
- var counter = 0;
- for (var i = 0; i < decimal.length; i++)
- if (decimal.charAt(i) == '@')
- counter++;
-
- if (counter == 0 && dec_value > 0) {
- counter = 2;
- decimal = "@@";
- }
-
- dec_value = Math.round(dec_value*Math.pow(10,counter))/Math.pow(10,counter);
-
- // Format the decimal part
- dec_value = dec_value.toString();
- dec_value = dec_value.substr(dec_value.indexOf(".") + 1);
- decimal = decimal.replace("[C]", "");
-
- for (var i = 0; i < decimal.length; i++) {
- if (i == 0) value += decsep.toString();
- if (dec_value.length > i) value += dec_value.charAt(i).toString();
- else if (decimal.charAt(i) == "@") value += "0";
- }
-
- // Add the currency symbol
- if (format.indexOf("[C]") == 0) value = currency + value;
- else if (format.indexOf("[C]") != -1) value += currency;
-
- return value;
- },
-
- // Get the value of the key
- _getValueFromKey: function (key, array) {
- var value;
- if (array["0"] == null)
- value = 0;
- else
- value = array["0"];
-
- if (key * 1 > 0)
- for (var property in array)
- if (property * 1 <= key * 1)
- value = array[property];
-
- return value;
- },
-
- // Get the shipping price
- _getShippingPrice: function (shipping, subtotal, total_quantity, total_weight) {
- if (shipping.price != null) {
- switch (shipping.type) {
- case "WEIGHT":
- price = x5engine.imCart._getValueFromKey(total_weight, shipping.price);
- break;
- case "QUANTITY":
- price = x5engine.imCart._getValueFromKey(total_quantity, shipping.price);
- break;
- case "AMOUNT":
- price = x5engine.imCart._getValueFromKey(subtotal, shipping.price);
- break;
- default:
- price = shipping.price;
- break;
- }
- if (shipping.vat != null)
- price += price * shipping.vat;
- return price;
- }
-
- return 0;
- },
-
- // Set the payment type
- _setPayment: function (n) {
- x5engine.imCart.payment_type = n;
- },
-
- // Get the payment type
- _getPayment: function () {
- return x5engine.imCart.payment_type;
- },
-
- // Set the shipping type
- _setShipping: function (n) {
- x5engine.imCart.shipping_type = n;
- },
-
- // Get the shipping type
- _getShipping: function () {
- return x5engine.imCart.shipping_type;
- },
-
- // Empty the cookie and reset the cart
- _realEmptyCart: function () {
- x5engine.imCart._setCart([]);
- x5engine.imCart.updateWidget();
- if ($("#imInputTotalPrice").length > 0) x5engine.imCart.showCart();
- },
-
- // Create a string ready to be used in an HTML/JS string
- _htmlOutput: function (str) {
- return str.replace(/\"/g, "''").replace(/\</g, "<").replace(/\>/g, ">");
- },
-
- // Create the order number
- _createOrderNo: function (format) {
- if (format == null) format = x5engine.imCart.settings.order_no_format;
- var date = new Date();
- var day = date.getDate();
- var month = date.getMonth() + 1;
- var shortYear = date.getYear().toString();
- shortYear = shortYear.substring(shortYear.length - 2);
- if (parseInt(day) < 10) day = "0" + day;
- if (parseInt(month) < 10) month = "0" + month;
-
- format = format.replace(/\[dd\]/g, day);
- format = format.replace(/\[mm\]/g, month);
- format = format.replace(/\[yy\]/g, shortYear);
- format = format.replace(/\[yyyy\]/g, date.getFullYear());
- while (format.match(/\[A-Z\]/)) format = format.replace(/\[A-Z\]/, String.fromCharCode(Math.round(Math.random() * 25 + 65)));
- while (format.match(/\[a-z\]/)) format = format.replace(/\[a-z\]/, String.fromCharCode(Math.round(Math.random() * 25 + 97)));
- while (format.match(/\[0-9\]/)) format = format.replace(/\[0-9\]/g, Math.round(Math.random() * 9));
-
- return format;
- },
-
- // Create the correct HTML code for operational purposes
- _createPaymentHtml: function (paymentHtml) {
-
- // Replaces the keywords
- if (x5engine.imCart.email_data.order_no == null || x5engine.imCart.email_data.order_no == "")
- x5engine.imCart.email_data.order_no = x5engine.imCart._createOrderNo();
- paymentHtml = paymentHtml.replace(/\[ORDER_NO\]/g, x5engine.imCart.email_data.order_no);
- paymentHtml = paymentHtml.replace(/\[QUANTITY\]/g, x5engine.imCart.email_data.total_quantity);
- paymentHtml = paymentHtml.replace(/\[WEIGHT\]/g, x5engine.imCart.email_data.total_weight);
- var price = x5engine.imCart.email_data.clear_total;
- // Format the price
- var format = x5engine.imCart.settings.cart_price;
- if (format.multiplier != null) price *= format.multiplier;
- price = x5engine.imCart._setCurrency(price.toString(), format.format);
- paymentHtml = paymentHtml.replace(/\[PRICE\]/g, price);
- while (paymentHtml.match(/\[PRICE,\s*([0-9]+),\s*([\w#@\.,\[\]]+)\]/)) {
- price = x5engine.imCart.email_data.clear_total;
- price *= parseInt(RegExp.$1);
- price = x5engine.imCart._setCurrency(price.toString(), RegExp.$2);
- paymentHtml = paymentHtml.replace(/\[PRICE,\s*([0-9]+),\s*([\w#@\.,\[\]]+)\]/, price);
- }
-
- //Customer data fields
- post = x5engine.imCart.email_data.form;
- if (post != null && post["imCartName_shipping"] != null && post["imCartName_shipping"] != "") {
- paymentHtml = paymentHtml.replace(/\[FIRST_NAME\]/g, ((post["imCartName_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartName_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[LAST_NAME\]/g, ((post["imCartLastName_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartLastName_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[ADDRESS1\]/g, ((post["imCartAddress1_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartAddress1_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[ADDRESS2\]/g, ((post["imCartAddress2_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartAddress2_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[CITY\]/g, ((post["imCartCity_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartCity_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[STATE\]/g, ((post["imCartStateRegion_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartStateRegion_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[COUNTRY\]/g, ((post["imCartCountry_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartCountry_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[ZIP\]/g, ((post["imCartZipPostalCode_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartZipPostalCode_shipping"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[EMAIL\]/g, ((post["imCartEmail_shipping"] != null) ? x5engine.imCart._htmlOutput(post["imCartEmail_shipping"].imValue) : ""));
- } else if (post != null) {
- paymentHtml = paymentHtml.replace(/\[FIRST_NAME\]/g, ((post["imCartName"] != null) ? x5engine.imCart._htmlOutput(post["imCartName"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[LAST_NAME\]/g, ((post["imCartLastName"] != null) ? x5engine.imCart._htmlOutput(post["imCartLastName"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[ADDRESS1\]/g, ((post["imCartAddress1"] != null) ? x5engine.imCart._htmlOutput(post["imCartAddress1"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[ADDRESS2\]/g, ((post["imCartAddress2"] != null) ? x5engine.imCart._htmlOutput(post["imCartAddress2"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[CITY\]/g, ((post["imCartCity"] != null) ? x5engine.imCart._htmlOutput(post["imCartCity"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[STATE\]/g, ((post["imCartStateRegion"] != null) ? x5engine.imCart._htmlOutput(post["imCartStateRegion"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[COUNTRY\]/g, ((post["imCartCountry"] != null) ? x5engine.imCart._htmlOutput(post["imCartCountry"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[ZIP\]/g, ((post["imCartZipPostalCode"] != null) ? x5engine.imCart._htmlOutput(post["imCartZipPostalCode"].imValue) : ""));
- paymentHtml = paymentHtml.replace(/\[EMAIL\]/g, ((post["imCartEmail"] != null) ? x5engine.imCart._htmlOutput(post["imCartEmail"].imValue) : ""));
- }
-
- return paymentHtml;
- },
-
- _updateOption: function (id, old_option, new_option, quantity, obj) {
- x5engine.imCart.addProduct(id, 0, old_option, true, false);
- x5engine.imCart.addProduct(id, quantity, new_option);
- x5engine.imCart.showCart($(obj).attr("id"), 1);
- },
-
- cartPage: function () {
- var category = x5engine.utils.getParam("category");
- if (category != null && category != "")
- x5engine.imCart.showCategory(x5engine.utils.getParam("category"));
- else
- x5engine.imCart.showCart();
- },
-
- // Save the current page and go to the cart
- gotoCart: function (in_cart) {
- if (typeof in_cart == "string") {
- $.imCookie("imShopPage", window.location.href, { path: '/' });
- location.href = in_cart + "cart/index.html";
- return true;
- } else {
- if (in_cart == null)
- in_cart = false;
- if (!in_cart) {
- $.imCookie("imShopPage", window.location.href, { path: '/' });
- location.href = "cart/index.html";
- }
- else {
- location.href = "index.html";
- }
- }
-
- return false;
- },
-
- gotoCategory: function (id) {
- $.imCookie("imShopPage", window.location.href);
- location.href = "cart/index.html?category=" + id;
- },
-
- // Continue shopping button
- continueShopping: function () {
- var oldPage = $.imCookie("imShopPage", null, { path: '/' });
- if (oldPage != null) {
- window.location.href = oldPage;
- }
- else
- window.location.href = x5engine.imCart.settings.continue_shopping_page;
- },
-
- // Add a product quantity to the cart
- // If force is true, quantity overrides the actual quantity in the cart. If force is false the quantity is added to the existing one
- addProduct: function (id, quantity, option, force, message) {
- if (message == null) message = true;
- if (quantity == null) quantity = 1;
- if (force == null) force = false;
- if (option == null) option = "null";
-
- if (x5engine.imCart.products[id].min_quantity != null && quantity < x5engine.imCart.products[id].min_quantity && quantity != 0) {
- alert((x5engine.l10n.getLocalization("cart_err_quantity")).replace("[QUANTITY]", x5engine.imCart.products[id].min_quantity));
- return false;
- }
-
- var products = x5engine.imCart._getCart();
- if (products == null && quantity > 0) {
- x5engine.imCart._setCart([{
- "id": id,
- "quantity": quantity,
- "option": escape(option)
- }]);
- } else {
- var found = false;
- for (var i = 0; i < products.length; i++) {
- if (products[i].id == id && unescape(products[i].option) == unescape(option)) {
- found = true;
- if (!force)
- products[i].quantity = products[i].quantity * 1 + quantity * 1;
- else {
- if (quantity > 0) products[i].quantity = quantity * 1;
- else if (message && confirm(x5engine.l10n.getLocalization("cart_remove_q"))) products[i] = null;
- else if (!message) products[i] = null;
- }
- }
- }
-
- if (!found && quantity > 0) products[products.length] = {
- "id": id,
- "quantity": quantity,
- "option": escape(option)
- };
-
- x5engine.imCart._setCart(products);
- }
- },
-
- // Add a product to the cart
- addToCart: function (id, quantity, in_cart, option) {
- var product = x5engine.imCart.products[id];
- if (quantity == null)
- quantity = $("#" + x5engine.imCart.costants.QUANT_FIELD_NAME.replace("{id}", id)).val();
- if (quantity == null)
- quantity = 1;
- if (option == null) {
- if ($("#" + x5engine.imCart.costants.OPT_FIELD_NAME.replace("{id}", id)).length > 0)
- option = $("#" + x5engine.imCart.costants.OPT_FIELD_NAME.replace("{id}", id)).val();
- else
- option = "null";
- }
-
- if (in_cart == null)
- in_cart = false;
-
- if (/^[0-9]+$/.test(quantity) == false) {
- alert(x5engine.l10n.getLocalization("cart_err_qty"));
- return false;
- }
-
- x5engine.imCart.addProduct(id, quantity, option);
- x5engine.imCart.updateWidget();
- x5engine.imCart.gotoCart(in_cart);
- },
-
- // Remove a product from the cart
- removeFromCart: function (id, option, obj) {
- x5engine.imCart.addProduct(id, 0, option, true);
- x5engine.imCart.updateWidget();
- x5engine.imCart.showCart(obj, 1);
- },
-
- // Update the quantity of a product in the cart
- updateCart: function (id, obj, updateScreen) {
- if (updateScreen == null)
- updateScreen = false;
- var quantity = $(obj).val();
- if (/^[0-9]+$/.test(quantity) == false) {
- alert(x5engine.l10n.getLocalization("cart_err_qty"));
- return false;
- }
- var products = x5engine.imCart._getCart();
- var option = "null";
- var total_quantity = 0;
- var total_weight = 0;
-
- for (var i = 0; i < products.length; i++) {
- if (products[i].id == id) {
- option = products[i].option;
- total_weight += x5engine.imCart.products[id].weight * quantity;
- total_quantity += quantity;
- }
- else {
- total_weight += x5engine.imCart.products[id].weight * products[i].quantity;
- total_quantity += products[i].quantity;
- }
- }
-
- x5engine.imCart.addProduct(id, quantity, option, true);
- x5engine.imCart.updateWidget();
- if (updateScreen)
- x5engine.imCart.showCart(null, 0);
-
- x5engine.imCart.updateTotalPrice(total_quantity, total_weight);
- },
-
- // Update the widget
- updateWidget: function () {
- var products = x5engine.imCart._getCart();
- var sum = 0;
- var total_vat = 0;
- var total = 0;
-
- $(".widget_quantity_total").each(function () {
- if (products != null) {
- for (var i = 0; i < products.length; i++) {
- if (x5engine.imCart.products[products[i].id] != null)
- sum += products[i].quantity;
- }
- }
- $(this).html(sum);
- });
- $(".widget_amount_total").each(function () {
- if (products != null) {
- for (var i = 0; i < products.length; i++) {
- var id = products[i].id;
- if (x5engine.imCart.products[id] != null) {
- var quantity = products[i].quantity;
- var option = products[i].option;
- var discounts = x5engine.imCart.products[id].discounts;
- var weight = x5engine.imCart.products[id].weight;
- if (weight == null) weight = 0;
- var discount = 0;
- var subtot = 0;
- var vat;
-
- if (x5engine.imCart.products[id].vat != null)
- vat = x5engine.imCart.products[id].vat;
- else if (x5engine.imCart.settings.vat != null)
- vat = x5engine.imCart.settings.vat;
- else
- vat = 0;
-
- if (discounts != null)
- discount = x5engine.imCart._getValueFromKey(quantity, discounts);
-
- subtot = quantity * x5engine.imCart.products[id].price;
- subtot -= (subtot * discount);
-
- total_vat += subtot + subtot * vat;
- }
- }
- sum = total_vat;
- }
- $(this).html(x5engine.imCart._setCurrency(sum));
- });
- },
-
- // Empty the cart
- emptyCart: function (getConfirmation) {
- if (getConfirmation == null) getConfirmation = true;
- if (getConfirmation == true) {
- if (confirm(x5engine.l10n.getLocalization("cart_empty")))
- x5engine.imCart._realEmptyCart();
- } else
- x5engine.imCart._realEmptyCart();
- return false;
- },
-
- // Show a category
- showCategory: function (id, obj) {
- obj = obj || "#imCartContainer";
- $(obj).empty().prepend("<h2 id=\"imPgTitle\">" + x5engine.l10n.getLocalization('cart_step1') + "</h2>\n<div style=\"height: 15px;\"> </div>" + x5engine.l10n.getLocalization('cart_step1_descr') + "<br /><br /><br />");
- var html = "<table id=\"imCartProductsTable\"><tr class=\"imCartHeader\">";
- html += "<td>" + x5engine.l10n.getLocalization("cart_descr") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_opt") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_price") + "</td>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<td>" + x5engine.l10n.getLocalization("cart_vat") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_qty") + "</td>";
- html += "</tr>";
- var str_eval = "";
- for (var pid in x5engine.imCart.products) {
- var product = x5engine.imCart.products[pid];
- if (product.category == id) {
- html += "<tr><td><b>" + product.name + "</b><br />" + product.description + "</td>";
- html += "<td>";
- if (product.options != null && product.options.length > 0) {
- html += "<select id=\"product_" + pid + "_opt\">";
- for (var option in product.options)
- html += "<option value=\"" + product.options[option] + "\">" + x5engine.imCart._restoreSpecialChars(unescape(product.options[option])) + "</option>";
- html += "</select>";
- }
- html += "</td>";
- html += "<td style=\"text-align: right;\">" + x5engine.imCart._setCurrency(product.price) + "</td>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<td style=\"text-align: right;\">" + ((product.vat != null && product.vat > 0) ? (product.vat * 100).toFixed(2) + "%" : " - ") + "</td>";
- html += "<td style=\"text-align: right;\"><input type=\"text\" value=\"1\" id=\"product_" + pid + "_qty\" size=\"3\" style=\"text-align: right\"/>";
- html += "<img id=\"buy_" + pid + "\" style=\"cursor: pointer; vertical-align: middle; margin-left: 5px;\" src=\"images/cart-add.gif\" alt=\"" + x5engine.l10n.getLocalization("cart_add") + "\" title=\"" + x5engine.l10n.getLocalization("cart_add") + "\" /></td>";
- str_eval += "$('#buy_" + pid + "').unbind('click').click(function () { x5engine.imCart.addToCart('" + pid + "', null, true); });";
- html += "</tr>";
- }
- }
-
- html += "</table>";
- html += "<div style=\"text-align: center; margin-top: 20px;\">";
- html += "<input type=\"button\" id=\"imCartButtonBack\" value=\"" + x5engine.l10n.getLocalization("cart_continue_shopping") + "\" style=\"margin-right: 5px;\" />";
- html += "<input type=\"button\" id=\"imCartButtonNext\" value=\"" + x5engine.l10n.getLocalization("cart_goshop") + "\" style=\"margin-right: 5px;\" />";
- html += "</div>";
-
- $(obj).append(html);
- eval(str_eval);
- $("#imCartButtonBack").unbind("click").click(x5engine.imCart.continueShopping);
- $("#imCartButtonNext").unbind("click").click(function () { x5engine.imCart.showCart(); });
- },
-
- // Show the cart
- showCart: function (obj, time) {
- var email_data = {};
- var str_eval = "";
-
- $(".imTip").fadeOut(100, function () {
- $(".imTip").remove();
- });
-
- obj = obj || "#imCartContainer";
- obj = $(obj);
- if (time == null) time = 100;
-
- var products = x5engine.imCart._getCart();
- var filtered_products = new Array();
- // Filter the products (if the cookie contains products not in the cart anymore)
- for (var i = 0; i < products.length; i++) {
- if (x5engine.imCart.products[products[i].id] != null)
- filtered_products[filtered_products.length] = products[i];
- }
- products = filtered_products;
-
- if (products != null && products.length > 0) {
- obj.fadeOut(time, function () {
- obj.empty().prepend("<h2 id=\"imPgTitle\">" + x5engine.l10n.getLocalization('cart_step2') + "</h2>\n<div style=\"height: 15px;\"> </div>");
-
- var html = x5engine.l10n.getLocalization('cart_step2_cartlist') + "<br /><br />";
-
- // Products
- html += "<table id=\"imCartProductsTable\"><tr class=\"imCartHeader\">";
- html += "<td>" + x5engine.l10n.getLocalization("cart_descr") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_opt") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_price") + "</td>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<td>" + x5engine.l10n.getLocalization("cart_vat") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_qty") + "</td>";
- html += "<td>" + x5engine.l10n.getLocalization("cart_subtot") + "</td><td></td></tr>";
- var total = 0;
- var total_vat = 0;
- var shipping_total = 0;
- var shipping_total_vat = 0;
- var total_quantity = 0;
- var total_weight = 0;
-
- for (var i = 0; i < products.length; i++) {
- var id = products[i].id;
- var quantity = products[i].quantity;
- var option = products[i].option;
- var discounts = x5engine.imCart.products[id].discounts;
- var weight = x5engine.imCart.products[id].weight;
- if (weight == null) weight = 0;
- var discount = 0;
- var subtot = 0;
- var vat;
-
- if (x5engine.imCart.products[id].vat != null)
- vat = x5engine.imCart.products[id].vat;
- else if (x5engine.imCart.settings.vat != null)
- vat = x5engine.imCart.settings.vat;
- else
- vat = 0;
-
- if (discounts != null)
- discount = x5engine.imCart._getValueFromKey(quantity, discounts);
-
- total_weight += weight * quantity;
- total_quantity += quantity;
- subtot = quantity * x5engine.imCart.products[id].price;
- subtot -= (subtot * discount);
-
- total += subtot;
- total_vat += subtot + subtot * vat;
-
- var cart_p = x5engine.imCart.products[id];
- email_data[id + "_" + option] = {
- id_user: cart_p.id_user,
- name: cart_p.name,
- description: cart_p.description,
- single_price: x5engine.imCart._setCurrency(x5engine.imCart.products[id].price - x5engine.imCart.products[id].price * discount),
- price: x5engine.imCart._setCurrency(subtot),
- price_vat: x5engine.imCart._setCurrency(subtot + subtot * vat),
- option: option,
- quantity: quantity,
- vat: vat,
- vat_f: x5engine.imCart._setCurrency(vat * (x5engine.imCart.products[id].price - x5engine.imCart.products[id].price * discount))
- };
-
- html += "<tr><td>" + x5engine.imCart.products[id].id_user + (x5engine.imCart.products[id].description != "" ? " - " + x5engine.imCart.products[id].description : "") + "</td>";
- html += "<td>";
- if (option != "null") {
- var freeid = "product_" + id + "_" + x5engine.utils.imHash(option) + "_opt";
- html += "<select id=\"" + freeid + "\">";
- for (var j = 0; j < x5engine.imCart.products[id].options.length; j++) {
- html += "<option value=\"" + x5engine.imCart.products[id].options[j] + "\" " + ((x5engine.imCart.products[id].options[j] == unescape(option)) ? "selected" : "") + ">" + x5engine.imCart._restoreSpecialChars(unescape(x5engine.imCart.products[id].options[j])) + "</option>";
- str_eval += "$('#" + freeid + "').unbind('change').change(function () {x5engine.imCart._updateOption('" + id + "', '" + option + "', $('#" + freeid + "').val() , " + quantity + ", '" + $(obj).attr("id") + "')});";
- }
- html += "</select>";
- }
- html += "</td>";
- html += "<td style=\"text-align: right;\">" + x5engine.imCart._setCurrency(x5engine.imCart.products[id].price - x5engine.imCart.products[id].price * discount) + "</td>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<td style=\"text-align: right;\">" + ((vat) ? (vat * 100).toFixed(2) + "%" : "-") + "</td>";
- html += "<td style=\"text-align: right;\"><input style=\"text-align: right;\" id=\"qty_product_" + i + "\" type=\"text\" value=\"" + quantity + "\" size=\"2\"></td>";
- str_eval += "$('#qty_product_" + i + "').unbind('change').change(function () {x5engine.imCart.updateCart('" + id + "', this, true);});";
- html += "<td style=\"text-align: right;\">" + x5engine.imCart._setCurrency(subtot + subtot * vat) + "</td>";
- html += "<td style=\"text-align: center\"><img id=\"remove_product_" + i + "\" style=\"vertical-align: middle; cursor: pointer;\" src=\"../cart/images/cart-remove.gif\" alt=\"" + x5engine.l10n.getLocalization("cart_remove") + "\" title=\"" + x5engine.l10n.getLocalization("cart_remove") + "\" /></td></tr>";
- str_eval += "$('#remove_product_" + i + "').click(function () { return x5engine.imCart.removeFromCart('" + id + "', '" + option + "', '#" + $(obj).attr('id') + "'); });";
- }
-
- x5engine.imCart.product_price_plus_vat = total_vat;
-
- if (x5engine.imCart.email_data == null) x5engine.imCart.email_data = {};
- x5engine.imCart.email_data.products = email_data;
-
- html += "<tr style=\"text-align: right;\"><td style=\"border-width: 0; background-color: transparent;\" colspan=\"4\"></td><td class=\"nostyle\">" + x5engine.l10n.getLocalization("cart_total") + "</td><td class=\"nostyle\">" + x5engine.imCart._setCurrency(total) + "</td></tr>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<tr style=\"text-align: right;\"><td style=\"border-width: 0; background-color: transparent;\" colspan=\"4\"></td><td class=\"nostyle\">" + x5engine.l10n.getLocalization("cart_total_vat") + "</td><td class=\"nostyle\">" + x5engine.imCart._setCurrency(total_vat) + "</td></tr>";
-
- html += "</table>";
- html += "<input type=\"hidden\" id=\"imInputTotalPrice\" name=\"imInputTotalPrice\" value=\"" + total_vat + "\"/>";
-
- // Payment
- html += "<br />" + x5engine.l10n.getLocalization('cart_step2_shiplist') + "<br /><br /><table id=\"imCartPaymentsTable\">";
- html += "<tr class=\"imCartHeader\"><td colspan=\"2\">" + x5engine.l10n.getLocalization('cart_payment') + "</td><td>" + x5engine.l10n.getLocalization("cart_price") + "</td></tr>";
- var payments = x5engine.imCart.payments;
-
- for (var i = 0; i < payments.length; i++) {
- var price = payments[i].price || 0;
- if (payments[i].vat != null) price += price * payments[i].vat;
- html += "<tr><td style=\"width: 5%\"><input type=\"radio\" name=\"imPaymentType\" value=\"" + i + "\" id=\"cart_payment_" + i + "\" " + ((x5engine.imCart._getPayment() == i && x5engine.imCart.email_data.payment != null) ? "checked" : "") + "/></td><td style=\"width: 80%\"><label for=\"cart_payment_" + i + "\"><b>" + payments[i].name + ":</b> " + payments[i].description + "</label></td><td style=\"width: 15%; text-align: right;\">" + ((price > 0) ? x5engine.imCart._setCurrency(price) : "-") + "</td></tr>";
- str_eval += "$('#cart_payment_" + i + "').unbind('click').click(function () { x5engine.imCart.updatePayment(" + i + ", " + total_quantity + ", " + total_weight + ")});";
- if (x5engine.imCart._getPayment() == i) total_vat += price;
- }
- html += "</table>";
-
- // Shipping
- html += "<br /><table id=\"imCartShippingsTable\">";
- html += "<tr class=\"imCartHeader\"><td colspan=\"2\">" + x5engine.l10n.getLocalization('cart_shipping') + "</td><td>" + x5engine.l10n.getLocalization("cart_price") + "</td></tr>";
- var shippings = x5engine.imCart.shippings;
-
- for (var i = 0; i < shippings.length; i++) {
- var price = x5engine.imCart._getShippingPrice(shippings[i], x5engine.imCart.product_price_plus_vat, total_quantity, total_weight);
- html += "<tr><td style=\"width: 5%\"><input type=\"radio\" name=\"imShippingType\" value=\"" + i + "\" id=\"cart_shipping_" + i + "\" " + ((x5engine.imCart._getShipping() == i && x5engine.imCart.email_data.shipping != null) ? "checked" : "") + "/></td><td style=\"width: 80%\"><label for=\"cart_shipping_" + i + "\"><b>" + shippings[i].name + ":</b> " + shippings[i].description + "</label></td><td style=\"width: 15%; text-align: right;\">" + ((price > 0) ? x5engine.imCart._setCurrency(price) : "-") + "</td></tr>";
- str_eval += "$('#cart_shipping_" + i + "').unbind('click').click(function () {x5engine.imCart.updateShipping(" + i + ", " + total_quantity + ", " + total_weight + ");});";
- if (x5engine.imCart._getShipping() == i)
- total_vat += price;
- }
- html += "</table><br />";
-
- // Price summary
- html += "<div><div id=\"imCartTotalPriceCont\">" + x5engine.l10n.getLocalization('cart_total_price') + ": <span id=\"imDivTotalPrice\">" + x5engine.imCart._setCurrency(total_vat) + "</span></div></div>";
-
- // Currency conversion disable
- if (x5engine.utils.isOnline() && false) {
- var currencies = x5engine.imCart.settings.currencies;
- if (currencies != null && currencies.length > 0) {
- html += "<select id=\"imCurrencyConversion\" style=\"margin-left: 10px\">";
- str_eval += "$('#imCurrencyConversion').unbind('change').change(function () { x5engine.imCart.currencyConversion(this); });";
- html += "<option value=\"\">" + x5engine.l10n.getLocalization("cart_currency_conversion") + "</option>";
- for (i = 0; i < currencies.length; i++) {
- html += "<option value=\"" + currencies[i].value + "\">" + currencies[i].value + " - " + currencies[i].text + "</option>";
- }
- html += "</select><div id=\"currencyConvResult\">Risultato conversione</div>";
- }
- }
-
- html += "<br /><br /><br />";
- html += "<div style=\"text-align: center; margin-top: 30px;\">";
- html += "<input type=\"button\" id=\"imCartButtonBack\" value=\"" + x5engine.l10n.getLocalization("cart_continue_shopping") + "\" style=\"margin-right: 5px;\" />";
- html += "<input type=\"button\" id=\"imCartButtonEmpty\" value=\"" + x5engine.l10n.getLocalization("cart_empty_button") + "\" style=\"margin: 0 5px;\" />";
- html += "<input type=\"button\" id=\"imCartButtonNext\" value=\"" + x5engine.l10n.getLocalization("cart_gonext") + "\" style=\"margin-left: 5px;\"/>";
- html += "</div>";
-
- obj.append(html).fadeIn(time);
- $("#imCartButtonBack").unbind("click").click(x5engine.imCart.continueShopping);
- $("#imCartButtonEmpty").unbind("click").click(function () { x5engine.imCart.emptyCart(true); });
- $("#imCartButtonNext").unbind("click").click(function () { x5engine.imCart.showForm('#' + $(obj).attr("id")); });
- eval(str_eval);
- $("#imInputTotalPrice").val(total_vat);
- });
- } else {
- obj.fadeOut(time, function () {
- obj.empty().prepend("<h2 id=\"imPgTitle\">" + x5engine.l10n.getLocalization('cart_step2') + "</h2>\n<div style=\"height: 15px;\"> </div><br />");
- obj.append("<div style=\"text-align: center; font-weight: bold; font-size: 12px;\">" + x5engine.l10n.getLocalization("cart_err_emptycart") + "</div><br /><br />");
- obj.append("<div style=\"text-align: center\"><input type=\"button\" id=\"imCartButtonBack\" value=\"" + x5engine.l10n.getLocalization("cart_continue_shopping") + "\" style=\"margin-right: 5px;\" /></div>");
- $("#imCartButtonBack").unbind("click").click(x5engine.imCart.continueShopping);
- obj.fadeIn(time);
- });
- }
-
- return false;
- },
-
- // Convert currency using Google
- currencyConversion: function (obj) {
- if (obj.selectedIndex != 0) {
- if (x5engine.imCart.email_data.clear_total != null) {
- $.ajax({
- url: x5engine.imCart.settings.post_url + "?action=currency&amount=" + x5engine.imCart.email_data.clear_total + "&from=" + x5engine.imCart.settings.currency_id + "&to=" + $(obj).val(),
- type: "GET",
- dataType: "json",
- success: function (data) {
- $("#currencyConvResult").html(x5engine.imCart._setCurrency(data.value, x5engine.imCart.settings.currency_format, $(obj).val()));
- },
- error: function () {
- $("#currencyConvResult").html(x5engine.l10n.getLocalization("cart_err_currency_conversion"));
- }
- });
- } else {
- obj.selectedIndex = 0;
- }
- } else {
- $("#currencyConvResult").empty();
- }
- },
-
- // Show the user data form
- showForm: function (obj) {
- if (x5engine.imCart._getPayment() == null) {
- alert(x5engine.l10n.getLocalization("cart_err_payment"));
- return false;
- }
- if (x5engine.imCart._getShipping() == null) {
- alert(x5engine.l10n.getLocalization("cart_err_shipping"));
- return false;
- }
-
- if (x5engine.imCart.settings.minimum_amount > 0 && $("#imInputTotalPrice").val() * 1 < x5engine.imCart.settings.minimum_amount) {
- alert(x5engine.l10n.getLocalization('cart_err_minimum_price').replace(/\[PRICE\]/g, x5engine.imCart._setCurrency(x5engine.imCart.settings.minimum_amount)));
- return false;
- }
-
- obj = obj || "#imCartContainer";
- obj = $(obj);
-
- obj.fadeOut(100, function () {
- obj.empty().prepend("<h2 id=\"imPgTitle\">" + x5engine.l10n.getLocalization('cart_step3') + "</h2>\n<div style=\"height: 15px;\"> </div>");
-
- var html = x5engine.l10n.getLocalization('cart_step3_descr') + "<br /><br />";
- html += "<form id=\"imCartUserDataForm\">" + x5engine.imCart.html_form + "<br />";
- html += "<div style=\"text-align: center\">";
- html += "<input type=\"button\" id=\"imCartButtonBack\" value=\"" + x5engine.l10n.getLocalization("cart_goback") + "\" style=\"margin-right: 5px;\"/>";
- html += "<input type=\"button\" id=\"imCartUserFormSubmit\" value=\"" + x5engine.l10n.getLocalization("cart_gonext") + "\" style=\"margin-right: 5px;\" /></form>";
- html += "</div>";
-
- obj.append(html).fadeIn(100);
-
- $("#imCartButtonBack").unbind("click").click(function () { x5engine.imCart.saveForm(obj); x5engine.imCart.showCart('#' + obj.attr("id")); });
- $("#imCartUserFormSubmit").unbind("click").click(function () { x5engine.imCart.showOrderSummary('#' + obj.attr("id")); });
-
- if (x5engine.imCart.settings.form_autocomplete) {
- var json = x5engine.imCart._getFormData();
- if (json != null)
- for (var i = 0; i < json.length; i++)
- $("#" + json[i].id).val(json[i].val);
- }
- });
- },
-
- saveForm: function (obj) {
- var fields = $("#imCartUserDataForm");
- var post = {};
- var form = [];
- $(fields).find(":input").each(function () {
- if ($(this).attr("id") != null && $(this).attr("id") != "" && !$(this).is("label") && $(this).attr("type") != "submit" && $(this).attr("type") != "button" && $(this).attr("type") != "reset") {
- var fieldName = $("label[for=" + $(this).attr("id") + "] span").html();
- try {
- if (fieldName.charAt(fieldName.length - 1) == ":") fieldName = fieldName.substr(0, fieldName.length - 1);
- post[$(this).attr("id")] = {
- name: fieldName,
- imValue: ($(this).is(":checkbox") ? ($(this).prop("checked") ? "yes" : "no") : x5engine.imCart._htmlOutput($(this).val()))
- };
- form[form.length] = {
- "id": $(this).attr("id"),
- "val": ($(this).is(":checkbox") ? ($(this).prop("checked") ? "yes" : "no") : x5engine.imCart._htmlOutput($(this).val()))
- };
- } catch (e) {}
- }
- });
-
- if (x5engine.imCart.settings.form_autocomplete)
- x5engine.imCart._setFormData(form);
- x5engine.imCart.email_data.form = post;
- },
-
- // Show the order summary
- showOrderSummary: function (obj) {
- obj = obj || "#imCartContainer";
- obj = $(obj);
- if (x5engine.imForm.validate("#imCartUserDataForm", {
- type: x5engine.imCart.settings.form_validation,
- showAll: true,
- position: "right"
- })) {
- obj.fadeOut(100, function () {
- var post;
- x5engine.imCart.saveForm(obj);
- post = x5engine.imCart.email_data.form;
-
- obj.empty().prepend("<h2 id=\"imPgTitle\">" + x5engine.l10n.getLocalization('cart_step4') + "</h2>\n<div style=\"height: 15px;\"> </div>");
-
- // Summary
- // Products
- var html = x5engine.l10n.getLocalization('cart_step4_descr') + "<br /><br />";
- html += "<table id=\"imCartProductsTable\"><tr class=\"imCartHeader\">";
- html += "<td style=\"width: " + (x5engine.imCart.settings.vatincluded ? "48" : "35") + "%\">" + x5engine.l10n.getLocalization("cart_descr") + "</td>";
- html += "<td style=\"width: 13%\">" + x5engine.l10n.getLocalization("cart_opt") + "</td>";
- html += "<td style=\"width: 13%\">" + x5engine.l10n.getLocalization("cart_qty") + "</td>";
- html += "<td style=\"width: 13%\">" + x5engine.l10n.getLocalization("cart_price") + "</td>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<td style=\"width: 13%\">" + x5engine.l10n.getLocalization("cart_vat") + "</td>";
- html += "<td style=\"width: 13%\">" + x5engine.l10n.getLocalization("cart_subtot") + "</td></tr>";
-
- var data = x5engine.imCart.email_data;
-
- for (var product in data.products) {
- html += "<tr valign=\"top\"><td>" + data.products[product].name + (data.products[product].description != "" ? " - " + data.products[product].description : "") + "</td>";
- html += "<td>" + ((data.products[product].option != "null") ? x5engine.imCart._restoreSpecialChars(unescape(data.products[product].option)) : "") + "</td>";
- html += "<td style=\"text-align: right;\">" + data.products[product].quantity + "</td>";
- html += "<td style=\"text-align: right;\">" + data.products[product].single_price + "</td>";
- if (!x5engine.imCart.settings.vatincluded)
- html += "<td style=\"text-align: right;\">" + ((data.products[product].vat != null && data.products[product].vat > 0) ? ((data.products[product].vat * 100).toFixed(2) + "% / " + data.products[product].vat_f) : "-") + "</td>";
- html += "<td style=\"text-align: right;\">" + data.products[product].price_vat + "</td></tr>";
- }
- html += "</table>";
-
- // Payment
- var payment = x5engine.imCart.payments[x5engine.imCart._getPayment()]
- html += "<br /><table id=\"imCartPaymentsTable\" style=\"width: 74%\">";
- html += "<tr class=\"imCartHeader\"><td>" + x5engine.l10n.getLocalization("cart_payment") + "</td>" + ((x5engine.imCart.email_data.payment.price != null) ? "<td>" + x5engine.l10n.getLocalization("cart_price") + "</td>" : "") + "</tr>";
- html += "<tr valign=\"top\"><td style=\"width: 85%\"><b>" + payment.name + "</b><br />" + payment.description + "</td>" + ((x5engine.imCart.email_data.payment.price != null) ? "<td style=\"width: 15%; text-align: right;\">" + x5engine.imCart.email_data.payment.price + "</td>" : "") + "</tr></table>";
-
- // Shipping
- var shippig = x5engine.imCart.shippings[x5engine.imCart._getShipping()]
- html += "<br /><table id=\"imCartShippingsTable\" style=\"width: 74%\">";
- html += "<tr class=\"imCartHeader\"><td style=\"width: 85%\">" + x5engine.l10n.getLocalization("cart_shipping") + "</td>" + ((x5engine.imCart.email_data.shipping.price != null) ? "<td style=\"width: 15%\">" + x5engine.l10n.getLocalization("cart_price") + "</td>" : "") + "</tr>";
- html += "<tr valign=\"top\"><td><b>" + shippig.name + "</b><br />" + shippig.description;
- html += "<br /><br /><b>" + x5engine.l10n.getLocalization("cart_shipping_address") + ":</b><br />";
- if (post["imCartName_shipping"] != null) {
- html += ((post["imCartCompany_shipping"] != null && post["imCartCompany_shipping"] != "") ? post["imCartCompany_shipping"].imValue + " - " : "");
- html += ((post["imCartName_shipping"] != null) ? post["imCartName_shipping"].imValue + " " : "");
- html += ((post["imCartLastName_shipping"] != null) ? post["imCartLastName_shipping"].imValue : "");
- html += " " + ((post["imCartEmail_shipping"] != null) ? ("(" + post["imCartEmail_shipping"].imValue + ")") : "") + "<br />";
- html += ((post["imCartAddress1_shipping"] != null) ? (post["imCartAddress1_shipping"].imValue + "<br />") : "");
- html += ((post["imCartAddress2_shipping"] != null) ? (post["imCartAddress2_shipping"].imValue + "<br />") : "");
- html += ((post["imCartCity_shipping"] != null) ? (post["imCartCity_shipping"].imValue) : "");
- html += ((post["imCartStateRegion_shipping"] != null) ? (" (" + post["imCartStateRegion_shipping"].imValue + ")") : "");
- html += ((post["imCartZipPostalCode_shipping"] != null) ? (", " + post["imCartZipPostalCode_shipping"].imValue + "<br />") : "");
- html += ((post["imCartCountry_shipping"] != null) ? (post["imCartCountry_shipping"].imValue + "<br />") : "");
- } else if (post["imCartName"] != null) {
- html += ((post["imCartCompany"] != null && post["imCartCompany"] != "") ? post["imCartCompany"].imValue + " - " : "");
- html += ((post["imCartName"] != null) ? post["imCartName"].imValue + " " : "");
- html += ((post["imCartLastName"] != null) ? post["imCartLastName"].imValue : "");
- html += " " + ((post["imCartEmail"] != null) ? ("(" + post["imCartEmail"].imValue + ")") : "") + "<br />";
- html += ((post["imCartAddress1"] != null) ? (post["imCartAddress1"].imValue + "<br />") : "");
- html += ((post["imCartAddress2"] != null) ? (post["imCartAddress2"].imValue + "<br />") : "");
- html += ((post["imCartCity"] != null) ? (post["imCartCity"].imValue) : "");
- html += ((post["imCartStateRegion"] != null) ? (" (" + post["imCartStateRegion"].imValue + ")") : "");
- html += ((post["imCartZipPostalCode"] != null) ? (", " + post["imCartZipPostalCode"].imValue + "<br />") : "");
- html += ((post["imCartCountry"] != null) ? (post["imCartCountry"].imValue + "<br />") : "");
- }
- html += "</td>" + ((x5engine.imCart.email_data.shipping.price != null) ? "<td style=\"text-align: right\">" + x5engine.imCart.email_data.shipping.price + "</td>" : "") + "</tr></table>";
-
- // Total
- html += "<div><div id=\"imCartTotalPriceCont\">" + x5engine.l10n.getLocalization('cart_total_price') + ": <span id=\"imDivTotalPrice\">" + x5engine.imCart.email_data.total + "</span></div></div>";
-
- // Next/Previous button
- html += "<br /><br /><br />";
- html += "<div style=\"text-align: center; clear: both; margin-top: 30px;\">";
- html += "<input type=\"button\" id=\"imCartButtonBack\" value=\"" + x5engine.l10n.getLocalization("cart_goback") + "\" style=\"margin-right: 5px;\" />";
- html += "<input type=\"button\" id=\"imCartUserFormSubmit\" value=\"" + x5engine.l10n.getLocalization("cart_gonext") + "\" style=\"margin-left: 5px;\" />";
- html += "</html>";
-
- obj.append(html).fadeIn(100);
-
- $("#imCartButtonBack").unbind("click").click(function () { x5engine.imCart.showForm('#' + obj.attr("id")); });
- $("#imCartUserFormSubmit").unbind("click").click(function () { x5engine.imCart.sendOrderEmail('#' + obj.attr("id")); });
- });
-
- } else $("#imCartUserFormSubmit").attr("disabled", false);
- },
-
- // Send the email and shows the payment
- sendOrderEmail: function (obj) {
- $("#imCartUserFormSubmit").attr("disabled", true);
- if (x5engine.imCart.email_data.order_no == null || x5engine.imCart.email_data.order_no == "")
- x5engine.imCart.email_data.order_no = x5engine.imCart._createOrderNo();
- var pid = x5engine.imCart._getPayment();
- if (x5engine.imCart.payments[pid].html != null)
- x5engine.imCart.email_data.payment.html = x5engine.imCart._createPaymentHtml(x5engine.imCart.payments[pid].html);
- if (x5engine.utils.isOnline()) {
- $("#imCartUserFormSubmit").val(x5engine.l10n.getLocalization('cart_order_process')).css({ cursor: "wait" });
- $("#imCartButtonBack").remove();
- $.ajax({
- type: "POST",
- url: x5engine.imCart.settings.post_url,
- data: x5engine.imCart.email_data,
- success: function (a) {
- x5engine.imCart.showPayment(obj);
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- x5engine.imCart.showPayment(obj);
- }
- });
- } else {
- x5engine.utils.showOfflineMessage(x5engine.l10n.getLocalization('cart_err_offline_email').replace(/\[MAIL\]/g, x5engine.imCart.email_data.form.imCartEmail.imValue));
- x5engine.imCart.showPayment(obj);
- }
- },
-
- // Shows the payment method
- showPayment: function (obj) {
- var payment = x5engine.imCart.payments[x5engine.imCart._getPayment()];
- $(obj).empty().prepend("<h2 id=\"imPgTitle\">" + x5engine.l10n.getLocalization('cart_step5') + "</h2>\n<div style=\"height: 15px;\"> </div>");
- var html = x5engine.l10n.getLocalization('cart_step5_descr') + "<br /><br />";
- html += "<div id=\"imCartOrderNumber\">" + x5engine.imCart.email_data.order_no + "</div>";
- html += "<h3>" + payment.name + "</h3>" + payment.description + "<br /><br />";
- html += payment.email;
-
- if (payment.html != null) {
- html += "<br /><br /><div style=\"text-align: center\">" + x5engine.imCart._createPaymentHtml(payment.html) + "</div>";
- }
-
- $(obj).fadeOut(100, function () {
- $(obj).append(html).fadeIn(100, function () {
- x5engine.imCart.emptyCart(false);
- x5engine.imCart.email_data = null;
- x5engine.imCart._setShipping(null);
- x5engine.imCart._setPayment(null);
- });
- });
- },
-
- // Update the shipping type and price
- updateShipping: function (n, total_quantity, total_weight) {
- x5engine.imCart._setShipping(n);
- x5engine.imCart.updateTotalPrice(total_quantity, total_weight);
- },
-
- // Update the payment type and the price
- updatePayment: function (n, total_quantity, total_weight) {
- x5engine.imCart._setPayment(n);
- x5engine.imCart.updateTotalPrice(total_quantity, total_weight);
- },
-
- // Update the total price
- updateTotalPrice: function (total_quantity, total_weight) {
- var price = x5engine.imCart.product_price_plus_vat;
- var pid;
- var sid;
- var shipping_price = 0;
- var payment_price = 0;
- x5engine.imCart.email_data.total_quantity = total_quantity;
- x5engine.imCart.email_data.total_weight = total_weight;
- if (x5engine.imCart._getShipping() != null) {
- sid = x5engine.imCart._getShipping();
- shipping_price += x5engine.imCart._getShippingPrice(x5engine.imCart.shippings[sid], x5engine.imCart.product_price_plus_vat, total_quantity, total_weight) * 1;
- x5engine.imCart.email_data.shipping = {
- id: sid,
- price: x5engine.imCart._setCurrency(shipping_price),
- name: x5engine.imCart.shippings[sid].name,
- description: x5engine.imCart.shippings[sid].description,
- email: x5engine.imCart.shippings[sid].email
- }
- if (shipping_price == 0) {
- x5engine.imCart.email_data.shipping.price = null;
- }
- }
- if (x5engine.imCart._getPayment() != null) {
- pid = x5engine.imCart._getPayment();
- if (x5engine.imCart.payments[pid].price != null) {
- payment_price += x5engine.imCart.payments[pid].price;
- if (x5engine.imCart.payments[pid].vat != null) payment_price += x5engine.imCart.payments[pid].price * x5engine.imCart.payments[pid].vat;
- }
- x5engine.imCart.email_data.payment = {
- id: pid,
- price: x5engine.imCart._setCurrency(payment_price),
- name: x5engine.imCart.payments[pid].name,
- description: x5engine.imCart.payments[pid].description,
- email: x5engine.imCart.payments[pid].email
- };
- if (x5engine.imCart.payments[pid].html != null)
- x5engine.imCart.email_data.payment.html = x5engine.imCart._createPaymentHtml(x5engine.imCart.payments[pid].html);
- if (payment_price == 0) {
- x5engine.imCart.email_data.payment.price = null;
- }
- }
- price += shipping_price + payment_price;
- x5engine.imCart.email_data.total = x5engine.imCart._setCurrency(price);
- x5engine.imCart.email_data.clear_total = price;
- $("#imDivTotalPrice").html(x5engine.imCart._setCurrency(price));
- x5engine.imCart.total_price = price;
- }
- });