// This file is part of the Neo template. As I spent quite some time developing
// this code, please give proper credits to Hackosphere if you are going to
// re-use the code.
// - Ramani@hackosphere

var postTitle = new Array();
var postContent = new Array();
var postId = new Array();
var postDate = new Array();
var postPermalink = new Array();
var commentAuthor = new Array();
var commentContent = new Array();
var commentDate = new Array();
var blogid, blogurl, totalComments;
var monthnames = new Array();
var startIndex = 1;
var oldestFirstOrder = 0;

function dateString(rawdate, needYear) {
   monthnames[1] = "January";
   monthnames[2] = "February";
   monthnames[3] = "March";
   monthnames[4] = "April";
   monthnames[5] = "May";
   monthnames[6] = "June";
   monthnames[7] = "July";
   monthnames[8] = "August";
   monthnames[9] = "September";
   monthnames[10] = "October";
   monthnames[11] = "November";
   monthnames[12] = "December";
   var year = rawdate.substring(0,4);
   var month = rawdate.substring(5,7);
   var day = rawdate.substring(8,10);
   str = monthnames[parseInt(month,10)] + ' ' + day;
   if (needYear) str = str + ', ' + year;
   return (str);
}

function updateLabelPosts(json) {
  feedid = json.feed.id.$t;
  start = feedid.indexOf('blog-');
  blogid = feedid.substr(start+5);

  for (var k = 0; k < json.feed.link.length; k++) {
      if (json.feed.link[k].rel == 'alternate') {
        alturl = json.feed.link[k].href;
        break;
      }
  }
  index = alturl.lastIndexOf('/');
  var label = alturl.substr(index+1);
  label = decodeURIComponent(label);

  var labelposts = document.getElementById("LabelPosts");
  var labeltitle = document.getElementById("LabelTitle");

  if (label == "") {
    labeltitle.innerHTML = '<h2><a href="http://ooxxoox.blogspot.com"><img style="border: 0pt none;" src="http://nautica716.googlepages.com/ani_1small.gif"/></a>&nbsp;Latest Posts</h2><hr/>';
  } else {
    labeltitle.innerHTML = '<h2> "' + label + '"!!</h2>';
    labeltitle.innerHTML = labeltitle.innerHTML + '<img style="border: 0pt none;" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png"/>&nbsp;';
    labeltitle.innerHTML = labeltitle.innerHTML + '<a href="' + blogurl + 'feeds/posts/default/-/' + label + '">Subscribe</a><hr/>';
  }
  var disp = '';

  for (var i = 0; i < json.feed.entry.length; i++) {
    var entry = json.feed.entry[i];
    var selfurl;
    postTitle[i] = entry.title.$t;
    postContent[i] = entry.content.$t;
    postDate[i] = entry.published.$t.substring(0,10);
    entryid = entry.id.$t;
    start = entryid.indexOf('post-');
    postId[i] = entryid.substr(start+5);

    for (var k = 0; k < entry.link.length; k++) {
      if (entry.link[k].rel == 'alternate') {
        postPermalink[i] = entry.link[k].href;
        break;
      }
    }
disp = disp + '<li style="list-style-image:url("http://nautica716.googlepages.com/star.gif");">&nbsp;<a href="javascript:updatePost(' + i + ');">' +''+ entry.title.$t + '</a></li>';
  }
  if (label == "index.html") label = "";
  disp = disp + '<p class="navLinks">';
  if (startIndex != 1) {
    disp = disp + '<a href="javascript:fetchNewerPosts(\'' + label + '\');"><<&nbsp;Newer</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
  }

  if (json.feed.entry.length == numPosts) {
    disp = disp + '<a href="javascript:fetchOlderPosts(\'' + label + '\');">Older&nbsp;>></a>';
  }
  disp = disp + '</p>';
  labelposts.innerHTML = disp;
}

