Hệ thống pháp luật

UỶ BAN NHÂN DÂN
TỈNH SƠN LA
-------

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
---------------

Số: 2349/HD-UBND

Sơn La, ngày 26 tháng 6 năm 2023

 

HƯỚNG DẪN

CHỨC NĂNG, NHIỆM VỤ, QUYỀN HẠN VÀ CƠ CẤU TỔ CHỨC CỦA VĂN PHÒNG HỘI ĐỒNG NHÂN DÂN VÀ ỦY BAN NHÂN DÂN CÁC HUYỆN, THÀNH PHỐ

Căn cứ Nghị định số 37/2014/NĐ-CP ngày 05 tháng 5 năm 2014 của Chính phủ quy định tổ chức các cơ quan chuyên môn thuộc Ủy ban nhân dân huyện, quận, thị xã, thành phố thuộc tỉnh; Nghị định số 108/2020/NĐ-CP ngày 14 tháng 9 năm 2020 của Chính phủ sửa đổi, bổ sung một số điều của Nghị định số 37/2014/NĐ-CP ngày 05 tháng 5 năm 2014 của Chính phủ và các văn bản quy định, hướng dẫn của trung ươngI. VỊ TRÍ VÀ CHỨC NĂNG

1. Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện là cơ quan chuyên môn thuộc Uỷ ban nhân dân cấp huyện, là bộ máy tham mưu giúp việc của Ủy ban nhân dân, Chủ tịch Ủy ban nhân dân (bao gồm cả Phó Chủ tịch Ủy ban nhân dân cấp huyện) và Thường trực Hội đồng nhân dân cấp huyện.

2. Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện có chức năng:

a) Tham mưu tổng hợp cho Hội đồng nhân dân và Ủy ban nhân dân về: Hoạt động của Hội đồng nhân dân, Ủy ban nhân dân; tham mưu cho Chủ tịch Ủy ban nhân dân về chỉ đạo, điều hành của Chủ tịch Ủy ban nhân dân; kiểm soát thủ tục hành chính; cung cấp thông tin phục vụ quản lý và hoạt động của Hội đồng nhân dân, Ủy ban nhân dân và các cơ quan nhà nước ở địa phương; bảo đảm cơ sở vật chất, kỹ thuật cho hoạt động của Hội đồng nhân dân và Ủy ban nhân dân; tổ chức triển khai thực hiện cơ chế một cửa, một cửa liên thông trong giải quyết thủ tục hành chính thuộc phạm vi, chức năng quản lý của Ủy ban nhân dân cấp huyện; hướng dẫn, tiếp nhận hồ sơ của cá nhân, tổ chức trên tất cả các lĩnh vực thuộc thẩm quyền giải quyết của Ủy ban nhân dân cấp huyện, chuyển hồ sơ đến các cơ quan chuyên môn thuộc Ủy ban nhân dân cấp huyện giải quyết và nhận kết quả để trả cho cá nhân, tổ chức; quản lý hoạt động của Ban tiếp công dân theo đúng quy định của pháp luật.

b) Tham mưu, giúp Ủy ban nhân dân cấp huyện thực hiện quản lý nhà nước về y tế: Y tế dự phòng; khám bệnh, chữa bệnh, phục hồi chức năng; y dược cổ truyền; sức khỏe sinh sản; dân số; trang thiết bị y tế; dược; mỹ phẩm; an toàn thực phẩm; bảo hiểm y tế trên địa bàn.

c) Tham mưu, giúp Ủy ban nhân dân cấp huyện thực hiện chức năng quản lý nhà nước về công tác ngoại vụ, biên giới (đối với đơn vị hành chính cấp huyện có đường biên giới lãnh thổ quốc gia trên đất liền).

3. Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện có tư cách pháp nhân, có con dấu và tài khoản riêng; chịu sự chỉ đạo, quản lý về tổ chức, biên chế và công tác của Ủy ban nhân dân cấp huyện.

II. NHIỆM VỤ VÀ QUYỀN HẠN

Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện thực hiện các nhiệm vụ, quyền hạn quy định tại Nghị định số 37/2014/NĐ-CP; Nghị định số 108/2020/NĐ-CP và những nhiệm vụ, quyền hạn cụ thể sau:

1. Tham mưu tổng hợp, giúp HĐND và UBND cấp huyện

a) Xây dựng, quản lý chương trình công tác của HĐND, UBND cấp huyện theo quy định của pháp luật;

b) Theo dõi, đôn đốc các cơ quan chuyên môn thuộc UBND cấp huyện (sau đây viết tắt là cơ quan), UBND cấp xã, các cơ quan, tổ chức liên quan thực hiện chương trình công tác của HĐND, UBND cấp huyện và Quy chế làm việc của HĐND, UBND cấp huyện;

c) Phối hợp thường xuyên với các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan trong quá trình chuẩn bị và hoàn chỉnh các đề án, dự án, dự thảo văn bản quy phạm pháp luật, trình HĐND, UBND cấp huyện xem xét, quyết định theo quy định của pháp luật;

