Hệ thống pháp luật

BỘ GIAO THÔNG VẬN TẢI
-------

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

Số: 48/VBHN-BGTVT

Hà Nội, ngày 22 tháng 8 năm 2023

 

THÔNG TƯ

QUY ĐỊNH VỀ ĐĂNG KIỂM VIÊN VÀ NHÂN VIÊN NGHIỆP VỤ ĐĂNG KIỂM TÀU BIỂN

Thông tư số 51/2017/TT-BGTVT ngày 29 tháng 12 năm 2017 của Bộ trưởng Bộ Giao thông vận tải quy định về đăng kiểm viên và nhân viên nghiệp vụ đăng kiểm tàu biển, có hiệu lực kể từ ngày 01 tháng 3 năm 2018, được sửa đổi, bổ sung bởi:

Thông tư số 17/2023/TT-BGTVT ngày 30 tháng 6 năm 2023 của Bộ trưởng Bộ Giao thông vận tải sửa đổi, bổ sung một số điều của Thông tư số 40/2016/TT-BGTVT ngày 7 tháng 12 năm 2016 của Bộ trưởng Bộ Giao thông vận tải quy định về đăng kiểm tàu biển Việt Nam và Thông tư số 51/2017/TT-BGTVT ngày 29 tháng 12 năm 2017 của Bộ trưởng Bộ Giao thông vận tải quy định về đăng kiểm viên và nhân viên nghiệp vụ đăng kiểm tàu biển, có hiệu lực kể từ ngày 15 tháng 8 năm 2023.

Căn cứ Bộ luật Hàng hải Việt Nam ngày 25 tháng 11 năm 2015;

Căn cứ Nghị định số 12/2017/NĐ-CP ngày 10 tháng 02 năm 2017 của Chính phủ quy định chức năng; nhiệm vụ, quyền hạn và cơ cấu tổ chức của Bộ Giao thông vận tải;

Căn cứ Luật thực hiện các văn kiện IMO theo Nghị quyết A.1070(28) và Luật các tổ chức được công nhận theo Nghị quyết MSC.349(92) và Nghị quyết MEPC.237(65) của Tổ chức Hàng hải quốc tế (IMO);

Theo đề nghị của Vụ trưởng Vụ Tổ chức cán bộ và Cục trưởng Cục Đăng kiểm Việt Nam;

Bộ trưởng Bộ Giao thông vận tải ban hành Thông tư quy định về đăng kiểm viên và nhân viên nghiệp vụ đăng kiểm tàu biển.Chương I

QUY ĐỊNH CHUNG

Điều 1. Phạm vi điều chỉnh

Thông tư này quy định về tiêu chuẩn, trách nhiệm, quyền hạn, nhiệm vụ của đăng kiểm viên và nhân viên nghiệp vụ đăng kiểm tàu biển.

Điều 2. Đối tượng áp dụng

Thông tư này áp dụng đối với các cơ quan, tổ chức, cá nhân có liên quan đến hoạt động đăng kiểm tàu biển; phương tiện, thiết bị thăm dò, khai thác và vận chuyển dầu khí trên biển (sau đây gọi tắt là công trình biển); các sản phẩm công nghiệp dùng cho tàu biển và công trình biển (sau đây gọi tắt là sản phẩm công nghiệp).

Điều 3. Giải thích từ ngữ

1. Đăng kiểm viên tàu biển là người được công nhận và cấp thẻ đăng kiểm viên để thực hiện công tác đăng kiểm tàu biển, công trình biển và sản phẩm công nghiệp theo quy định của pháp luật và các điều ước quốc tế có liên quan. Đăng kiểm viên tàu biển bao gồm:

a) Đăng kiểm viên tàu biển thực hiện công tác thẩm định thiết kế;

b) Đăng kiểm viên tàu biển thực hiện công tác kiểm tra;

c) Đăng kiểm viên tàu biển thực hiện công tác đánh giá.

2. Nhân viên nghiệp vụ đăng kiểm tàu biển (sau đây gọi là nhân viên nghiệp vụ) là người thực hiện việc tiếp nhận công việc, lưu trữ, cấp phát hồ sơ, ấn chỉ dùng trong công tác đăng kiểm tàu biển và thực hiện các công việc khác phục vụ cho hoạt động đăng kiểm tàu biển.

