$(document).ready(init);

function init() {
  $("#global_navi a").bind("mouseover", hoverSummary);
	$("#global_navi a").bind("mouseout", removeSummary);
	$(".bookmark").bind("click", showBookmark);
	$(".comments-area .commnet_btn").bind("click", toggleComent);
}

/**
 * get summary element from jQuey.data
 *
 * @param p   parent (jQuery Object)
 *
 * @return  return the summary element.
 */
function getSummaryElement(p) {
  var id = p.attr('id');
  var navi= $('#global_navi');

  return $.data(navi.get(0), id);
}

/**
 * set summary element to jQuery.data
 *
 * @param p   parent (jQuery Object)
 * @param e   element to store.
 *
 * @return  return the summary element.
 */
function setSummaryElement(p, e) {
  var id = p.attr('id');
  var navi= $('#global_navi');

  $.data(navi.get(0), id, e);
  return e;
}

/**
 * create summary panel.
 * 
 * @param p   parent (jQuery Object)
 */
function createSummaryElement(p){
  var id = p.attr('id');
  var navi= $('#global_navi');
  /*
  var left = p.position().left + 371;
  */
  var left = p.position().left + 317;
  var top = p.height() + p.position().top + 30;

  var e = document.createElement('div');
  e.className = id + ' summary alpha';
  navi.append(e);

  $(e).css({left: left+"px", top: top+"px"});

  setSummaryElement(p, e);

  return e
}

/**
 * show the summary panel.
 * 
 * @param p   parent (jQuery Object)
 */
function showSummaryElement(p) {
  var summary = getSummaryElement(p);

  if(!summary){
    summary = createSummaryElement(p);
  }

  $(summary).show();
}

/**
 * hide the summary panel.
 *
 * @param p   parent (jQuery Object)
 */
function hideSummaryElement(p) {
  $(getSummaryElement(p)).hide();
}

function hoverSummary(event) {
  showSummaryElement($(this));
}

function removeSummary(event) {
  hideSummaryElement($(this));
}

function showBookmark(event){
  $('.tooltip_bookmark').fadeIn(500);
	
	return false;
}

function toggleComent(event) {
  toggleCommentElement($(this), true);
  
  $array = $(this).siblings(".commnet_btn");
	$.each($array, function(){
	  toggleCommentElement($(this), false);
  })
  
  return false;
}

function toggleCommentElement(obj, click){  
  if( obj.hasClass("commnet-post") && obj.siblings(".hidden").hasClass("open") && click ){
    obj.siblings(".hidden").slideUp("slow", function(){
  	  $(".commentlist").hide();
    })
    obj.siblings(".hidden").toggleClass("open");
  }else if( obj.hasClass("commnet-post") && click ){
    obj.siblings(".hidden").slideDown("slow");
    obj.siblings(".hidden").toggleClass("open");
  }
  
  if( obj.hasClass("list") && obj.siblings(".hidden").hasClass("open") && click ){
    obj.siblings(".hidden").children(".commentlist").slideDown("slow");
  }else if( obj.hasClass("list") && click ){
    obj.siblings(".hidden").children(".commentlist").show();
    obj.siblings(".hidden").slideDown("slow");
    obj.siblings(".hidden").toggleClass("open");
  }
  
  if( obj.hasClass("commnet-post") && obj.siblings(".hidden").hasClass("open") ){
    obj.text("コメント欄を閉じる");
  }else if( obj.hasClass("commnet-post") ){
    obj.text("コメントする");
  }
}

