// Messages item struc function MessageItem( iMessageTypeID, sLinkURL, sGraphicURL, sGraphicAltText, iDisplayTime, sMessageText ) { this.MessageTypeID = iMessageTypeID; this.LinkURL = sLinkURL; this.GraphicURL = sGraphicURL; this.GraphicAltText = sGraphicAltText; this.DisplayTime = iDisplayTime; this.MessageText = sMessageText; } // News item struc function NewsItem( iNewsID, sTitle, sLocation ) { this.NewsID = iNewsID; this.Title = sTitle; this.Location = sLocation; } // Array to hold message data var aMessageArray = new Array( new MessageItem( 3,' ',' ',' ',-1,' ')); // Array to hold news data var aNewsArray = new Array( new NewsItem( 19732,'Deaf Awareness Conference','Forcewide'), new NewsItem( 19731,'Can you help locate stolen bicycle?','Taunton'), new NewsItem( 19727,'Roads now re-opened','Bristol'), new NewsItem( 19727,'Portway and Suspension Bridge temporarily closed','Bristol'), new NewsItem( 19726,'Police are appealing for information after woman is believed to have been conned','Yeovil')); // Ticker functions var iCurrentIndex = 0; var bGoTicker = true; var bStopTicker = false; // References to page objects var oAnchor; var oTickerArea; function GoTicker() { if ( !bStopTicker ) { // If ticker isn't stopped // alert('GoTicker()'); if ( !bGoTicker ) return false; // Reference objects in use if ( oAnchor == null ) { // Load cookie message array if ( getCookie('CurrentTickerID') != null ) iCurrentIndex = parseInt( getCookie('CurrentTickerID') ); // Load cookie news array if ( getCookie('CurrentNewsID') != null ) iCurrentNewsIndex = parseInt( getCookie('CurrentNewsID') ); if ( document.getElementById ) { oAnchor = document.getElementById('PageTickerAnchor'); oTickerArea = document.getElementById('TickerArea'); } } // Safe guard if ( iCurrentIndex > aMessageArray.length - 1 ) iCurrentIndex = 0; // Determine message type switch( aMessageArray[ iCurrentIndex ].MessageTypeID ) { case 1: // Text message oAnchor.innerHTML = aMessageArray[iCurrentIndex].MessageText; oAnchor.href = aMessageArray[iCurrentIndex].LinkURL; // Display message for X seconds setTimeout('NextMessage()', parseInt( aMessageArray[iCurrentIndex].DisplayTime ) * 1000 ); break; case 2: // Graphic message oAnchor.innerHTML = '' + aMessageArray[iCurrentIndex].GraphicAltText + ' ' + aMessageArray[iCurrentIndex].MessageText; oAnchor.href = aMessageArray[iCurrentIndex].LinkURL; // Display message for X seconds setTimeout('NextMessage()', parseInt( aMessageArray[iCurrentIndex].DisplayTime ) * 1000 ); break; case 3: // News // oAnchor.innerHTML = '

News.....

'; // setTimeout('NextMessage()', 5000 ); GoNewsMessage(); break; } } // END bStopTicker } // News ticker var iCurrentNewsIndex = 0; var iCurrentNewsChar = 0; // Display news message function GoNewsMessage() { if ( !bStopTicker ) { // If ticker isn't stopped // Safe guard if ( iCurrentNewsIndex > aNewsArray.length - 1 ) iCurrentNewsIndex = 0; // Display the next part of the news story var sArrayStoryText = aNewsArray[ iCurrentNewsIndex ].Title + ' (' + aNewsArray[ iCurrentNewsIndex ].Location + ')'; var sHref = '/newsroom/ViewStory.aspx?nsid=' + aNewsArray[ iCurrentNewsIndex ].NewsID; oAnchor.href = sHref; if ( iCurrentNewsChar > sArrayStoryText.length ){ // Pause story - Ready next one iCurrentNewsChar = 0; if ( iCurrentNewsIndex >= aNewsArray.length - 1 ) { // End of news messages iCurrentNewsIndex = 0; setTimeout("NextMessage()", 5000); } else { // Move to next news message iCurrentNewsIndex++; setTimeout("GoNewsMessage()", 5000); } // Save current news story setCookie('CurrentNewsID', iCurrentNewsIndex, '', '/', '', false ); } else { // Display var sStoryText = sArrayStoryText.substring( 0, iCurrentNewsChar ); iCurrentNewsChar++; oAnchor.innerHTML = 'Latest news: ' + sStoryText + '_'; // Display the text // oTickerArea.innerHTML = 'Latest news: ' + sStoryText + '_'; // Display the text setTimeout("GoNewsMessage()", 75 ); } } // END bStopTicker } // Move to the next message in the ticker function NextMessage() { // alert('NextMessage()' ); if ( iCurrentIndex >= ( aMessageArray.length - 1 ) ){ iCurrentIndex = 0; } else { iCurrentIndex++; } iCurrentChar = 0; // Save current message mode // setCookie('CurrentTickerID', iCurrentIndex); // setCookie('CurrentTickerID', iCurrentIndex, new Date().getTime(), '/', '', false ); setCookie('CurrentTickerID', iCurrentIndex, '', '/', '', false ); GoTicker(); } // Stop the ticker function StopTicker() { bStopTicker = true; }