021-59561170 9:00-20:00 周一至周日
在线咨询

消防知识

了解消防法规,熟悉验收流程,掌握专业知识

常见问题

了解客户最关心的消防问题

哪些场所必须装消防智能联网报警?
依据《火灾自动报警系统设计规范》GB50116和上海市《建筑消防设施管理规定》第十七条,应将火灾自动报警系统接入城市消防远程监控联网:①建筑高度>50m或24m以上任一层>1000㎡的公共建筑;②总建筑面积>10000㎡的商办综合体;③医院、养老院、儿童活动场所、寄宿制学校;④地下建筑面积>500㎡的地下或半地下公共建筑。
消防图纸审查需要哪些材料?
依据《建设工程消防设计审查验收管理暂行规定》第二十条。消防设计审查须提交:①设计文件(图纸目录、设计说明、系统图、平面图等);②设计单位资质证书复印件;③消防设计专篇(含防火分区、安全疏散、消防设施、电气消防等设计说明);④特殊场所(超50m建筑、地下、大型综合体等)还需提交专家评审意见。材料齐备后,审查时限为15个工作日。
二次消防改造必须做吗?
依据《建设工程消防设计审查验收管理暂行规定》第十四条、第十五条,已通过消防验收的建筑再次装修,凡建筑面积大于300㎡或改变使用性质的,需重新申报消防设计审查;其他情形可适用消防验收备案(抽查制)。是否需做,以装修面积、使用性质变化及所在区消防部门的具体要求为准。
消防改造一般要多久能完工?
依据《建设工程施工工期定额》(建标[2016]3号)及本地消防部门审查排队周期:建筑面积≤300㎡的局部改造工期约7-15个工作日;300-1000㎡的中型改造工期约20-40个工作日;≥1000㎡的大型改造工期通常2-3个月。消防报审排队时间另计,每个环节约5-10个工作日。
消防工程师挂靠违法,怎么合规配置?
依据《注册消防工程师管理规定》(公安部令第143号)第二十九条,注册消防工程师不得同时在两个以上消防技术服务机构执业,且须在实际工作单位缴纳社保。证书挂靠属违法行为,由公安机关消防机构责令改正,处1-3万元罚款。合规配置路径:①聘用持证人员签订正式劳动合同并缴纳社保(社保连续缴纳≥12个月);②与具备资质的消防技术服务机构签订技术负责人派驻协议;③按《消防设施操作员》职业技能等级(四级/中级及以上)配置操作岗位。
消防改造期间能营业吗?有没有不停业改造方案?
依据《消防法》第二十一条和《建筑施工安全检查标准》JGJ59,营业区与施工区须采用耐火极限≥2.00h的防火隔墙+甲级防火门分隔,并配置临时消防设施(每50㎡1具3kg干粉灭火器、临时消火栓、独立感烟探测器)。仅小范围点位改造可分区营业,主管线、消防泵房、消防控制室改造期间须停业。
消防改造对装修材料有什么要求?
依据《建筑内部装修设计防火规范》GB50222:①顶棚材料燃烧性能等级不低于A级;②墙面材料不低于B1级;③地面材料不低于B1级;④隔断、装饰织物、固定家具按使用场所执行。当场所位于高层建筑、地下空间或商场时,等级相应提高一级(部分顶棚要求A级)。所用材料须提供型式检验报告及燃烧性能等级标识,单批次用量≥100㎡的项目须送检。
消防施工时需要做哪些隐蔽工程验收?
依据《火灾自动报警系统施工及验收标准》GB50166和《建筑给水排水及采暖工程施工质量验收规范》GB50242。必查隐蔽工程项:①金属导管、线槽敷设(位置、规格、防腐处理);②管路穿越防火分区封堵(耐火极限≥防火墙本体≥2.00h);③接地装置(电阻≤1Ω,工作接地≤4Ω);④喷淋管道强度试验、严密性试验(试验压力≥1.4倍工作压力且≥1.4MPa);⑤报警线路绝缘电阻(≥20MΩ)。隐蔽工程须在覆盖前完成验收并签字。
消防喷淋系统如何打压测试?
依据《自动喷水灭火系统施工及验收规范》GB50261第7.2节:①水压试验压力应为设计工作压力的1.5倍,且不低于1.4MPa,稳压30min无渗漏;②气压严密性试验压力0.28MPa,稳压24h压力降≤0.01MPa;③试验介质为清水,环境温度>5℃。
上海消防改造需要什么资质?
依据《建设工程消防设计审查验收管理暂行规定》(住建部令第51号)第十四条:消防施工应由具备消防设施工程专业承包一级或二级资质(《建筑业企业资质标准》表4,技术负责人≥8年从业经验)且持有安全生产许可证的单位承担;设计应由具备建筑工程设计甲级或乙级资质(《工程设计资质标准》附件3)且注册工程师≥2人的单位承担。两类资质须分别匹配,不得出借。
消防验收不过怎么办?
依据《建设工程消防设计审查验收管理暂行规定》第二十八条至第三十条,验收未通过的,建设单位应在收到《消防验收意见书》之日起3个月内整改完毕并重新申请复验;逾期未整改或复验仍不通过的,停止投入使用。常见不通过原因:防火门等级不符(应为甲级实为乙级)、应急照明持续时间<90min、喷淋头选型与场所火灾危险等级不匹配、探测器保护半径超规范。
消防维保必须找有资质的公司吗?
依据《消防法》第三十四条和《社会消防技术服务管理规定》(应急管理部令第7号)第七条:消防设施维护保养和检测,须由取得消防设施维护保养检测一级或二级资质的消防技术服务机构开展。资质要求:①一级资质要求注册消防工程师≥6人、消防设施操作员≥20人、场地面积≥300㎡;②二级资质要求注册消防工程师≥3人、消防设施操作员≥10人、场地面积≥200㎡。无资质或借用资质开展维保的,由消防部门责令改正,处违法所得1-3倍罚款(无违法所得时处5000-30000元罚款)。
上海消防报建需要多长时间?
依据《建设工程消防设计审查验收管理暂行规定》第十六条和上海市《关于进一步优化营商环境深化消防审批改革的实施意见》:建筑面积≤300㎡的小型项目实行备案制,办理时限3-5个工作日;中型项目(300-1000㎡)设计审查约15-20个工作日;大型项目(≥1000㎡)设计审查+验收约30-60个工作日。具体时间以各区行政服务中心窗口实际受理为准。
消防档案包括哪些?不建档有什么风险?
依据《建筑消防设施的维护管理》GB25201第8.1节,消防档案应包含:①建筑消防审核、验收、备案文件;②消防设施竣工图、系统图、平面布置图;③值班巡查记录;④维护保养记录(月度/季度/年度);⑤年度检测报告;⑥消防演练预案及演练记录;⑦消防安全管理人员培训记录。档案保存期限不少于10年。缺失档案将无法通过消防检查,发生火情影响事故责任认定。
刚租的商铺,前任没留消防资料怎么办?
依据《建设工程消防设计审查验收管理暂行规定》第十条及《机关、团体、企业、事业单位消防安全管理规定》(公安部令第61号)第二十三条。承租方可要求房东提供原消防验收备案文件、消防设施竣工图及最近1次年度检测报告。如房东无法提供,应委托具备消防技术服务机构资质的单位现场勘测(一般3-5个工作日),出具现状评估报告,确认现有消防设施完好有效后重新建档。涉及二次装修且建筑面积超过300㎡的,须重新申报消防设计审查或备案。
什么情况下消防会罚款?罚多少?
依据《消防法》第五十八条至第六十八条相关条款:①消防设施未保持完好有效,责令改正并处5000-50000元罚款;②占用、堵塞疏散通道,处警告或500元以下罚款,情节严重处5日以下拘留;③公众聚集场所未经消防安全检查擅自营业,责令停业并处30000-300000元罚款;④消防控制室无证上岗,每人每次处500-1000元罚款;⑤逾期不整改火灾隐患,处责令停止施工或停止使用并处5000-50000元罚款。
消防备案与消防验收有什么区别?
依据《建设工程消防设计审查验收管理暂行规定》第十一条至第十七条。消防设计审查+消防验收适用于:①建筑高度>50m的公共建筑;②单体>10000㎡或总建筑面积>30000㎡的工业民用建筑;③>300㎡的地下或半地下公共建筑。消防验收备案制适用于上述范围以外的其他项目,由住建部门按比例抽查。未抽中的项目,备案即视为合格。
喷淋头/烟感误报频繁怎么回事?
依据《火灾自动报警系统设计规范》GB50116第6.2节和《自动喷水灭火系统施工及验收规范》GB50261。烟感误报原因:①感烟探测器灵敏度等级与场所不匹配(厨房应选感温探测器);②安装位置距送风口<1.5m或距梁<0.3m;③探测器使用超10年。喷淋头误爆多因玻璃球受热源(≥68℃)影响,应远离烟道和高温灯具≥0.5m。误报频繁时应委托维保单位检测并更换。
消防泵多久巡检一次?巡检哪些内容?
依据《建筑消防设施的维护管理》GB25201第5.2节:消防水泵每周巡检不少于1次,每月进行1次全负荷启动测试(运转≥5min),每季度进行1次主备泵切换测试。巡检必查:①泵体无渗漏、无异常噪声;②润滑油油位在油标尺1/2-2/3处;③进出口阀常开、压力表读数正常(稳压≤0.5MPa);④控制柜处于自动位、双电源切换正常;⑤启动后电流、转速符合铭牌。
灭火器如何配置和检查?
依据《建筑灭火器配置设计规范》GB50140和《建筑灭火器配置验收及检查规范》GB50444。配置原则:①每具灭火器最小配置灭火级别(3A、2A、1A)按场所火灾种类及危险等级选取;②保护距离:严重危险级A类场所≤15m、中危险级≤20m、轻危险级≤25m;③每月进行1次外观检查(压力表指针在绿区、喷管无裂纹、有效期≥180天);④维修每满5年或再充装后每满2年进行;⑤水基型灭火器报废年限6年,干粉型10年。
感烟探测器和感温探测器怎么选用?
依据《火灾自动报警系统设计规范》GB50116第5.2节和第5.3节。感烟探测器适用场所:①办公、客房、教学楼等正常温湿度场所;②走廊、楼梯间等相对封闭区域。感温探测器适用场所:①厨房(烹调油烟)、锅炉房、发电机房等有烟蒸汽的场所;②温度经常>35℃或<0℃的场所;③车库。差定温探测器适用于需早期报警的关键机房。
应急照明与疏散指示标志怎么选型?
依据《消防应急照明和疏散指示系统技术标准》GB51309。①持续供电时间:高层建筑≥90min,其他建筑≥30min;②地面最低水平照度:疏散走道≥1.0lx,楼梯间≥5.0lx,避难间≥10lx;③疏散指示标志间距≤20m,距地0.8-1.0m(墙面)或距地0.5-1.0m(地面);④自带蓄电池的应急灯具,每月做1次放电测试,每年做1次满负荷放电测试。
商场、酒店消防年检多久做一次?
依据《消防法》第二十六条和《建筑消防设施的维护管理》GB25201第4.1节:公众聚集场所(商场、酒店、餐饮、娱乐等)在营业期间每年至少接受1次消防安全检查(由属地消防救援机构实施,检查周期不超过12个月);消防设施每年至少进行1次全面检测(检测时长≥5个工作日),检测项目含自动喷水、火灾报警、防排烟、消火栓、应急照明等子系统,检测报告由具备资质的消防技术服务机构出具并归档。
消控室值班必须持证吗?一个人够吗?
依据《消防设施操作员》(原建筑物消防员)国家职业标准、《消防控制室通用技术要求》GB25506及《建筑消防设施的维护管理》GB25201第4.3节:消防控制室须实行每日24小时值班制度,每班不少于2人,值班人员须持有消防设施操作员证(四级中级及以上)且经消防安全培训合格,无证或单人值班均属违规。
消防演练多久做一次?有哪些注意事项?
依据《机关、团体、企业、事业单位消防安全管理规定》(公安部令第61号)第四十一条:消防安全重点单位应至少每半年组织1次消防演练,其他单位至少每年1次。演练内容应包含火灾报警、初期扑救、人员疏散逃生、消防设施使用4项内容,单次演练时长≥30min。每次演练须提前5个工作日制定方案并报属地消防部门备案,参演人数不少于在岗人数的80%。演练后3个工作日内形成总结报告,归入消防档案。
高层住宅消防检查有哪些重点?
依据《建筑设计防火规范》GB50016和《建筑消防设施的维护管理》GB25201。高层住宅必查:①疏散楼梯间及前室畅通、无杂物堆放,前室门为乙级防火门;②疏散指示标志(间距≤10m)和应急照明(地面最低照度≥1.0lx、持续供电≥30min);③室内消火栓栓口静压≥0.07MPa、充实水柱≥10m;④自动喷水(若有)末端试水阀流量与设计值偏差≤10%;⑤防排烟系统启动后楼梯间余压值40-50Pa;⑥屋顶消防水箱容积(≥18m³);⑦消防控制室设备24h双人持证值班。
消防设施维保都包含哪些内容?
依据《建筑消防设施的维护管理》GB25201第5章:维保范围包括火灾自动报警、自动喷水、气体灭火、泡沫灭火、应急照明、防排烟、消火栓、消防泵、消防电源、消防广播等全部子系统。维护周期:周巡检、月季保养、年度功能测试。维保单位须为消防技术服务机构(取得省部级消防部门颁发的资质),维保记录须签字盖章并存档≥5年。
娱乐场所(KTV/网吧/剧本杀)消防有什么特殊要求?
依据《建筑设计防火规范》GB50016和《娱乐场所消防安全管理规定》:①必须设置火灾自动报警系统和自动喷水灭火系统;②安全出口数量不少于2个,每个≤100人时净宽≥1.4m,每增加100人增加0.3m;③疏散通道净宽≥1.4m,禁止使用旋转门、卷帘门作疏散门;④顶棚、墙面、地面装修材料燃烧性能等级分别为A、B1、B1级;⑤额定人数>100人的房间设防排烟设施;⑥营业期间禁止动火作业。
剧本杀/密室逃脱场所的特殊消防要求是什么?
依据《建筑设计防火规范》GB50016及《密室逃脱类场所火灾风险指南》(应急管理部消防救援局2022年发布)。①通道净宽≥1.4m、转弯处增设紧急照明;②每间密室内设独立声光报警装置(背景音量>40dB时仍可辨识);③设置连续可通行紧急疏散路径,不设置难拆除机关;④每日闭店前清场核查人数;⑤电气线路额定电流≥实际负载1.5倍,禁止使用劣质接线板。
餐饮油烟管道定期清洗有什么规定?
依据《人员密集场所消防安全管理》GA654和《建筑设计防火规范》GB50016第9.3节相关条款。餐饮场所油烟管道应每季度不少于1次(即每年≥4次)进行专业清洗。灶台、排油烟罩内壁、集油槽每周自行清洁1次。清洗后须由清洗公司出具清洗记录,记录须包含清洗部位、清洗方式、清洗人员(≥2人持证)、清洗时间(≥3h),记录归档至消防安全档案保存≥2年。
物流仓库/冷库消防有什么特殊要求?
依据《建筑设计防火规范》GB50016和《冷库设计规范》GB50072。①高度>8m或容积>5000m³的物流仓库按严重危险级配置自动喷水(喷淋强度≥20L/min·m²);②冷库内设独立的感温探测器+细水雾或气体灭火,禁止使用含水灭火系统;③货架间通道净宽≥喷淋头作用半径的1.2倍;④保温材料采用A级不燃(聚氨酯泡沫须经阻燃处理氧指数≥32);⑤电气线路穿金属管并密封。
充电桩/电瓶车集中停放场所消防要求?
依据《电动自行车停放充电场所消防技术规范》和《建筑设计防火规范》GB50016。①充电场所宜独立设置,与建筑其他部分采用耐火极限≥2.00h的防火隔墙分隔;②设置自动喷水灭火系统(喷淋头布置间距≤2.5m)和火灾自动报警系统(感温探测器);③充电设施应具备过流、过温、过充自动断电保护(≥16路独立空开);④充电插座距地1.0-1.2m,间距≥0.6m;⑤公共走廊、楼梯间严禁停放或充电。
新能源(光伏/储能)项目消防有什么要求?
依据《光伏发电站设计规范》GB/T50797和《电化学储能电站安全规程》GB/T42288。①储能电池舱应独立布置,距离建筑外墙≥10m或采用防火墙分隔;②电池舱内设可燃气体探测器(探测灵敏度≤25%LEL)和七氟丙烷、全氟己酮气体灭火系统(喷射时间≤10s);③光伏组件间距应便于散热(间距≥0.5m),屋面光伏方阵四周设检修通道(≥0.8m);④设置独立的火灾报警信号上传通道,直属消防控制中心。
医院/养老院消防特殊要求?
依据《建筑设计防火规范》GB50016、《医疗机构消防安全管理规定》和《建筑设计防火规范》GB50016。①病房区走道净宽≥2.4m,每个护理单元安全出口≥2个;②重症监护室、手术部采用耐火极限≥2.00h的防火隔墙;③设置感烟+感温复合探测,且保留必要的空气采样早期烟雾探测;④氧气瓶间独立分隔并设防爆电气;⑤制定专项疏散预案(含不能自主疏散人员的担架疏散方案),每年演练≥2次。

