/*-----------------------------------------------------------
  NewsTicker Package
  (to test skynews.php. change success handle to the test one 
  and increase the size of the footer area)
-----------------------------------------------------------*/
//var random=1 ;  // 0=sequential, 1=random
//var newsSpeed=10000 // 1000=1 sec

var newsindex=-1                  // force news fetch first time
var news=['dummy header']         // 1 record forces an ajax news-list fetch every 10 secs until got something! i=(i+1) % 1  0..0!
//news=['dummy header','20110204-025153#Queensland has reported its first death following Cyclone Yasi as the govt ramps up its recovery effort.']

//var sUrl = "/news/skynews4.php?b=n&l=n";
var sUrl = "/news/skynews5.php?b=n&l=y&target=center1"; // l=y gets headlines, l=n gets descriptions
// var sUrl = "showIP.php";
var gmtLex='yyyymmdd-hhmmss'
var item=''
var itemdate = new Date()
var longtime = ''
var shorttime='ddd hh:mm'
var freezeit=false          // causes the ticker to freeze

/*
function updatecontent(){
  var tickerobject=document.getElementById("tickertape")
  if (random) newsindex=Math.floor(Math.random()*news.length) // random number (0..length array-1)
  else newsindex=(newsindex+1) % news.length  // next sequential (0..length array-1)
  tickerobject.innerHTML=news[newsindex]   // write next item 
  setTimeout("updatecontent()",newsSpeed)  // rearm poptimer
}
*/

//function sortTimeDesc(a,b){return (a.substr(0,15) > b.substr(0,15))} // sort numbers descending

var testHandler = function(o){
  var tickerobject=document.getElementById("tickertape")
  tickerobject.innerHTML=o.responseText
}

var handleSuccess = function(o){
    if (o.responseText.substr(0,9)=='_unavail_') {newsindex=-1; return} // NEWS SERVER UNAVAILABLE - go into retry mode (every 10 secs)
    news = o.responseText.split("\n") // split lines into an array
    while (news.length > 0 && news[news.length-1].length < 5) news.pop()  // chop off garbage at end of array
    news.sort()        // sort ascending on gmt lex date
    news.reverse()     // now make descending
    newsindex = 0      // reset list to top-1 (news header)
}

var handleFailure = function(o){
   newsindex = -1       // OUR SERVER UNAVAILABLE - force a retry to get news stories every 10 secs
}

var callback ={
  success:handleSuccess,
  //success:testHandler,
  failure:handleFailure,
  argument: { foo:"foo", bar:"bar" }
};

function makeRequest(){
	var request = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
//	YAHOO.log("Initiating request; tId: " + request.tId + ".", "info", "example");
}

// convert zulu time to short local time
function getLocalTime(s){
  itemdate.setUTCFullYear(gmtLex.substr(0,4),gmtLex.substr(4,2)-1,gmtLex.substr(6,2)) // set date gmt - year month(0..11) day(1..31)
  itemdate.setUTCHours(gmtLex.substr(9,2),gmtLex.substr(11,2),gmtLex.substr(13,2)) // set time gmt -hou minute seconds
  longtime = itemdate.toString()
  shorttime = longtime.substr(0,3)+longtime.substr(15,6)
}

// parse data into global timestamp & item
// also convert zulu time to short local time
function extractItemData(s){
  var a
  a=s.split('#',2)
  gmtLex=a[0]
  getLocalTime(gmtLex)
  item = a[1] 
}

// this gets called by mouseover on item anchor to freeze the ticker
function freeze(){
  freezeit=true;  //alert('freeze='+freezit)
}
function unfreeze(){
 freezeit=false;   //alert('freeze='+freezit)
}
function frozen(){
  //alert('freezeit='+freezeit)
  return freezeit
}

function getNewsList(){
  var tickerobject=document.getElementById("tickertape")
  var s
  //alert('freezeitcall='+freezeit)
  if (!frozen()){
    newsindex=(newsindex+1) % news.length         // next sequential (0..length array-1)
    if (newsindex==0){
      makeRequest()               // news0 = news service header - request new list before going to sleep  
    }else{
      extractItemData(news[newsindex])
       //tickerobject.innerHTML=item + ' - ' + gmtLex + ' (' + newsindex + ')'
      //tickerobject.innerHTML=item + ' - ' + longtime + ' (' + newsindex + ')'
      tickerobject.innerHTML=item + ' - ' + shorttime + ' (' + newsindex + ')'
    }
  }
  //tickerobject.innerHTML=news.length
  setTimeout("getNewsList()",10000)         // rearm poptimer to run self again (stay above ajax timeout which is 5 secs)
}