Điều 4. Hạng đăng kiểm viên tàu biển

Đăng kiểm viên tàu biển được phân thành 02 (hai) hạng, như sau:

1. Đăng kiểm viên tàu biển.

2. Đăng kiểm viên tàu biển bậc cao.

Chương II

TRÁCH NHIỆM, QUYỀN HẠN CỦA ĐĂNG KIỂM VIÊN TÀU BIỂN VÀ NHÂN VIÊN NGHIỆP VỤ ĐĂNG KIỂM TÀU BIỂN

Điều 5. Trách nhiệm của đăng kiểm viên tàu biển

Đăng kiểm viên tàu biển có trách nhiệm thực hiện công tác đăng kiểm tàu biển, công trình biển (sau đây gọi là phương tiện) và sản phẩm công nghiệp phù hợp với các nội dung ghi trong giấy chứng nhận đăng kiểm viên, chức năng, nhiệm vụ của cơ quan, đơn vị đăng kiểm và quy định của pháp luật.

Điều 6. Quyền hạn của đăng kiểm viên tàu biển

1. Được yêu cầu chủ phương tiện hoặc cơ sở thiết kế, chế tạo, đóng mới, hoán cải, phục hồi, sửa chữa, bảo dưỡng, thử nghiệm, quản lý phương tiện, sản phẩm công nghiệp cung cấp các hồ sơ kỹ thuật, tạo điều kiện cần thiết để thực hiện công tác đăng kiểm, bảo đảm an toàn trong quá trình thực thi nhiệm vụ.

2. Được bảo lưu và báo cáo cơ quan cấp trên trực tiếp khi ý kiến của mình khác với quyết định của thủ trưởng đơn vị về kết luận đánh giá tình trạng kỹ thuật, sự phù hợp của đối tượng thẩm định, kiểm tra, đánh giá.

3. Được ký và sử dụng dấu, ấn chỉ nghiệp vụ khi thiết lập hồ sơ đăng kiểm cho đối tượng được thẩm định, kiểm tra, đánh giá theo quy định.

4. Được từ chối thực hiện thẩm định, kiểm tra, đánh giá nếu công việc được phân công vượt quá năng lực chuyên môn nghiệp vụ đã được công nhận, hoặc khi nhận thấy các điều kiện an toàn lao động tại hiện trường không bảo đảm.

Điều 7. Trách nhiệm, quyền hạn của nhân viên nghiệp vụ

1. Trách nhiệm: Thực hiện nhiệm vụ được giao phù hợp với chức năng, nhiệm vụ của cơ quan, đơn vị đăng kiểm và quy định của pháp luật.

2. Quyền hạn: Được bảo lưu và báo cáo cấp trên trực tiếp của lãnh đạo đơn vị khi ý kiến của mình khác với ý kiến của lãnh đạo đơn vị.

Chương III

TIÊU CHUẨN, NHIỆM VỤ CÁC HẠNG ĐĂNG KIỂM VIÊN TÀU BIỂN

Điều 8. Đăng kiểm viên tàu biển

1. Tiêu chuẩn của Đăng kiểm viên tàu biển

a)b) Hoàn thành các khóa tập huấn nghiệp vụ mới, bổ sung, cập nhật cho đăng kiểm viên tàu biển về nghiệp vụ đăng kiểm phương tiện và sản phẩm công nghiệp, nghiệp vụ đánh giá hệ thống quản lý do Cục Đăng kiểm Việt Nam tổ chức hoặc tổ chức đăng kiểm nước ngoài đã ký thỏa thuận với Cục Đăng kiểm Việt Nam tổ chức.

c)d)đ)e)2. Tiêu chuẩn bổ sung đối với đăng kiểm viên thực hiện công tác đánh giá

Ngoài các quy định tại khoản 1 Điều này, đăng kiểm viên tàu biển thực hiện công tác đánh giá phải có kinh nghiệm công tác trong lĩnh vực kỹ thuật hoặc khai thác tàu biển đến trước khi được công nhận với thời gian đủ 05 (năm) năm trở lên và hoàn thành thực tập nghiệp vụ đánh giá như sau:

a) Đối với đăng kiểm viên tàu biển thực hiện công tác đánh giá quản lý an toàn theo quy định của Bộ luật quản lý an toàn quốc tế (Bộ luật ISM): Có ít nhất 04 (bốn) cuộc đánh giá quản lý an toàn, trong đó ít nhất 01 (một) cuộc đánh giá quản lý an toàn công ty và 01 (một) cuộc đánh giá quản lý an toàn tàu.

b) Đối với đăng kiểm viên tàu biển thực hiện công tác đánh giá quản lý an ninh hàng hải theo quy định của Bộ luật quốc tế về an ninh tàu biển và bến cảng (Bộ luật ISPS): Có ít nhất 03 (ba) cuộc đánh giá quản lý an ninh hàng hải và 01 (một) cuộc thẩm định Kế hoạch an ninh tàu biển (SSP).

c) Đối với đăng kiểm viên tàu biển thực hiện công tác đánh giá quản lý lao động hàng hải theo quy định của Công ước Lao động hàng hải (Công ước MLC): Có ít nhất 03 (ba) cuộc đánh giá quản lý lao động hàng hải và 01 (một) cuộc thẩm định Bản công bố phù hợp Lao động hàng hải phần II (DMLC II).

3. Nhiệm vụ của đăng kiểm viên tàu biển thực hiện công tác thẩm định thiết kế:

a) Duyệt các tài liệu hướng dẫn tàu biển;

b) Thẩm định, lập hồ sơ đăng kiểm liên quan đến thiết kế trong đóng mới, hoán cải, sửa chữa phương tiện và chế tạo sản phẩm công nghiệp theo quy định của pháp luật Việt Nam và các điều ước quốc tế mà Cộng hòa xã hội chủ nghĩa Việt Nam là thành viên;

c) Tính các loại giá và lệ phí đăng kiểm;

d) Tham gia điều tra tai nạn hàng hải.

4. Nhiệm vụ của đăng kiểm viên tàu biển thực hiện công tác kiểm tra:

a) Kiểm tra chất lượng an toàn kỹ thuật, phòng ngừa ô nhiễm môi trường và phân cấp phương tiện trong quá trình đóng mới, hoán cải, phục hồi, sửa chữa và trong quá trình hoạt động theo quy định của pháp luật Việt Nam và các điều ước quốc tế mà Cộng hòa xã hội chủ nghĩa Việt Nam là thành viên;

b) Kiểm tra, chứng nhận chất lượng an toàn kỹ thuật và phòng ngừa ô nhiễm môi trường cho công-te-nơ, máy, vật liệu, trang thiết bị sử dụng cho tàu biển, công trình biển, phương tiện thủy nội địa trong chế tạo, lắp ráp, nhập khẩu, đóng mới, hoán cải, phục hồi, sửa chữa theo quy định của pháp luật Việt Nam và các điều ước quốc tế mà Cộng hòa xã hội chủ nghĩa Việt Nam là thành viên;

c) Kiểm tra, đánh giá công nhận đủ điều kiện các cơ sở đóng mới, hoán cải, sửa chữa tàu biển theo quy định của pháp luật Việt Nam và các điều ước quốc tế mà Cộng hòa xã hội chủ nghĩa Việt Nam là thành viên;

d) Kiểm tra, đánh giá công nhận năng lực các cơ sở thử nghiệm, cung cấp dịch vụ kiểm tra, thử trang thiết bị an toàn và cơ sở chế tạo liên quan đến chất lượng an toàn kỹ thuật và phòng ngừa ô nhiễm môi trường tàu biển theo quy định của pháp luật Việt Nam và các điều ước quốc tế mà Cộng hòa xã hội chủ nghĩa Việt Nam là thành viên;

đ) Kiểm tra, đánh giá tay nghề thực tế để cấp giấy chứng nhận thợ hàn;

e) Giám định trạng thái kỹ thuật tàu biển phục vụ việc mua, bán, thuê tàu biển khi có yêu cầu;

g) Lập hồ sơ đăng kiểm cho đối tượng nêu tại điểm a, b, c, d, đ, e Khoản này;