有消防疑问?让专业的人来解答

免费咨询消防问题,最快2小时上门现场勘测

021-59561170
// FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1); // FAQ Pagination const faqItems = document.querySelectorAll('.faq-list .faq-item'); const faqPagination = document.querySelector('.faq-pagination'); let currentFaqPage = 1; const faqPageSize = 20; const faqTotalPages = Math.max(1, Math.ceil(faqItems.length / faqPageSize)); function showFaqPage(page) { const start = (page - 1) * faqPageSize; const end = start + faqPageSize; faqItems.forEach((item, i) => { item.style.display = (i >= start && i < end) ? 'block' : 'none'; }); currentFaqPage = page; updateFaqPagination(); } function updateFaqPagination() { if (!faqPagination) return; const btns = faqPagination.querySelectorAll('.faq-page-btn:not(.prev):not(.next)'); btns.forEach(btn => { btn.classList.toggle('active', parseInt(btn.dataset.page) === currentFaqPage); }); const prevBtn = faqPagination.querySelector('.faq-page-btn.prev'); const nextBtn = faqPagination.querySelector('.faq-page-btn.next'); if (prevBtn) prevBtn.classList.toggle('disabled', currentFaqPage === 1); if (nextBtn) nextBtn.classList.toggle('disabled', currentFaqPage === faqTotalPages); } if (faqPagination) { faqPagination.addEventListener('click', e => { const btn = e.target.closest('.faq-page-btn'); if (!btn || btn.classList.contains('disabled')) return; const p = btn.dataset.page; if (p === 'prev') showFaqPage(currentFaqPage - 1); else if (p === 'next') showFaqPage(currentFaqPage + 1); else showFaqPage(parseInt(p)); }); if (faqTotalPages <= 1) faqPagination.style.display = 'none'; } showFaqPage(1);