with (classes) {
//
with (OCP) {
//
with (Book) {
//
Book.FragmentaryTextGuide = function (The_Book, Version_Element)
{
 with (Guide) call(this, The_Book, Version_Element);

 with (FragmentaryTextGuide)
 {
  this[XHTML.events.click + "ed"] = click;
  this[XHTML.Form.Button.events.click] = buttonClicked;

  with (this)
  {
   with (elements) try
   {
    this.ToggleFragments_Button = namedItem("ToggleFragments_Button");
   }
   catch (e) {}

   if (ToggleFragments_Button) /* Opera workaround */ with (XHTML.Form)
   {
    Button.call(ToggleFragments_Button).addObserver(this);
   }
  }
 }

 return this;
}
//
FragmentaryTextGuide.Events =
{
 fragmentRequested : "OCP_Book_FragmentaryTextGuide_fragmentRequested"
}
//
FragmentaryTextGuide.click = function (The_MouseEvent, Sending_Element) { with (FragmentaryTextGuide) with (this)
{
 if (Sending_Element != this) return;

 var Clicked_Element = The_MouseEvent.target;

 switch (Clicked_Element.tagName.toLowerCase())
 {
  case "td": if (Clicked_Element.className == "fragment")
  {
   disable(); broadcastAsync(Events.fragmentRequested, Number(Clicked_Element.firstChild.nodeValue));
  }
//   break;
  default: Guide.click.call(this, The_MouseEvent, Sending_Element);
 }
}}
//
FragmentaryTextGuide.buttonClicked = function (Clicked_Button) { with (FragmentaryTextGuide) with (this)
{
 switch (Clicked_Button)
 {
  case ToggleFragments_Button: toggleFieldset(Clicked_Button, Clicked_Button.parentNode.parentNode);
   break;
  default: Guide.buttonClicked.call(this, Clicked_Button);
 }
}}
//
}
//
}
//
}
