﻿
/*
 * Abbreviates a string of text
 * @param {String} content is the string to be abbreviated
 * @param {Number} size is the max size the string can be
 * @return {String} Returns the abbreviated content
*/
function abbrev(content, size) {
  if ( content.length > size ) {
    content = content.substr(0,size);
    cs = content.split(' ');
    content='';
    
    for (var s = 0 ; s < cs.length-1 ; s++) {
      content = content + ' ' + cs[s];
    }
    content = content.replace(/^\s+|\s+$/g,'');
    content = content.replace(/,$/g,'');
    content = content + '... ';
  }
  return content;
}


/*
 * Display latest blog entry
 * @param {json object} blog content
 * @return {} 
*/
function news(json) {
  var entry;
  var outreachEntries = Array(); 
  var count = 0;
  
  for (var i = 0; i < json.feed.entry.length; i++) {
    entry = json.feed.entry[i];    
    
    if (entry.category) {
      for (var j = 0; j < entry.category.length; j++) {
        if (entry.category[j].term == "Outreach") {
          var currEntry = Array();
          currEntry[0] = entry.title.$t;
          currEntry[1] = entry.content.$t;
          
          for (link in entry.link) {
            if (entry.link[link].rel == "alternate") {
              currEntry[2] = entry.link[link].href;
            }
          }
          outreachEntries[count++] = currEntry;
        }
      }
    }
  }  
  
  displayNews(outreachEntries, 0);

  
}

function displayNews(outreachEntries, currEntry) {

  var newsDiv = document.getElementById('news');
  var objTitle = document.createTextNode(outreachEntries[currEntry][0]);
  var objA = document.createElement('a');
  var objATxt = document.createTextNode('Learn more');
  var objBr = document.createElement('br');
  var objB = document.createElement('b');
  var entry = "";
  
  newsDiv.innerHTML = "";
  newsDiv.style.position = "relative";
  
  objB.appendChild(objTitle);
  newsDiv.appendChild(objB);
  newsDiv.appendChild(objBr);
  objA.href = outreachEntries[currEntry][2];
  objA.target = "_blank";
  objA.appendChild(objATxt);
  
  entry = outreachEntries[currEntry][1];
  entry = stripHTML(entry, true);
  
  newsDiv.innerHTML += abbrev(entry, 450);
  newsDiv.appendChild(objA);
  
  if (outreachEntries.length > 1) {
    var objDiv = document.createElement('div');
    var objDiv2 = document.createElement('div');
    
    objDiv.style.position = "absolute";
    objDiv.style.bottom = "0px";
    objDiv.style.right = "0px";
    
    objDiv2.style.position = "absolute";
    objDiv2.style.bottom = "0px";
    objDiv2.style.left = "0px";
    
    if (currEntry > 0) {
      var objA3 = document.createElement('a');
      var objDivTxt2 = document.createTextNode('« previous ');
      
      objA3.onclick = function() { displayNews(outreachEntries, --currEntry); }
      objA3.onmouseover = objA3.style.cursor = "pointer";
      objA3.appendChild(objDivTxt2);
      objDiv2.appendChild(objA3);
    }
    
    if (currEntry < outreachEntries.length-1) {
      var objA2 =document.createElement('a');
      var objDivTxt = document.createTextNode(' next »');
      
      objA2.onclick = function() { displayNews(outreachEntries, ++currEntry); }
      objA2.onmouseover = objA2.style.cursor = "pointer";
      objA2.appendChild(objDivTxt);
      objDiv.appendChild(objA2);
    }

    objDiv.style.textAlign = "right";
    objDiv.style.verticalAlign = "bottom";
    newsDiv.appendChild(objDiv2);
    newsDiv.appendChild(objDiv);
    
  }
}

function stripHTML(htmlTxt, leaveParagraphs) {
  var strippedTxt = '';
  
  if (leaveParagraphs) {
    strippedTxt = htmlTxt.replace(/(<\/?[^b|\/p][^>]*>)|(<\/?b>)/ig,"");
  }  else {
    strippedTxt = htmlTxt.replace(/<\/?[^>]*>/ig,"","");
  }
  
  return strippedTxt;
}



