if (typeof ai_cookie_js !== 'undefined') { /*! js-cookie v3.0.5 | MIT */ ; (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (function () { var current = global.Cookies; var exports = global.Cookies = factory(); exports.noConflict = function () { global.Cookies = current; return exports; }; })()); })(this, (function () { 'use strict'; /* eslint-disable no-var */ function assign (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { target[key] = source[key]; } } return target } /* eslint-enable no-var */ /* eslint-disable no-var */ var defaultConverter = { read: function (value) { if (value[0] === '"') { value = value.slice(1, -1); } return value.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent) }, write: function (value) { return encodeURIComponent(value).replace( /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g, decodeURIComponent ) } }; /* eslint-enable no-var */ /* eslint-disable no-var */ function init (converter, defaultAttributes) { function set (name, value, attributes) { if (typeof document === 'undefined') { return } attributes = assign({}, defaultAttributes, attributes); if (typeof attributes.expires === 'number') { attributes.expires = new Date(Date.now() + attributes.expires * 864e5); } if (attributes.expires) { attributes.expires = attributes.expires.toUTCString(); } name = encodeURIComponent(name) .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent) .replace(/[()]/g, escape); var stringifiedAttributes = ''; for (var attributeName in attributes) { if (!attributes[attributeName]) { continue } stringifiedAttributes += '; ' + attributeName; if (attributes[attributeName] === true) { continue } // Considers RFC 6265 section 5.2: // ... // 3. If the remaining unparsed-attributes contains a %x3B (";") // character: // Consume the characters of the unparsed-attributes up to, // not including, the first %x3B (";") character. // ... stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; } return (document.cookie = name + '=' + converter.write(value, name) + stringifiedAttributes) } function get (name) { if (typeof document === 'undefined' || (arguments.length && !name)) { return } // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. var cookies = document.cookie ? document.cookie.split('; ') : []; var jar = {}; for (var i = 0; i < cookies.length; i++) { var parts = cookies[i].split('='); var value = parts.slice(1).join('='); try { var found = decodeURIComponent(parts[0]); jar[found] = converter.read(value, found); if (name === found) { break } } catch (e) {} } return name ? jar[name] : jar } return Object.create( { set, get, remove: function (name, attributes) { set( name, '', assign({}, attributes, { expires: -1 }) ); }, withAttributes: function (attributes) { return init(this.converter, assign({}, this.attributes, attributes)) }, withConverter: function (converter) { return init(assign({}, this.converter, converter), this.attributes) } }, { attributes: { value: Object.freeze(defaultAttributes) }, converter: { value: Object.freeze(converter) } } ) } var api = init(defaultConverter, { path: '/' }); /* eslint-enable no-var */ return api; })); /*! * JavaScript Cookie v2.2.0 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */ /* ;(function (factory) { var registeredInModuleLoader; if (typeof define === 'function' && define.amd) { define(factory); registeredInModuleLoader = true; } if (typeof exports === 'object') { module.exports = factory(); registeredInModuleLoader = true; } if (!registeredInModuleLoader) { var OldCookies = window.Cookies; var api = window.Cookies = factory(); api.noConflict = function () { window.Cookies = OldCookies; return api; }; } }(function () { function extend () { var i = 0; var result = {}; for (; i < arguments.length; i++) { var attributes = arguments[ i ]; for (var key in attributes) { result[key] = attributes[key]; } } return result; } function decode (s) { return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent); } function init (converter) { function api() {} function set (key, value, attributes) { if (typeof document === 'undefined') { return; } attributes = extend({ path: '/', sameSite: 'Lax' }, api.defaults, attributes); if (typeof attributes.expires === 'number') { attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5); } // We're using "expires" because "max-age" is not supported by IE attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; try { var result = JSON.stringify(value); if (/^[\{\[]/.test(result)) { value = result; } } catch (e) {} value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)) .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); key = encodeURIComponent(String(key)) .replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent) .replace(/[\(\)]/g, escape); var stringifiedAttributes = ''; for (var attributeName in attributes) { if (!attributes[attributeName]) { continue; } stringifiedAttributes += '; ' + attributeName; if (attributes[attributeName] === true) { continue; } // Considers RFC 6265 section 5.2: // ... // 3. If the remaining unparsed-attributes contains a %x3B (";") // character: // Consume the characters of the unparsed-attributes up to, // not including, the first %x3B (";") character. // ... stringifiedAttributes += '=' + attributes[attributeName].split(';')[0]; } return (document.cookie = key + '=' + value + stringifiedAttributes); } function get (key, json) { if (typeof document === 'undefined') { return; } var jar = {}; // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. var cookies = document.cookie ? document.cookie.split('; ') : []; var i = 0; for (; i < cookies.length; i++) { var parts = cookies[i].split('='); var cookie = parts.slice(1).join('='); if (!json && cookie.charAt(0) === '"') { cookie = cookie.slice(1, -1); } try { var name = decode(parts[0]); cookie = (converter.read || converter)(cookie, name) || decode(cookie); if (json) { try { cookie = JSON.parse(cookie); } catch (e) {} } jar[name] = cookie; if (key === name) { break; } } catch (e) {} } return key ? jar[key] : jar; } api.set = set; api.get = function (key) { return get(key, false /* read as raw * /); }; api.getJSON = function (key) { return get(key, true /* read as json * /); }; api.remove = function (key, attributes) { set(key, '', extend(attributes, { expires: -1 })); }; api.defaults = {}; api.withConverter = init; return api; } return init(function () {}); })); */ AiCookies = Cookies.noConflict(); function ai_json_data (cookie) { if (cookie == null) { return cookie; } if (cookie.charAt (0) === '"') { cookie = cookie.slice (1, -1); } try { cookie = JSON.parse (cookie); } catch (e) {} return cookie; } ai_check_block = function (block) { // var ai_debug = typeof ai_debugging !== 'undefined'; // 1 var ai_debug = false; if (block == null) { return true; } var ai_cookie_name = 'aiBLOCKS'; // ### // var ai_cookie = AiCookies.getJSON (ai_cookie_name); var ai_cookie = ai_json_data (AiCookies.get (ai_cookie_name)); ai_debug_cookie_status = ''; if (ai_cookie == null) { ai_cookie = {}; } if (typeof ai_delay_showing_pageviews !== 'undefined') { if (!ai_cookie.hasOwnProperty (block)) { ai_cookie [block] = {}; } if (!ai_cookie [block].hasOwnProperty ('d')) { ai_cookie [block]['d'] = ai_delay_showing_pageviews; if (ai_debug) console.log ('AI CHECK block', block, 'NO COOKIE DATA d, delayed for', ai_delay_showing_pageviews, 'pageviews'); } } if (ai_cookie.hasOwnProperty (block)) { for (var cookie_block_property in ai_cookie [block]) { if (cookie_block_property == 'x') { var code_hash = ''; var block_object = document.querySelectorAll ('span[data-ai-block="'+block+'"]') [0] if ("aiHash" in block_object.dataset) { code_hash = block_object.dataset.aiHash; } var cookie_code_hash = ''; if (ai_cookie [block].hasOwnProperty ('h')) { cookie_code_hash = ai_cookie [block]['h']; } if (ai_debug) console.log ('AI CHECK block', block, 'x cookie hash', cookie_code_hash, 'code hash', code_hash); var date = new Date(); var closed_for = ai_cookie [block][cookie_block_property] - Math.round (date.getTime() / 1000); if (closed_for > 0 && cookie_code_hash == code_hash) { var message = 'closed for ' + closed_for + ' s = ' + (Math.round (10000 * closed_for / 3600 / 24) / 10000) + ' days'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } else { if (ai_debug) console.log ('AI CHECK block', block, 'removing x'); ai_set_cookie (block, 'x', ''); if (!ai_cookie [block].hasOwnProperty ('i') && !ai_cookie [block].hasOwnProperty ('c')) { ai_set_cookie (block, 'h', ''); } } } else if (cookie_block_property == 'd') { if (ai_cookie [block][cookie_block_property] != 0) { var message = 'delayed for ' + ai_cookie [block][cookie_block_property] + ' pageviews'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } } else if (cookie_block_property == 'i') { var code_hash = ''; var block_object = document.querySelectorAll ('span[data-ai-block="'+block+'"]') [0] if ("aiHash" in block_object.dataset) { code_hash = block_object.dataset.aiHash; } var cookie_code_hash = ''; if (ai_cookie [block].hasOwnProperty ('h')) { cookie_code_hash = ai_cookie [block]['h']; } if (ai_debug) console.log ('AI CHECK block', block, 'i cookie hash', cookie_code_hash, 'code hash', code_hash); if (ai_cookie [block][cookie_block_property] == 0 && cookie_code_hash == code_hash) { var message = 'max impressions reached'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } else if (ai_cookie [block][cookie_block_property] < 0 && cookie_code_hash == code_hash) { var date = new Date(); var closed_for = - ai_cookie [block][cookie_block_property] - Math.round (date.getTime() / 1000); if (closed_for > 0) { var message = 'max imp. reached (' + Math. round (10000 * closed_for / 24 / 3600) / 10000 + ' days = ' + closed_for + ' s)'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } else { if (ai_debug) console.log ('AI CHECK block', block, 'removing i'); ai_set_cookie (block, 'i', ''); if (!ai_cookie [block].hasOwnProperty ('c') && !ai_cookie [block].hasOwnProperty ('x')) { if (ai_debug) console.log ('AI CHECK block', block, 'cookie h removed'); ai_set_cookie (block, 'h', ''); } } } } if (cookie_block_property == 'ipt') { if (ai_cookie [block][cookie_block_property] == 0) { var date = new Date(); var timestamp = Math.round (date.getTime() / 1000); var closed_for = ai_cookie [block]['it'] - timestamp; if (closed_for > 0) { var message = 'max imp. per time reached (' + Math. round (10000 * closed_for / 24 / 3600) / 10000 + ' days = ' + closed_for + ' s)'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } } } if (cookie_block_property == 'c') { var code_hash = ''; var block_object = document.querySelectorAll ('span[data-ai-block="'+block+'"]') [0] if ("aiHash" in block_object.dataset) { code_hash = block_object.dataset.aiHash; } var cookie_code_hash = ''; if (ai_cookie [block].hasOwnProperty ('h')) { cookie_code_hash = ai_cookie [block]['h']; } if (ai_debug) console.log ('AI CHECK block', block, 'c cookie hash', cookie_code_hash, 'code hash', code_hash); if (ai_cookie [block][cookie_block_property] == 0 && cookie_code_hash == code_hash) { var message = 'max clicks reached'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } else if (ai_cookie [block][cookie_block_property] < 0 && cookie_code_hash == code_hash) { var date = new Date(); var closed_for = - ai_cookie [block][cookie_block_property] - Math.round (date.getTime() / 1000); if (closed_for > 0) { var message = 'max clicks reached (' + Math. round (10000 * closed_for / 24 / 3600) / 10000 + ' days = ' + closed_for + ' s)'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } else { if (ai_debug) console.log ('AI CHECK block', block, 'removing c'); ai_set_cookie (block, 'c', ''); if (!ai_cookie [block].hasOwnProperty ('i') && !ai_cookie [block].hasOwnProperty ('x')) { if (ai_debug) console.log ('AI CHECK block', block, 'cookie h removed'); ai_set_cookie (block, 'h', ''); } } } } if (cookie_block_property == 'cpt') { if (ai_cookie [block][cookie_block_property] == 0) { var date = new Date(); var timestamp = Math.round (date.getTime() / 1000); var closed_for = ai_cookie [block]['ct'] - timestamp; if (closed_for > 0) { var message = 'max clicks per time reached (' + Math. round (10000 * closed_for / 24 / 3600) / 10000 + ' days = ' + closed_for + ' s)'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK block', block, message); if (ai_debug) console.log (''); return false; } } } } if (ai_cookie.hasOwnProperty ('G') && ai_cookie ['G'].hasOwnProperty ('cpt')) { if (ai_cookie ['G']['cpt'] == 0) { var date = new Date(); var timestamp = Math.round (date.getTime() / 1000); var closed_for = ai_cookie ['G']['ct'] - timestamp; if (closed_for > 0) { var message = 'max global clicks per time reached (' + Math. round (10000 * closed_for / 24 / 3600) / 10000 + ' days = ' + closed_for + ' s)'; ai_debug_cookie_status = message; if (ai_debug) console.log ('AI CHECK GLOBAL', message); if (ai_debug) console.log (''); return false; } } } } ai_debug_cookie_status = 'OK'; if (ai_debug) console.log ('AI CHECK block', block, 'OK'); if (ai_debug) console.log (''); return true; } ai_check_and_insert_block = function (block, id) { // var ai_debug = typeof ai_debugging !== 'undefined'; // 2 var ai_debug = false; if (block == null) { return true; } var ai_block_divs = document.getElementsByClassName (id); if (ai_block_divs.length) { var ai_block_div = ai_block_divs [0]; var wrapping_div = ai_block_div.closest ('.' + ai_block_class_def); var insert_block = ai_check_block (block); if (!insert_block) { // if (ai_debug) console.log ('AI CHECK FAILED, !insert_block', block); // Check for a fallback block if (parseInt (ai_block_div.getAttribute ('limits-fallback')) != 0 && ai_block_div.hasAttribute ('data-fallback-code')) { if (ai_debug) console.log ('AI CHECK FAILED, INSERTING FALLBACK BLOCK', ai_block_div.getAttribute ('limits-fallback')); ai_block_div.setAttribute ('data-code', ai_block_div.getAttribute ('data-fallback-code')); if (wrapping_div != null && wrapping_div.hasAttribute ('data-ai')) { if (ai_block_div.hasAttribute ('fallback-tracking') && ai_block_div.hasAttribute ('fallback_level')) { wrapping_div.setAttribute ('data-ai-' + ai_block_div.getAttribute ('fallback_level'), ai_block_div.getAttribute ('fallback-tracking')); } } insert_block = true; } } // Remove selector to prevent further insertions at this element ai_block_div.removeAttribute ('data-selector'); if (insert_block) { ai_insert_code (ai_block_div); if (wrapping_div) { var debug_block = wrapping_div.querySelectorAll ('.ai-debug-block'); if (/*wrapping_div && */debug_block.length) { wrapping_div.classList.remove ('ai-list-block'); wrapping_div.classList.remove ('ai-list-block-ip'); wrapping_div.classList.remove ('ai-list-block-filter'); wrapping_div.style.visibility = ''; if (wrapping_div.classList.contains ('ai-remove-position')) { wrapping_div.style.position = ''; } } } } else { var ai_block_div_data = ai_block_div.closest ('div[data-ai]'); if (ai_block_div_data != null && typeof ai_block_div_data.getAttribute ("data-ai") != "undefined") { var data = JSON.parse (b64d (ai_block_div_data.getAttribute ("data-ai"))); if (typeof data !== "undefined" && data.constructor === Array) { data [1] = ""; ai_block_div_data.setAttribute ("data-ai", b64e (JSON.stringify (data))); } } if (wrapping_div) { var debug_block = wrapping_div.querySelectorAll ('.ai-debug-block'); if (/*wrapping_div && */debug_block.length) { wrapping_div.classList.remove ('ai-list-block'); wrapping_div.classList.remove ('ai-list-block-ip'); wrapping_div.classList.remove ('ai-list-block-filter'); wrapping_div.style.visibility = ''; if (wrapping_div.classList.contains ('ai-remove-position')) { wrapping_div.style.position = ''; } } } } // Remove class ai_block_div.classList.remove (id); } var ai_debug_bars = document.querySelectorAll ('.' + id + '-dbg'); // for (let ai_debug_bar of ai_debug_bars) { for (var index = 0, len = ai_debug_bars.length; index < len; index++) { var ai_debug_bar = ai_debug_bars [index]; ai_debug_bar.querySelector ('.ai-status').textContent = ai_debug_cookie_status; ai_debug_bar.querySelector ('.ai-cookie-data').textContent = ai_get_cookie_text (block); ai_debug_bar.classList.remove (id + '-dbg'); } } ai_load_cookie = function () { // var ai_debug = typeof ai_debugging !== 'undefined'; // 3 var ai_debug = false; var ai_cookie_name = 'aiBLOCKS'; // ### // var ai_cookie = AiCookies.getJSON (ai_cookie_name); var ai_cookie = ai_json_data (AiCookies.get (ai_cookie_name)); if (ai_cookie == null) { ai_cookie = {}; if (ai_debug) console.log ('AI COOKIE NOT PRESENT'); } if (ai_debug) console.log ('AI COOKIE LOAD', ai_cookie); return ai_cookie; } function ai_get_cookie (block, property) { // var ai_debug = typeof ai_debugging !== 'undefined'; // 4 var ai_debug = false; var value = ''; var ai_cookie = ai_load_cookie (); if (ai_cookie.hasOwnProperty (block)) { if (ai_cookie [block].hasOwnProperty (property)) { value = ai_cookie [block][property]; } } if (ai_debug) console.log ('AI COOKIE GET block:', block, 'property:', property, 'value:', value); return value; } ai_set_cookie = function (block, property, value) { function isEmpty (obj) { for (var key in obj) { if (obj.hasOwnProperty (key)) return false; } return true; } var ai_cookie_name = 'aiBLOCKS'; // var ai_debug = typeof ai_debugging !== 'undefined'; // 5 var ai_debug = false; if (ai_debug) console.log ('AI COOKIE SET block:', block, 'property:', property, 'value:', value); var ai_cookie = ai_load_cookie (); if (value === '') { if (ai_cookie.hasOwnProperty (block)) { delete ai_cookie [block][property]; if (isEmpty (ai_cookie [block])) { delete ai_cookie [block]; } } } else { if (!ai_cookie.hasOwnProperty (block)) { ai_cookie [block] = {}; } ai_cookie [block][property] = value; } if (Object.keys (ai_cookie).length === 0 && ai_cookie.constructor === Object) { AiCookies.remove (ai_cookie_name); if (ai_debug) console.log ('AI COOKIE REMOVED'); } else { // ### // AiCookies.set (ai_cookie_name, ai_cookie, {expires: 365, path: '/'}); AiCookies.set (ai_cookie_name, JSON.stringify (ai_cookie), {expires: 365, path: '/'}); } if (ai_debug) { // ### // var ai_cookie_test = AiCookies.getJSON (ai_cookie_name); var ai_cookie_test = ai_json_data (AiCookies.get (ai_cookie_name)); if (typeof (ai_cookie_test) != 'undefined') { console.log ('AI COOKIE NEW', ai_cookie_test); console.log ('AI COOKIE DATA:'); for (var cookie_block in ai_cookie_test) { for (var cookie_block_property in ai_cookie_test [cookie_block]) { if (cookie_block_property == 'x') { var date = new Date(); var closed_for = ai_cookie_test [cookie_block][cookie_block_property] - Math.round (date.getTime() / 1000); console.log (' BLOCK', cookie_block, 'closed for', closed_for, 's = ', Math.round (10000 * closed_for / 3600 / 24) / 10000, 'days'); } else if (cookie_block_property == 'd') { console.log (' BLOCK', cookie_block, 'delayed for', ai_cookie_test [cookie_block][cookie_block_property], 'pageviews'); } else if (cookie_block_property == 'e') { console.log (' BLOCK', cookie_block, 'show every', ai_cookie_test [cookie_block][cookie_block_property], 'pageviews'); } else if (cookie_block_property == 'i') { var i = ai_cookie_test [cookie_block][cookie_block_property]; if (i >= 0) { console.log (' BLOCK', cookie_block, ai_cookie_test [cookie_block][cookie_block_property], 'impressions until limit'); } else { var date = new Date(); var closed_for = - i - Math.round (date.getTime() / 1000); console.log (' BLOCK', cookie_block, 'max impressions, closed for', closed_for, 's =', Math.round (10000 * closed_for / 3600 / 24) / 10000, 'days'); } } else if (cookie_block_property == 'ipt') { console.log (' BLOCK', cookie_block, ai_cookie_test [cookie_block][cookie_block_property], 'impressions until limit per time period'); } else if (cookie_block_property == 'it') { var date = new Date(); var closed_for = ai_cookie_test [cookie_block][cookie_block_property] - Math.round (date.getTime() / 1000); console.log (' BLOCK', cookie_block, 'impressions limit expiration in', closed_for, 's =', Math.round (10000 * closed_for / 3600 / 24) / 10000, 'days'); } else if (cookie_block_property == 'c') { var c = ai_cookie_test [cookie_block][cookie_block_property] if (c >= 0) { console.log (' BLOCK', cookie_block, c, 'clicks until limit'); } else { var date = new Date(); var closed_for = - c - Math.round (date.getTime() / 1000); console.log (' BLOCK', cookie_block, 'max clicks, closed for', closed_for, 's =', Math.round (10000 * closed_for / 3600 / 24) / 10000, 'days'); } } else if (cookie_block_property == 'cpt') { console.log (' BLOCK', cookie_block, ai_cookie_test [cookie_block][cookie_block_property], 'clicks until limit per time period'); } else if (cookie_block_property == 'ct') { var date = new Date(); var closed_for = ai_cookie_test [cookie_block][cookie_block_property] - Math.round (date.getTime() / 1000); console.log (' BLOCK', cookie_block, 'clicks limit expiration in ', closed_for, 's =', Math.round (10000 * closed_for / 3600 / 24) / 10000, 'days'); } else if (cookie_block_property == 'h') { console.log (' BLOCK', cookie_block, 'hash', ai_cookie_test [cookie_block][cookie_block_property]); } else console.log (' ?:', cookie_block, ':', cookie_block_property, ai_cookie_test [cookie_block][cookie_block_property]); } console.log (''); } } else console.log ('AI COOKIE NOT PRESENT'); } return ai_cookie; } ai_get_cookie_text = function (block) { var ai_cookie_name = 'aiBLOCKS'; // ### // var ai_cookie = AiCookies.getJSON (ai_cookie_name); var ai_cookie = ai_json_data (AiCookies.get (ai_cookie_name)); if (ai_cookie == null) { ai_cookie = {}; } var global_data = ''; if (ai_cookie.hasOwnProperty ('G')) { global_data = 'G[' + JSON.stringify (ai_cookie ['G']).replace (/\"/g, '').replace ('{', '').replace('}', '') + '] '; } var block_data = ''; if (ai_cookie.hasOwnProperty (block)) { block_data = JSON.stringify (ai_cookie [block]).replace (/\"/g, '').replace ('{', '').replace('}', ''); } return global_data + block_data; } } Đũa Gỗ Kim Giao – Đồ Gỗ Như Ý Cát Tường https://dogonhuycattuong.com Thương Hiệu đồ gỗ như ý cát tường Mon, 24 Aug 2026 10:26:09 +0000 vi hourly 1 https://wordpress.org/?v=7.0 https://dogonhuycattuong.com/wp-content/uploads/2025/03/cropped-Lo-go-NYCT3-32x32.jpg Đũa Gỗ Kim Giao – Đồ Gỗ Như Ý Cát Tường https://dogonhuycattuong.com 32 32 ĐŨA NHƯ Ý CÁT TƯỜNG GỖ CÁNH GÀ LOẠI ĐẶC BIỆT https://dogonhuycattuong.com/san-pham/dua-nhu-y-cat-tuong-go-canh-ga-loai-dac-biet/ https://dogonhuycattuong.com/san-pham/dua-nhu-y-cat-tuong-go-canh-ga-loai-dac-biet/#respond Wed, 26 Mar 2025 03:40:16 +0000 https://dogonhuycattuong.com/?post_type=product&p=2826 Đũa gỗ cánh gà

Đũa làm từ gỗ cánh gà là một sản phẩm thủ công tinh xảo, thường được đánh giá cao về chất lượng và tính thẩm mỹ.
* Chất liệu: Đũa được làm từ 100% gỗ cánh gà tự nhiên, không sử dụng hóa chất bảo quản hay nhuộm màu
* Kích thước: Chiều dài thông thường của đũa khoảng 25cm, phù hợp với việc sử dụng hàng ngày
* Thiết kế: Đầu đũa thường được thiết kế trụ tròn, thoải dần về phía đầu, giúp cầm nắm chắc chắn và thuận tiện khi sử dụng
* Đặc tính: Gỗ cánh gà có độ cứng cao, chống cong vênh và trơn trượt, đồng thời cũng chống nấm mốc tốt
* Màu sắc: Màu gỗ tự nhiên, không sơn dầu, được mài mịn thủ công, tạo nên vẻ đẹp tự nhiên và sang trọng
* Hoàn thiện : Bề mặt đũa được xử lý bằng lớp sáp ong phủ tự nhiên, giúp bảo vệ gỗ và tăng cường độ bóng, đồng thời dễ dàng vệ sinh sau khi sử dụng. có thể chịu được nhiệt độ sấy 180 độ không bị cong vênh , không nấm mốc mối mọt

]]>
https://dogonhuycattuong.com/san-pham/dua-nhu-y-cat-tuong-go-canh-ga-loai-dac-biet/feed/ 0
ĐŨA GỖ HỒNG ĐÀN LOẠI ĐẶC BIỆT BỌC ĐẦU https://dogonhuycattuong.com/san-pham/dua-go-hong-dan-loai-dac-biet-boc-dau/ https://dogonhuycattuong.com/san-pham/dua-go-hong-dan-loai-dac-biet-boc-dau/#respond Wed, 26 Mar 2025 03:22:32 +0000 https://dogonhuycattuong.com/?post_type=product&p=2805 Đũa Gỗ Hồng Đàn
Mang vẻ đẹp tự nhiên và tinh tế, đôi đũa gỗ Hồng đàn không chỉ là dụng cụ ăn uống thông thường mà còn là tác phẩm nghệ thuật đậm chất văn hóa. Gỗ Hồng đàn, với đặc tính cứng cáp và màu sắc ấm áp, tạo nên đôi đũa chắc chắn và bền bỉ. Mỗi đôi đũa là sự kết hợp giữa truyền thống và hiện đại, được chế tác tỉ mỉ bởi những nghệ nhân lành nghề.
Chất liệu: Gỗ Hồng đàn cao cấp, được chọn lọc kỹ càng để đảm bảo độ bền và vẻ đẹp tự nhiên.
Thiết kế: Dáng đũa truyền thống với phần đầu nhọn, thân đũa dần dày lên về phía cuối cầm, tạo cảm giác cầm nắm thoải mái và chắc chắn.
Kỹ thuật chế tác: Đũa được làm thủ công, mài giũa tỉ mỉ để đảm bảo sự mượt mà và không có góc cạnh sắc nhọn.
Hoàn thiện: Bề mặt đũa được xử lý bằng lớp sáp ong phủ tự nhiên, giúp bảo vệ gỗ và tăng cường độ bóng, đồng thời dễ dàng vệ sinh sau khi sử dụng. có thể chịu được nhiệt độ sấy 180 độ không bị cong vênh , không nấm mốc mối mọt
Bền vững: Gỗ Hồng đàn không chỉ mang lại độ bền cao mà còn thân thiện với môi trường, phù hợp với xu hướng sử dụng sản phẩm bền vững.
Đôi đũa gỗ Hồng đàn không chỉ là sự lựa chọn tuyệt vời cho bữa ăn hàng ngày mà còn là món quà ý nghĩa, thể hiện sự tôn trọng và gần gũi với thiên nhiên. Sử dụng đũa gỗ Hồng đàn, bạn không chỉ thưởng thức hương vị của món ăn mà còn cảm nhận được sự ấm áp và gần gũi từ chất liệu gỗ tự nhiên

 

]]>
https://dogonhuycattuong.com/san-pham/dua-go-hong-dan-loai-dac-biet-boc-dau/feed/ 0
ĐŨA GỖ CÁNH GÀ LOẠI ĐẶC BIỆT BỌC ĐẦU VÀNG https://dogonhuycattuong.com/san-pham/dua-go-canh-ga-loai-dac-biet-boc-dau-vang/ https://dogonhuycattuong.com/san-pham/dua-go-canh-ga-loai-dac-biet-boc-dau-vang/#respond Wed, 26 Mar 2025 03:12:53 +0000 https://dogonhuycattuong.com/?post_type=product&p=2790  

