var entries = document.anchors; // list of news items

var days   = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
              "Friday", "Saturday"];
var months = ["January", "February", "March", "April", "May", "June", "July",
              "August", "September", "October", "November", "December"];

var dispOffset = 315;


function findParentDiv(curr, klass) {
  var cc = curr.className.split(" ")[0];
  while((cc != klass) && (cc != 'entries') ) { 
    curr = curr.parentNode; 
    cc = curr.className.split(" ")[0];
  }
  if(cc == klass) return curr;
  return null;
}


// event complete: stop propagation of the event
function stopPropagation(event) {
  if (event.preventDefault) {
    event.preventDefault();
    event.stopPropagation();
  } else {
   event.returnValue = false;
  }
}

// scroll back to the previous article
function prevArticle(event) {
  var cur = document.documentElement.scrollTop;
  for (var i=entries.length - 1; i>=0; i--) {
    if (entries[i].parentNode.className.split(" ")[0] != 'news') continue;
    var a = entries[i].parentNode;
    if(a.style.display == "none") continue;

    if (a.offsetTop + dispOffset < cur) {
      window.location.hash=entries[i].name;
      stopPropagation(event);
      return;
    }
  }
}


function scrollTo(k) { window.location.hash= entries[k].name;}

// advance to the next article
function nextArticle(event) {
  for (var i=0; i<entries.length; i++) {
    if (entries[i].parentNode.className.split(" ")[0] != 'news') continue;
    var a = entries[i].parentNode;
    if(a.style.display == "none") continue;
    if (a.offsetTop+ dispOffset  > document.documentElement.scrollTop) {
       window.location.hash=entries[i].name;
      stopPropagation(event);
      break;
    }
  }
      stopPropagation(event);
}

// process keypresses
function navkey(event) {
  var checkbox = $('#navkeys')[0];
  if (!checkbox || !checkbox.checked) return;

  if (!event) event=window.event;
  var key=event.keyCode;

  if (!document.documentElement) return;
  // if (!entries[0].anchor || !entries[0].anchor.offsetTop) return;

  if (key == 'J'.charCodeAt(0)) nextArticle(event);
  if (key == 'K'.charCodeAt(0)) prevArticle(event);
}

// create (or reset) a cookie
function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

// read a cookie
function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

// each time the value of the option changes, update the cookie
function selectOption() {
  var checkbox = $('#navkeys')[0];
  if (!checkbox) return;
  createCookie("navkeys", checkbox.checked?'true':'false', 365);
}

// add navkeys option to sidebar
function addOption(event) {


    var opt = $("#navkeys")[0];
    opt.onclick = selectOption;
    var cookie = readCookie("navkeys");
    if (cookie && cookie == 'true') opt.checked = true;
    document.onkeydown = navkey;
}

function showHide(id)
{
  oldpos = document.documentElement.scrollTop;
  $("div.entry").each(function(i){if(this.className.split(' ')[1] == id) $(this).slideToggle("slow");});
 // Update link in the Feeds
 $("a.showhide").each(function(i){if(this.id == id) this.textContent= this.textContent=="-"?"+":"-";});
  document.documentElement.scrollTop = oldpos ;
  nextArticle(0);
}

function showAll() 
{
  $("div.entry").each(function(i){$(this).show("fast");});
  $("a.showhide").each(function(i){this.textContent="-";});
}

function personalize() {
  // var hd = $("header");
  // var ht = hd.clientHeight ? hd.clientHeight : hd.offsetHeight;
  // dispOffset = ht - 50;
  addOption();
  selectOption();
}

// hook event
$(document).ready(personalize);