d) Thẩm tra về trình tự, thủ tục chuẩn bị và có ý kiến đánh giá độc lập đối với các đề án, dự án, dự thảo văn bản quy phạm pháp luật, các báo cáo quan trọng theo chương trình công tác của HĐND, UBND cấp huyện và các công việc khác do các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan trình HĐND, UBND cấp huyện;

đ) Xây dựng các đề án, dự án, dự thảo văn bản quy phạm pháp luật và các báo cáo theo sự phân công của HĐND, UBND cấp huyện;

e) Thực hiện công tác kiểm soát thủ tục hành chính và tổ chức thực hiện cơ chế một cửa, một cửa liên thông trong giải quyết thủ tục hành chính; Trực tiếp quản lý Bộ phận Tiếp nhận và Trả kết quả cấp huyện;

g) Tiếp nhận, xử lý phản ánh, kiến nghị của cá nhân, tổ chức về quy định hành chính thuộc phạm vi, thẩm quyền quản lý của UBND, Chủ tịch UBND cấp huyện theo quy định của pháp luật;

h) Chủ trì, phối hợp với các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan chuẩn bị nội dung, phục vụ phiên họp thường kỳ, chuyên đề, các cuộc họp và hội nghị chuyên đề khác của HĐND, UBND cấp huyện, các cuộc họp của Thường trực HĐND, Chủ tịch, các Phó Chủ tịch UBND cấp huyện;

i) Tham mưu, giúp UBND huyện tổ chức công tác tiếp công dân theo quy định của pháp luật hiện hành cho đến khi có các quy định mới của pháp luật về vấn đề này;

k) Tham mưu, giúp Uỷ ban nhân dân huyện về công tác ký kết và thực hiện thỏa thuận quốc tế của Uỷ ban nhân dân cấp xã ở khu vực biên giới (đối với đơn vị hành chính cấp huyện có đường biên giới lãnh thổ quốc gia trên đất liền).

2. Tham mưu, giúp UBND, Chủ tịch UBND cấp huyện thực hiện chức năng quản lý nhà nước về y tế theo nhiệm vụ và quyền hạn quy định tại Thông tư sô 37/2021/TT-BYT như sau:

a) Trình UBND cấp huyện dự thảo quyết định; quy hoạch, kế hoạch phát triển y tế trung hạn và hằng năm; chương trình, biện pháp tổ chức thực hiện các nhiệm vụ cải cách hành chính nhà nước thuộc lĩnh vực y tế trên địa bàn;

b) Trình Chủ tịch UBND cấp huyện dự thảo các văn bản thuộc thẩm quyền ban hành của Chủ tịch UBND cấp huyện theo phân công về y tế trên địa bàn;

c) Tổ chức thực hiện các văn bản pháp luật, quy hoạch, kế hoạch về y tế sau khi được cơ quan có thẩm quyền phê duyệt; thông tin, tuyên truyền, phổ biến, giáo dục pháp luật; theo dõi thi hành pháp luật thuộc lĩnh vực y tế;

d) Giúp UBND cấp huyện quản lý nhà nước đối với các doanh nghiệp, tổ chức kinh tế tập thể, kinh tế tư nhân; hướng dẫn và kiểm tra đối với các hội và tổ chức phi chính phủ tham gia hoạt động trong lĩnh vực y tế trên địa bàn huyện theo quy định của pháp luật;

đ) Hướng dẫn chuyên môn, nghiệp vụ về lĩnh vực y tế đối với cán bộ, công chức xã, phường, thị trấn;

e) Tổ chức nghiên cứu ứng dụng khoa học công nghệ và đổi mới sáng tạo; xây dựng hệ thống thông tin, lưu trữ phục vụ công tác quản lý nhà nước và chuyên môn nghiệp vụ thuộc lĩnh vực y tế;

g) Thực hiện công tác thông tin, báo cáo định kỳ và đột xuất về tình hình thực hiện nhiệm vụ được giao theo quy định của UBND cấp huyện và Sở Y tế;

h) Kiểm tra, tham gia thanh tra về lĩnh vực y tế đối với tổ chức, cá nhân trong việc thực hiện các quy định của pháp luật; giải quyết khiếu nại, tố cáo; phòng chống tham nhũng, thực hành tiết kiệm, chống lãng phí trong lĩnh vực y tế theo quy định của pháp luật và phân công của UBND cấp huyện. Thường trực Ban chỉ đạo phòng, chống dịch bệnh, Ban chỉ đạo liên ngành về an toàn thực phẩm cấp huyện.

3. Tham mưu tổng hợp, giúp Chủ tịch UBND cấp huyện:

a) Xây dựng, trình Chủ tịch UBND cấp huyện phê duyệt và đôn đốc thực hiện chương trình công tác năm, 6 tháng, quý, tháng, tuần của Chủ tịch UBND cấp huyện, kiến nghị với Chủ tịch UBND cấp huyện những nhiệm vụ trọng tâm, trọng điểm cần tập trung chỉ đạo, điều hành các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan trong từng thời gian nhất định;

