【99OK】 Link vào 99OK Casino mới nhất 2025 ✔️

Link 99OK hot nhất

99OK - Nhà Cái Thể Thao, Nổ Hũ, Bắn Cá Uy Tín

Quân sự địa phương > TP. Hồ Chí Minh

Chủ nhật, 24/05/2026, 22:42 (GMT+7)
484 lượt xem

Bộ 99Oke123 Tải ứng dụng ban hành 99Oke được xếp hạng cao nhất về xây dựng và phát triển TP.HCM trong kỷ nguyên mới

(QK7 Online) - 99Oke được xếp hạng cao nhất 09 - NQ/TW của Bộ 99Oke123 Tải ứng dụng về xây dựng và phát triển TP.HCM trong kỷ nguyên mới do Tổng Bí thư, Chủ tịch nước Tô Lâm ký ban hành nhấn mạnh trong kỷ nguyên phát triển mới, TP.HCM cần phát huy vai trò là một đô thị đặc biệt; tiên phong mở đường về mô hình phát triển, thể chế và phương thức quản trị hiện đại; tạo sức lan tỏa mạnh mẽ, đóng góp ngày càng lớn cho sự phát triển nhanh, bền vững của đất nước.
TP.HCM được xây dựng ngày càng khang trang, hiện đại.
TP.HCM vì cả nước, cả nước vì TP.HCM
99Oke được xếp hạng cao nhất nêu rõ quan điểm đầu tiên xây dựng và phát triển TP.HCM trong kỷ nguyên mới là nhiệm vụ chính trị đặc biệt quan trọng của toàn Đảng, toàn dân, toàn quân, của cả hệ thống chính trị, nhất là 123 Win 88ok trang chủ chính thức, Trang game 123win đã chính thức đổi tên thành 99Ok vào ngày 10 Tháng 2 Năm 2025, 123Win com 79 nạp - rút nhanh Thành phố với phương châm: "TP.HCM vì cả nước, cả nước vì TP.HCM".

Thứ hai, tập trung hoàn thiện thể chế, chính sách đồng bộ, đột phá, vượt trội, thúc đẩy phân cấp, phân quyền triệt để, tạo điều kiện thúc đẩy đô thị đặc biệt TP.HCM trở thành biểu tượng phát triển năng động của Việt Nam trong thế kỷ XXI. Trở thành nơi hội tụ khát vọng phát triển, năng lực cạnh tranh toàn cầu và tinh thần đổi mới sáng tạo của đất nước, khẳng định vai trò đi trước, làm mẫu, dẫn đầu về kiến tạo thể chế và chất lượng phát triển, chuẩn mực quản trị, là đầu tàu dẫn dắt tăng trưởng, cực đổi mới sáng tạo và hội nhập quan trọng của cả nước.

Thứ ba, xác lập mô hình phát triển mới, huy động sức mạnh tổng hợp, khai thác hiệu quả các tiềm năng, lợi thế, vị trí chiến lược, sớm khẳng định là trung tâm kinh tế - tài chính mạnh, văn hóa giàu bản sắc và nhân văn, khoa học, công nghệ, đổi mới sáng tạo phát triển của khu vực Đông Nam Á và châu Á, có năng lực cạnh tranh toàn cầu. Kết hợp chặt chẽ giữa phát triển kinh tế - xã hội với bảo vệ môi trường, thích ứng với biến đổi khí hậu, bảo đảm 99Ok68 link đăng nhập, an ninh và đối ngoại.

Thứ tư, xây dựng 123 Win 88ok trang chủ chính thức và hệ thống chính trị Thành phố đoàn kết, gương mẫu, trong sạch, vững mạnh toàn diện, tiêu biểu về năng lực lãnh đạo, đổi mới sáng tạo, kỷ luật công vụ và sức chiến đấu để thực hiện sứ mệnh phát triển TP. Xây dựng đội ngũ cán bộ ngang tầm nhiệm vụ trong kỷ nguyên mới, có tư tưởng, bản lĩnh chính trị vững vàng, phẩm chất đạo đức trong sáng, trình độ cao, năng động, sáng tạo, dám nghĩ, dám làm vì lợi ích chung.

