// JavaScript Document

$(document).ready(function() {
	
  // clickable
  $(".clickable").click(function(){
  window.location=$(this).find("a").attr("href");
  return false;
  });

  // scrollbar
  $('#top-update').jScrollPane({showArrows:true});
  
  // navi
  file_name = location.href;
  file_name = file_name.substring(file_name.lastIndexOf("/")+1,file_name.length);
  if (file_name.indexOf("#") != -1) {
  file_name = file_name.substring(0,file_name.indexOf("#"));
  }
  if (file_name == "") {
  file_name = "index.html";
  }
  file_name = jQEscape(file_name);
  $("a[href*="+file_name+"]").addClass("selected");
  // sidebar
  $("#sidebar ul ul").css("display","none");
  $("#sidebar li:has(.selected) ul").css("display","block");
  $("#sidebar ul ul:has(.selected)").css("display","block");
  
  // goto pagetop
  $(".gototop").click(function(){
  $('html,body').animate({ scrollTop: $($(this).attr("href")).offset().top }, 'slow','swing');
  return false;
  })
  
  // smooth scroll
  $('a[href*=#page_]').click(function() {
  if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') 
  && location.hostname == this.hostname) {
  var $target = $(this.hash);
  $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
  if ($target.length) {
  var targetOffset = $target.offset().top;
  $('html,body').animate({scrollTop: targetOffset}, 1000);
  return false;
  }
  }
  });
  
  // talbe
  $("tr:nth-child(odd)").addClass("odd");

  // fade
  $(".fade").hover(function(){
	$(this).fadeTo("fast", 0.7);
  },function(){
	$(this).fadeTo("fast", 1.0);
  });

  // rollover
  var image_cache = new Object();
  $(".swap").each(function(i) {
	var imgsrc = this.src;
	var dot = this.src.lastIndexOf('.');
	var imgsrc_on = this.src.substr(0, dot) + '-on' + this.src.substr(dot, 4);
	image_cache[this.src] = new Image();
	image_cache[this.src].src = imgsrc_on;
	if ($(this).hasClass('selected')) {
	this.src = imgsrc_on;
	} else {
	$(this).hover(
	function() { this.src = imgsrc_on; },
	function() { this.src = imgsrc; });
  }
  });
});

// escape for jQuery selector
function jQEscape(str) {
  return str.replace(new RegExp("(#|;|&|,|\\.|\\+|\\*|~|'|:|\"|!|\\^|\\$|\\[|\\]|\\(|\\)|=|>|\\||\\/|\\\\)","g"),"\\$1");
}