b) Kiến nghị với Chủ tịch UBND cấp huyện giao các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan xây dựng các đề án, dự án, dự thảo văn bản pháp luật đề trình cấp có thẩm quyền quyết định;

c) Thẩm tra về trình tự, thủ tục chuẩn bị và có ý kiến đánh giá độc lập đối với các đề án, dự án, dự thảo văn bản, báo cáo theo chương trình công tác của Chủ tịch UBND cấp huyện và các công việc khác do các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan trình Chủ tịch UBND cấp huyện;

d) Chủ trì, phối hợp với các cơ quan, UBND cấp xã, các cơ quan tổ chức liên quan hoàn chỉnh nội dung, thủ tục, hồ sơ và dự thảo văn bản để trình Chủ tịch UBND cấp huyện xem xét, quyết định đối với những công việc thường xuyên khác;

đ) Chủ trì làm việc với lãnh đạo cơ quan, các tổ chức, cá nhân liên quan để giải quyết những vấn đề thuộc thẩm quyền của Chủ tịch UBND cấp huyện mà các cơ quan, UBND cấp xã còn có ý kiến khác nhau theo ủy quyền của Chủ tịch UBND cấp huyện;

e) Chủ trì soạn thảo, biên tập hoặc thẩm định, chỉnh sửa lần cuối các dự thảo báo cáo các bài phát biểu quan trọng của Chủ tịch UBND cấp huyện;

g) Chỉ đạo thực hiện các Quy chế phối hợp công tác giữa HĐND, UBND cấp huyện với các cơ quan của Đảng, Ủy ban Mặt trận Tổ quốc và các tổ chức chính trị xã hội, Tòa án nhân dân, Viện kiểm sát nhân dân cấp huyện;

h) Kiểm tra thực hiện những công việc thuộc thẩm quyền kiểm tra của Chủ tịch UBND cấp huyện đối với các cơ quan, UBND cấp xã, các cơ quan, tổ chức liên quan để báo cáo và kiến nghị với Chủ tịch UBND cấp huyện các biện pháp cần thiết nhằm đôn đốc thực hiện và bảo đảm chấp hành kỷ cương, kỷ luật hành chính;

i) Đề nghị các cơ quan, HĐND, UBND cấp xã, các cơ quan, tổ chức liên quan báo cáo tình hình, kết quả thực hiện các văn bản chỉ đạo, điều hành của HĐND, UBND và Chủ tịch UBND cấp huyện;

k) Được yêu cầu các cơ quan, HĐND, UBND cấp xã, các cơ quan, tổ chức liên quan cung cấp tài liệu, số liệu và văn bản liên quan hoặc tham dự các cuộc họp, làm việc để nắm tình hình, phục vụ công tác chỉ đạo, điều hành của HĐND, UBND và Chủ tịch UBND cấp huyện.

4. Bảo đảm thông tin phục vụ công tác lãnh đạo, chỉ đạo, điều hành của HĐND, UBND và Chủ tịch UBND cấp huyện:

a) Thực hiện chế độ báo cáo định kỳ và đột xuất với Chủ tịch UBND cấp huyện; thông tin để các thành viên UBND cấp huyện, Thủ trưởng cơ quan thuộc UBND cấp huyện, Chủ tịch HĐND, UBND cấp huyện, các cơ quan của Đảng, Nhà nước và các cơ quan, tổ chức liên quan về tình hình kinh tế - xã hội của địa phương, hoạt động của HĐND, UBND cấp huyện, công tác lãnh đạo, chỉ đạo, điều hành của Chủ tịch UBND cấp huyện;

b) Cung cấp thông tin cho công chúng và các hoạt động chủ yếu, những quyết định quan trọng của HĐND, UBND và Chủ tịch UBND cấp huyện, những sự kiện kinh tế, chính trị, xã hội nổi bật mà dư luận quan tâm theo quy định pháp luật và chỉ đạo của Chủ tịch UBND cấp huyện;

c) Quản lý và duy trì hoạt động mạng tin học của HĐND, UBND cấp huyện;

d) Quản lý và duy trì hệ thống quản lý văn bản điều hành, phòng họp không giấy tờ eCabinet;

đ) Quản lý, sử dụng con dấu, thiết bị lưu khóa bí mật của HĐND, UBND, Văn phòng HĐND và UBND cấp huyện theo quy định của pháp luật.

5. Bảo đảm các điều kiện vật chất, kỹ thuật cho hoạt động của HĐND, UBND cấp huyện, Chủ tịch UBND cấp huyện.

6. Xây dựng, ban hành các văn bản thuộc thẩm quyền của Văn phòng HĐND và UBND cấp huyện theo quy định của pháp luật.