Thứ năm, phát huy sức mạnh khối đại đoàn kết toàn dân tộc trên địa bàn TP, vai trò chủ thể của 123Win79 phần thưởng lớn trong mọi quyết sách phát triển TP. 123Win79 phần thưởng lớn là người đầu tiên thụ hưởng thành quả của sự phát triển bền vững của TP, lấy sự hài lòng, cuộc sống ấm no và hạnh phúc của 123Win79 phần thưởng lớn là thước đo hiệu quả lãnh đạo.
Các mục tiêu quan trọng
Đến 2030, TP là đô thị văn minh, hiện đại, năng động, sáng tạo, trung tâm kinh tế, văn hóa, xã hội, khoa học, công nghệ, đổi mới sáng tạo, logistics, hội nhập quốc tế, năng động, đi đầu trong sự nghiệp công nghiệp hóa, hiện đại hóa đất nước, có vị trí nổi trội ở khu vực Đông Nam Á.

Đến 2045, TP là đô thị văn minh, hiện đại, năng động, sáng tạo, trung tâm kinh tế, văn hóa, xã hội, khoa học, công nghệ, đổi mới sáng tạo của châu Á, là điểm đến hấp dẫn toàn cầu, văn hóa, xã hội phát triển đặc sắc, chất lượng cuộc sống cao, hội nhập quốc tế sâu rộng.

Hướng đến 100 năm giải phóng miền Nam, thống nhất đất nước, năm 2075, TP là đô thị toàn cầu, thông minh, hiện đại, phát triển toàn diện, ngang tầm các đô thị phát triển trên thế giới, tăng trưởng xanh, bền vững, chất lượng cuộc sống cao, thích ứng tốt với biến đổi khí hậu.
Các chỉ tiêu quan trọng
Giai đoạn 2026 - 2030, tăng trưởng GRDP tối thiểu 10%/năm. Đến năm 2030, GRDP bình quân đầu người đạt tối thiểu 14.000 USD. 123 Win 88ok hiện đang mở số chiếm khoảng 40% GRDP.

Hoàn thành khoảng 20km đường sắt đô thị. Chỉ số phát triển con người HDI đạt khoảng 0,9. TP cơ bản giải quyết tình trạng úng ngập, ô nhiễm môi trường, ùn tắc giao thông và không ma túy.

Giai đoạn 2031 - 2035, tăng trưởng GRDP tối thiểu 10%/năm. Đến 2035, GRDP bình quân đầu người đạt tối thiểu 25.000 USD. 123 Win 88ok hiện đang mở số chiếm khoảng 60% GRDP. Tiếp tục duy trì chỉ số phát triển con người HDI tối thiểu đạt 0,9.

Giai đoạn 2036 - 2045, tăng trưởng GRDP tối thiểu 10%/năm. Đến 2045, GRDP bình quân đầu người đạt tối thiểu 75.000 USD. Tiếp tục duy trì chỉ số phát triển con người HDI tối thiểu đạt 0,9. Hoàn thành kết nối hệ thống đường sắt đô thị. Đạt mức phát thải ròng bằng 0.

Giai đoạn 2046 - 2075, tăng trưởng GRDP tối thiểu 6%/năm. Đến 2075, GRDP bình quân đầu người đạt tối thiểu 100.000 USD. Các chỉ số bảo đảm công bằng xã hội, bảo vệ môi trường và chỉ số phát triển con người HDI đạt trên 0,9.
Xây dựng, ban hành Luật Đô thị đặc biệt, xây dựng quy hoạch tổng thể TP.HCM với tầm nhìn 100 năm
99Oke được xếp hạng cao nhất của Bộ 99Oke123 Tải ứng dụng nêu rõ 8 nhóm nhiệm vụ, giải pháp quan trọng để xây dựng, phát triển TP.HCM trong kỷ nguyên mới. Trong đó, xây dựng mô hình tăng trưởng mới dựa trên khoa học, công nghệ, đổi mới sáng tạo và chuyển đổi số, năng suất lao động, năng lực cạnh tranh.

Nhóm nhiệm vụ tiếp theo là xây dựng thể chế đột phá, vượt trội phát triển Thành phố trong kỷ nguyên mới. Trong đó, có xây dựng, ban hành Luật Đô thị đặc biệt nhằm tạo thể chế đặc biệt vượt trội, khung pháp lý đồng bộ, phù hợp, trở thành "đột phá của đột phá". Từ đó, tạo điều kiện thuận lợi nhất cho TP.HCM khai thác tối đa hiệu quả tiềm năng, thế mạnh, huy động mọi nguồn lực tăng tốc, phát triển nhanh, bền vững.