h) Tính các loại giá và lệ phí đăng kiểm;

i) Tham gia điều tra tai nạn hàng hải.

5. Nhiệm vụ của đăng kiểm viên tàu biển thực hiện công tác đánh giá:

a) Duyệt tài liệu, hồ sơ và đánh giá hệ thống quản lý an toàn, an ninh, lao động hàng hải;

b) Lập hồ sơ đăng kiểm liên quan đến việc đánh giá theo quy định;

c) Tính các loại giá, phí và lệ phí đăng kiểm;

d) Tham gia điều tra tai nạn hàng hải.

Điều 9. Đăng kiểm viên tàu biển bậc cao

1. Tiêu chuẩn của Đăng kiểm viên tàu biển bậc cao

Ngoài việc đáp ứng yêu cầu tiêu chuẩn của đăng kiểm viên tàu biển quy định tại khoản 1 Điều 8 Thông tư này, đăng kiểm viên tàu biển bậc cao phải đáp ứng các yêu cầu sau đây:

a) Hoàn thành chương trình tập huấn nghiệp vụ cho đăng kiểm viên tàu biển bậc cao về nghiệp vụ đăng kiểm phương tiện và sản phẩm công nghiệp, nghiệp vụ đánh giá hệ thống quản lý do Cục Đăng kiểm Việt Nam tổ chức hoặc tổ chức đăng kiểm nước ngoài đã ký thỏa thuận với Cục Đăng kiểm Việt Nam tổ chức;

b)c) Đạt yêu cầu trong kỳ đánh giá đăng kiểm viên trước khi công nhận đăng kiểm viên tàu biển bậc cao và đánh giá hàng năm;

d) Có tổng thời gian giữ hạng đăng kiểm viên tàu biển đủ 05 (năm) năm.

2. Nhiệm vụ của đăng kiểm viên tàu biển bậc cao

Ngoài những nhiệm vụ như đối với đăng kiểm viên tàu biển thực hiện công tác kiểm tra, đăng kiểm viên tàu biển thực hiện công tác thẩm định thiết kế, đăng kiểm viên tàu biển thực hiện công tác đánh giá, đăng kiểm viên tàu biển bậc cao còn thực hiện những nhiệm vụ sau:

a) Tham mưu cho lãnh đạo đơn vị về những vấn đề chuyên môn, nghiệp vụ khi có yêu cầu;

b) Chủ trì thực hiện các đề tài nghiên cứu khoa học, xây dựng văn bản quy phạm pháp luật, tiêu chuẩn, quy chuẩn kỹ thuật, hướng dẫn nghiệp vụ đăng kiểm;

c) Tham gia xây dựng chiến lược, quy hoạch, kế hoạch dài hạn, năm năm và hàng năm về công tác đăng kiểm phương tiện và sản phẩm công nghiệp;

d) Tham gia tập huấn, hướng dẫn nghiệp vụ, đánh giá đăng kiểm viên bậc cao theo sự phân công của lãnh đạo đơn vị.

Chương IV

TIÊU CHUẨN, NHIỆM VỤ CỦA NHÂN VIÊN NGHIỆP VỤ

Điều 10. Tiêu chuẩn của nhân viên nghiệp vụ

1. Tốt nghiệp trung cấp trở lên.

2. Hoàn thành chương trình tập huấn nhân viên nghiệp vụ đăng kiểm của Cục Đăng kiểm Việt Nam.

3. Đạt chuẩn kỹ năng sử dụng công nghệ thông tin cơ bản theo quy định của pháp luật.

Điều 11. Nhiệm vụ của nhân viên nghiệp vụ

Nhân viên nghiệp vụ thực hiện các nhiệm vụ dưới đây theo sự phân công của lãnh đạo đơn vị:

1. Tiếp nhận yêu cầu công việc.

2. Cấp phát hồ sơ đăng kiểm theo quy định của Cục Đăng kiểm Việt Nam.

3. Ghi hồ sơ, sổ quản lý phục vụ công tác đăng kiểm.

4. Thống kê, báo cáo.

