CDAFNActive at last check

Community Development & Advocacy Forum Nepal (CDAFN)

CDAFN

Applications are completed on the original website.

Apply on official site
Listed
9/19/2026

Job overview

/* Modal Container */ #protech_ads_roadblock-ad { position: fixed; top: 10px; left: 0; width: 100%; height: 100%; background: transparent; display: none; /* Hidden by default */ align-items: center; justify-content: center; z-index: 9999; padding: 20px; box-sizing: border-box; } /* Modal Content */ #protech_ads_roadblock-ad .protech_ads_ad-content { display: flex; flex-direction: column; align-items: center; justify-content: center; position: relative; padding: 10px; } /* Image Wrapper */ .content-wrapper { position: relative; display: inline-block; width: 100%; } /* Image Styling */ #protech_ads_roadblock-ad img { width: auto; max-width: 100%; max-height: calc(90vh - 60px); object-fit: contain; display: block; margin: auto; border: 10px solid #f4f6f8; } /* Skip Ad Button */ #protech_ads_skip-ad1, #protech_ads_skip-ad2, #protech_ads_skip-ad3 { position: absolute; top: 10px; right: 10px; padding: 8px 16px; font-size: 14px; cursor: pointer; border: none; border-radius: 4px; background-color: rgba(0, 123, 255, 0.43); color: #fff; z-index: 10; display: none; } #protech_ads_skip-ad1:disabled, #protech_ads_skip-ad2:disabled, #protech_ads_skip-ad3:disabled { background-color: rgb(250 8 8 / 68%); cursor: not-allowed; } /* Hide second and third ad by default */ #protech_ads_ad2, #protech_ads_ad3 { display: none; } /* Responsive Adjustments */ @media (max-width: 768px) { #protech_ads_roadblock-ad img { border: 3px solid white; } } @media (max-width: 480px) { #protech_ads_roadblock-ad img { border: 2px solid white; } #protech_ads_skip-ad1, #protech_ads_skip-ad2, #protech_ads_skip-ad3 { font-size: 12px; padding: 6px 12px; } } document.addEventListener('DOMContentLoaded', function () { const roadblockAd = document.getElementById('protech_ads_roadblock-ad'); const adContentWrapper = roadblockAd.querySelector('.protech_ads_ad-content'); const skipButton1 = document.getElementById('protech_ads_skip-ad1'); const skipButton2 = document.getElementById('protech_ads_skip-ad2'); const skipButton3 = document.getElementById('protech_ads_skip-ad3'); const ad1 = document.getElementById('protech_ads_ad1'); const ad2 = document.getElementById('protech_ads_ad2'); const ad3 = document.getElementById('protech_ads_ad3'); let countdown = 10; let countdownInterval; // Function to check if an element has an image function hasImage(element) { return element && element.querySelector('img') !== null; } // Check if either ad has an image const hasAd1Image = hasImage(ad1); const hasAd2Image = hasImage(ad2); const hasAd3Image = hasImage(ad3); // If no images are present in either ad, remove everything and return if (!hasAd1Image && !hasAd2Image && !hasAd3Image) { if (roadblockAd) { roadblockAd.remove(); } return; } let currentImage = 1; // Function to cleanup and remove the ad function cleanupAd() { if (roadblockAd) { roadblockAd.style.display = 'none'; roadblockAd.remove(); } // Clear countdown interval if (countdownInterval) { clearInterval(countdownInterval); } // Reset all pointer events and overflow document.body.style.overflow = 'auto'; document.body.style.pointerEvents = 'auto'; // Reset pointer events for all elements const allElements = document.getElementsByTagName('*'); for (let element of allElements) { element.style.pointerEvents = 'auto'; } // Force a reflow to ensure styles are applied document.body.offsetHeight; } // Function to update countdown function updateCountdown(button) { button.textContent = `Skip Ad (${countdown})`; countdown--; if (countdown updateCountdown(skipButton1), 1000); } else if (hasAd2Image) { // If only second ad has image, show it directly roadblockAd.style.display = 'flex'; ad1.style.display = 'none'; ad2.style.display = 'block'; skipButton2.style.display = 'block'; skipButton2.textContent = `Skip Ad (${countdown})`; countdownInterval = setInterval(() => updateCountdown(skipButton2), 1000); currentImage = 2; } else if (hasAd3Image) { // If only third ad has image, show it directly roadblockAd.style.display = 'flex'; ad1.style.display = 'none'; ad2.style.display = 'none'; ad3.style.display = 'block'; skipButton3.style.display = 'block'; skipButton3.textContent = `Skip Ad (${countdown})`; countdownInterval = setInterval(() => updateCountdown(skipButton3), 1000); currentImage = 3; } // Function to switch to the second ad function switchToSecondAd() { if (!hasAd2Image) { cleanupAd(); return; } // Clear first countdown if (countdownInterval) { clearInterval(countdownInterval); } // Reset countdown for second ad countdown = 10; ad1.style.display = 'none'; ad2.style.display = 'block'; skipButton1.style.display = 'none'; skipButton2.style.display = 'block'; skipButton2.textContent = `Skip Ad (${countdown})`; // Start new countdown countdownInterval = setInterval(() => updateCountdown(skipButton2), 1000); } // Function to switch to the third ad function switchToThirdAd() { if (!hasAd3Image) { cleanupAd(); return; } // Clear second countdown if (countdownInterval) { clearInterval(countdownInterval); } // Reset countdown for third ad countdown = 10; ad1.style.display = 'none'; ad2.style.display = 'none'; ad3.style.display = 'block'; skipButton1.style.display = 'none'; skipButton2.style.display = 'none'; skipButton3.style.display = 'block'; skipButton3.textContent = `Skip Ad (${countdown})`; // Start new countdown countdownInterval = setInterval(() => updateCountdown(skipButton3), 1000); } // Skip button for first ad if (hasAd1Image) { skipButton1.addEventListener('click', function () { if (hasAd2Image) { switchToSecondAd(); } else if (hasAd3Image) { switchToThirdAd(); } else { cleanupAd(); } }); } // Skip button for second ad if (hasAd2Image) { skipButton2.addEventListener('click', function () { if (hasAd3Image) { switchToThirdAd(); } else { cleanupAd(); } }); } // Skip button for third ad if (hasAd3Image) { skipButton3.addEventListener('click', cleanupAd); } // Initial setup document.body.style.overflow = 'hidden'; document.body.style.pointerEvents = 'none'; roadblockAd.style.pointerEvents = 'auto'; }); Wednesday, September 23, 2026 [email protected] +977-9854022997 /* ======================================== TOP HEADER STYLES ======================================== */ /* Top Header Container */ .top-header { background-color: #f8f9fa; border-bottom: 1px solid #e9ecef; padding: 8px 0; font-size: 13px; color: #6c757d; position: relative; z-index: 1000; } /* Top Header Content Layout */ .top-header-content { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 15px; } /* Left Section - Navigation Links & Date */ .top-header-left { display: flex; align-items: center; gap: 20px; flex: 1; min-width: 0; } /* Contact Information */ .contact-info { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; } .contact-link { display: flex; align-items: center; gap: 6px; color: #6c757d; text-decoration: none; font-weight: 400; transition: all 0.3s ease; padding: 5px 8px; border-radius: 4px; } .contact-link i { font-size: 14px; transition: transform 0.3s ease; } .contact-link:hover { color: #007bff; background-color: rgba(0, 123, 255, 0.05); text-decoration: none; } .contact-link:hover i { transform: scale(1.1); } /* Current Date */ .current-date { display: flex; align-items: center; font-weight: 500; color: #495057; } .date-text { font-size: 13px; white-space: nowrap; } /* Center Section - Reserved for future content */ .top-header-center { display: flex; align-items: center; justify-content: center; flex: 0 0 auto; } /* Right Section - Outlook Login & Language Translator */ .top-header-right { display: flex; align-items: center; justify-content: flex-end; flex: 0 0 auto; gap: 12px; } /* Outlook Login Button */ .outlook-login-btn { display: flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #0078d4, #106ebe); color: #ffffff; text-decoration: none; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 2px 8px rgba(0, 120, 212, 0.4); position: relative; overflow: hidden; font-size: 14px; } .outlook-login-btn:hover { text-decoration: none; color: #ffffff; transform: translateY(-2px) scale(1.05); box-shadow: 0 4px 15px rgba(0, 120, 212, 0.6); } .outlook-login-btn:hover i { transform: scale(1.1); } /* Language Translator Container */ .translator-container { display: flex; align-items: center; gap: 4px; } .translator-container a { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; text-decoration: none; transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); position: relative; overflow: hidden; } .translator-container a:hover { text-decoration: none; transform: translateY(-2px) scale(1.05); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); } .translator-container a img { border-radius: 50%; transition: all 0.3s ease; } /* English flag styling */ .translator-container a:first-child { background: linear-gradient(135deg, #0078d4, #106ebe); box-shadow: 0 2px 8px rgba(0, 120, 212, 0.4); } .translator-container a:first-child:hover { box-shadow: 0 4px 15px rgba(0, 120, 212, 0.6); } /* Nepali flag styling */ .translator-container a:last-child { background: linear-gradient(135deg, #dc143c, #b22222); box-shadow: 0 2px 8px rgba(220, 20, 60, 0.4); } .translator-container a:last-child:hover { box-shadow: 0 4px 15px rgba(220, 20, 60, 0.6); } /* ======================================== RESPONSIVE DESIGN ======================================== */ /* Tablet and below (768px and down) */ @media (max-width:

Applications are completed on the original employer website.

Review the full listing and confirm eligibility, salary, and application instructions before applying.

Similar vacancies

L

Lumino Technology Pvt. Ltd.

Lumino Technology Pvt. Ltd.

Today

Mid Level Backend Developer

Nepal

Negotiable

Full-timeWeb Development
Verified 9/23/2026View job
A

AITC International

AITC International

Today

Video Editor-2

Bhaktapur, Nepal

Negotiable

full-timeMarketing & Sales
Verified 9/23/2026View job
A

AITC International

INTERNSHIP

Today

DevOps Trainee

Bhaktapur, Nepal

Negotiable

internshipSoftware Engineering
Verified 9/23/2026View job