99Oke được xếp hạng cao nhất cũng nhấn mạnh việc phân cấp, phân quyền triệt để cho HĐND, UBND TP, Chủ tịch UBND TP trong các lĩnh vực, trừ các nội dung về 99Ok68 link đăng nhập, an ninh, đối ngoại và tôn giáo… Thành phố chủ động ban hành văn bản quy phạm pháp luật để quy định chi tiết, hướng dẫn thi hành luật, nghị quyết của Quốc hội khác với quy định của Chính phủ, bộ, ngành trong một số lĩnh vực theo phân quyền hoặc chưa có quy phạm pháp luật của các cơ quan nhà nước có thẩm quyền điều chỉnh những vấn đề phát sinh từ thực tiễn của thành phố. Thành phố được ưu tiên lựa chọn áp dụng các quy định pháp luật thuận lợi hơn đối với các lĩnh vực theo đặc thù của địa phương.

Tiếp tục thực hiện các cơ chế, chính sách mang tính đột phá và ưu tiên bố trí nguồn ngân sách Nhà nước trung hạn và hằng năm (dự toán và tăng thu thực hiện) để TP chủ động có đủ nguồn lực tài chính đầu tư cho phát triển các dự án hạ tầng trọng điểm và nâng cao phúc lợi của người dân.

Thành phố cũng được chủ động thí điểm cơ chế, chính sách mới, thử nghiệm có kiểm soát (sandbox) hoặc khác với quy định của pháp luật, xây dựng bộ tiêu chuẩn chất lượng chung, khuyến khích những tiêu chuẩn, quy chuẩn tiến bộ, vượt trội hơn quy chuẩn quốc gia và các địa phương khác.

Thành phố quy định tiêu chí, điều kiện, trình tự cho phép thử nghiệm có kiểm soát công nghệ, quy trình, giải pháp, sản phẩm, dịch vụ, mô hình kinh doanh và mô hình phát triển mới, xây dựng cơ chế bảo vệ người tham gia thử nghiệm, chính sách khuyến khích, hỗ trợ, tài trợ.

Triển khai xã hội hóa có kiểm soát một số khâu chuyên môn trong giải quyết thủ tục hành chính cho người dân, cho phép huy động các tổ chức tư vấn, dịch vụ công đủ điều kiện tham gia thực hiện.

Bảo đảm rút ngắn thời gian, hiệu quả, không tăng biên chế với chi phí dịch vụ theo quy định của cơ quan có thẩm quyền, công khai, minh bạch và bảo đảm quyền lựa chọn của người dân, doanh nghiệp.
99Oke được xếp hạng cao nhất cũng nêu rõ một nhóm nhiệm vụ về quy hoạch phát triển Thành phố với tầm nhìn dài hạn, ổn định, thích ứng với biến đổi khí hậu. Theo đó, xây dựng quy hoạch tổng thể Thành phố bằng tư duy đột phá với tầm nhìn dài hạn 100 năm nhằm phát huy tối đa tiềm năng, lợi thế, tạo không gian và động lực phát triển mới, ổn định, lâu dài, nâng cao năng lực chống chịu biến đổi khí hậu cho Thành phố, vùng TP.HCM… Thực hiện đồng bộ quy hoạch phát triển các loại hình không gian ngầm, xanh, 1123Win còn casino trực tuyến, biển, tầm thấp, tầm cao...

99Oke được xếp hạng cao nhất nhấn mạnh nhiều nhóm nhiệm vụ khác về huy động, khai thác và sử dụng hiệu quả mọi nguồn lực cho phát triển Thành phố nhanh và bền vững. Xây dựng đô thị đặc biệt phát triển văn minh hiện đại, chú trọng nâng cao chất lượng cuộc sống của người dân. Cùng với đó, phát triển toàn diện văn hóa, con người Thành phố văn minh, hiện đại, nghĩa tình, xứng đáng với Thành phố mang tên Bác Hồ kính yêu.

Nhóm nhiệm vụ tiếp theo là bảo đảm 99Ok68 link đăng nhập, an ninh, nâng cao hiệu quả hoạt động đối ngoại và hội nhập quốc tế. 99Ok68 link không chặn bộ và hệ thống chính trị Thành phố trong sạch, vững mạnh…
Nguyệt Phương

