/* scripts.js */

function dump_obj (obj) {
	var name;
	console.log ("dump_obj(" + obj + ")");
	for (name in obj) {
		if (obj.hasOwnProperty (name)) {
			console.log (name + " = " + obj[name]);
		}
	}
}
/* ================================================================ */
function auto_select_click (ev) {
    var elt = ev.target;
    elt.focus();
    elt.select();
}

$(function () {
$(".auto_select").click(auto_select_click);
});
/* ================================================================ */

/* menu ================================================================ */

var menu_show_pending = null;
var menu_hide_pending = null;
var menu_visible = false;

function menu_clear_timeouts () {
  if (menu_show_pending) {
    clearTimeout (menu_show_pending);
    menu_show_pending = null;
  }
  if (menu_hide_pending) {
    clearTimeout (menu_hide_pending);
    menu_hide_pending = null;
  }
}

function menu_show (target)
{
  var li_menu_item;

  menu_clear_timeouts ();

  $(".menu_item").removeClass("menu_item_active");

  li_menu_item = target;
  while (li_menu_item && ! $(li_menu_item).hasClass("menu_item")) {
    li_menu_item = li_menu_item.parentNode;
  }
	
  if (li_menu_item) {
    var menu_body = $(".sub-menu-container", li_menu_item);

    var top = $(li_menu_item).height();

    $(menu_body).css("top", top + "px").css("left","0px");

    $(".sub-menu-container").hide();
    $(menu_body).show ();

    $(li_menu_item).addClass ("menu_item_active");
    menu_visible = true;
  } else {
    $(".sub-menu-container").hide();
    menu_visible = false;
  }
}

function menu_hide () {
  menu_clear_timeouts ();
  $(".sub-menu-container").hide();
  $(".menu_item").removeClass("menu_item_active");
  menu_hide_pending = null;
  menu_visible = false;
}

function menu_mouse_over (event) {
  menu_clear_timeouts ();

  if (menu_visible) {
    menu_show (event.target);
  } else {
    menu_show_pending = setTimeout (
      function () { menu_show (event.target); },
      200);
  }
}

function menu_mouse_out (event)
{
  menu_clear_timeouts ();
  menu_hide_pending = setTimeout (menu_hide, 300);
}

$(function () 
  {
    $(".menu_item").hover(menu_mouse_over, menu_mouse_out);
  }
);



/* self_label form elements ============================================= */

var self_label_contents = {};

function self_label_init () {
  var key = this.id + "|" + this.name;
  self_label_contents[key] = this.value;
}

function self_label_clear () {
  if (this.type == "hidden") {
    return;
  }

  if (this.type == "text" || this.nodeName == "TEXTAREA") {
    var key = this.id + "|" + this.name;
    if (this.value == self_label_contents[key]) {
      this.value = "";		
    }
  }
}

function self_label_prompt () {
  var key = this.id + "|" + this.name;
  if (! this.value && self_label_contents[key]) {
    this.value = self_label_contents[key];
  }
}

function self_label_submit () {
  $(this).find("input, textarea").each(self_label_clear);
}

$(function () 
  {
    $(".self_label input, .self_label textarea").each (self_label_init);
    $(".self_label input[type=text]").focus (self_label_clear);
    $(".self_label input[type=text]").blur (self_label_prompt);
    $(".self_label").submit (self_label_submit);
  }
);
/* ================================================================ */


$(function () 
  {
    $("ul.menu > li").hover(menu_mouse_over, menu_mouse_out);
    $(".sub-menu-container").hover (function () {}, menu_mouse_out);
  }
);

$(function ()
  {
    $("#read_letter").click(function(){$("#text_of_letter").toggle();return(false);});
    $("#text_of_letter").click(function(){$(this).toggle();});
  }
 );