5. Tiếp nhận, quản lý, lưu trữ hồ sơ, ấn chỉ phục vụ công tác đăng kiểm.

Chương V

TẬP HUẤN NGHIỆP VỤ, ĐÁNH GIÁ VÀ CÔNG NHẬN ĐĂNG KIỂM VIÊN TÀU BIỂN

Điều 12. Tập huấn nghiệp vụ đăng kiểm viên tàu biển

1. Cục Đăng kiểm Việt Nam ban hành chương trình tập huấn nghiệp vụ đăng kiểm viên tàu biển và tổ chức thực hiện tập huấn nghiệp vụ cho các đăng kiểm viên tàu biển.

2. Chương trình tập huấn nghiệp vụ đăng kiểm viên tàu biển bao gồm các nội dung chính sau đây:

a) Các quy định của pháp luật Việt Nam và điều ước quốc tế liên quan đến công tác đăng kiểm;

b) Chức năng, nhiệm vụ, quyền hạn, cơ cấu tổ chức và hoạt động của Cục Đăng kiểm Việt Nam;

c) Chức năng, hoạt động của Tổ chức Hàng hải quốc tế (IMO), Hiệp hội các tổ chức phân cấp tàu quốc tế (IACS), Hiệp hội các tổ chức phân cấp tàu Châu Á (ACS), các chính quyền hàng hải và các tổ chức công nghiệp hàng hải;

d) Các quy trình và hướng dẫn nghiệp vụ đăng kiểm liên quan đến nhiệm vụ được giao;

đ) Hệ thống quản lý chất lượng theo tiêu chuẩn ISO, các kiến thức cơ bản về hoạt động và khai thác tàu biển, công trình biển.

Điều 13. Đánh giá, công nhận và công nhận lại đăng kiểm viên tàu biển

1.2. Cục trưởng Cục Đăng kiểm Việt Nam:

a) Ban hành quy trình đánh giá, công nhận và công nhận lại đăng kiểm viên tàu biển;

b) Quyết định thành lập Hội đồng công nhận đăng kiểm viên tàu biển để thực hiện việc đánh giá đăng kiểm viên tàu biển;

c) Cấp giấy chứng nhận và thẻ đăng kiểm viên tàu biển trên cơ sở kết quả đánh giá của Hội đồng công nhận đăng kiểm viên tàu biển.

Điều 14. Giấy chứng nhận và thẻ đăng kiểm viên tàu biển

1.2. Thẻ đăng kiểm viên tàu biển có thời hạn 05 năm theo Mẫu số 02 quy định tại Phụ lục ban hành kèm theo Thông tư này.

Điều 15. Thu hồi giấy chứng nhận và thẻ đăng kiểm viên tàu biển

1. Đăng kiểm viên tàu biển bị thu hồi giấy chứng nhận và thẻ đăng kiểm viên tàu biển một trong các trường hợp sau đây:

a)b) Vi phạm các quy định hiện hành khi thực thi công vụ với mức độ bị xử lý kỷ luật từ hình thức cảnh cáo trở lên;

c) Không được thủ trưởng cơ quan, đơn vị tiếp tục giao nhiệm vụ đăng kiểm tàu biển.

2. Cục trưởng Cục Đăng kiểm Việt Nam có trách nhiệm thu hồi giấy chứng nhận và thẻ đăng kiểm viên tàu biển đối với các trường hợp nêu tại khoản 1 Điều này.

Chương VI

ĐIỀU KHOẢN THI HÀNHĐiều 16. Hiệu lực thi hành

1. Thông tư này có hiệu lực từ ngày 01 tháng 3 năm 2018.

2. Bãi bỏ Thông tư số 65/2011/TT-BGTVT ngày 27 tháng 12 năm 2011 của Bộ trưởng Bộ Giao thông vận tải quy định về đăng kiểm viên tàu biển.

Điều 17. Điều khoản chuyển tiếp

1. Các hạng đăng kiểm viên tàu biển đã được công nhận theo Thông tư số 65/2011/TT-BGTVT ngày 27 tháng 12 năm 2011 của Bộ trưởng Bộ Giao thông vận tải tiếp tục được duy trì hạng đăng kiểm viên đến ngày hết hạn hiệu lực của giấy chứng nhận và thẻ đăng kiểm viên và được miễn tiêu chuẩn ngoại ngữ khi xem xét công nhận lại theo quy định của Thông tư này.