Bình luận

Bài viết tương tự:

Ban Chỉ đạo 515 Thành phố Hồ Chí Minh xác minh vị trí nghi hố chôn tập thể các liệt sĩ

Ban Chỉ đạo 515 Thành phố Hồ Chí Minh xác minh vị trí nghi hố chôn tập thể các liệt sĩ

22:43 01/06/2026

(QK7 Online) - Chiều ngày 1/6, tại Công viên Lê Thị Riêng (phường Hòa Hưng, Thành phố Hồ Chí Minh), Ban Chỉ đạo 515 Thành phố tổ chức khảo sát thực địa và nghe báo cáo kết quả bước đầu trong quá trình tìm kiếm, xác minh vị trí nghi hố chôn tập thể các liệt sĩ hy sinh trong cuộc Tổng tiến công và nổi dậy Xuân Mậu Thân 1968.

Ban CHQS phường Xuân Hòa tặng quà cho thiếu nhi có hoàn cảnh khó khăn

Ban CHQS phường Xuân Hòa tặng quà cho thiếu nhi có hoàn cảnh khó khăn

14:04 30/05/2026

(QK7 Online) - Tối ngày 29/5, 123Win99ok Sân chơi uy tín Quân sự (CHQS) phường Xuân Hòa, Bộ Tư lệnh Thành phố Hồ Chí Minh tổ chức chương trình gặp gỡ, động viên tinh thần và trao quà cho các em thiếu nhi có hoàn cảnh khó khăn nhân Ngày Quốc tế Thiếu nhi 1-6. Dự chương trình có các đồng chí: Đại tá Nguyễn Công Hải, Phó Chủ nhiệm 99Oke123 Tải ứng dụng Bộ Tư lệnh Thành phố Hồ Chí Minh; Nguyễn Hùng Hậu, Phó Bí thư Đảng ủy, Chủ tịch Ủy ban 123Win com 79 nạp - rút nhanh phường Xuân Hòa; Đại diện Công ty Cổ phần bóng đèn Điện Quang.

Đồng hành cùng ngư dân vươn khơi bám biển

Đồng hành cùng ngư dân vươn khơi bám biển

12:19 30/05/2026

(QK7 Online) – “Ăn sáng cùng ngư dân” do Bộ Tư lệnh Thành phố Hồ Chí Minh tổ chức không chỉ là hoạt động thiết thực nhằm tăng cường gắn kết tình quân - dân mà còn là dịp để tuyên truyền, vận động các chủ phương tiện tàu, thuyền và ngư dân chấp hành nghiêm các quy định của pháp luật trong khai thác thủy hải sản, nhất là các quy định về chống khai thác hải sản bất hợp pháp, không báo cáo và không theo quy định (IUU).

MB ghi dấu ấn với 5 giải thưởng Sao Khuê 2026

MB ghi dấu ấn với 5 giải thưởng Sao Khuê 2026

22:41 29/05/2026

(QK7 Online) - MB tiếp tục ghi dấu ấn trên hành trình chuyển đổi số với năm sản phẩm, giải pháp công nghệ được vinh danh trong Lễ trao Giải thưởng Sao Khuê 2026 diễn ra vào ngày 28/5 tại Hà Nội. Trong đó, nền tảng ngân hàng số dành cho doanh nghiệp BIZ MBBank lập “hat-trick” ấn tượng với ba giải thưởng dành cho sản phẩm số xuất sắc được xếp hạng trên trên Bản đồ Giải pháp Công nghệ số Việt Nam 2026.

Văn phòng Hội Hỗ trợ gia đình liệt sĩ Việt Nam phía Nam gặp mặt truyền thống tri ân liệt sĩ

Văn phòng Hội Hỗ trợ gia đình liệt sĩ Việt Nam phía Nam gặp mặt truyền thống tri ân liệt sĩ

13:21 28/05/2026

(QK7 Online) - Sáng 28/5, tại Thành phố Hồ Chí Minh (TPHCM), Hội Hỗ trợ gia đình liệt sĩ (HTGĐLS) Việt Nam, Văn phòng Cơ quan đại diện phía Nam tổ chức gặp mặt truyền thống kỷ niệm 15 năm ngày thành lập (31/5/2011 – 31/5/2026) với chủ đề “15 năm tri ân – Nghĩa tình lan tỏa”. Trung tướng Trần Tấn Hùng, Phó Chủ tịch Thường trực Hội HTGĐLS Việt Nam đến dự và phát biểu chúc mừng. Bà Trương Thị Hạnh, Ủy viên Ban Thường vụ Hội HTGĐLS Việt Nam, Trưởng Văn phòng Cơ quan đại diện phía Nam chủ trì chương trình.