Đũa gỗ cánh gà Loại đặc biệt bọc đầu

Đũa làm từ gỗ cánh gà là một sản phẩm thủ công tinh xảo, thường được đánh giá cao về chất lượng và tính thẩm mỹ.
* Chất liệu: Đũa được làm từ 100% gỗ cánh gà tự nhiên, không sử dụng hóa chất bảo quản hay nhuộm màu
* Kích thước: Chiều dài thông thường của đũa khoảng 25cm, phù hợp với việc sử dụng hàng ngày
* Thiết kế: Đầu đũa thường được thiết kế trụ tròn, thoải dần về phía đầu, giúp cầm nắm chắc chắn và thuận tiện khi sử dụng
* Đặc tính: Gỗ cánh gà có độ cứng cao, chống cong vênh và trơn trượt, đồng thời cũng chống nấm mốc tốt
* Màu sắc: Màu gỗ tự nhiên, không sơn dầu, được mài mịn thủ công, tạo nên vẻ đẹp tự nhiên và sang trọng
* Hoàn thiện : Bề mặt đũa được xử lý bằng lớp sáp ong phủ tự nhiên, giúp bảo vệ gỗ và tăng cường độ bóng, đồng thời dễ dàng vệ sinh sau khi sử dụng. có thể chịu được nhiệt độ sấy 180 độ không bị cong vênh , không nấm mốc mối mọt

 

]]>
https://dogonhuycattuong.com/san-pham/dua-go-canh-ga-loai-dac-biet-boc-dau-vang/feed/ 0
ĐŨA NHƯ Ý CÁT TƯỜNG GỖ KIM GIAO LOẠI ĐẶC BIỆT https://dogonhuycattuong.com/san-pham/dua-nhu-y-cat-tuong-go-kim-giao-loai-dac-biet/ https://dogonhuycattuong.com/san-pham/dua-nhu-y-cat-tuong-go-kim-giao-loai-dac-biet/#respond Wed, 26 Mar 2025 02:13:07 +0000 https://dogonhuycattuong.com/?post_type=product&p=2776 Như ý cát tường
Đũa gỗ kim giao
Cây kim giao: Xuất sứ nguồn gốc từ Nam Mỹ và có nhiều ở Việt Nam, cây mọc ở rừng xanh nhiệt đới ưa ẩm, trên núi đá vôi cũng như trên núi đất có độ cao 700-1000m. Tại các tỉnh Hà Giang, Tuyên Quang, Vĩnh Phúc, Lạng Sơn,Hà Bắc, Hải Dương,Hà Nam , Ninh Bình, Nghệ An, Quảng Bình,Thừa Thiên Huế,Khánh Hòa, Bình Thuận là một loại cây quý hiếm có giá trị kinh tế cao trong y học cổ truyền lá cây, rễ cây kim giao sắc thuốc uống chữa bệnh ho ra máu và sưng cuống phổi, huyết áp cao, đái đường, bệnh gút…
Cây kim giao thuộc loại gỗ nhẹ thớ mịn, có nhiều vân đẹp lên thường được dùng làm đũa ăn và làm đồ mỹ nghệ cao cấp. Đũa làm từ gỗ cây Kim Giao có thể phát hiện những chất độc hại trộn lẫn với thức ăn.
Đũa Kim Giao có mùi hương thơm dễ chịu, người xưa vẫn quan niệm rằng dùng đũa gỗ kim giao về tâm linh rất tốt luôn luôn đem đến nhiều may mắn sự giầu sang và trường thọ cho bạn và cả người thân yêu của bạn.
Thời vua Đồng Khánh (1864-1889) có tài liệu ghi rằng đũa vua dùng được vót từ cây Kim Giao mọc ở núi rừng Bạch Mã. Tương truyền khi tiếp xúc với chất độc đũa Kim Giao sẽ chuyển sang mầu tím.
Hiện nay vẫn còn một vài nhà hàng lớn “Thâm căn cố đế” ở Sài Gòn như Đồng khánh, Bát Đạt, Á Đông . Vẫn giữ phong cách truyền thống của họ là dùng đũa Kim Giao cho khách trong các bữa tiệc thịnh soạn.Dùng đũa Kim Giao bạn và mọi người thân yêu của bạn có thể bảo vệ sức khỏe của mình trong mọi bữa ăn thường nhật.
Khi được dùng đũa Kim Giao bạn có cảm giác ăn ngon miệng, thức ăn dễ tiêu đặc biệt đũa Kim Giao có thể ngăn ngừa được bệnh ung thư, tai biến mạch máu não, đái tháo đường, cao huyết áp, bệnh gút.
Khi bạn dùng đũa Kim Giao làm quà tặng vào những dịp đầu xuân đi chúc phúc có ý nghĩa phong thủy rất tốt, người được nhận quà sẽ nhận được sự may mắn,hạnh phúc ,thành đạt, thịnh vượng trong cuộc sống.

]]>
https://dogonhuycattuong.com/san-pham/dua-nhu-y-cat-tuong-go-kim-giao-loai-dac-biet/feed/ 0
Đũa gỗ kim giao loại đặc biệt có bọc đầu vàng https://dogonhuycattuong.com/san-pham/dua-go-kim-giao/ https://dogonhuycattuong.com/san-pham/dua-go-kim-giao/#respond Tue, 25 Mar 2025 09:30:33 +0000 https://dogonhuycattuong.com/?post_type=product&p=2753 abc

]]>
https://dogonhuycattuong.com/san-pham/dua-go-kim-giao/feed/ 0