// 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( 25170,'Police appeal for witnesses after BT cable theft','Yeovil'), new NewsItem( 25169,'Residents invited to chat with local police sergeant online','Portishead'), new NewsItem( 25168,'Drug dealer ordered to pay back ill gotten gains','Hartcliffe'), new NewsItem( 25167,'Two men jailed for sexual offences','Bristol'), new NewsItem( 25166,'Appeal to find owner of property','Bleadon')); // 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; }