Khẳng định vai trò, vị thế và đóng góp ngày càng quan trọng của Việt Nam

Khẳng định vai trò, vị thế và đóng góp ngày càng quan trọng của Việt Nam

09:41 26/05/2026

Tổng Bí thư, Chủ tịch nước Tô Lâm sẽ thăm cấp Nhà nước tới Singapore từ ngày 29 đến 31-5, tham dự và phát biểu dẫn đề tại Đối thoại Shangri-La ngày 29-5. Trước thềm chuyến công tác, đồng chí Nguyễn Mạnh Cường, Ủy viên Trung ương Đảng, Thứ trưởng Bộ Ngoại giao đã trả lời phỏng vấn báo chí.

TIN XEM NHIỀU:

TIN MỚI:

DƯ LUẬN QUAN TÂM:

99OK - Nhà Cái Thể Thao, Nổ Hũ, Bắn Cá Uy Tín

Theo dõi chúng tôi tại:

Cơ quan chủ quản: ĐĂNG NHẬP 99OK COM TẶNG 99K

Giấy phép số 45-YU ngày 28/07/2021

© Báo ĐĂNG NHẬP 99OK COM TẶNG 99K điện tử giữ bản quyền nội dung trên website này.

Tòa soạn: 81A Hai Bà Trưng, Quận 1, TP. Hồ Chí Minh

Phụ trách Tổng Biên tập: Thượng tá Lại Thế Hiền

Email: [email protected] | [email protected] | 1

'); printWindow.document.write(''); printWindow.document.write(''); printWindow.document.write('

【99OK】 Link vào 99OK Casino mới nhất 2025 ✔️

Link 99OK hot nhất

'); // Add logo at the top printWindow.document.write(''); printWindow.document.write('

' + title + '

