/* NEW WIDGET ANDING: <button> */

/** plain (raw) buttons, class="plain" **/
  button.plain, button.plain:hover, button.plain:hover:active,
  button.plain:hover:active > .button-internal-box,
  button.plain > .button-internal-box, 
  button.plain > .button-internal-box:hover:active,
  button.plain > .button-internal-box > .button-text-container, 
  button.plain > .button-internal-box > .button-text-container:hover:active,
  button.plain > .button-internal-box > .button-text-container > .button-text, 
  button.plain > .button-internal-box > .button-text-container > .button.text:hover:active,
  button.plain > .button-internal-box > .button-icon, 
  button.plain > .button-internal-box > .button.icon:hover:active
    {
      -moz-binding		  : url(chrome://global/content/xulBindings.xml#buttonleft);
      border              : 0px !important;
      margin              : 0px;
      padding             : 0px;
    }
    
/*** class = "plain-extended" ***/
/********************************/
/* This is a dummy class that is specified in the several XUL files for the sake of the
 * Macintosh Classic Skin.  This class has essentially the same behavior and styles as
 * the above <button> and accompanying styles, but is useful in the Mac Classic skin.  This is because <button>
 * styles have been completely rewritten to produce Macintosh buttons with bevels, rounded corners,
 * etc.  Plain-extended thereby functions to produce square buttons with all the same hover and active
 * effects that modern <button>'s do.
 ********************************/

button.plain-extended {}


/** Default Button Styles (apply to usage of <button> without 
 *  any applied class).
 **/

/* outer frame */
  button 
    {
	  -moz-binding			: url("chrome://global/skin/globalBindings.xml#three-slice-button");
      background-color      : transparent;
      border				: 3px solid transparent;
      margin        : 2px;
      color					: #1C1D1F;
      min-width				: 60px;
      -moz-user-focus: normal !important;
    }

  button:focus 
    {
      border-color: #73869C;
      -moz-border-radius: 10px;
    }
    
  button[disabled="true"], button[disabled="true"]:hover, button[disabled="true"]:hover:active
    {
      border				: 0px;
      color					: #595F61;
    }

  .button-image-left {
	background			: url(chrome://global/skin/button-left.gif) no-repeat;
	width				: 9px;
	height				: 19px;
  }

  .button-image-middle {
	background			: url(chrome://global/skin/button-middle.gif) repeat-x;
  }

  .button-text-box {
	text-align          : center;
    vertical-align      : middle;
    padding				: 0px;
    font-size 			: 12px;
    font-family			: charcoal, ms sans serif;
    font-weight			: normal;
    margin-right		: 2px;
    margin-bottom		: 2px;
  }

  .button-image-right {
	background			: url(chrome://global/skin/button-right.gif) no-repeat;
	width				: 7px;
	height				: 19px;
  }

  .button-top-spring {
	height				: 2px;
  }

  .button-bottom-spring {
	height				: 1px;
  }
  
  button:hover:active {
  	color				: #1C1D1F;
  }
  
  button:hover:active > .button-image-left {
	background			: url(chrome://global/skin/button-clicked-left.gif) no-repeat;
  }

  button:hover:active > .button-image-middle {
	background			: url(chrome://global/skin/button-clicked-middle.gif) repeat-x;
  }

  button:hover:active > .button-image-right {
	background			: url(chrome://global/skin/button-clicked-right.gif) no-repeat;
  }

  button[disabled="true"] > .button-image-left,
  button[disabled="true"]:hover:active > .button-image-left {
	background			: url(chrome://global/skin/button-disabled-left.gif) no-repeat;
  }

  button[disabled="true"] > .button-image-middle,
  button[disabled="true"]:hover:active > .button-image-middle {
	background			: url(chrome://global/skin/button-disabled-middle.gif) repeat-x;
  }

  button[disabled="true"] > .button-image-right,
  button[disabled="true"]:hover:active > .button-image-right {
	background			: url(chrome://global/skin/button-disabled-right.gif) no-repeat;
  }


/* Default Button States */

  button[default="true"] {
    margin        : 1px;
  }

  button[default="true"]:focus {
    -moz-border-radius: 12px;
  }

  .button-image-left[default="true"] {
	background	: url(chrome://global/skin/button-def-left.gif) no-repeat;
	width: 10px;
	height: 21px;
  }

  .button-image-middle[default="true"] {
	background	: url(chrome://global/skin/button-def-middle.gif) repeat-x;
  }

  .button-image-right[default="true"] {
	background	: url(chrome://global/skin/button-def-right.gif) no-repeat;
	width: 8px;
	height: 21px;
  }

  button:hover:active > .button-image-left[default="true"] {
	background	: url(chrome://global/skin/button-def-clicked-left.gif) no-repeat;
  }

  button:hover:active > .button-image-middle[default="true"] {
	background	: url(chrome://global/skin/button-def-clicked-middle.gif) repeat-x;
  }

  button:hover:active > .button-image-right[default="true"] {
	background	: url(chrome://global/skin/button-def-clicked-right.gif) no-repeat;
  }

  .button-image-left[default="true"][disabled="true"],
  button[default="true"][disabled="true"]:hover:active > .button-image-left {
	background	: url(chrome://global/skin/button-def-disabled-left.gif) no-repeat;
  }

  .button-image-middle[default="true"][disabled="true"],
  button[default="true"][disabled="true"]:hover:active > .button-image-middle {
	background	: url(chrome://global/skin/button-def-disabled-mid.gif) repeat-x;
  }

  .button-image-right[default="true"][disabled="true"],
  button[default="true"][disabled="true"]:hover:active > .button-image-right {
	background	: url(chrome://global/skin/button-def-disabled-right.gif) no-repeat;
  }
  
/* text wrapping frame (hack because <text> does not support alignment) */
  .button-text-container
    {
      text-align          : center;
      vertical-align      : middle;
    }

/* text frame */
  .button-text 
    {
      padding             : 0px 2px 0px 2px;
    }
  
  button[orient="vertical"] > .button-internal-box > .button-text-container > .button-text
    {
      padding             : 2px 2px 0px 2px;
    }
  
/** Styles for 'dialog' buttons (usually any command button in a dialog)
 *  This class gives buttons 10px of padding on each side to increase the
 *  strike area and make buttons with small amounts of text (e.g. 'OK') 
 *  look less silly.
 **/

/* internal frame */
  .button-dialog > .button-internal-box,
  .button-dialog:hover > .button-internal-box
    {
      padding             : 2px 10px 2px 10px;
    }
  
  .button-dialog:hover:hover:active > .button-internal-box 
    {
      padding             : 3px 9px 1px 11px;
    }

/** Styles for grey toolbar buttons. These buttons are used in places like
 *  editor's formatting toolbar or toolbars wanting a button similar to a command
 *  button but without an initial outset frame.
 **/ 
  .button-borderless 
    {
      border              : 1px solid #CCCCCC;
    }
  
  .button-borderless:hover
    {
      border              : 1px solid #000000;
    }
    
  .button-borderless > .button-internal-box 
    {
      border              : 1px solid #CCCCCC;
    }
  
  .button-borderless:hover > .button-internal-box 
    {
      border              : 1px outset #CCCCCC;
    }
  
  .button-borderless:hover:active > .button-internal-box 
    {
      border              : 1px inset #CCCCCC;
    }

/** 
 * utility class for buttons with associated popup
 **/
.button-popup 
  {
	  list-style-image      : url(chrome://global/skin/taskbar-popup-arrow.gif);
  }
    
    
    
/**
 * Reorder buttons 
 **/
   
  .reorder-up
    {
      min-width           : 0px;
      list-style-image    : url("chrome://global/skin/simple-arrow-up.gif");
    }    
    
  .reorder-down
    {
      min-width           : 0px;
      list-style-image    : url("chrome://global/skin/simple-arrow-down.gif");
    }    
    
  .reorder-up > .button-internal-box > .button-icon,
  .reorder-down > .button-internal-box > .button-icon
    {
      margin              : 0;
      padding             : 0;
    }
    
    
