var delay = 10000 // millisecs; var xmlurl = 'xml/'; var now = new Date().getTime(); var querystring = '?' + Math.floor(now/(1000*60*15)); // forces a fresh update of the XML file after 15 minutes var tvRequest = makeHttpObject(); var newsRequest = makeHttpObject(); var healthRequest = makeHttpObject(); var kidsRequest = makeHttpObject(); var sportRequest = makeHttpObject(); var sitesRequest = makeHttpObject(); function waitUntilLoaded() { tvRequest.open('GET', xmlurl+'fekrado.xml?1329943567', true); tvRequest.onreadystatechange = createTvSlideshow; tvRequest.send(null); newsRequest.open('GET', xmlurl+'maqaallo.xml?1329943567', true); newsRequest.onreadystatechange = createNewsSlideshow; newsRequest.send(null); healthRequest.open('GET', xmlurl+'video.xml?1329943567', true); healthRequest.onreadystatechange = createHealthSlideshow; healthRequest.send(null); kidsRequest.open('GET', xmlurl+'caafimaad.xml?1329943567', true); kidsRequest.onreadystatechange = createKidsSlideshow; kidsRequest.send(null); sportRequest.open('GET', xmlurl+'ciyaaro.xml?1329943567', true); sportRequest.onreadystatechange = createSportSlideshow; sportRequest.send(null); sitesRequest.open('GET', xmlurl+'suugaan.xml?1329943567', true); sitesRequest.onreadystatechange = createSitesSlideshow; sitesRequest.send(null); } addLoadEvent(waitUntilLoaded); function createTvSlideshow() { if (tvRequest.readyState == 4 && (tvRequest.status == 200 || tvRequest.status == 304)) { //if (tvRequest.responseXML != null) { // only works for Safari var xml = tvRequest.responseXML.documentElement; tvSlideshow = new slideshow('tvSlideshow','tvHighlights','tv',xml,true,8000); //} } } function createNewsSlideshow() { if (newsRequest.readyState == 4 && (newsRequest.status == 200 || newsRequest.status == 304)) { var xml = newsRequest.responseXML.documentElement; newsSlideshow = new slideshow('newsSlideshow','newsHighlights','news',xml,true,7000); } } function createHealthSlideshow() { if (healthRequest.readyState == 4 && (healthRequest.status == 200 || healthRequest.status == 304)) { var xml = healthRequest.responseXML.documentElement; healthSlideshow = new slideshow('healthSlideshow','healthscienceHighlights','healthscience',xml,true,7500); } } function createKidsSlideshow() { if (kidsRequest.readyState == 4 && (kidsRequest.status == 200 || kidsRequest.status == 304)) { var xml = kidsRequest.responseXML.documentElement; kidsSlideshow = new slideshow('kidsSlideshow','kidsHighlights','kids',xml,true,10000); } } function createSportSlideshow() { if (sportRequest.readyState == 4 && (sportRequest.status == 200 || sportRequest.status == 304)) { var xml = sportRequest.responseXML.documentElement; sportSlideshow = new slideshow('sportSlideshow','sportHighlights','sport',xml,true,11000); } } function createSitesSlideshow() { if (sitesRequest.readyState == 4 && (sitesRequest.status == 200 || sitesRequest.status == 304)) { var xml = sitesRequest.responseXML.documentElement; sitesSlideshow = new slideshow('sitesSlideshow','sitesHighlights','sites',xml,true,9000); } } function slideshow(name, parent, nickname, xml, autoPlay, delay) { this.name = name; this.parent = document.getElementById(parent); this.nickname = nickname; this.xml = xml; this.autoPlay = autoPlay; this.delay = delay; var timer; // most browsers fail (gracefully) here if error in XML - firefox keeps going and fails halfway through building slideshow: var s = xml.getElementsByTagName('highlight'); var N = s.length; var currentSlide = 0; //var video=''; // remove temp content; if (this.parent != null) { this.parent.innerHTML = ''; } // build document tree from XML file for (i=0; i' : ''; linkClose = (link) ? '' : ''; moreLink = (link) ? ' ' + linkOpen + '»» More' + linkClose : ''; if (image) slide.innerHTML += linkOpen + '' + linkClose; if (title) slide.innerHTML += '

