var chash = "";
var siteTitle = "FormulationX";
$(document).ready(function() {
  $("body").append("<div id='loading'><span>Loading...</span><br/><img src='images/ajax-loader.gif' title='' /></div>");
  $("#loading").corner("5px");
  $("#list .item").append("<div class='actions'><div class='rd_more'>Read More</div> <!--<div class='fb'>Give Feedback</div></div>-->");
  $("#next").mouseover(function(){
    $(this).find("img").attr("src","images/next_.png");
  }).mouseout(function(){
    $(this).find("img").attr("src","images/next.png");
  });
  $("#prev").mouseover(function(){
    $(this).find("img").attr("src","images/prev_.png");
  }).mouseout(function(){
    $(this).find("img").attr("src","images/prev.png");
  });
  
  $('#list').serialScroll({
    target:'#list_center',
  	items:'li',
  	prev:'#prev',
  	next:'#next',
  	duration:500,
		force:true,
		stop:true,
		step:3,
		lock:false,
		cycle:true,
		jump: false,
		exclude:2
  });
  
  $(".item .actions .rd_more").click(function(){
    var page = $(this).parent().parent().find(".page").text();
    lHash("set","page,"+page);
    hashLoad(lHash());
  });
  
  $("body").append("<div id='page_view'><div id='page_view_con'>&nbsp;</div></div><div id='page_view_close'>Close</div>");
  
  $("#page_view_close").click(function(){pageView("hide")});
});
window.onload = function(){ //jQuery's document ready function is too fast
  $("#list").corner("round");
  $("#list .item").corner("5px");
  $("#page_view_close").corner("tl tr");
  $('#list_center').trigger("goto",[1]);
  $('#list_center').trigger("goto",[0]);
  $.historyInit(hashLoad);
  loading("hide");
}

function setTitle(page){
  if(page){
    var t = pageTitles[page];
    if(!t)t = page;
    document.title = t+" - "+siteTitle;
  }
  else document.title = siteTitle;
}
var pageTitles = {
  "wysiwyg": "The WYSIWYG Idea",
  "eventH": "jQuery eventH()",
  "otherideas": "Other Ideas",
  "mathnotes": "Math Notes"
}

function loadPage(page){
  pageView("show");
  if($("#page_view").find("#"+page).html()){
    $("#page_view_con").html($("#"+page).html());
    setTitle(page);
    loading("hide");
  }else{
    loading("show");
    $("#page_view_con").load("viewpage.php?p="+page,{},function(){
      setTitle(page);
      loading("hide");
      var html = $("#page_view_con").html();
      $("#page_view").append("<div class='page' id='"+page+"'>&nbsp;</div>");
      $("#"+page).html(html);
    });
  }
}

function pageView(action){
  switch(action){
    case "show":
      $("#page_view").show();
        $("#page_view_close").show();
        $("#page_view").corner("round");
        pageView.state.hidden=false;
    break;
    case "hide":
      $("#page_view_close").hide();
      $("#page_view").hide();
      pageView.state.hidden=true;
      lHash("set","");
    break;
    case "hide?":
      if(pageView.state.hidden){
        pageView("hide");
      }
    break;
  }
}
pageView.state = {
  hidden:true
};

function lHash(action, hash){
  switch(action){
    case "set":
      if(hash == lHash() && hash != "")return hash;
      chash = hash;
      if(window.location.hash && hash == ""){
        window.location.hash = "#main";
      }else if(hash != "") window.location.hash = hash;
      return hash;
    break;
    default:
      return window.location.hash.replace("#","");
    break;
  }
}
function hashLoad(h){
  hash = lHash();
  chash = h;
  hash = hash.split(",");
  if(hash[0]=="page" && hash[1]){
    loadPage(hash[1]);
  }else{
    pageView("hide");
    setTitle();
  }
}

function loading(action){
  switch(action){
    case "show":
      $("#loading").fadeIn("fast",function(){
        loading.state = "visible";
      });
    break;
    case "hide":
      setTimeout(function(){
        $("#loading").fadeOut("slow",function(){
          loading.state = "hidden";
        });
      },200);
    break;
  }
}
loading.state = "hidden";