7. Tổ chức việc phát hành, quản lý, lưu trữ các văn bản của HĐND, UBND và Chủ tịch UBND cấp huyện; thực hiện chế độ bảo vệ bí mật Nhà nước theo quy định.

8. Tổ chức nghiên cứu, thực hiện và ứng dụng các đề tài nghiên cứu khoa học.

9. Quản lý tổ chức bộ máy, biên chế; thực hiện chế độ tiền lương và các chế độ, chính sách đãi ngộ, khen thưởng, kỷ luật; đào tạo, bồi dưỡng về chuyên môn, nghiệp vụ đối với cán bộ, công chức thuộc Văn phòng HĐND và UBND cấp huyện theo quy định pháp luật và phân cấp.

10. Quản lý tài chính, tài sản được giao theo quy định của pháp luật và phân cấp của UBND cấp huyện.

11. Thực hiện các nhiệm vụ, quyền hạn khác do HĐND, UBND và Chủ tịch UBND cấp huyện giao hoặc theo quy định của pháp luật.

III. CƠ CẤU TỔ CHỨC

1. Lãnh đạo Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện:

a) Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện có Chánh Văn phòng, các Phó Chánh Văn phòng. Số lượng Phó Chánh Văn phòng do Ủy ban nhân dân huyện, thành phố quyết định theo biên chế được giao;

b) Chánh Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện là người đứng đầu Văn phòng HĐND và UBND cấp huyện, là Ủy viên UBND cấp huyện do HĐND cấp huyện bầu, do Chủ tịch UBND cấp huyện bổ nhiệm, chịu trách nhiệm trước HĐND, UBND và Chủ tịch UBND cấp huyện và trước pháp luật về toàn bộ hoạt động của Văn phòng; thực hiện nhiệm vụ, quyền hạn của Ủy viên UBND cấp huyện theo Quy chế làm việc và phân công của UBND cấp huyện; đồng thời là chủ tài khoản cơ quan Văn phòng HĐND và UBND cấp huyện;

c) Phó Chánh Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện là cấp phó của người đứng đầu Văn phòng HĐND và UBND cấp huyện thuộc UBND cấp huyện, giúp Chánh Văn phòng thực hiện, theo dõi một số mặt công tác và chịu trách nhiệm trước Chánh Văn phòng, trước pháp luật về nhiệm vụ được phân công. Khi Chánh Văn phòng vắng mặt, một Phó Chánh Văn phòng được Chánh Văn phòng ủy quyền điều hành các hoạt động của Văn phòng HĐND và UBND cấp huyện;

d) Việc bổ nhiệm, điều động, luân chuyển, khen thưởng, kỷ luật, miễn nhiệm, cho từ chức, thực hiện chế độ, chính sách đối với Chánh Văn phòng, Phó Chánh Văn phòng do Chủ tịch UBND cấp huyện quyết định theo quy định của pháp luật và theo phân cấp về công tác cán bộ.

2. Các bộ phận tham mưu, giúp việc: Căn cứ vào chức năng, nhiệm vụ và tình hình thực tế của địa phương, Văn phòng HĐND và UBND cấp huyện sắp xếp phù hợp các bộ phận tham mưu, giúp việc nhưng phải bảo đảm có các bộ phận: Tiếp nhận và trả kết quả; Tiếp công dân; Nghiên cứu, tổng hợp; Văn thư - Lưu trữ; Kế toán...

IV. BIÊN CHẾ

1. Biên chế công chức của Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện do cấp thẩm quyền quyết định trong tổng biên chế công chức của cơ quan có thẩm quyền giao hàng năm.

2. Việc bố trí công tác đối với công chức của Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện phải căn cứ vào vị trí việc làm, cơ cấu ngạch công chức được giao hằng năm và phẩm chất, trình độ, năng lực của từng công chức.

V. TỔ CHỨC THỰC HIỆN

1. Chánh Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện có trách nhiệm trình Uỷ ban nhân dân cấp huyện ban hành quy định cụ thể chức năng, nhiệm vụ, quyền hạn và tổ chức của Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện trên cơ sở phù hợp với các quy định của pháp luật hiện hành có liên quan và hướng dẫn này.

2. Trong quá trình tổ chức thực hiện, nếu có vấn đề phát sinh hoặc khó khăn, vướng mắc, đề nghị phản ánh kịp thời về Ủy ban nhân dân tỉnh Sơn La (thông qua Văn phòng Ủy ban nhân dân tỉnh Sơn La) để được xem xét, giải quyết.

VI. TRÁCH NHIỆM THỰC HIỆN

Giao Ủy ban nhân dân cấp huyện:

1. Chỉ đạo Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện chủ trì, phối hợp với Phòng Nội vụ, Phòng Tư pháp và cơ quan có liên quan tham mưu Ủy ban nhân dân cấp huyện ban hành Quyết định quy định chức năng, nhiệm vụ, quyền hạn và tổ chức của Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện kịp thời, theo đúng trình tự, thủ tục quy định.

