/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

@namespace url(http://www.w3.org/1999/xhtml); /* set default namespace to HTML */

*|*::-moz-canvas {
  cursor: text;
}

*|*:read-write :read-only {
  user-select: all;
}

*|*:read-only > :read-write {
  /* override the above user-select: all rule. */
  user-select: -moz-text;
}

input:read-write > .anonymous-div:read-only,
textarea:read-write > .anonymous-div:read-only {
  user-select: text;
}

/* Use default arrow over objects with size that 
   are selected when clicked on.
   Override the browser's pointer cursor over links
*/

img:read-write, img:read-write[usemap], area:read-write,
object:read-write, object:read-write[usemap], 
applet:read-write, hr:read-write, button:read-write,
select:read-write,
a:read-write:link img, a:read-write:visited img,
a:read-write:active img, a:read-write:-moz-only-whitespace[name] {
  cursor: default;
}

*|*:any-link:read-write {
  cursor: text;
}

/* Prevent clicking on links from going to link */
a:link:read-write img, a:visited:read-write img,
a:active:read-write img {
  -moz-user-input: none;
}

/* We suppress user/author's prefs for link underline, 
   so we must set explicitly. This isn't good!
*/
a:link:read-write {
  text-decoration: underline -moz-anchor-decoration;
  color: -moz-hyperlinktext;
}

/* Allow double-clicks on these widgets to open properties dialogs
   XXX except when the widget has disabled attribute */
*|*:read-write > input:read-only,
*|*:read-write > button:read-only,
*|*:read-write > textarea:read-only {
  user-select: all;
  -moz-user-input: auto !important;
  -moz-user-focus: none !important;
}

/* XXX Still need a better way of blocking other events to these widgets */
select:read-write,
*|*:read-write > input:disabled,
*|*:read-write > input[type="checkbox"],
*|*:read-write > input[type="radio"],
*|*:read-write > input[type="file"],
input[contenteditable="true"]:disabled,
input[contenteditable="true"][type="checkbox"],
input[contenteditable="true"][type="radio"],
input[contenteditable="true"][type="file"] {
  user-select: all;
  -moz-user-input: none !important;
  -moz-user-focus: none !important;
}

/* emulation of non-standard HTML <marquee> tag */
marquee:read-write {
  -moz-binding: url('chrome://xbl-marquee/content/xbl-marquee.xml#marquee-horizontal-editable');
}

marquee[direction="up"]:read-write, marquee[direction="down"]:read-write {
  -moz-binding: url('chrome://xbl-marquee/content/xbl-marquee.xml#marquee-vertical-editable');
}

*|*:read-write > input[type="hidden"],
input[contenteditable="true"][type="hidden"] {
  border: 1px solid black !important;
  visibility: visible !important;
}

label:read-write {
    user-select: all;
}

*|*::-moz-display-comboboxcontrol-frame {
  user-select: text;
}

option:read-write {
  user-select: text;
}

/* the following rules are for Image Resizing */

span[\_moz_anonclass="mozResizer"] {
  width: 5px;
  height: 5px;
  position: absolute;
  border: 1px black solid;
  background-color: white;
  user-select: none;
  z-index: 2147483646; /* max value -1 for this property */
}

/* we can't use :active below */
span[\_moz_anonclass="mozResizer"][\_moz_activated],
span[\_moz_anonclass="mozResizer"]:hover {
  background-color: black;
}

span[\_moz_anonclass="mozResizer"].hidden,
span[\_moz_anonclass="mozResizingShadow"].hidden,
img[\_moz_anonclass="mozResizingShadow"].hidden,
span[\_moz_anonclass="mozGrabber"].hidden,
span[\_moz_anonclass="mozResizingInfo"].hidden,
a[\_moz_anonclass="mozTableRemoveRow"].hidden,
a[\_moz_anonclass="mozTableRemoveColumn"].hidden {
  display: none !important;
}

span[\_moz_anonclass="mozResizer"][anonlocation="nw"] {
  cursor: nw-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="n"] {
  cursor: n-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="ne"] {
  cursor: ne-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="w"] {
  cursor: w-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="e"] {
  cursor: e-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="sw"] {
  cursor: sw-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="s"] {
  cursor: s-resize;
}
span[\_moz_anonclass="mozResizer"][anonlocation="se"] {
  cursor: se-resize;
}

span[\_moz_anonclass="mozResizingShadow"],
img[\_moz_anonclass="mozResizingShadow"] {
  outline: thin dashed black;
  user-select: none;
  opacity: 0.5;
  position: absolute;
  z-index: 2147483647; /* max value for this property */
}

span[\_moz_anonclass="mozResizingInfo"] {
  font-family: sans-serif;
  font-size: x-small;
  color: black;
  background-color: #d0d0d0;
  border: ridge 2px #d0d0d0;
  padding: 2px;
  position: absolute;
  z-index: 2147483647; /* max value for this property */
}

img[\_moz_resizing] {
  outline: thin solid black;
}

*[\_moz_abspos] {
  outline: silver ridge 2px;
  z-index: 2147483645 !important; /* max value -2 for this property */
}
*[\_moz_abspos="white"] {
  background-color: white !important;
}
*[\_moz_abspos="black"] {
  background-color: black !important;
}

span[\_moz_anonclass="mozGrabber"] {
  outline: ridge 2px silver;
  padding: 2px;
  position: absolute;
  width: 12px;
  height: 12px;
  background-image: url("resource://gre/res/grabber.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  cursor: move;
}

/* INLINE TABLE EDITING */

a[\_moz_anonclass="mozTableAddColumnBefore"] {
  position: absolute;
  z-index: 2147483647; /* max value for this property */
  text-decoration: none !important;
  border: none 0px !important;
  width: 4px;
  height: 8px;
  background-image: url("resource://gre/res/table-add-column-before.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  -moz-user-focus: none !important;
}

a[\_moz_anonclass="mozTableAddColumnBefore"]:hover {
  background-image: url("resource://gre/res/table-add-column-before-hover.gif");
}

a[\_moz_anonclass="mozTableAddColumnBefore"]:active {
  background-image: url("resource://gre/res/table-add-column-before-active.gif");
}

a[\_moz_anonclass="mozTableAddColumnAfter"] {
  position: absolute;
  z-index: 2147483647; /* max value for this property */
  text-decoration: none !important;
  border: none 0px !important;
  width: 4px;
  height: 8px;
  background-image: url("resource://gre/res/table-add-column-after.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  -moz-user-focus: none !important;
}

a[\_moz_anonclass="mozTableAddColumnAfter"]:hover {
  background-image: url("resource://gre/res/table-add-column-after-hover.gif");
}

a[\_moz_anonclass="mozTableAddColumnAfter"]:active {
  background-image: url("resource://gre/res/table-add-column-after-active.gif");
}

a[\_moz_anonclass="mozTableRemoveColumn"] {
  position: absolute;
  z-index: 2147483647; /* max value for this property */
  text-decoration: none !important;
  border: none 0px !important;
  width: 8px;
  height: 8px;
  background-image: url("resource://gre/res/table-remove-column.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  -moz-user-focus: none !important;
}

a[\_moz_anonclass="mozTableRemoveColumn"]:hover {
  background-image: url("resource://gre/res/table-remove-column-hover.gif");
}

a[\_moz_anonclass="mozTableRemoveColumn"]:active {
  background-image: url("resource://gre/res/table-remove-column-active.gif");
}

a[\_moz_anonclass="mozTableAddRowBefore"] {
  position: absolute;
  z-index: 2147483647; /* max value for this property */
  text-decoration: none !important;
  border: none 0px !important;
  width: 8px;
  height: 4px;
  background-image: url("resource://gre/res/table-add-row-before.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  -moz-user-focus: none !important;
}

a[\_moz_anonclass="mozTableAddRowBefore"]:hover {
  background-image: url("resource://gre/res/table-add-row-before-hover.gif");
}

a[\_moz_anonclass="mozTableAddRowBefore"]:active {
  background-image: url("resource://gre/res/table-add-row-before-active.gif");
}

a[\_moz_anonclass="mozTableAddRowAfter"] {
  position: absolute;
  z-index: 2147483647; /* max value for this property */
  text-decoration: none !important;
  border: none 0px !important;
  width: 8px;
  height: 4px;
  background-image: url("resource://gre/res/table-add-row-after.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  -moz-user-focus: none !important;
}

a[\_moz_anonclass="mozTableAddRowAfter"]:hover {
  background-image: url("resource://gre/res/table-add-row-after-hover.gif");
}

a[\_moz_anonclass="mozTableAddRowAfter"]:active {
  background-image: url("resource://gre/res/table-add-row-after-active.gif");
}

a[\_moz_anonclass="mozTableRemoveRow"] {
  position: absolute;
  z-index: 2147483647; /* max value for this property */
  text-decoration: none !important;
  border: none 0px !important;
  width: 8px;
  height: 8px;
  background-image: url("resource://gre/res/table-remove-row.gif");
  background-repeat: no-repeat;
  background-position: center center;
  user-select: none;
  -moz-user-focus: none !important;
}

a[\_moz_anonclass="mozTableRemoveRow"]:hover {
  background-image: url("resource://gre/res/table-remove-row-hover.gif");
}

a[\_moz_anonclass="mozTableRemoveRow"]:active {
  background-image: url("resource://gre/res/table-remove-row-active.gif");
}
