window.onbeforeunload = function() { window.scrollTo(0, 0); }; var isSectionLocked = true; // Menyimpan status kunci tampilan section // Mengunci tampilan section pertama saat halaman dimuat window.addEventListener('DOMContentLoaded', function() { lockSection(); }); // Fungsi untuk mengunci tampilan section function lockSection() { if (isSectionLocked) { disableScrolling(); document.body.style.position = "fixed"; document.body.style.overflowY = "scroll"; document.body.style.height = "100vh"; document.getElementById("section-cover").style.width = "100vw"; // Menambahkan gaya untuk membuat cover full width } } // Fungsi untuk membuka tampilan section function unlockSection() { enableScrolling(); document.body.style.position = ""; document.body.style.overflowY = ""; document.getElementById("section-cover").style.width = ""; // Menghapus gaya untuk mengembalikan lebar cover ke nilai aslinya document.getElementById("tombol-buka").style.display = "none"; // Menyembunyikan tombol "tombol-buka" } document.getElementById("tombol-buka").onclick = function() { unlockSection(); playAudio(); }; function disableScrolling() { var x = window.scrollX; var y = window.scrollY; window.onscroll = function() { window.scrollTo(x, y); }; } function enableScrolling() { window.onscroll = null; } function playAudio(){ var isYT = false; if(document.body.contains(document.getElementById("song"))) { document.getElementById("song").play(); isYT = false; } else { isYT = true; player.playVideo(); } }
/*! WeddingPress Custom Nama Tamu (WDPCNT) ============================================ Description: WeddingPress Custom Nama Tamu (WDPCNT) adalah script JavaScript yang digunakan untuk mengganti teks "Tamu Undangan" pada elemen dengan class `namatamu` berdasarkan parameter yang ada di URL. Script ini mendukung beberapa parameter seperti `to`, `dear`, dan `kepada` untuk menyesuaikan nama penerima undangan. Author: Andy dari WeddingPress Website: https://weddingpress.net Version: 1.1 (2025/03/01) License: Anda diizinkan menggunakan script ini pada website Anda dan proyek klien. Tidak diperbolehkan menjual, membagikan, menempatkan codenya ditemplate yang dijual atau mendistribusikan ulang tanpa izin. Copyright: © 2025 WeddingPress. All rights reserved. Note: Pastikan untuk teks 'Tamu Undangan' css classesnya sudah terisi: 'namatamu' */ (function () { 'use strict'; // ================================================================= // KONFIGURASI ⚙️ // ================================================================= const config = { selector: '.namatamu', urlParams: ['to', 'dear', 'kepada'], defaultText: 'Tamu Undangan' }; // ================================================================= /** * Mengambil nama tamu dari URL. * Dibuat tetap simpel untuk keamanan & keandalan, karena URLSearchParams * sudah menangani semua decoding (+, %20, dll) sesuai standar. */ function getRecipientName(params, keys) { for (const key of keys) { const value = params.get(key); if (value && value.trim()) { return value.trim(); } } return ''; } /** * "Membersihkan" string agar aman digunakan di dalam Regular Expression. * Mencegah error jika placeholder berisi karakter spesial Regex. */ function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string } /** * Fungsi rekursif untuk mencari dan mengganti konten teks * tanpa merusak elemen HTML di sekitarnya. */ function replaceTextInNode(node, searchValue, replaceValue) { if (node.nodeType === 1 || node.nodeType === 11) { // Element or Document Fragment node.childNodes.forEach(child => { if (child.nodeType === 3) { // Text node // Gunakan escapeRegExp untuk memastikan searchValue aman. const safeSearchValue = escapeRegExp(searchValue); const regex = new RegExp(safeSearchValue, 'gi'); child.textContent = child.textContent.replace(regex, replaceValue); } else { replaceTextInNode(child, searchValue, replaceValue); } }); } } window.addEventListener('DOMContentLoaded', () => { const params = new URLSearchParams(window.location.search); const recipient = getRecipientName(params, config.urlParams); const targets = document.querySelectorAll(config.selector); if (targets.length === 0) { console.warn(`WDPCNT: Tidak ditemukan elemen dengan selector '${config.selector}'.`); return; } targets.forEach(element => { if (recipient) { replaceTextInNode(element, config.defaultText, recipient); } else { if (!element.textContent.trim()) { element.textContent = config.defaultText; } } }); }); })();
function revealElements(selector) { var elements = document.querySelectorAll(selector); var windowHeight = window.innerHeight; var elementVisible = 150; elements.forEach(function(element) { var elementTop = element.getBoundingClientRect().top; if (elementTop < windowHeight - elementVisible) { element.classList.add("active"); } else { element.classList.remove("active"); } }); } window.addEventListener("scroll", function() { revealElements(".wdpal-fade-in, .wdpal-muncul-atas, .wdpal-muncul-bawah, .wdpal-muncul-kiri, .wdpal-muncul-kanan, .wdpal-rotate-in, .wdpal-flip-x, .wdpal-flip-y, .wdpal-zoom-in, .wdpal-zoom-out"); }); /* Fade In */ .wdpal-fade-in { opacity: 0; transition: opacity 1s ease-in-out; } .wdpal-fade-in.active { opacity: 1; } /* Muncul Atas */ .wdpal-muncul-atas { transform: translateY(100%); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-muncul-atas.active { transform: translateY(0); opacity: 1; } /* Muncul Bawah */ .wdpal-muncul-bawah { transform: translateY(-100%); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-muncul-bawah.active { transform: translateY(0); opacity: 1; } /* Muncul Kiri */ .wdpal-muncul-kiri { position: relative; transform: translateX(-100%) scale(0.93); opacity: 0; transition: opacity 0.5s ease, transform 1s ease; } .wdpal-muncul-kiri.active { transform: translateX(0); opacity: 1; } /* Muncul Kanan */ .wdpal-muncul-kanan { position: relative; transform: translateX(100%) scale(0.93); opacity: 0; transition: opacity 0.5s ease, transform 1s ease; } .wdpal-muncul-kanan.active { transform: translateX(0); opacity: 1; } /* Rotate In */ .wdpal-rotate-in { transform: rotate(-180deg); opacity: 0; transition: transform 1s ease-out, opacity 1s ease-out; } .wdpal-rotate-in.active { transform: rotate(0deg); opacity: 1; } /* Flip X */ .wdpal-flip-x { transform: rotateX(90deg); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-flip-x.active { transform: rotateX(0deg); opacity: 1; } /* Flip Y */ .wdpal-flip-y { transform: rotateY(90deg); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-flip-y.active { transform: rotateY(0deg); opacity: 1; } /* Zoom In */ .wdpal-zoom-in { transform: scale(0.5); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-zoom-in.active { transform: scale(1); opacity: 1; } /* Zoom Out */ .wdpal-zoom-out { transform: scale(1.5); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-zoom-out.active { transform: scale(1); opacity: 1; }
//* script show-hide by andy dari weddingpress *// document.addEventListener("DOMContentLoaded", function () { var btnAmplop = document.getElementById("btnAmplop"); var btnHide = document.getElementById("btn-hide"); var amplop = document.getElementById("amplop"); // Sembunyikan btn-hide dan amplop saat halaman dimuat btnHide.style.display = "none"; amplop.style.display = "none"; // Fungsi untuk menampilkan btn-hide dan amplop saat btnAmplop diklik btnAmplop.onclick = function () { // Menampilkan btn-hide sebagai flex btnHide.style.display = "flex"; // Menyembunyikan btnAmplop btnAmplop.style.display = "none"; // Menampilkan section amplop sebagai flex amplop.style.display = "flex"; }; // Fungsi untuk menampilkan btnAmplop kembali dan menyembunyikan btn-hide saat btn-hide diklik btnHide.onclick = function () { // Menyembunyikan btn-hide btnHide.style.display = "none"; // Menampilkan btnAmplop kembali sebagai block (atau flex) btnAmplop.style.display = "block"; // atau flex, tergantung tata letak yang diinginkan // Menyembunyikan section amplop amplop.style.display = "none"; }; });
1
The Wedding Of
Yosep & Violeta
JUMAT, 05 SEPTEMBER 2025
Kpd Bpk/Ibu/Saudara/i
Tamu Undangan
Mohon maaf apabila ada kesalahan penulisan nama/gelar

SAVE THE DATE

Yosep
&
Violeta

JUMAT
05 SEPTEMBER 2025

Salam Sejahtera

Dengan segala kerendahan hati dan ungkapan syukur atas karunia Tuhan, kami mengundang Bapak/Ibu/Saudara/i untuk menghadiri acara pernikahan putra-putri kami yang akan diselenggarakan pada :

Yosep

Anak Ketiga dari
Bpk. Belare Ding & Ibu Juari Iban

Juliani Violeta, A.M.P

Anak Kedua dari
Bpk. Daud Agung (♰)
& Ibu Layen Ibo (♰)

Our Moment

Wedding Gallery

Demikianlah mereka bukan lagi dua, melainkan satu.Karena itu, apa yang telah dipersatukan Allah, tidak boleh diceraikan manusia."

- Matius 19 : 6 -

Our Special

Wedding Event

JUMAT, 05 SEPTEMBER 2025

  • 00Hari
  • 00Jam
  • 00Menit
  • 00Detik

Pemberkatan Nikah

JUMAT,
05 SEPTEMBER 2025

10.00 WITA

Bertempat di
Gereja GKII Jelarai Tengah

Resepsi Pernikahan

JUMAT,
05 SEPTEMBER 2025

16.00 - 20.00 WITA

Bertempat di Gedung Jelarai Tengah

Beri Doa & Ucapan Terbaikmu

Untuk Kedua Mempelai

Tinggalkan kami doa terbaik anda untuk momen bahagia kami

Hadiah

Pernikahan

Kehadiran Anda merupakan sebuah do'a serta rasa syukur bagi kami, namun jika memberi adalah bentuk Do'a & cinta kasih bagi Anda, Anda dapat memberi kado secara cashless dan kami akan senang hati menerimanya dan tentu semakin melengkapi kebahagiaan kami.

Bank-Mandiri-Logo-PNG-480p-FileVector69.png
A.N
1490013946241
Salin Rekening

TERIMA KASIH

Atas Kehadiran & Doa Restunya

Merupakan suatu kehormatan dan kebahagiaan bagi kami sekeluarga apabila Bapak/Ibu/Saudara/i Tamu Undangan berkenan hadir untuk memberikan doa restu kepada kedua mempelai. Atas kehadiran serta doa restu, kami ucapkan terima kasih.

Sampai Jumpa di Hari Bahagia Kami,

Yosep & Violeta

Keluarga Besar

Yosep

Bpk. Belare Ding & Ibu Juari Iban

Keluarga Besar

Juliani Violeta, A.M.P

Bpk. Daud Agung (♰)
& Ibu Layen Ibo (♰)

Turut Mengundang:

Pihak Perempuan :
1. Bang Surang
2. Apui Agung
3. Lugan Agung
4. Loren Agung
5. Darius Ungau, S.Pd
6. Jhoni Ibo, S.Kom
7. Paulus
8. Pdt.Jhoni Kuleh, M.Th
9. Pdt. Aplilyanus, LA.MA
10. Danel Rin
11. Robet

Pihak Laki - laki :
1. Tasa Gung, S.Pd
2. Remington Hendrik, S.I.Kom
3. Abraham Mendan, S.H
4. Ncau Iban
5. Mentan Robin, S.TH
6. Yunus Eli A.Md
7. Martinus Aing, S.Pd
8. AKP Supriyadi, SH
9. Obraham Ding
10. Lazarus Umpung

window.onbeforeunload = function() { window.scrollTo(0, 0); }; var isSectionLocked = true; // Menyimpan status kunci tampilan section // Mengunci tampilan section pertama saat halaman dimuat window.addEventListener('DOMContentLoaded', function() { lockSection(); }); // Fungsi untuk mengunci tampilan section function lockSection() { if (isSectionLocked) { disableScrolling(); document.body.style.position = "fixed"; document.body.style.overflowY = "scroll"; document.body.style.height = "100vh"; document.getElementById("section-cover").style.width = "100vw"; // Menambahkan gaya untuk membuat cover full width } } // Fungsi untuk membuka tampilan section function unlockSection() { enableScrolling(); document.body.style.position = ""; document.body.style.overflowY = ""; document.getElementById("section-cover").style.width = ""; // Menghapus gaya untuk mengembalikan lebar cover ke nilai aslinya document.getElementById("tombol-buka").style.display = "none"; // Menyembunyikan tombol "tombol-buka" } document.getElementById("tombol-buka").onclick = function() { unlockSection(); playAudio(); }; function disableScrolling() { var x = window.scrollX; var y = window.scrollY; window.onscroll = function() { window.scrollTo(x, y); }; } function enableScrolling() { window.onscroll = null; } function playAudio(){ var isYT = false; if(document.body.contains(document.getElementById("song"))) { document.getElementById("song").play(); isYT = false; } else { isYT = true; player.playVideo(); } }
/*! WeddingPress Custom Nama Tamu (WDPCNT) ============================================ Description: WeddingPress Custom Nama Tamu (WDPCNT) adalah script JavaScript yang digunakan untuk mengganti teks "Tamu Undangan" pada elemen dengan class `namatamu` berdasarkan parameter yang ada di URL. Script ini mendukung beberapa parameter seperti `to`, `dear`, dan `kepada` untuk menyesuaikan nama penerima undangan. Author: Andy dari WeddingPress Website: https://weddingpress.net Version: 1.1 (2025/03/01) License: Anda diizinkan menggunakan script ini pada website Anda dan proyek klien. Tidak diperbolehkan menjual, membagikan, menempatkan codenya ditemplate yang dijual atau mendistribusikan ulang tanpa izin. Copyright: © 2025 WeddingPress. All rights reserved. Note: Pastikan untuk teks 'Tamu Undangan' css classesnya sudah terisi: 'namatamu' */ (function () { 'use strict'; // ================================================================= // KONFIGURASI ⚙️ // ================================================================= const config = { selector: '.namatamu', urlParams: ['to', 'dear', 'kepada'], defaultText: 'Tamu Undangan' }; // ================================================================= /** * Mengambil nama tamu dari URL. * Dibuat tetap simpel untuk keamanan & keandalan, karena URLSearchParams * sudah menangani semua decoding (+, %20, dll) sesuai standar. */ function getRecipientName(params, keys) { for (const key of keys) { const value = params.get(key); if (value && value.trim()) { return value.trim(); } } return ''; } /** * "Membersihkan" string agar aman digunakan di dalam Regular Expression. * Mencegah error jika placeholder berisi karakter spesial Regex. */ function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string } /** * Fungsi rekursif untuk mencari dan mengganti konten teks * tanpa merusak elemen HTML di sekitarnya. */ function replaceTextInNode(node, searchValue, replaceValue) { if (node.nodeType === 1 || node.nodeType === 11) { // Element or Document Fragment node.childNodes.forEach(child => { if (child.nodeType === 3) { // Text node // Gunakan escapeRegExp untuk memastikan searchValue aman. const safeSearchValue = escapeRegExp(searchValue); const regex = new RegExp(safeSearchValue, 'gi'); child.textContent = child.textContent.replace(regex, replaceValue); } else { replaceTextInNode(child, searchValue, replaceValue); } }); } } window.addEventListener('DOMContentLoaded', () => { const params = new URLSearchParams(window.location.search); const recipient = getRecipientName(params, config.urlParams); const targets = document.querySelectorAll(config.selector); if (targets.length === 0) { console.warn(`WDPCNT: Tidak ditemukan elemen dengan selector '${config.selector}'.`); return; } targets.forEach(element => { if (recipient) { replaceTextInNode(element, config.defaultText, recipient); } else { if (!element.textContent.trim()) { element.textContent = config.defaultText; } } }); }); })();
function revealElements(selector) { var elements = document.querySelectorAll(selector); var windowHeight = window.innerHeight; var elementVisible = 150; elements.forEach(function(element) { var elementTop = element.getBoundingClientRect().top; if (elementTop < windowHeight - elementVisible) { element.classList.add("active"); } else { element.classList.remove("active"); } }); } window.addEventListener("scroll", function() { revealElements(".wdpal-fade-in, .wdpal-muncul-atas, .wdpal-muncul-bawah, .wdpal-muncul-kiri, .wdpal-muncul-kanan, .wdpal-rotate-in, .wdpal-flip-x, .wdpal-flip-y, .wdpal-zoom-in, .wdpal-zoom-out"); }); /* Fade In */ .wdpal-fade-in { opacity: 0; transition: opacity 1s ease-in-out; } .wdpal-fade-in.active { opacity: 1; } /* Muncul Atas */ .wdpal-muncul-atas { transform: translateY(100%); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-muncul-atas.active { transform: translateY(0); opacity: 1; } /* Muncul Bawah */ .wdpal-muncul-bawah { transform: translateY(-100%); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-muncul-bawah.active { transform: translateY(0); opacity: 1; } /* Muncul Kiri */ .wdpal-muncul-kiri { position: relative; transform: translateX(-100%) scale(0.93); opacity: 0; transition: opacity 0.5s ease, transform 1s ease; } .wdpal-muncul-kiri.active { transform: translateX(0); opacity: 1; } /* Muncul Kanan */ .wdpal-muncul-kanan { position: relative; transform: translateX(100%) scale(0.93); opacity: 0; transition: opacity 0.5s ease, transform 1s ease; } .wdpal-muncul-kanan.active { transform: translateX(0); opacity: 1; } /* Rotate In */ .wdpal-rotate-in { transform: rotate(-180deg); opacity: 0; transition: transform 1s ease-out, opacity 1s ease-out; } .wdpal-rotate-in.active { transform: rotate(0deg); opacity: 1; } /* Flip X */ .wdpal-flip-x { transform: rotateX(90deg); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-flip-x.active { transform: rotateX(0deg); opacity: 1; } /* Flip Y */ .wdpal-flip-y { transform: rotateY(90deg); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-flip-y.active { transform: rotateY(0deg); opacity: 1; } /* Zoom In */ .wdpal-zoom-in { transform: scale(0.5); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-zoom-in.active { transform: scale(1); opacity: 1; } /* Zoom Out */ .wdpal-zoom-out { transform: scale(1.5); opacity: 0; transition: transform 1s ease, opacity 1s ease; } .wdpal-zoom-out.active { transform: scale(1); opacity: 1; }
//* script show-hide by andy dari weddingpress *// document.addEventListener("DOMContentLoaded", function () { var btnAmplop = document.getElementById("btnAmplop"); var btnHide = document.getElementById("btn-hide"); var amplop = document.getElementById("amplop"); // Sembunyikan btn-hide dan amplop saat halaman dimuat btnHide.style.display = "none"; amplop.style.display = "none"; // Fungsi untuk menampilkan btn-hide dan amplop saat btnAmplop diklik btnAmplop.onclick = function () { // Menampilkan btn-hide sebagai flex btnHide.style.display = "flex"; // Menyembunyikan btnAmplop btnAmplop.style.display = "none"; // Menampilkan section amplop sebagai flex amplop.style.display = "flex"; }; // Fungsi untuk menampilkan btnAmplop kembali dan menyembunyikan btn-hide saat btn-hide diklik btnHide.onclick = function () { // Menyembunyikan btn-hide btnHide.style.display = "none"; // Menampilkan btnAmplop kembali sebagai block (atau flex) btnAmplop.style.display = "block"; // atau flex, tergantung tata letak yang diinginkan // Menyembunyikan section amplop amplop.style.display = "none"; }; });