function updatePost(index) {
   var datediv = document.getElementById("PostDate");
   var titlediv = document.getElementById("PostTitle");
   var contentdiv = document.getElementById("PostContent");
   var editdiv = document.getElementById("PostEditLink");
   var commentdiv = document.getElementById("PostCommentLink");

   datediv.innerHTML = dateString(postDate[index], 1);
   titlediv.innerHTML = '<a href="' + postPermalink[index] + '">' + postTitle[index] + '</a>';
     contentdiv.innerHTML = '<p>' + postContent[index] + '</p>'  + '<hr/> '+'url' + '<br/>' + '<a href="' + postPermalink[index] + '">' + postPermalink[index] + '</a>'+ '<div style="clear: both;"></div>';
   if (editdiv)
     editdiv.innerHTML = '<a href="http://www2.blogger.com/post-edit.g?blogID=' + blogid + '&postID=' + postId[index] + '"><span class="quick-edit-icon">&#160;</span></a>';
   commentdiv.innerHTML = '<a target="_blank" href="http://www2.blogger.com/comment.g?blogID=' + blogid +'&postID=' + postId[index] + '">Post a Comment!!</a>';

   var backlinksdiv = document.getElementById("backlinks-container");
   backlinksdiv.innerHTML = '';

   var postdiv = document.getElementById("post");
   postdiv.scrollIntoView(true);
   new Effect.Highlight('post',{startcolor:'#C3D9FF', duration: 2.0, endcolor:'#ffffff'});
   checkFullNeo();
   fetchComments(postId[index]);
}

function updateComments(json) {
  if (json.feed.entry) {   
    for (var i = 0; i < json.feed.entry.length; i++) {
      var entry = json.feed.entry[i];
      commentAuthor[i] = entry.author[0].name.$t;
      commentContent[i] = entry.content.$t;
      commentDate[i] = entry.published.$t.substring(0,10);
    }
    totalComments = json.feed.entry.length;
  } else totalComments = 0;

  updateCommentsPage(0);
}

function showNextPage(page) {
  updateCommentsPage(page);
  var commentdiv = document.getElementById('comments');
  commentdiv.scrollIntoView(true);
}

function updateCommentsPage(page) {
  var commentdiv = document.getElementById('comments');

  if (totalComments == 0) {
      commentdiv.innerHTML = "<center><h2>No Comment Yet !!-_- </h2></center>";
      return;
  }
  disp = "<center><h2>" + totalComments + " Comments";

  var numpages = (totalComments / 10);
  if (numpages > 1) {
     disp = disp + ",&nbsp;Pages:&nbsp;"
     for (i = 0; i < numpages; i++) {
       if (i == page)
          disp = disp + (i+1) + "&nbsp;&nbsp;";
       else
          disp = disp + '<a href="javascript:updateCommentsPage(' + i + ');">' + (i+1) + '</a>&nbsp;&nbsp;';
     }
  }

  disp = disp + "</h2></center><dl class='comments-block' id='comments-block'>";

if (oldestFirstOrder == 1) {
  max = totalComments - 1 - (page * 10);
  min = totalComments - 1 - ((page+1) * 10);
  if (min < 0)
      min = 0;
  for (var i = max; i >= min; i--) {
      disp = disp + "<dt class='comment-author'>" + "On " + dateString(commentDate[i], 0) + ", " + commentAuthor[i] + " said...</dt>";
      if (commentAuthor[i] == blogAuthor) {
          disp = disp + "<dd class='comment-body-author'>" + commentContent[i] + "</dd><br/>";
      } else {
          disp = disp + "<dd class='comment-body'>" + commentContent[i] + "</dd><br/>";
      }
  }
} else { 
  max = (page + 1) * 10;
  if (max > totalComments)
      max = totalComments;
  for (var i = page * 10; i < max; i++) {
      disp = disp + "<dt class='comment-author'>" + " " + dateString(commentDate[i], 0) + ", " + commentAuthor[i] + " Said...</dt>";
      if (commentAuthor[i] == blogAuthor) {
          disp = disp + "<dd class='comment-body-author'>" + commentContent[i] + "</dd><br/>";
      } else {
          disp = disp + "<dd class='comment-body'>" + commentContent[i] + "</dd><br/>";
      }
  }
}
  disp = disp + "</dl>";

  if (page < (numpages-1)) {
    disp = disp + '<center><h3><a href="javascript:showNextPage(' + (page+1) + ');">Next>></a></h3></center><br/>';
  }

  commentdiv.innerHTML = disp;
}
function fetchOlderPosts(label) {
   startIndex = startIndex + numPosts;
   fetchPosts(label);
   document.getElementById('LabelDisplay').scrollIntoView(true);
}