2. Nhân viên nghiệp vụ đang làm việc tại các đơn vị đăng kiểm phải đáp ứng tiêu chuẩn quy định tại Thông tư này từ ngày 01 tháng 3 năm 2021.

Điều 18. Trách nhiệm thi hành

Chánh Văn phòng Bộ, Chánh Thanh tra Bộ, các Vụ trưởng thuộc Bộ, Cục trưởng Cục Đăng kiểm Việt Nam, Thủ trưởng các cơ quan, tổ chức và cá nhân có liên quan chịu trách nhiệm thi hành Thông tư này./.

 


Nơi nhận:
- Bộ trưởng (để b/c);
- Văn phòng Chính phủ (để đăng Công báo);
- Cổng Thông tin điện tử Chính phủ;
- Cổng Thông tin điện tử Bộ GTVT (để đăng tải);
- Lưu: VT, PC (02).

XÁC THỰC VĂN BẢN HỢP NHẤT

KT. BỘ TRƯỞNG
THỨ TRƯỞNG




Nguyễn Xuân Sang

 

PHỤ LỤC

MẪU GIẤY TỜ SỬ DỤNG CÔNG NHẬN ĐĂNG KIỂM VIÊN TÀU BIỂN
(Ban hành theo Thông tư số 51/2017/TT-BGTVT ngày 29 tháng 12 năm 2017 của Bộ trưởng Bộ Giao thông vận tải)

STT

Tên giấy tờ

Ký hiệu

1

Mẫu Giấy chứng nhận đăng kiểm viên tàu biển

Mẫu số 01

2

Mẫu Thẻ đăng kiểm viên

Mẫu số 02

 

Mẫu số 01

GIẤY CHỨNG NHẬN ĐĂNG KIỂM VIÊN TÀU BIỂN
SEA GOING SHIP SURVEYOR CERTIFICATE

CỤC TRƯỞNG CỤC ĐĂNG KIM VIỆT NAM CHỨNG NHN
THE GENERAL DIRECTOR OF VIETNAM REGISTER CERTIFIES THAT

Họ và tên:
Full Name

Ngày sinh:
Date of Birth

Số đăng kiểm viên:
Surveyor Number

Được công nhận là:
Has been recognized as

Được thực hiện công việc nêu trong (các) phụ lục kèm theo Giấy chứng nhận này.
To carry out the works as detailed in the supplement(s) attached to this Certificate.

Giấy chứng nhận này có hiệu lực đến ngày:
This Certificate is valid until:

 

 

Nơi cấp:
Place of issue

Ngày cấp:
Date of issue

 

 

 

CỤC TRƯỞNG
GENERAL DIRECTOR

 

Số Giấy chứng nhận:
Reference Number:

Ảnh màu
4x6

 

 

Mẫu số 02

THẺ ĐĂNG KIỂM VIÊN TÀU BIỂN

Quy cách thẻ: hình chữ nhật, kích thước 85,5 nam x 54,0 mm; in trên nhựa cứng (PET); một mặt sử dụng tiếng Việt, mặt còn lại sử dụng tiếng Anh.

Mặt trước

 

Mặt sau

 



