The Confederation of African Football (CAF) has announced ticket prices for matches African Cup of Nations 2025 Which is scheduled to be held in Morocco in December by the end of this year.
CAF announces ticket prices for the Africa Cup of Nations matches in Morocco
The official account of the Confederation of African CAF via X published all ticket prices for all stages of the tournament, starting from kick-off in the Morocco-Comoros match until the final match.
The prices of tickets for the matches were as follows: –
replaceOembeds();
function replaceOembeds() {
var allEmbeds = document.getElementsByTagName("OEMBED");
while (allEmbeds.length != 0) {
replaceOembedWithHtml(allEmbeds[0], extractLinkFromOembed(allEmbeds[0]));
allEmbeds = document.getElementsByTagName("OEMBED");
}
runYoutubeLazyLoad();
window.onscroll = function () {
loadAPI();
window.onscroll = null;
}
// 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 = "/themes/cairo2/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);
});
};
}