function fetchNewerPosts(label) {
   startIndex = startIndex - numPosts;
   fetchPosts(label);
   document.getElementById('LabelDisplay').scrollIntoView(true);
}

function fetchLatestPosts(url, label) {
   blogurl = url;
   startIndex = 1;
   fetchPosts(label);

}

function fetchLatestPosts2(url, label) {
   blogurl = url;
   startIndex = 1;
   fetchPosts2(label);

}

function fetchPosts(label) {
  var labelposts = document.getElementById("LabelPosts");
  var labeltitle = document.getElementById("LabelTitle");
  labeltitle.innerHTML = "<h2><a href='http://sdkfz251.blogspot.com/2006/08/b.html'><img alt='Indicator' src='http://nautica716.googlepages.com/mario.gif'/></a>&nbsp;Running...wait</h2><hr/>";

  if (label == '') {
     feedurl = blogurl + 'feeds/posts/default?orderby=published&start-index=' + startIndex + '&max-results=' + numPosts + '&alt=json-in-script&callback=updateLabelPosts';
  } else {
     label = label.replace(" ", "%20");
     feedurl = blogurl + 'feeds/posts/default/-/' + label + '?orderby=published&start-index=' + startIndex + '&max-results=' + numPosts + '&alt=json-in-script&callback=updateLabelPosts';
  }

  var script = document.createElement('script');
  script.setAttribute('src', feedurl);
  script.setAttribute('id', 'jsonScript');
  script.setAttribute('type', 'text/javascript');
  document.documentElement.firstChild.appendChild(script);
  //document.getElementById('LabelDisplay').scrollIntoView(true);
  new Effect.ScrollTo("LabelDisplay",{offset: 0});
  new Effect.Highlight('LabelDisplay',{startcolor:'#C3D9FF', duration: 2.0, endcolor:'#ffffff'});
  
}

function fetchPosts2(label) {
  var labelposts = document.getElementById("LabelPosts");
  var labeltitle = document.getElementById("LabelTitle");
  labeltitle.innerHTML = "<h2><img alt='Indicator' src='http://nautica716.googlepages.com/mario.gif'/>&nbsp;Wait...</h2><hr/>";

  if (label == '') {
     feedurl = blogurl + 'feeds/posts/default?orderby=published&start-index=' + startIndex + '&max-results=' + numPosts + '&alt=json-in-script&callback=updateLabelPosts';
  } else {
     label = label.replace(" ", "%20");
     feedurl = blogurl + 'feeds/posts/default/-/' + label + '?orderby=published&start-index=' + startIndex + '&max-results=' + numPosts + '&alt=json-in-script&callback=updateLabelPosts';
  }

  var script = document.createElement('script');
  script.setAttribute('src', feedurl);
  script.setAttribute('id', 'jsonScript');
  script.setAttribute('type', 'text/javascript');
  document.documentElement.firstChild.appendChild(script);
}

function fetchComments(postid) {
  var script = document.createElement('script');
  script.setAttribute('src', blogurl + 'feeds/' + postid + '/comments/default?max-results=100&alt=json-in-script&callback=updateComments');
  script.setAttribute('id', 'jsonScript');
  script.setAttribute('type', 'text/javascript');
  document.documentElement.firstChild.appendChild(script);
}


function showFullNeo() {
	var showspan = document.getElementById('showlink');
	var hidespan = document.getElementById('hidelink');
	var fullspan = document.getElementById('fullpost');
        showspan.style.display = 'none';
        hidespan.style.display = 'inline';
        fullspan.style.display = 'inline';
}
function hideFullNeo() {
	var showspan = document.getElementById('showlink');
	var hidespan = document.getElementById('hidelink');
	var fullspan = document.getElementById('fullpost');
        showspan.style.display = 'inline';
        hidespan.style.display = 'none';
        fullspan.style.display = 'none';
        var post = document.getElementById('post');
        post.scrollIntoView(true);
}
function checkFullNeo() {
	var showspan = document.getElementById('showlink');
	var hidespan = document.getElementById('hidelink');
        var fullpost = document.getElementById('fullpost');
        if (fullpost) {
            showspan.style.display = 'inline';
            hidespan.style.display = 'none';
        } else {
            showspan.style.display = 'none';
            hidespan.style.display = 'none';
        }
}