span', 'dctk > span', 'dctd > span']; var hasChild = selectors.some(function(selector) { return clickedElement.closest(selector).find('span').length > 0; }); if (!hasChild) { 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])) { superLevel++; 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); }); var totalSubLevels = closestElement.find('span').length + 1; var parent_id = closestElement.parent().attr('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) { var dynamicVars = {}; var variableName = 'parent_id_' + level; dynamicVars[variableName] = parent_id; var buble_id = dynamicVars[variableName]; } else { buble_id = 'dc_' + $(this).parent().attr('id'); } 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')) { } if ($pointer.is(':visible')) { } else { if ($('#ajax_tra_cuu').is(':visible')) { $('#ajax_tra_cuu').hide(); } $("#right_info_col").css('height', '1px'); $('#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 { } } if ($pointy.is(':visible')) { var $pointer = $canvas.next('.pointer'); if ($pointer.is(':visible')) { $pointer.hide(); $canvas.hide(); } else { } } else { if ($canvas.length==1) { var $canvas = $this.next('canvas'); var $pointer = $canvas.next('.pointer'); if ($pointer.length>0) { $pointer.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(); if ($pointy.length==0) { var elementOffset = $(this).position().top; var windowHeight = $(window).height()-20 - $('#nav-tab-vb').height(); if (level>0 && e.originalEvent === undefined) { //clicked by js var pointerHeight = Math.max(250, Math.min((windowHeight * 0.8)/(level+1), 450)); var newTop = elementOffset - (pointerHeight / 2); var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); } else { var pointerHeight = Math.max(250, Math.min((windowHeight * 0.8)/totalSubLevels, 450)); var newTop = elementOffset - (pointerHeight / 2); var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); } if (level>0 && e.originalEvent === undefined) { newTop = newTop+pointerHeight+10; } var position = $this.position(); $pointer.css({ left: $('#doc-left-col, #noi_dung_dk').width() + 50 + "px", width: $('#doc-right-col').width()-30, height: pointerHeight, 'z-index': 9999, top: newTop + "px" }); $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'); } }); $pointer.on('click', '.close_pointy', function(e) { $pointer.hide(); $pointer.prev('canvas.pointy').hide(); }); var isDragging = false, startX, startY, offsetX, offsetY; var startDragging = function(e) { if (checkIfScrollingContent(e)) return; if ($(e.target).is('.close_pointy')) { 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; if (newLeft < 0) { newLeft = 0; } else if (newLeft + $pointer.outerWidth() > $(window).width()) { newLeft = $(window).width() - $pointer.outerWidth(); } 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; 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) { if ($(e.target).closest('.list_tds').length > 0) { //e.stopPropagation(); return true; } return false; } $pointer.on('touchstart', startDragging); $pointer.on('touchmove', duringDragging); $pointer.on('touchend', stopDragging); var updatePointerPosition = function() { var offset = $this.position(); var windowHeight = $(window).height() - $('#nav-tab-vb').height()-20; var pointerHeight = Math.max(250, Math.min((windowHeight * 0.8)/totalSubLevels, 450)); var elementOffset = $this.position().top; var newTop = elementOffset - (pointerHeight / 2); var maxTop = $(document).height() - pointerHeight; newTop = Math.max(0, Math.min(newTop, maxTop)); $pointer.css({ left: $('#doc-left-col, #noi_dung_dk').width() + 50 + "px", width: $('#doc-right-col').width() - 30, height: pointerHeight, top: newTop + "px" }); }; $(window).on('resize orientationchange', function() { updatePointerPosition(); 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'); 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('#chu_thich_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_'+buble_id+'_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); } }); $('#noi_dung_buble_'+buble_id + ' .dc_loading').addClass('dc_'+buble_id+'_loading'); } },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');} } }); } } $('.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)/totalSubLevels, 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)/totalSubLevels, 450)); $pointer.find('.list_tds').css('max-height', pointerHeight + 'px'); clearInterval(list_tds_max_height_interval); } },50); }); var parentElement = $(this).parent(); 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; } let lastChosen = null; let lastChosentr = null; function scroll_den_hd(ndsh_dich_address) { if (lastChosen) { $(lastChosen).css('background-color', ''); } if (lastChosentr) { $(lastChosentr).css('background-color', ''); } lastChosen = $('[href="javascript:scroll_den_hd(\'' + ndsh_dich_address + '\')"]'); lastChosentr = $('[data-ct="' + ndsh_dich_address + '"]'); $(lastChosen).css('background-color', 'yellow'); $(lastChosentr).css('background-color', 'yellow'); 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(); } $(document).ready(function() { $(document).on('click', 'cttd.chuthichtudong span, a.chuthichtudong span, dctk span, dctd span', function() { $('#modal_noi_dung_tra_phi .modal-dialog.zoom').removeAttr('style'); openModal('#modal_noi_dung_tra_phi','/ajax/member/m-register/'); $('.pointer, canvas').css({ 'z-index': '50', 'important': true }); }); });