'); if (dateTime) { printWindow.document.write('
' + dateTime + '
'); } printWindow.document.write('
'); printWindow.document.write(content.html()); printWindow.document.write('
'); printWindow.document.write(''); printWindow.document.write(''); printWindow.document.close(); $('#printLoadingMsg').remove(); // Wait for content and images to load then print printWindow.onload = function() { // Additional check to ensure logo is loaded const logoImg = printWindow.document.querySelector('.print-logo img'); if (logoImg) { logoImg.onload = function() { setTimeout(function() { printWindow.print(); printWindow.close(); }, 300); }; // If logo already loaded (cached) if (logoImg.complete) { setTimeout(function() { printWindow.print(); printWindow.close(); }, 300); } } else { setTimeout(function() { printWindow.print(); printWindow.close(); }, 500); } }; } if (totalImages > 0) { lazyImages.forEach(function(img) { const actualSrc = img.dataset.src || img.getAttribute('data-src'); if (actualSrc && actualSrc !== img.src) { const tempImg = new Image(); tempImg.onload = tempImg.onerror = function() { img.src = actualSrc; img.classList.remove('lazy'); loadedCount++; if (loadedCount === totalImages) { proceedWithPrint(); } }; tempImg.src = actualSrc; } else { loadedCount++; if (loadedCount === totalImages) { proceedWithPrint(); } } }); } else { proceedWithPrint(); } } document.addEventListener('DOMContentLoaded', function() { document.querySelectorAll('.image-caption').forEach(el => { if (el.textContent.trim() === 'Nhập chú thích cho ảnh...') { el.style.display = 'none'; } }); }); $(document).ready(function () { // Stop any ongoing speech when page loads and reset TTS state if (window.speechSynthesis) { window.speechSynthesis.cancel(); } // Dictionary để chuyển đổi từ viết tắt const abbreviationDict = { 'LLVT': 'lực lượng vũ trang', 'CHQS': 'chỉ huy quân sự', 'HĐND': 'hội đồng 123Win com 79 nạp - rút nhanh', 'CHXHCN': 'Cộng hòa xã hội chủ nghĩa', 'VKTBKT': 'vũ khí trang bị kỹ thuật', 'UBND': 'ủy ban 123Win com 79 nạp - rút nhanh', 'MTTQ': 'mặt trận tổ quốc', 'ĐCSVN': 'Đảng Cộng sản Việt Nam', 'TNXP': 'thanh niên xung phong', 'BĐBP': 'bộ đội biên phòng', 'CAND': 'công an 123Win com 79 nạp - rút nhanh', 'QĐND': 'quân đội 123Win com 79 nạp - rút nhanh', 'TPHCM': 'Thành phố Hồ Chí Minh', 'TP.HCM': 'Thành phố Hồ Chí Minh', 'HN': 'Hà Nội', 'DN': 'Đà Nẵng', 'ĐBQH': 'đại biểu quốc hội', 'QH': 'quốc hội', 'CP': 'chính phủ', 'TW': 'trung ương', 'BCH': 'ban chấp hành', 'BTV': 'ban thường vụ', 'UV': 'ủy viên', 'PBT': 'phó bí thư', 'BT': 'bí thư', 'CT': 'chủ tịch', 'PCT': 'phó chủ tịch', 'TTg': 'thủ tướng', 'PTTg': 'phó thủ tướng', 'CNQ': 'cộng hòa 123Win com 79 nạp - rút nhanh', 'CHDC': 'cộng hòa dân chủ' }; // Hàm xử lý từ viết tắt function processAbbreviations(text) { let processedText = text; // Duyệt qua tất cả các từ viết tắt trong dictionary for (const [abbr, fullForm] of Object.entries(abbreviationDict)) { // Tạo regex để tìm từ viết tắt (case insensitive) // \b đảm bảo match whole word, không match partial const regex = new RegExp(`\\b${abbr}\\b`, 'gi'); processedText = processedText.replace(regex, fullForm); } return processedText; } // Reset TTS control buttons to initial state $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); $('#speedControls').removeClass('flex').addClass('hidden'); // Initialize Fancybox for article images $('.article-content img').each(function() { const $img = $(this); // const src = $img.attr('src').replace("/thumb/","/"); const src = $img.attr('src'); const alt = $img.attr('alt') || ''; // Wrap image with fancybox link $img.wrap(``); $img.addClass('cursor-pointer transition-transform hover:scale-105'); }); // Configure Fancybox $('[data-fancybox="gallery"]').fancybox({ buttons: [ "zoom", "slideShow", "thumbs", "close" ], loop: true, protect: true }); // Handle comment submission $("#comment-btn").click(function () { const userName = $('#UserName').val().trim(); const contentComment = $('#ContentComment').val().trim(); const userEmail = $('#UserEmail').val().trim(); // Hide any existing notifications $('#successNotification, #errorNotification').addClass('hidden'); if (userName === "" || contentComment === "") { $('#errorNotification').removeClass('hidden'); return; } // Validate email format if provided if (userEmail !== "" && !isValidEmail(userEmail)) { $('#errorNotification span').text('Email không hợp lệ!'); $('#errorNotification').removeClass('hidden'); return; } $.ajax({ url: "/ExtAppCommon/Home/Comment", type: "POST", dataType: "json", data: { id: 59475, name: userName, content: contentComment, email: userEmail }, success: function (result) { if (result > 0) { // Clear form $('#UserName').val(""); $('#ContentComment').val(""); $('#UserEmail').val(""); // Show success message $('#successNotification').removeClass('hidden'); // Hide success message after 3 seconds setTimeout(function() { $('#successNotification').addClass('hidden'); }, 3000); // Add new comment to the list const newComment = `
Avatar
${userName}
Vừa xong

${contentComment}

