
أعلنت وزارة السياحة والآثار عن شروط وضوابط جديدة بشأن الإجراءات التنظيمية لموسم الحج السياحي لموسم حج 1448هـ / 2027م.
الإجراءات التنظيمية لموسم الحج السياحي
وأكدت غرفة شركات السياحة في خطاب دوري لها بشأن الضوابط والقواعد المنظمة للحج السياحي والملحقات المفسرة لها، وإيماء إلى ما نصت عليه الفقرة (39) من الضوابط والقواعد المنظمة لموسم حج 1448 هـ ” بأن يسمح للشركات السياحية بتكوين تضامنات فيما بينها، كما يسمح للشركات بالتنفيذ منفردة وفي جميع الأحوال يجب ألا يقل عدد الحجاج عن 45 حاج على ذات المستوى الذي أجري عليه القرعة، ولن يتم قبول التضامن إلا بعد رفع الشركة بيانات وجوازات سفر الحجاج على موقع الإدارة المركزية للشركات السياحية”.
وأشارت غرفة شركات السياحة إلى أنها تلقت خطاب وزارة السياحة والآثار والمتضمن تفسير الفقرة السابق ذكرها والتأكيد على ما يلي:
- الفترة المخصصة لتكوين التضامنات وفقًا للمواعيد التي قررتها الضوابط 1 أكتوبر 2026 حتى 8 أكتوبر 2026 ولن يتم السماح بالعدول عن اي تضامن تم تكوينه.
- لن يتم استلام التضامن إلا بعد قيام الشركات السياحية داخل التضامن برفع بيانات الحجاج الفائزين وصور جواز السفر والصورة الشخصية، بالنافذة المخصصة لبيانات الحجاج علي موقع خدمات الإدارة المركزية لشركات السياحة واعتماده من قبل الإدارة العامة للسياحة الدينية، لذا تهيب الغرفه بالشركات المتقدمة للحج ضرورة أخذ نسخة ملونة بصيغة PDF من جواز السفر وصورة شخصية خلفية بيضاء من كل عميل متقدم للحج وذلك لرفع بياناته على موقع الوزارة فور إعلان نتيجه القرعة، ليتم اعتماد التضامن الخاص بالشركة في التوقيتات المقررة.
- عند إنشاء برامج الحج تلتزم الشركات السياحية بالعدد المخصص لكل برنامج داخل المستوي والبالغ عدده (45) حاج ذلك لكل برنامج وليس لكل مستوى على سبيل المثال وليس الحصر برنامج الاقتصادي أ منفصل عن برنامج الاقتصادى ب منفصل عن برنامج الاقتصادى ج”، وذلك وفق القواعد الملزمة الصادرة عن منصة نسك مسار، ولن يسمح باستلام التضامن الأقل من 45 حاجا للبرنامج الواحد في أي حال من الأحوال. لذا، يرجى من كافة الشركات السياحية المنفذة لبرامج الحج هذا الموسم، ضرورة الالتزام التام بما ورد بعاليه، وذلك حفاظًا على إنهاء كافة الإجراءات التنفيذية الخاصة بالشركات بسهولة ويسر، ووفقًا للمواعيد المقررة.
function replaceOembeds() { var allEmbeds = document.getElementsByTagName("OEMBED");
while (allEmbeds.length != 0) { replaceOembedWithHtml(allEmbeds[0], extractLinkFromOembed(allEmbeds[0])); allEmbeds = document.getElementsByTagName("OEMBED"); }
runYoutubeLazyLoad(); loadfbApi(); }
function replaceOembedWithHtml(element, sourceData) { if (sourceData.source.toLowerCase() === "youtube") { var html="
';
replaceElementWithHtml(element, html); } else if (sourceData.source.toLowerCase() === "instagram") { var html="
';
replaceElementWithHtml(element, html); } else if (sourceData.source.toLowerCase() === "twitter") { var html="
'; replaceElementWithHtml(element, html); } else if (sourceData.source.toLowerCase() === "facebook") { var html="
' replaceElementWithHtml(element, html); } else { replaceElementWithHtml(element, ""); }
}
function extractLinkFromOembed(element) { return getUrlSource(element.getAttribute("url")); }
function getUrlSource(url) { var ytRegex = /http(?:s?):\/\/(?:www\.)?youtu(?:be\.com\/watch\?v=|\.be\/)([\w\-\_]*)(&(amp;)?[\w\?=]*)?/; var instaRegex = /(https?:\/\/www\.)?instagram\.com(\/p\/(\w+)\/?)/; var twitterRegex = /twitter\.com\/.*\/status(?:es)?\/([^\/\?]+)/; var fbRegex = /^https?:\/\/www\.facebook\.com.*\/(video(s)?|watch|story|posts)(\.php?|\/).+$/;
if (ytRegex.test(url)) { return { source: "Youtube", url: url, id: ytRegex.exec(url)[1] }; }
if (instaRegex.test(url)) { return { source: "Instagram", url: url, id: instaRegex.exec(url)[3] }; }
if (twitterRegex.test(url)) { return { source: "Twitter", url: url, id: twitterRegex.exec(url)[1] }; }
if (fbRegex.test(url)) { return { source: "Facebook", url: url, id: fbRegex.exec(url)[1] };
}
return { source: "Unknown", url: url, id: "" }; }
function replaceElementWithHtml(element, html) { var str = html; var Obj = element; //any element to be fully replaced if (Obj.outerHTML) { //if outerHTML is supported Obj.outerHTML = str; ///it's simple replacement of whole element with contents of str var } else { //if outerHTML is not supported, there is a weird but crossbrowsered trick var tmpObj = document.createElement("div"); tmpObj.innerHTML = ''; ObjParent = Obj.parentNode; //Okey, element should be parented ObjParent.replaceChild(tmpObj, Obj); //here we placing our temporary data instead of our target, so we can find it then and replace it into whatever we want to replace to ObjParent.innerHTML = ObjParent.innerHTML.replace('
', str); } } function loadfbApi() { var js = document.createElement('script'); js.src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v3.2"; document.body.appendChild(js); } function runYoutubeLazyLoad() { /// youtube lazyload var youtube = document.querySelectorAll(".youtube");
for (var i = 0; i < youtube.length; i++) { var source = "https://img.youtube.com/vi/" + youtube[i].dataset.embed + "/0.jpg"; var image = new Image(); image.src = "https://www.vetogate.com/themes/veto/assets/images/no.jpg"; image.classList.add('lazyload'); image.setAttribute("data-src", source); image.setAttribute("alt", "youtube"); image.addEventListener("load", function () { youtube[i].appendChild(image); }(i)); youtube[i].addEventListener("click", function () { var iframe = document.createElement("iframe"); iframe.setAttribute("frameborder", "0"); iframe.setAttribute("allowfullscreen", ""); iframe.setAttribute("src", "https://www.youtube.com/embed/" + this.dataset .embed + "?rel=0&showinfo=0&autoplay=1"); this.innerHTML = ""; this.appendChild(iframe); }); }; }

