
function newsSearch(type){
  var searchStr = buildNewsSearchString(type);
//alert(searchStr);

  //Send the Ajax request
  $.ajax({ 
	method: "get", 
	url: searchEngine,    //Should be a config option
	data: searchStr,
	success: function(xml){
      outputNewsRecords(xml);
    }
  });  
}
function buildNewsSearchString(type){
  var searchStr = "searchStr=news<:>search<::>";
  
  if(type == "news"){
    searchStr += "type<:>news";
  }else if(type == "jobs"){
    searchStr += "type<:>jobs";
  }
  
  return(searchStr);
}

function getNewsRecords(xml){
  var output = "";
  var i=0;
  //var results = Array();
  
  $("record",xml).each(function() {
    currentNews = $(this).find("ARCHIVE").text();
	if(currentNews!=1){
		results[i] = Array();
		results[i]["ID"]=$(this).find("ID").text();
		longDate = $(this).find("STORYDATE").text().split(" ");
		shortDate = longDate[0].split("-");
		results[i]["date"]=new Date();
		results[i]["date"].setYear(shortDate[0]);
		results[i]["date"].setMonth(shortDate[1]);
		results[i]["date"].setDate(shortDate[2]);
		results[i]["headline"] = $(this).find("HEADLINE").text();
		results[i]["summary"] = $(this).find("SUMMARY").text();
		results[i]["story"] = $(this).find("STORY").text();
		results[i]["link"] = $(this).find("LINK").text();
		results[i]["archive"] = $(this).find("ARCHIVE").text();	
		results[i]["type"] = $(this).find("Type").text();
		i++;
	}
  });

  results.sort(function (a,b){
    if(a["date"].getTime() == b["date"].getTime()){
	  return 0;
	}
	if(a["date"].getTime() > b["date"].getTime()){
	  return -1;
	}
	if(a["date"].getTime() < b["date"].getTime()){
	  return 1;
	}
  });
}

function createNewsHTML(){
  var page = "";
  var totalPages = (results.length)/newsItemsPerPage;
  var roundTotalPages = Math.round(totalPages);
  if((totalPages-roundTotalPages)>0){
    roundTotalPages++;
  }
  for(i=0;i<roundTotalPages;i++){
    var startNum = i * newsItemsPerPage;
    var stopNum = startNum + newsItemsPerPage;
	if(stopNum > results.length)stopNum = results.length;
	for(j=startNum;j<stopNum;j++){
	  page += "<div>";
//if(results[j]["archive"]!=1){
//page += "archive="+results[j]["archive"];
	  year = results[j]["date"].getFullYear();
      month = results[j]["date"].getMonth();
      day = results[j]["date"].getDate();
	  page += "<span class=\"homeNewsDate\">&raquo;"+ month + "/" + day + "/" + year + "</span><br /><span class=\"homeNewsDate\">&raquo;"+ results[j]["type"] + "</span><h3 class=\"homeNewsTitle\">" + results[j]["headline"] + "</h3><p class=\"homeNewsStory\"><span id=\"" + results[j]["ID"] + "_SUM\">" + results[j]["summary"];
	  if(results[j]["story"]!= "" && results[j]["story"]!= "NA"){
	    page += "</span><br /><span onClick=\"expandStory("+ results[j]["ID"] +")\"><img src=\"images/icon-next-arrow.gif\" /> Click For More</span><br /><span id=\"" + results[j]["ID"] + "\" class=\"homeNewsStory hide\">"+ results[j]["story"] + "</span>";
	  }else{
	    page += "</span>";
	  }
	  
	  if(results[j]["link"]!= "" && results[j]["link"]!= "NA"){
	    page += "<br /><span><a href=\"" + results[j]["link"] + "\">Link</a></span>";
	  }
	  page += "</p>";
//}	  
	}
    resultsPages[i]=page;
	page = "";
  }
}

function outputNewsRecords(xml){

    getNewsRecords(xml);
	createNewsHTML();
	displayNews(displayPage);
}

function expandStory(id){
    var showID = "#"+id;
	var showIDSum = showID + "_SUM";
    $(showID).toggleClass("hide");
}

function displayNews(pageNum){
  //Make sure pageNum is a valid number
  if((pageNum == undefined)||(pageNum == ""))pageNum = 0;
  if(pageNum > resultsPages.length)pageNum = 0;
  if(pageNum < 0)pageNum = resultsPages.length-1;
  
  //Make the news page display and the page controls reflect new page number
  $("#newsResults").html(resultsPages[pageNum]);
  //updateNextPrevNums(pageNum);
}

function updateNextPrevNums(currentNum){

//$("#pageControls").html("<h1>"+currentNum+"</h1>");
  var pageControlsHTML = "";
  
  //Figure out how many pages of results there are... always round up
  var totalPages = (results.length)/newsItemsPerPage;
  var roundTotalPages = Math.round(totalPages);
  if((totalPages-roundTotalPages)>0){
    roundTotalPages++;
  }

  var prevNum = currentNum-1;
  var nextNum = currentNum+1;
  
  if(prevNum>-1){
    //pageControlsHTML += "<span onClick=\"displayNews(0)\"><a href=\"#\" class=\"prev\"><< First </a></span>";
    pageControlsHTML += "<span onClick=\"displayNews("+prevNum+")\"><a href=\"#\" class=\"prev\">&laquo; Previous </a></span>";
  }else{
    //pageControlsHTML += "<< First ";
    //pageControlsHTML = "<img src=\"images/icon-prev-arrow.gif\" alt=\"Previous News\" alt=\"Previous\" title=\"Previous\" env=\"images\"  />Previous ";
	pageControlsHTML += "&laquo; Previous ";
  }
  
  pageControlsHTML += " - " + (currentNum+1) + " of " + roundTotalPages + " - ";
  
  if(nextNum<roundTotalPages){
    var endNum = roundTotalPages-1;
    pageControlsHTML += " <span onClick=\"displayNews("+nextNum+")\"><a href=\"#\" class=\"next\">Next &raquo;</a></span> ";
	//pageControlsHTML += " <span onClick=\"displayNews("+endNum+")\"><a href=\"#\" class=\"next\">Last >></a></span> ";
  }else{
    pageControlsHTML += " Next &raquo;"; 
    //pageControlsHTML += " Last >>";	
  }
  
  $("#pageControls").html(pageControlsHTML);
}