2. Báo cáo kết quả ban hành kèm Quyết định quy định chức năng, nhiệm vụ, quyền hạn và tổ chức của Văn phòng Hội đồng nhân dân và Ủy ban nhân dân cấp huyện về Sở Nội vụ để tổng hợp, báo cáo Ủy ban nhân dân tỉnh; gửi Văn phòng Đoàn đại biểu Quốc hội và HĐND tỉnh, Văn phòng UBND tỉnh và Sở Y tế để biết, chỉ đạo trong quá trình thực hiện nhiệm vụ./.

 


Nơi nhận:
- Thường trực HĐND tỉnh;
- Chủ tịch, các Phó Chủ tịch UBND tỉnh;
- VP Đoàn ĐBQH và HĐND tỉnh;
- Sở Nội vụ; Sở Y tế; Sở Tư pháp;
- TT. HĐND, UBND huyện, thành phố;
- VP. HĐND và UBND huyện, thành phố;
- LĐ VP UBND tỉnh;
- Các phòng thuộc VP UBND tỉnh;
- Trung tâm thông tin tỉnh;
- Lưu: VT, NC. Hiệp (10b)

TM. ỦY BAN NHÂN DÂN
CHỦ TỊCH




Hoàng Quốc Khánh

 



/g, '').replace(/\s*(<\/?[^>]+>)\s*/g, '$1').trim(); } function checkAndWrap(element) { // Đệ quy kiểm tra các phần tử .main-elem con bên trong trước element.children('cttd, dctd, dctk').each(function() { checkAndWrap($(this)); }); // Lấy HTML hiện tại của phần tử .main-elem và làm sạch nó var currentHTML = cleanHTML(element.html()); // Log trạng thái HTML bên trong trước khi kiểm tra //console.log('Before inner HTML:', currentHTML); // Kiểm tra xem HTML có bao quanh bởi thẻ span không if (!(currentHTML.startsWith(''))) { // Nếu không, bao quanh toàn bộ nội dung bằng thẻ span element.html('' + currentHTML + ''); currentHTML = cleanHTML(element.html()); //console.log('After inner HTML:', currentHTML); } else { //console.log('Giữ nguyên inner HTML:..........................'); } } $('cttd.chuthichtudong a.chuthichtudong').each(function() { $(this).removeClass('chuthichtudong'); }); // Bắt đầu kiểm tra từ các phần tử .main-elem ngoài cùng $('cttd.chuthichtudong, a.chuthichtudong, dctd, dctk').each(function() { $(this).attr('id', 'rnd_' + random_string_id(20)); checkAndWrap($(this)); }); }); $(document).ready(function() { $('cttd.chuthichtudong span, a.chuthichtudong span, dctk span, dctd span').click(function(e) { e.preventDefault(); e.stopPropagation(); }); $('cttd.chuthichtudong > span, a.chuthichtudong > span, dctk > span, dctd > span').click(function(e) { e.preventDefault(); e.stopPropagation(); if ($(document).width()<=768) { return; } var $this = $(this); //alert($this.position().top); var clickedElement = $(this); var level = 0; var selectors = ['cttd.chuthichtudong > span', 'dctk > span', 'dctd > span']; // Kiểm tra xem có ít nhất một cấp con thỏa mãn điều kiện không var hasChild = selectors.some(function(selector) { return clickedElement.closest(selector).find('span').length > 0; }); if (!hasChild) { //alert('chỉ có 1 cấp'); var totalSubLevels = 1; } else { function findMatchingParent(element) { var parent = element.parent(); if (parent.length === 0) return null; for (var i = 0; i < selectors.length; i++) { if (parent.is(selectors[i])) { return parent; } } return findMatchingParent(parent); } var parentElement = findMatchingParent(clickedElement); while (parentElement !== null) { level++; parentElement = findMatchingParent(parentElement); } var closestElement = clickedElement.closest(selectors.join(', ')); var nodeName = closestElement.prop('nodeName').toLowerCase(); var className = closestElement.attr('class'); var textContent = closestElement.text().trim(); var address = selectors.find(function(selector) { return closestElement.is(selector); }); // Đếm tổng số cấp dưới bao gồm cả cấp được click var totalSubLevels = closestElement.find('span').length + 1; // +1 để bao gồm cả cấp được click var parent_id = closestElement.parent().attr('id'); //alert('Clicked element level: ' + level + '\nAddress: ' + address + '\nText: ' + textContent + '\nparent_id: ' + parent_id); var variableName = 'parent_id_' + level; // Gán giá trị của parent_id cho biến động này window[variableName] = parent_id; } if (totalSubLevels>1) { // Tạo đối tượng để lưu trữ các biến động var dynamicVars = {}; // Tạo tên biến động dựa trên giá trị của level var variableName = 'parent_id_' + level; // Gán giá trị của parent_id cho biến động này dynamicVars[variableName] = parent_id; // Giờ gắn ngược lại biến buble_id = parent_id_{level} var buble_id = dynamicVars[variableName]; } else { buble_id = 'dc_' + $(this).parent().attr('id'); } //alert('bat dau xu ly ' + buble_id); // Nếu không có .pointer ngay sau .main-elem thì chèn thêm if ($this.next('.pointy').length === 0) { $this.after('

'); } var $pointer = $this.next('.pointer'); var $canvas = $this.next('canvas'); var $pointy = $canvas.next('div.pointy'); if ($pointy.is(':visible')) { //alert('now hide everything'); } //$pointer.css({'border':'solid 5px red'}); //$pointer.hide(); //$pointer.prev('canvas.pointy').hide(); if ($pointer.is(':visible')) { } else { if ($('#ajax_tra_cuu').is(':visible')) { $('#ajax_tra_cuu').hide(); } $("#right_info_col").css('height', '1px'); //$('#rightdocinfo').hide(); $('#rightdocinfo').hide('slow'); $('#r-toc').hide('slow'); if ($('button#toggleSidebar').length) { if (parseInt($('#customSidebar').css('right'),10) == 0) { $('#customSidebar').animate({ right: '-280px' }, 500); $('#toggleSidebar').html(''); } else { } } //alert('pointy length: ' + $pointy.length); //alert('pointy visible: ' + $pointy.is(':visible')); //$canvas.show(); if ($pointy.is(':visible')) { var $pointer = $canvas.next('.pointer'); //alert('pointer text: ' + $pointer.text()); //alert('pointer visible: ' + $pointer.is(':visible')); if ($pointer.is(':visible')) { //alert($pointer.prev('canvas.pointy').length); $pointer.hide(); $canvas.hide(); } else { } } else { if ($canvas.length==1) { var $canvas = $this.next('canvas'); var $pointer = $canvas.next('.pointer'); //$pointy.show(); if ($pointer.length>0) { $pointer.show(); $canvas.show(); } //$canvas.show(); $('.pointer').removeClass('pointy-active'); $('.pointer').css({'z-index':1}); $('canvas.pointy').removeClass('pointy-active'); $('canvas.pointy').css({'z-index':1}); $pointer.css({'z-index':9999}); $canvas.css({'z-index':9999}); if (level==0) { if (totalSubLevels==1) { scrollTop_offset = $pointer.offset().top - $(window).height() / 4; } else { scrollTop_offset = $pointer.offset().top - $('#nav-tab-vb').height()-10; } $('html,body').animate({ scrollTop: scrollTop_offset }, 'slow'); } } else { $pointer.show(); //$canvas.show(); if ($pointy.length==0) { var elementOffset = $(this).position().top; var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); var newTop = elementOffset - (pointerHeight / 2); // Đảm bảo pointer không ra khỏi màn hình var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); if (totalSubLevels=1) { if (level>0) { newTop = newTop+pointerHeight+30; } } // Positioning the pointer var position = $this.position(); $pointer.css({ left: $('#doc-left-col').width() + 50 + "px", width: $('#doc-right-col').width()-30, height: pointerHeight, 'z-index': 9999, top: newTop + "px" }); // Initialize pointy $this.pointy({ pointer: $pointer, defaultClass: 'zindex', activeClass: 'pointy-active', arrowWidth: 20 }); var initialTop = $pointer.position().top; $pointer.draggable({ containment: 'document', drag: function() { if (screen.width<1280) { var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); } $this.trigger('pointy-update'); } }); // Thêm sự kiện click cho .close_pointy $pointer.on('click', '.close_pointy', function(e) { $pointer.hide(); $pointer.prev('canvas.pointy').hide(); }); // Handle touch events for mobile devices var isDragging = false, startX, startY, offsetX, offsetY; var startDragging = function(e) { if (checkIfScrollingContent(e)) return; if ($(e.target).is('.close_pointy')) { // Nếu đúng thì không chạy các hàm drag return; } isDragging = true; var touch = e.originalEvent.touches[0]; var pos = $pointer.position(); startX = touch.pageX; startY = touch.pageY; offsetX = startX - pos.left; offsetY = startY - pos.top-$pointer.height()-$pointer.height()/1.365; var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); e.preventDefault(); }; var duringDragging = function(e) { if (checkIfScrollingContent(e)) return; if (isDragging) { var touch = e.originalEvent.touches[0]; var moveX = touch.pageX; var moveY = touch.pageY; if (screen.width<1280) { var newLeft = moveX - offsetX; var newTop = moveY - offsetY-$pointer.height()-$pointer.height()/1.365; // Giới hạn không cho kéo vượt quá chiều ngang của màn hình if (newLeft < 0) { newLeft = 0; } else if (newLeft + $pointer.outerWidth() > $(window).width()) { newLeft = $(window).width() - $pointer.outerWidth(); } // Giới hạn không cho kéo lên trên vượt quá position.top ban đầu if (newTop < initialTop) { newTop = initialTop; } $pointer.css({ left: newLeft, top: newTop }); } else { var newLeft = moveX - offsetX; var newTop = moveY - offsetY-$pointer.height()-$pointer.height()/1.365; // Giới hạn không cho kéo vượt quá chiều ngang của màn hình if (newLeft < 0) { newLeft = 0; } else if (newLeft + $pointer.outerWidth() > $(window).width()) { newLeft = $(window).width() - $pointer.outerWidth(); } $pointer.css({ left: newLeft, top: newTop }); } $pointer.prev('canvas.pointy').hide(); e.preventDefault(); } }; var stopDragging = function(e) { $pointer.prev('canvas.pointy').show(); if (checkIfScrollingContent(e)) return; if (screen.width<1280) { var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); } $this.trigger('pointy-update'); }; function checkIfScrollingContent(e) { // Kiểm tra đối tượng mà người dùng đang chạm có phải là nội dung bên trong $pointer // Ví dụ, nếu nó là một phần tử
hoặc

bên trong $pointer if ($(e.target).closest('.list_tds').length > 0) { // Người dùng đang chạm vào nội dung bên trong .scroll_2 // Cho phép hành vi cuộn và ngăn chặn di chuyển $pointer e.stopPropagation(); return true; } // Người dùng không chạm vào nội dung bên trong $pointer // Cho phép di chuyển $pointer return false; } $pointer.on('touchstart', startDragging); $pointer.on('touchmove', duringDragging); $pointer.on('touchend', stopDragging); // Hàm để cập nhật vị trí của pointer var updatePointerPosition = function() { var offset = $this.position(); //alert($this.position().top); var windowHeight = $(window).height() - $('#nav-tab-vb').height()-20; var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); var elementOffset = $this.position().top; var newTop = elementOffset - (pointerHeight / 2); // Đảm bảo pointer không ra khỏi màn hình var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); $pointer.css({ left: $('#doc-left-col').width() + 50 + "px", width: $('#doc-right-col').width() - 30, height: pointerHeight, top: newTop + "px" }); //alert($pointer.position().top); }; /* */ // Cập nhật vị trí pointer khi thay đổi kích thước hoặc xoay màn hình $(window).on('resize orientationchange', function() { updatePointerPosition(); //$canvas.css('top', $this.position().top+'px'); var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); $this.trigger('pointy-update'); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); }); } } } if ($pointer.is(':visible')) { if (level==0) { if (totalSubLevels==1) { scrollTop_offset = $pointer.offset().top - $(window).height() / 4; } else { scrollTop_offset = $pointer.offset().top - $('#nav-tab-vb').height()-10; } $('html,body').animate({ scrollTop: scrollTop_offset }, 'slow'); } } } $pointer.css('opacity', '1'); $('.pointy').click(function(e) { e.preventDefault(); e.stopPropagation(); }); var parent = $(this).parent(); var dataCT = parent.attr('data-ct'); var dataDC = parent.attr('data-dc'); var dataTN = parent.attr('data-tn'); //if (dataCT) loai_buble = 'chuthich'; //if (dataDC) loai_buble = 'danchieu';; //if (dataTN) loai_buble = 'thuatngu'; var loai_buble = parent.prop('nodeName').toLowerCase(); var text_html = $(this).text(); if (loai_buble=='cttd' || loai_buble=='a') { pointer_html = '

'; } else if(loai_buble=='dctd') { if (this.hasAttribute('o-title')) { tieu_de_dan_chieu = $(this).attr('o-title'); } else { tieu_de_dan_chieu = text_html; } pointer_html = ''; } else if(loai_buble=='dctk') { pointer_html = ''; } if ($pointer.find('#noi_dung_buble_'+buble_id).length) { } else { $pointer.html(pointer_html); } if (loai_buble=='cttd' || loai_buble=='a') { var load_cttd = setInterval(function(){ if ($pointer.find('#noi_dung_buble_'+buble_id + ' .dc_loading').length) { $.ajax({ type: 'POST', url: '/ajax/vanban/chu-thich/', data: { 'ndct': dataCT, 'id_ct': buble_id, 'dc_text': text_html }, success: function(response) { $("#noi_dung_buble_" + buble_id).html(response); if ($(document).width()>=1280){$this.trigger('pointy-update');} clearInterval(load_cttd); } }); } },500); } else if(loai_buble=='dctd') { var load_cttd = setInterval(function(){ if ($pointer.find('#noi_dung_buble_'+buble_id + ' .dc_loading').length){ if (dataDC.length == 32) { $.ajax({ type: 'POST', url: '/ajax/public/dan-chieu/' + dataDC, data: { 'text_dan_chieu': text_html }, success: function(response) { $("#noi_dung_buble_" + buble_id).html(response); if ($(document).width()>=1280){$this.trigger('pointy-update');} clearInterval(load_cttd); } }); } else { $("#noi_dung_buble_" + buble_id).load('/ajax/public/dan-chieu/' + dataDC + '/'); if ($(document).width()>=1280){$this.trigger('pointy-update');} clearInterval(load_cttd); } } else { clearInterval(load_cttd); } },500); } else if(loai_buble=='dctk') { if ($('#noi_dung_buble_'+buble_id + ' .dc_loading').length){ $.ajax({ type: 'POST', url: '/ajax/vanban/chu-thich/', data: { 'ndct': dataCT, 'id_ct': buble_id, 'loai_hd': 'noi_dung_tham_khao', 'dc_text': text_html }, success: function(response) { $("#noi_dung_buble_" + buble_id).html(response); if ($(document).width()>=1280){$this.trigger('pointy-update');} } }); } } /* var tim_buble_id = setInterval(function(){ if ($('#noi_dung_buble_'+buble_id).length) { alert('bay gio moi tim thay '+buble_id); clearInterval(tim_buble_id); } },1000); */ $('.pointer').removeClass('pointy-active'); $('.pointer').css({'z-index':1}); $('canvas.pointy').removeClass('pointy-active'); $('canvas.pointy').css({'z-index':1}); $pointer.css({'z-index':9999}); $canvas.css({'z-index':9999}); $('.pointer').on('mouseenter mouseleave click touchstart', function() { // Khi di chuột vào $('.pointer').removeClass('pointy-active'); $('.pointer').css({'z-index':1}); $(this).css({'z-index':9999}); $('canvas.pointy').removeClass('pointy-active'); $('canvas.pointy').css({'z-index':1}); $(this).prev('canvas.pointy').addClass('pointy-active'); $(this).prev('canvas.pointy').css({'z-index':9999}); } ); var list_tds_max_height_interval = setInterval(function(){ if ($pointer.find('.list_tds').length) { var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); $pointer.find('.list_tds').css('max-height', pointerHeight + 'px'); clearInterval(list_tds_max_height_interval); } },50); $(window).resize(function() { if ($(document).width()<=768) { $pointer.hide(); $pointer.prev('canvas.pointy').hide(); } var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); var list_tds_max_height_interval = setInterval(function(){ if ($pointer.find('.list_tds').length) { var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); $pointer.find('.list_tds').css('max-height', pointerHeight + 'px'); clearInterval(list_tds_max_height_interval); } },50); }); var parentElement = $(this).parent(); // Define the selectors for the target elements var selectors = 'cttd.chuthichtudong > span, a.chuthichtudong > span, dctk > span, dctd > span'; // Find and click all matching child elements parentElement.find(selectors).each(function() { $(this).click(); }); var cap_nhat_pointy_top = setInterval(function(){ if ($this.position().top-$this.parent().height()+10!=$pointer.prev('canvas.pointy').position().top) { $pointer.prev('canvas.pointy').css({'top': $this.position().top-$this.parent().height()+10+'px'}); clearInterval(cap_nhat_pointy_top); } else { clearInterval(cap_nhat_pointy_top); } },50); }); }); function random_string_id(numstr) { var text = ""; var possible = "abcdefghijklmnopqrstuvwxyz0123456789"; for (var i = 0; i < numstr; i++) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } $(document).ready(function() { function setPointerHeight() { var windowHeight = $(window).height() - $('#nav-tab-vb').height()-20; var pointerHeight = Math.max(250, Math.min(windowHeight * 0.8, 450)); $('.pointer').css('height', pointerHeight + 'px'); } // Đặt chiều cao khi tải trang setPointerHeight(); // Đặt lại chiều cao khi thay đổi kích thước cửa sổ (nếu cần) $(window).resize(function() { setPointerHeight(); }); }); // Lưu dấu chọn lựa cuối cùng let lastChosen = null; let lastChosentr = null; function scroll_den_hd(ndsh_dich_address) { if (lastChosen) { $(lastChosen).css('background-color', ''); // Xóa mọi bôi mờ trước } if (lastChosentr) { $(lastChosentr).css('background-color', ''); // Xóa mọi bôi mờ trước } lastChosen = $('[href="javascript:scroll_den_hd(\'' + ndsh_dich_address + '\')"]'); lastChosentr = $('[data-ct="' + ndsh_dich_address + '"]'); $(lastChosen).css('background-color', 'yellow'); // Thay bôi mờ $(lastChosentr).css('background-color', 'yellow'); // Thay bôi mờ var targetElement = $('[address="' + ndsh_dich_address + '"]'); $('.selected_dchd').removeClass('selected_dchd'); targetElement.addClass('selected_dchd'); targetElement.children('p').children('cttd').click(); targetElement.children('cttd').click(); targetElement.children('p').children('dctk').click(); targetElement.children('dctk').click(); // Tính toán vị trí để cuộn đến và đẩy vị trí xuống một chút cho dễ nhìn /* var position = targetElement.offset().top - $(window).height()/2; // Sử dụng animate để cuộn đến vị trí, sau đó không cần bôi màu như trước $('html, body').animate({ scrollTop: position }, 800, function() { // Không cần thực hiện thêm hành động nào sau khi cuộn, vì việc đánh dấu đã được xử lý ở trên }); */ }