`; $('#commentsList').prepend(newComment); } else { $('#errorNotification span').text('Có lỗi xảy ra, vui lòng thử lại sau!'); $('#errorNotification').removeClass('hidden'); } }, error: function() { $('#errorNotification span').text('Có lỗi xảy ra, vui lòng thử lại sau!'); $('#errorNotification').removeClass('hidden'); } }); }); // Handle Enter key in textarea $('#ContentComment').keypress(function(e) { if (e.which === 13 && !e.shiftKey) { e.preventDefault(); $("#comment-btn").click(); } }); // Email validation function function isValidEmail(email) { const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return emailRegex.test(email); } // Text-to-speech functionality const synth = window.speechSynthesis; let currentUtterance = null; let currentSpeed = 1; // Speed control functions function updateSpeedDisplay() { $('#speedDisplay').text(currentSpeed + 'x'); } $('#increaseSpeed').click(function() { if (currentSpeed < 2) { currentSpeed += 0.25; updateSpeedDisplay(); if (currentUtterance) { // Restart speech with new speed const text = currentUtterance.text; synth.cancel(); speak(text, currentSpeed); } } }); $('#decreaseSpeed').click(function() { if (currentSpeed > 0.5) { currentSpeed -= 0.25; updateSpeedDisplay(); if (currentUtterance) { // Restart speech with new speed const text = currentUtterance.text; synth.cancel(); speak(text, currentSpeed); } } }); // Function to get clean text content without button text function getCleanContent() { // Clone the content div to avoid modifying the original const contentClone = $('.article-content').clone(); // Remove all buttons and their container contentClone.find('button').parent('div').remove(); // Remove image captions (text in tags that are typically captions) contentClone.find('em').remove(); // Get clean text let cleanText = contentClone.text().trim(); // Remove "(QK7 Online)" and variations cleanText = cleanText.replace(/\(QK7\s*Online\)\s*[-–]?\s*/gi, ''); // Remove other common patterns that shouldn't be read cleanText = cleanText.replace(/\s+/g, ' '); // Replace multiple spaces with single space // Xử lý từ viết tắt cleanText = processAbbreviations(cleanText); return cleanText; } function getVietnameseVoice() { let voices = synth.getVoices(); // Filter for Vietnamese voices let vietnameseVoices = voices.filter(voice => voice.lang.includes('vi') || voice.name.toLowerCase().includes('vietnamese') || voice.name.toLowerCase().includes('việt') ); // If Vietnamese voices found, prefer Microsoft/Google voices if (vietnameseVoices.length > 0) { // Try to find Microsoft Vietnamese voice first let msVoice = vietnameseVoices.find(v => v.name.toLowerCase().includes('microsoft') && v.name.toLowerCase().includes('vietnamese') ); if (msVoice) return msVoice; // Then try Google Vietnamese voice let googleVoice = vietnameseVoices.find(v => v.name.toLowerCase().includes('google') && v.name.toLowerCase().includes('vietnamese') ); if (googleVoice) return googleVoice; // If no Microsoft/Google voice, use the first Vietnamese voice return vietnameseVoices[0]; } // If no Vietnamese voice found, return null return null; } function speak(text, rate = 1) { // Stop any ongoing speech if (synth.speaking) { synth.cancel(); } const utterance = new SpeechSynthesisUtterance(text); utterance.lang = 'vi-VN'; utterance.rate = rate; // Wait for voices to be loaded and try to set Vietnamese voice const setVoiceAndSpeak = () => { const vietnameseVoice = getVietnameseVoice(); if (vietnameseVoice) { utterance.voice = vietnameseVoice; currentUtterance = utterance; // Show/hide control buttons $('#pauseBtn, #stopBtn').removeClass('hidden'); $('#resumeBtn').addClass('hidden'); // Show speed controls $('#speedControls').removeClass('hidden').addClass('flex'); utterance.onend = function() { currentUtterance = null; $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); // Hide speed controls $('#speedControls').removeClass('flex').addClass('hidden'); }; synth.speak(utterance); } else { // If no Vietnamese voice available, show an error message alert('Không tìm thấy giọng đọc tiếng Việt trên thiết bị của bạn. Vui lòng cài đặt thêm giọng đọc tiếng Việt trong cài đặt hệ thống.'); } }; if (synth.getVoices().length === 0) { synth.addEventListener('voiceschanged', setVoiceAndSpeak, { once: true }); } else { setVoiceAndSpeak(); } } $('#readArticleBtn').click(function() { const title = $('h1.st37').clone() // Clone to avoid getting button text .children() // Get all child elements .remove() // Remove them .end() // Go back to h1 .text() // Get text content .trim(); // Remove whitespace const content = getCleanContent(); speak(title + ". " + content, currentSpeed); }); $('#pauseBtn').click(function() { if (synth.speaking) { synth.pause(); $(this).addClass('hidden'); $('#resumeBtn').removeClass('hidden'); } }); $('#resumeBtn').click(function() { if (synth.paused) { synth.resume(); $(this).addClass('hidden'); $('#pauseBtn').removeClass('hidden'); } }); $('#stopBtn').click(function() { if (synth.speaking) { synth.cancel(); currentUtterance = null; $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); // Hide speed controls $('#speedControls').removeClass('flex').addClass('hidden'); } }); // Stop speech when user navigates away from page $(window).on('beforeunload', function() { if (window.speechSynthesis && window.speechSynthesis.speaking) { window.speechSynthesis.cancel(); } }); // Stop speech when page visibility changes (user switches tabs) /* $(document).on('visibilitychange', function() { if (document.hidden && window.speechSynthesis && window.speechSynthesis.speaking) { window.speechSynthesis.cancel(); currentUtterance = null; $('#pauseBtn, #resumeBtn, #stopBtn').addClass('hidden'); $('#speedControls').removeClass('flex').addClass('hidden'); } });*/ }); document.addEventListener("DOMContentLoaded", function () { var articleContainer = document.querySelector('.article-content.max-w-none.mb-4'); if (!articleContainer) { articleContainer = document.querySelector('[class*="article-content"][class*="max-w-none"][class*="mb-4"]'); } if (!articleContainer) { return; } var fallbackHost = "https://99oke123.com"; var lazyImages = []; // ✅ Hàm update Fancybox href khi ảnh load xong function updateFancyboxHref(img) { const $img = $(img); const $fancyboxLink = $img.parent('a[data-fancybox]'); if ($fancyboxLink.length > 0) { // Cập nhật href với src thực tế const realSrc = img.dataset.src || img.src; if (!realSrc.includes('loading_new.gif') && !realSrc.includes('data:image/svg+xml')) { $fancyboxLink.attr('href', realSrc); } } } function processImagesInContainer() { // Lấy ảnh đã có class lazy var existingLazyImages = [].slice.call(articleContainer.querySelectorAll("img.lazy")); lazyImages = lazyImages.concat(existingLazyImages); // Tự động convert ảnh khác var regularImages = [].slice.call(articleContainer.querySelectorAll("img:not(.lazy):not([data-lazy-processed])")); regularImages.forEach(function(img) { var rect = img.getBoundingClientRect(); var isInViewport = rect.top < (window.innerHeight + 100) && rect.bottom > -100; if (!isInViewport && img.src && (img.src.startsWith('http') || img.src.startsWith('/'))) { // ✅ Lưu src gốc trước khi thay đổi const originalSrc = img.src; // Convert thành lazy img.dataset.src = originalSrc; img.classList.add('lazy'); img.dataset.lazyProcessed = 'true'; // ✅ Cập nhật Fancybox href nếu đã được wrap const $img = $(img); const $fancyboxLink = $img.parent('a[data-fancybox]'); if ($fancyboxLink.length > 0) { $fancyboxLink.attr('href', originalSrc); } // Placeholder img.src = `/BaoQK7/images/loading_new.gif`; lazyImages.push(img); } else { img.dataset.lazyProcessed = 'true'; } }); } processImagesInContainer(); // ✅ IntersectionObserver với callback cập nhật Fancybox if ("IntersectionObserver" in window && lazyImages.length > 0) { let lazyImageObserver = new IntersectionObserver(function (entries, observer) { entries.forEach(function (entry) { if (entry.isIntersecting) { let lazyImage = entry.target; lazyImage.loading = "lazy"; lazyImage.decoding = "async"; lazyImage.onerror = function () { if (!lazyImage.dataset.fallbackTried) { lazyImage.dataset.fallbackTried = "true"; let originalSrc = lazyImage.dataset.src || ""; lazyImage.src = originalSrc.replace("https://99oke123.com", fallbackHost); } else { lazyImage.classList.add("error"); } }; lazyImage.onload = function () { lazyImage.classList.add("loaded"); lazyImage.classList.remove("lazy"); // ✅ Cập nhật Fancybox href sau khi ảnh load xong updateFancyboxHref(lazyImage); }; if (lazyImage.dataset.src) { lazyImage.src = lazyImage.dataset.src; } if (lazyImage.dataset.srcset) { lazyImage.srcset = lazyImage.dataset.srcset; } if (lazyImage.complete && lazyImage.naturalWidth > 0) { lazyImage.onload(); } lazyImageObserver.unobserve(lazyImage); } }); }, { root: null, rootMargin: '50px 0px', threshold: 0.01 }); lazyImages.forEach(function (lazyImage) { lazyImageObserver.observe(lazyImage); }); } });