' + linkOpen + title + linkClose + '

'; if (video) slide.innerHTML += '

'; if ((nickname=='news')||(nickname=='tv')) { if (date) slide.innerHTML += '

' + date + '

'; } if (copy) slide.innerHTML += '

' + copy + moreLink + '

'; this.parent.appendChild(slide); } // create slideshow nav nav = document.createElement('P'); nav.id = '' + nickname + 'Nav'; //nav.class = 'slideshowNav'; nav.innerHTML += ''; for (i=0; i' + (i+1) + ''; } nav.innerHTML += ''; nav.innerHTML += ''; nav.innerHTML += ''; this.parent.appendChild(nav); classAdd(nav,'slideshowNav'); classAdd(document.getElementById(nickname+'Nav0'),'on'); // slide controls this.show = function(n) { if (n!=currentSlide) { // hide current slide currentSlideID = '' + nickname + currentSlide; animateOpacity(currentSlideID, 100, 0, 800); setTimeout("hide('"+currentSlideID+"')",800); // show new slide newSlideID = '' + nickname + n; animateOpacity(newSlideID, 0, 100, 800); setTimeout("show('"+newSlideID+"')",100); // delay to reduce flicker // update nav highlight states classRemove(document.getElementById(nickname+'Nav'+currentSlide),'on'); classAdd(document.getElementById(nickname+'Nav'+n),'on'); currentSlide = n; } return false; } this.show1 = function(n) { this.show(n); this.pause(); return false; } this.back = function() { x = currentSlide -1; if (x < 0) x = N-1; this.show(x); return false; } this.next = function() { x = currentSlide + 1; if (x >= N) x = 0; this.show(x); return false; } this.play = function() { str = name + '.next()'; timer = setInterval(str,delay); document.getElementById(name+'Play').style.display = 'none'; document.getElementById(name+'Pause').style.display = 'inline'; return false; } this.pause = function() { clearInterval(timer); document.getElementById(name+'Play').style.display = 'inline'; document.getElementById(name+'Pause').style.display = 'none'; return false; } if (autoPlay) { this.play(); } else { // randomise positions of bottom slideshows if (this.name == 'sitesSlideshow') { this.show(0); } else { this.show(Math.floor(Math.random()*N)); } } findMediaLinks(this.parent); // call findMedia script again to find new video links } /* ------------------------------------ */ // Create an XMLHttpRequest object (or the ActiveX equivalent for IE) function makeHttpObject() { var xmlHttpObj; // branch for Activex version (Microsoft IE) /*@cc_on @if (@_jscript_version >= 5) try { xmlHttpObj = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlHttpObj = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlHttpObj = false; } } @else xmlHttpObj = false; @end @*/ // branch for native XMLHttpRequest object (Mozilla & Safari) if (!xmlHttpObj && typeof XMLHttpRequest != 'undefined') { try { xmlHttpObj = new XMLHttpRequest(); } catch (e) { xmlHttpObj = false; } } return xmlHttpObj; } /* ------------------------------------ */ // Opacity functions // (source: http://www.brainerror.net/scripts_js_blendtrans.php) // Fade from one opacity setting to another function animateOpacity(id, opacStart, opacEnd, millisec) { var skip = 5; var speed = Math.round((millisec / 100) * skip); var timer = 0; //determine the direction for the blending, if start and end are the same nothing happens if (opacStart > opacEnd) { for (i = opacStart; i >= opacEnd; i-=skip) { setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); timer++; } } else if(opacStart < opacEnd) { for (i = opacStart; i <= opacEnd; i+=skip) { setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); timer++; } } } //change the opacity for different browsers function changeOpac(opacity, id) { var object = document.getElementById(id).style; object.opacity = (opacity / 100); object.MozOpacity = (opacity / 100); object.KhtmlOpacity = (opacity / 100); object.filter = (opacity < 100 ? "alpha(opacity=" + opacity + ")" : "none"); }