http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/dtds.data/wicket-xhtml1.3-strict.dtd
----------------------------------------------------------------------
diff --git a/dtds.data/wicket-xhtml1.3-strict.dtd 
b/dtds.data/wicket-xhtml1.3-strict.dtd
new file mode 100644
index 0000000..66d4f81
--- /dev/null
+++ b/dtds.data/wicket-xhtml1.3-strict.dtd
@@ -0,0 +1,982 @@
+<!--
+   Extensible HTML version 1.0 Strict DTD
+
+   This is the same as HTML 4 Strict except for
+   changes due to the differences between XML and SGML.
+
+   Namespace = http://www.w3.org/1999/xhtml
+
+   For further information, see: http://www.w3.org/TR/xhtml1
+
+   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+   All Rights Reserved. 
+
+   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
+
+   $Revision: 1.1 $
+   $Date: 2002/08/01 13:56:03 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent";>
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+   "-//W3C//ENTITIES Symbols for XHTML//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent";>
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+   "-//W3C//ENTITIES Special for XHTML//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent";>
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+    <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+    <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+    <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+    <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+    <!-- a language code, as per [RFC3066] -->
+
+<!ENTITY % Character "CDATA">
+    <!-- a single character, as per section 2.2 of [XML] -->
+
+<!ENTITY % Number "CDATA">
+    <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+    <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+    <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+    <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+    <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+    <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+    <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+    <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+    <!-- used for titles etc. -->
+
+<!ENTITY % Length "CDATA">
+    <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+    <!-- pixel, percentage, or relative -->
+
+<!ENTITY % Pixels "CDATA">
+    <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+    <!-- comma separated list of lengths -->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+  id               document-wide unique id
+  class            space separated list of classes
+  style            associated style info
+  title            advisory title/amplification
+  wicket:id        the id for the Wicket framework
+  wicket:preview   the preview attribute for the Wicket framework
+-->
+<!ENTITY % coreattrs
+ "id             ID             #IMPLIED
+  class          CDATA          #IMPLIED
+  style          %StyleSheet;   #IMPLIED
+  title          %Text;         #IMPLIED
+  wicket:id      %Text;         #IMPLIED
+  wicket:preview %Text;         #IMPLIED"
+  >
+
+<!-- internationalization attributes
+  lang        language code (backwards compatible)
+  xml:lang    language code (as per XML 1.0 spec)
+  dir         direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #IMPLIED"
+  >
+
+<!-- attributes for common UI events
+  onclick     a pointer button was clicked
+  ondblclick  a pointer button was double clicked
+  onmousedown a pointer button was pressed down
+  onmouseup   a pointer button was released
+  onmousemove a pointer was moved onto the element
+  onmouseout  a pointer was moved away from the element
+  onkeypress  a key was pressed and released
+  onkeydown   a key was pressed down
+  onkeyup     a key was released
+-->
+<!ENTITY % events
+ "onclick     %Script;       #IMPLIED
+  ondblclick  %Script;       #IMPLIED
+  onmousedown %Script;       #IMPLIED
+  onmouseup   %Script;       #IMPLIED
+  onmouseover %Script;       #IMPLIED
+  onmousemove %Script;       #IMPLIED
+  onmouseout  %Script;       #IMPLIED
+  onkeypress  %Script;       #IMPLIED
+  onkeydown   %Script;       #IMPLIED
+  onkeyup     %Script;       #IMPLIED"
+  >
+
+<!-- attributes for elements that can get the focus
+  accesskey   accessibility key character
+  tabindex    position in tabbing order
+  onfocus     the element got the focus
+  onblur      the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey   %Character;    #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED"
+  >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special.pre
+   "br | span | bdo | map">
+
+
+<!ENTITY % special
+   "%special.pre; | object | img ">
+
+<!ENTITY % fontstyle "tt | i | b | big | small ">
+
+<!ENTITY % phrase "em | strong | dfn | code | q |
+                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc.inline "ins | del | script">
+
+<!-- these can only occur at block level -->
+<!ENTITY % misc "noscript | %misc.inline;">
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl">
+<!ENTITY % blocktext "pre | hr | blockquote | address">
+
+<!ENTITY % block
+     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
+
+<!ENTITY % Block "(%block; | form | %misc;)*">
+
+<!-- %Flow; mixes block and inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | 
%misc.inline;)*">
+
+<!-- pre uses %Inline excluding big, small, sup or sup -->
+
+<!ENTITY % pre.content
+   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
+      | %inline.forms;)*">
+
+<!-- form uses %Block; excluding form -->
+
+<!ENTITY % form.content "(%block; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form and form controls -->
+
+<!ENTITY % button.content
+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+    table | %special; | %fontstyle; | %phrase; | %misc;)*">
+
+<!--================ Document Structure ==================================-->
+
+<!-- the namespace URI designates the document profile -->
+
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+  %i18n;
+  id          ID             #IMPLIED
+  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
+  >
+
+<!--================ Document Head =======================================-->
+
+<!ENTITY % head.misc "(script|style|meta|link|object)*">
+
+<!-- content model is %head.misc; combined with a single
+     title and an optional base element in any order -->
+
+<!ELEMENT head (%head.misc;,
+     ((title, %head.misc;, (base, %head.misc;)?) |
+      (base, %head.misc;, (title, %head.misc;))))>
+
+<!ATTLIST head
+  %i18n;
+  id          ID             #IMPLIED
+  profile     %URI;          #IMPLIED
+  >
+
+<!-- The title element is not considered part of the flow of text.
+       It should be displayed, for example as the page header or
+       window title. Exactly one title is required per document.
+    -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title 
+  %i18n;
+  id          ID             #IMPLIED
+  >
+
+<!-- document base URI -->
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+  href        %URI;          #REQUIRED
+  id          ID             #IMPLIED
+  >
+
+<!-- generic metainformation -->
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+  %i18n;
+  id          ID             #IMPLIED
+  http-equiv  CDATA          #IMPLIED
+  name        CDATA          #IMPLIED
+  content     CDATA          #REQUIRED
+  scheme      CDATA          #IMPLIED
+  >
+
+<!--
+  Relationship values can be used in principle:
+
+   a) for document specific toolbars/menus when used
+      with the link element in document head e.g.
+        start, contents, previous, next, index, end, help
+   b) to link to a separate style sheet (rel="stylesheet")
+   c) to make a link to a script (rel="script")
+   d) by stylesheets to control how collections of
+      html nodes are rendered into printed documents
+   e) to make a link to a printable version of this document
+      e.g. a PostScript or PDF version (rel="alternate" media="print")
+-->
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+  %attrs;
+  charset     %Charset;      #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  type        %ContentType;  #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  media       %MediaDesc;    #IMPLIED
+  >
+
+<!-- style info, which may include CDATA sections -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+  %i18n;
+  id          ID             #IMPLIED
+  type        %ContentType;  #REQUIRED
+  media       %MediaDesc;    #IMPLIED
+  title       %Text;         #IMPLIED
+  xml:space   (preserve)     #FIXED 'preserve'
+  >
+
+<!-- script statements, which may include CDATA sections -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+  id          ID             #IMPLIED
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #REQUIRED
+  src         %URI;          #IMPLIED
+  defer       (defer)        #IMPLIED
+  xml:space   (preserve)     #FIXED 'preserve'
+  >
+
+<!-- alternate content container for non script-based rendering -->
+
+<!ELEMENT noscript %Block;>
+<!ATTLIST noscript
+  %attrs;
+  >
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT body %Block;>
+<!ATTLIST body
+  %attrs;
+  onload          %Script;   #IMPLIED
+  onunload        %Script;   #IMPLIED
+  >
+
+<!ELEMENT div %Flow;>  <!-- generic language/style container -->
+<!ATTLIST div
+  %attrs;
+  >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+  %attrs;
+  >
+
+<!--=================== Headings =========================================-->
+
+<!--
+  There are six levels of headings from h1 (the most important)
+  to h6 (the least important).
+-->
+
+<!ELEMENT h1  %Inline;>
+<!ATTLIST h1
+   %attrs;
+   >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+   %attrs;
+   >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+   %attrs;
+   >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+   %attrs;
+   >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+   %attrs;
+   >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+   %attrs;
+   >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+  %attrs;
+  >
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+  %attrs;
+  >
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+  %attrs;
+  >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+  %attrs;
+  >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+  %attrs;
+  >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+  %attrs;
+  >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address %Inline;>
+<!ATTLIST address
+  %attrs;
+  >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+  %attrs;
+  >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+  %attrs;
+  xml:space (preserve) #FIXED 'preserve'
+  >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Block;>
+<!ATTLIST blockquote
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+<!--
+  ins/del are allowed in block and inline content, but its
+  inappropriate to include block content within an ins element
+  occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+  %attrs;
+  %focus;
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+  %attrs;
+  >
+
+<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+  %coreattrs;
+  %events;
+  lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #REQUIRED
+  >
+
+<!ELEMENT br EMPTY>   <!-- forced line break -->
+<!ATTLIST br
+  %coreattrs;
+  >
+
+<!ELEMENT em %Inline;>   <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;>   <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;>   <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;>   <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;>  <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;>   <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;>   <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;>   <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;>   <!-- inlined quote -->
+<!ATTLIST q
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;>   <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;>   <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;>   <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;>   <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!--==================== Object ======================================-->
+<!--
+  object is used to embed objects as part of HTML pages.
+  param elements should precede other content. Parameters
+  can also be expressed as attribute/value pairs on the
+  object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST object
+  %attrs;
+  declare     (declare)      #IMPLIED
+  classid     %URI;          #IMPLIED
+  codebase    %URI;          #IMPLIED
+  data        %URI;          #IMPLIED
+  type        %ContentType;  #IMPLIED
+  codetype    %ContentType;  #IMPLIED
+  archive     %UriList;      #IMPLIED
+  standby     %Text;         #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  >
+
+<!--
+  param is used to supply a named property value.
+  In XML it would seem natural to follow RDF and support an
+  abbreviated syntax where the param elements are replaced
+  by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  id          ID             #IMPLIED
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  valuetype   (data|ref|object) "data"
+  type        %ContentType;  #IMPLIED
+  >
+
+<!--=================== Images ===========================================-->
+
+<!--
+   To avoid accessibility problems for people who aren't
+   able to see the image, you should provide a text
+   description using the alt and longdesc attributes.
+   In addition, avoid the use of server-side image maps.
+   Note that in this DTD there is no name attribute. That
+   is only available in the transitional and frameset DTD.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+  %attrs;
+  src         %URI;          #REQUIRED
+  alt         %Text;         #REQUIRED
+  longdesc    %URI;          #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  ismap       (ismap)        #IMPLIED
+  >
+
+<!-- usemap points to a map element which may be in this document
+  or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+     separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+  %i18n;
+  %events;
+  id          ID             #REQUIRED
+  class       CDATA          #IMPLIED
+  style       %StyleSheet;   #IMPLIED
+  title       %Text;         #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+  %attrs;
+  %focus;
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  href        %URI;          #IMPLIED
+  nohref      (nohref)       #IMPLIED
+  alt         %Text;         #REQUIRED
+  >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+  %attrs;
+  action      %URI;          #REQUIRED
+  method      (get|post)     "get"
+  enctype     %ContentType;  "application/x-www-form-urlencoded"
+  onsubmit    %Script;       #IMPLIED
+  onreset     %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  accept-charset %Charsets;  #IMPLIED
+  >
+
+<!--
+  Each label must not contain more than ONE field
+  Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+  %attrs;
+  for         IDREF          #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!ENTITY % InputType
+  "(text | password | checkbox |
+    radio | submit | reset |
+    file | hidden | image | button)"
+   >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY>     <!-- form control -->
+<!ATTLIST input
+  %attrs;
+  %focus;
+  type        %InputType;    "text"
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  checked     (checked)      #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  size        CDATA          #IMPLIED
+  maxlength   %Number;       #IMPLIED
+  src         %URI;          #IMPLIED
+  alt         CDATA          #IMPLIED
+  usemap      %URI;          #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  >
+
+<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
+<!ATTLIST select
+  %attrs;
+  name        CDATA          #IMPLIED
+  size        %Number;       #IMPLIED
+  multiple    (multiple)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!ELEMENT optgroup (option)+>   <!-- option group -->
+<!ATTLIST optgroup
+  %attrs;
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #REQUIRED
+  >
+
+<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
+<!ATTLIST option
+  %attrs;
+  selected    (selected)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #IMPLIED
+  value       CDATA          #IMPLIED
+  >
+
+<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
+<!ATTLIST textarea
+  %attrs;
+  %focus;
+  name        CDATA          #IMPLIED
+  rows        %Number;       #REQUIRED
+  cols        %Number;       #REQUIRED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!--
+  The fieldset element is used to group form fields.
+  Only one legend element should occur in the content
+  and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+  %attrs;
+  >
+
+<!ELEMENT legend %Inline;>     <!-- fieldset label -->
+<!ATTLIST legend
+  %attrs;
+  accesskey   %Character;    #IMPLIED
+  >
+
+<!--
+ Content is %Flow; excluding a, form and form controls
+--> 
+<!ELEMENT button %button.content;>  <!-- push button -->
+<!ATTLIST button
+  %attrs;
+  %focus;
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  type        (button|submit|reset) "submit"
+  disabled    (disabled)     #IMPLIED
+  >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+     "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+  
+<!-- horizontal alignment attributes for cell contents
+
+  char        alignment char, e.g. char=':'
+  charoff     offset for alignment char
+-->
+<!ENTITY % cellhalign
+  "align      (left|center|right|justify|char) #IMPLIED
+   char       %Character;    #IMPLIED
+   charoff    %Length;       #IMPLIED"
+  >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+  "valign     (top|middle|bottom|baseline) #IMPLIED"
+  >
+
+<!ELEMENT table
+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption  %Inline;>
+<!ELEMENT thead    (tr)+>
+<!ELEMENT tfoot    (tr)+>
+<!ELEMENT tbody    (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col      EMPTY>
+<!ELEMENT tr       (th|td)+>
+<!ELEMENT th       %Flow;>
+<!ELEMENT td       %Flow;>
+
+<!ATTLIST table
+  %attrs;
+  summary     %Text;         #IMPLIED
+  width       %Length;       #IMPLIED
+  border      %Pixels;       #IMPLIED
+  frame       %TFrame;       #IMPLIED
+  rules       %TRules;       #IMPLIED
+  cellspacing %Length;       #IMPLIED
+  cellpadding %Length;       #IMPLIED
+  >
+
+<!ATTLIST caption
+  %attrs;
+  >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+    Use thead to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    tbody sections are rendered in scrolling panel.
+
+    Use tfoot to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+    tbody sections are rendered in scrolling panel.
+
+    Use multiple tbody sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST thead
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tfoot
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tbody
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tr
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST td
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/dtds.data/wicket-xhtml1.4-strict.dtd
----------------------------------------------------------------------
diff --git a/dtds.data/wicket-xhtml1.4-strict.dtd 
b/dtds.data/wicket-xhtml1.4-strict.dtd
new file mode 100644
index 0000000..66d4f81
--- /dev/null
+++ b/dtds.data/wicket-xhtml1.4-strict.dtd
@@ -0,0 +1,982 @@
+<!--
+   Extensible HTML version 1.0 Strict DTD
+
+   This is the same as HTML 4 Strict except for
+   changes due to the differences between XML and SGML.
+
+   Namespace = http://www.w3.org/1999/xhtml
+
+   For further information, see: http://www.w3.org/TR/xhtml1
+
+   Copyright (c) 1998-2002 W3C (MIT, INRIA, Keio),
+   All Rights Reserved. 
+
+   This DTD module is identified by the PUBLIC and SYSTEM identifiers:
+
+   PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+   SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";
+
+   $Revision: 1.1 $
+   $Date: 2002/08/01 13:56:03 $
+
+-->
+
+<!--================ Character mnemonic entities =========================-->
+
+<!ENTITY % HTMLlat1 PUBLIC
+   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent";>
+%HTMLlat1;
+
+<!ENTITY % HTMLsymbol PUBLIC
+   "-//W3C//ENTITIES Symbols for XHTML//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent";>
+%HTMLsymbol;
+
+<!ENTITY % HTMLspecial PUBLIC
+   "-//W3C//ENTITIES Special for XHTML//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent";>
+%HTMLspecial;
+
+<!--================== Imported Names ====================================-->
+
+<!ENTITY % ContentType "CDATA">
+    <!-- media type, as per [RFC2045] -->
+
+<!ENTITY % ContentTypes "CDATA">
+    <!-- comma-separated list of media types, as per [RFC2045] -->
+
+<!ENTITY % Charset "CDATA">
+    <!-- a character encoding, as per [RFC2045] -->
+
+<!ENTITY % Charsets "CDATA">
+    <!-- a space separated list of character encodings, as per [RFC2045] -->
+
+<!ENTITY % LanguageCode "NMTOKEN">
+    <!-- a language code, as per [RFC3066] -->
+
+<!ENTITY % Character "CDATA">
+    <!-- a single character, as per section 2.2 of [XML] -->
+
+<!ENTITY % Number "CDATA">
+    <!-- one or more digits -->
+
+<!ENTITY % LinkTypes "CDATA">
+    <!-- space-separated list of link types -->
+
+<!ENTITY % MediaDesc "CDATA">
+    <!-- single or comma-separated list of media descriptors -->
+
+<!ENTITY % URI "CDATA">
+    <!-- a Uniform Resource Identifier, see [RFC2396] -->
+
+<!ENTITY % UriList "CDATA">
+    <!-- a space separated list of Uniform Resource Identifiers -->
+
+<!ENTITY % Datetime "CDATA">
+    <!-- date and time information. ISO date format -->
+
+<!ENTITY % Script "CDATA">
+    <!-- script expression -->
+
+<!ENTITY % StyleSheet "CDATA">
+    <!-- style sheet data -->
+
+<!ENTITY % Text "CDATA">
+    <!-- used for titles etc. -->
+
+<!ENTITY % Length "CDATA">
+    <!-- nn for pixels or nn% for percentage length -->
+
+<!ENTITY % MultiLength "CDATA">
+    <!-- pixel, percentage, or relative -->
+
+<!ENTITY % Pixels "CDATA">
+    <!-- integer representing length in pixels -->
+
+<!-- these are used for image maps -->
+
+<!ENTITY % Shape "(rect|circle|poly|default)">
+
+<!ENTITY % Coords "CDATA">
+    <!-- comma separated list of lengths -->
+
+<!--=================== Generic Attributes ===============================-->
+
+<!-- core attributes common to most elements
+  id               document-wide unique id
+  class            space separated list of classes
+  style            associated style info
+  title            advisory title/amplification
+  wicket:id        the id for the Wicket framework
+  wicket:preview   the preview attribute for the Wicket framework
+-->
+<!ENTITY % coreattrs
+ "id             ID             #IMPLIED
+  class          CDATA          #IMPLIED
+  style          %StyleSheet;   #IMPLIED
+  title          %Text;         #IMPLIED
+  wicket:id      %Text;         #IMPLIED
+  wicket:preview %Text;         #IMPLIED"
+  >
+
+<!-- internationalization attributes
+  lang        language code (backwards compatible)
+  xml:lang    language code (as per XML 1.0 spec)
+  dir         direction for weak/neutral text
+-->
+<!ENTITY % i18n
+ "lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #IMPLIED"
+  >
+
+<!-- attributes for common UI events
+  onclick     a pointer button was clicked
+  ondblclick  a pointer button was double clicked
+  onmousedown a pointer button was pressed down
+  onmouseup   a pointer button was released
+  onmousemove a pointer was moved onto the element
+  onmouseout  a pointer was moved away from the element
+  onkeypress  a key was pressed and released
+  onkeydown   a key was pressed down
+  onkeyup     a key was released
+-->
+<!ENTITY % events
+ "onclick     %Script;       #IMPLIED
+  ondblclick  %Script;       #IMPLIED
+  onmousedown %Script;       #IMPLIED
+  onmouseup   %Script;       #IMPLIED
+  onmouseover %Script;       #IMPLIED
+  onmousemove %Script;       #IMPLIED
+  onmouseout  %Script;       #IMPLIED
+  onkeypress  %Script;       #IMPLIED
+  onkeydown   %Script;       #IMPLIED
+  onkeyup     %Script;       #IMPLIED"
+  >
+
+<!-- attributes for elements that can get the focus
+  accesskey   accessibility key character
+  tabindex    position in tabbing order
+  onfocus     the element got the focus
+  onblur      the element lost the focus
+-->
+<!ENTITY % focus
+ "accesskey   %Character;    #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED"
+  >
+
+<!ENTITY % attrs "%coreattrs; %i18n; %events;">
+
+<!--=================== Text Elements ====================================-->
+
+<!ENTITY % special.pre
+   "br | span | bdo | map">
+
+
+<!ENTITY % special
+   "%special.pre; | object | img ">
+
+<!ENTITY % fontstyle "tt | i | b | big | small ">
+
+<!ENTITY % phrase "em | strong | dfn | code | q |
+                   samp | kbd | var | cite | abbr | acronym | sub | sup ">
+
+<!ENTITY % inline.forms "input | select | textarea | label | button">
+
+<!-- these can occur at block or inline level -->
+<!ENTITY % misc.inline "ins | del | script">
+
+<!-- these can only occur at block level -->
+<!ENTITY % misc "noscript | %misc.inline;">
+
+<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
+
+<!-- %Inline; covers inline or "text-level" elements -->
+<!ENTITY % Inline "(#PCDATA | %inline; | %misc.inline;)*">
+
+<!--================== Block level elements ==============================-->
+
+<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
+<!ENTITY % lists "ul | ol | dl">
+<!ENTITY % blocktext "pre | hr | blockquote | address">
+
+<!ENTITY % block
+     "p | %heading; | div | %lists; | %blocktext; | fieldset | table">
+
+<!ENTITY % Block "(%block; | form | %misc;)*">
+
+<!-- %Flow; mixes block and inline and is used for list items etc. -->
+<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
+
+<!--================== Content models for exclusions =====================-->
+
+<!-- a elements use %Inline; excluding a -->
+
+<!ENTITY % a.content
+   "(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | 
%misc.inline;)*">
+
+<!-- pre uses %Inline excluding big, small, sup or sup -->
+
+<!ENTITY % pre.content
+   "(#PCDATA | a | %fontstyle; | %phrase; | %special.pre; | %misc.inline;
+      | %inline.forms;)*">
+
+<!-- form uses %Block; excluding form -->
+
+<!ENTITY % form.content "(%block; | %misc;)*">
+
+<!-- button uses %Flow; but excludes a, form and form controls -->
+
+<!ENTITY % button.content
+   "(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
+    table | %special; | %fontstyle; | %phrase; | %misc;)*">
+
+<!--================ Document Structure ==================================-->
+
+<!-- the namespace URI designates the document profile -->
+
+<!ELEMENT html (head, body)>
+<!ATTLIST html
+  %i18n;
+  id          ID             #IMPLIED
+  xmlns       %URI;          #FIXED 'http://www.w3.org/1999/xhtml'
+  >
+
+<!--================ Document Head =======================================-->
+
+<!ENTITY % head.misc "(script|style|meta|link|object)*">
+
+<!-- content model is %head.misc; combined with a single
+     title and an optional base element in any order -->
+
+<!ELEMENT head (%head.misc;,
+     ((title, %head.misc;, (base, %head.misc;)?) |
+      (base, %head.misc;, (title, %head.misc;))))>
+
+<!ATTLIST head
+  %i18n;
+  id          ID             #IMPLIED
+  profile     %URI;          #IMPLIED
+  >
+
+<!-- The title element is not considered part of the flow of text.
+       It should be displayed, for example as the page header or
+       window title. Exactly one title is required per document.
+    -->
+<!ELEMENT title (#PCDATA)>
+<!ATTLIST title 
+  %i18n;
+  id          ID             #IMPLIED
+  >
+
+<!-- document base URI -->
+
+<!ELEMENT base EMPTY>
+<!ATTLIST base
+  href        %URI;          #REQUIRED
+  id          ID             #IMPLIED
+  >
+
+<!-- generic metainformation -->
+<!ELEMENT meta EMPTY>
+<!ATTLIST meta
+  %i18n;
+  id          ID             #IMPLIED
+  http-equiv  CDATA          #IMPLIED
+  name        CDATA          #IMPLIED
+  content     CDATA          #REQUIRED
+  scheme      CDATA          #IMPLIED
+  >
+
+<!--
+  Relationship values can be used in principle:
+
+   a) for document specific toolbars/menus when used
+      with the link element in document head e.g.
+        start, contents, previous, next, index, end, help
+   b) to link to a separate style sheet (rel="stylesheet")
+   c) to make a link to a script (rel="script")
+   d) by stylesheets to control how collections of
+      html nodes are rendered into printed documents
+   e) to make a link to a printable version of this document
+      e.g. a PostScript or PDF version (rel="alternate" media="print")
+-->
+
+<!ELEMENT link EMPTY>
+<!ATTLIST link
+  %attrs;
+  charset     %Charset;      #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  type        %ContentType;  #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  media       %MediaDesc;    #IMPLIED
+  >
+
+<!-- style info, which may include CDATA sections -->
+<!ELEMENT style (#PCDATA)>
+<!ATTLIST style
+  %i18n;
+  id          ID             #IMPLIED
+  type        %ContentType;  #REQUIRED
+  media       %MediaDesc;    #IMPLIED
+  title       %Text;         #IMPLIED
+  xml:space   (preserve)     #FIXED 'preserve'
+  >
+
+<!-- script statements, which may include CDATA sections -->
+<!ELEMENT script (#PCDATA)>
+<!ATTLIST script
+  id          ID             #IMPLIED
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #REQUIRED
+  src         %URI;          #IMPLIED
+  defer       (defer)        #IMPLIED
+  xml:space   (preserve)     #FIXED 'preserve'
+  >
+
+<!-- alternate content container for non script-based rendering -->
+
+<!ELEMENT noscript %Block;>
+<!ATTLIST noscript
+  %attrs;
+  >
+
+<!--=================== Document Body ====================================-->
+
+<!ELEMENT body %Block;>
+<!ATTLIST body
+  %attrs;
+  onload          %Script;   #IMPLIED
+  onunload        %Script;   #IMPLIED
+  >
+
+<!ELEMENT div %Flow;>  <!-- generic language/style container -->
+<!ATTLIST div
+  %attrs;
+  >
+
+<!--=================== Paragraphs =======================================-->
+
+<!ELEMENT p %Inline;>
+<!ATTLIST p
+  %attrs;
+  >
+
+<!--=================== Headings =========================================-->
+
+<!--
+  There are six levels of headings from h1 (the most important)
+  to h6 (the least important).
+-->
+
+<!ELEMENT h1  %Inline;>
+<!ATTLIST h1
+   %attrs;
+   >
+
+<!ELEMENT h2 %Inline;>
+<!ATTLIST h2
+   %attrs;
+   >
+
+<!ELEMENT h3 %Inline;>
+<!ATTLIST h3
+   %attrs;
+   >
+
+<!ELEMENT h4 %Inline;>
+<!ATTLIST h4
+   %attrs;
+   >
+
+<!ELEMENT h5 %Inline;>
+<!ATTLIST h5
+   %attrs;
+   >
+
+<!ELEMENT h6 %Inline;>
+<!ATTLIST h6
+   %attrs;
+   >
+
+<!--=================== Lists ============================================-->
+
+<!-- Unordered list -->
+
+<!ELEMENT ul (li)+>
+<!ATTLIST ul
+  %attrs;
+  >
+
+<!-- Ordered (numbered) list -->
+
+<!ELEMENT ol (li)+>
+<!ATTLIST ol
+  %attrs;
+  >
+
+<!-- list item -->
+
+<!ELEMENT li %Flow;>
+<!ATTLIST li
+  %attrs;
+  >
+
+<!-- definition lists - dt for term, dd for its definition -->
+
+<!ELEMENT dl (dt|dd)+>
+<!ATTLIST dl
+  %attrs;
+  >
+
+<!ELEMENT dt %Inline;>
+<!ATTLIST dt
+  %attrs;
+  >
+
+<!ELEMENT dd %Flow;>
+<!ATTLIST dd
+  %attrs;
+  >
+
+<!--=================== Address ==========================================-->
+
+<!-- information on author -->
+
+<!ELEMENT address %Inline;>
+<!ATTLIST address
+  %attrs;
+  >
+
+<!--=================== Horizontal Rule ==================================-->
+
+<!ELEMENT hr EMPTY>
+<!ATTLIST hr
+  %attrs;
+  >
+
+<!--=================== Preformatted Text ================================-->
+
+<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
+
+<!ELEMENT pre %pre.content;>
+<!ATTLIST pre
+  %attrs;
+  xml:space (preserve) #FIXED 'preserve'
+  >
+
+<!--=================== Block-like Quotes ================================-->
+
+<!ELEMENT blockquote %Block;>
+<!ATTLIST blockquote
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!--=================== Inserted/Deleted Text ============================-->
+
+<!--
+  ins/del are allowed in block and inline content, but its
+  inappropriate to include block content within an ins element
+  occurring in inline content.
+-->
+<!ELEMENT ins %Flow;>
+<!ATTLIST ins
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!ELEMENT del %Flow;>
+<!ATTLIST del
+  %attrs;
+  cite        %URI;          #IMPLIED
+  datetime    %Datetime;     #IMPLIED
+  >
+
+<!--================== The Anchor Element ================================-->
+
+<!-- content is %Inline; except that anchors shouldn't be nested -->
+
+<!ELEMENT a %a.content;>
+<!ATTLIST a
+  %attrs;
+  %focus;
+  charset     %Charset;      #IMPLIED
+  type        %ContentType;  #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  href        %URI;          #IMPLIED
+  hreflang    %LanguageCode; #IMPLIED
+  rel         %LinkTypes;    #IMPLIED
+  rev         %LinkTypes;    #IMPLIED
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  >
+
+<!--===================== Inline Elements ================================-->
+
+<!ELEMENT span %Inline;> <!-- generic language/style container -->
+<!ATTLIST span
+  %attrs;
+  >
+
+<!ELEMENT bdo %Inline;>  <!-- I18N BiDi over-ride -->
+<!ATTLIST bdo
+  %coreattrs;
+  %events;
+  lang        %LanguageCode; #IMPLIED
+  xml:lang    %LanguageCode; #IMPLIED
+  dir         (ltr|rtl)      #REQUIRED
+  >
+
+<!ELEMENT br EMPTY>   <!-- forced line break -->
+<!ATTLIST br
+  %coreattrs;
+  >
+
+<!ELEMENT em %Inline;>   <!-- emphasis -->
+<!ATTLIST em %attrs;>
+
+<!ELEMENT strong %Inline;>   <!-- strong emphasis -->
+<!ATTLIST strong %attrs;>
+
+<!ELEMENT dfn %Inline;>   <!-- definitional -->
+<!ATTLIST dfn %attrs;>
+
+<!ELEMENT code %Inline;>   <!-- program code -->
+<!ATTLIST code %attrs;>
+
+<!ELEMENT samp %Inline;>   <!-- sample -->
+<!ATTLIST samp %attrs;>
+
+<!ELEMENT kbd %Inline;>  <!-- something user would type -->
+<!ATTLIST kbd %attrs;>
+
+<!ELEMENT var %Inline;>   <!-- variable -->
+<!ATTLIST var %attrs;>
+
+<!ELEMENT cite %Inline;>   <!-- citation -->
+<!ATTLIST cite %attrs;>
+
+<!ELEMENT abbr %Inline;>   <!-- abbreviation -->
+<!ATTLIST abbr %attrs;>
+
+<!ELEMENT acronym %Inline;>   <!-- acronym -->
+<!ATTLIST acronym %attrs;>
+
+<!ELEMENT q %Inline;>   <!-- inlined quote -->
+<!ATTLIST q
+  %attrs;
+  cite        %URI;          #IMPLIED
+  >
+
+<!ELEMENT sub %Inline;> <!-- subscript -->
+<!ATTLIST sub %attrs;>
+
+<!ELEMENT sup %Inline;> <!-- superscript -->
+<!ATTLIST sup %attrs;>
+
+<!ELEMENT tt %Inline;>   <!-- fixed pitch font -->
+<!ATTLIST tt %attrs;>
+
+<!ELEMENT i %Inline;>   <!-- italic font -->
+<!ATTLIST i %attrs;>
+
+<!ELEMENT b %Inline;>   <!-- bold font -->
+<!ATTLIST b %attrs;>
+
+<!ELEMENT big %Inline;>   <!-- bigger font -->
+<!ATTLIST big %attrs;>
+
+<!ELEMENT small %Inline;>   <!-- smaller font -->
+<!ATTLIST small %attrs;>
+
+<!--==================== Object ======================================-->
+<!--
+  object is used to embed objects as part of HTML pages.
+  param elements should precede other content. Parameters
+  can also be expressed as attribute/value pairs on the
+  object element itself when brevity is desired.
+-->
+
+<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
+<!ATTLIST object
+  %attrs;
+  declare     (declare)      #IMPLIED
+  classid     %URI;          #IMPLIED
+  codebase    %URI;          #IMPLIED
+  data        %URI;          #IMPLIED
+  type        %ContentType;  #IMPLIED
+  codetype    %ContentType;  #IMPLIED
+  archive     %UriList;      #IMPLIED
+  standby     %Text;         #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  >
+
+<!--
+  param is used to supply a named property value.
+  In XML it would seem natural to follow RDF and support an
+  abbreviated syntax where the param elements are replaced
+  by attribute value pairs on the object start tag.
+-->
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  id          ID             #IMPLIED
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  valuetype   (data|ref|object) "data"
+  type        %ContentType;  #IMPLIED
+  >
+
+<!--=================== Images ===========================================-->
+
+<!--
+   To avoid accessibility problems for people who aren't
+   able to see the image, you should provide a text
+   description using the alt and longdesc attributes.
+   In addition, avoid the use of server-side image maps.
+   Note that in this DTD there is no name attribute. That
+   is only available in the transitional and frameset DTD.
+-->
+
+<!ELEMENT img EMPTY>
+<!ATTLIST img
+  %attrs;
+  src         %URI;          #REQUIRED
+  alt         %Text;         #REQUIRED
+  longdesc    %URI;          #IMPLIED
+  height      %Length;       #IMPLIED
+  width       %Length;       #IMPLIED
+  usemap      %URI;          #IMPLIED
+  ismap       (ismap)        #IMPLIED
+  >
+
+<!-- usemap points to a map element which may be in this document
+  or an external document, although the latter is not widely supported -->
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+     separate document although this isn't yet widely supported -->
+
+<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
+<!ATTLIST map
+  %i18n;
+  %events;
+  id          ID             #REQUIRED
+  class       CDATA          #IMPLIED
+  style       %StyleSheet;   #IMPLIED
+  title       %Text;         #IMPLIED
+  name        NMTOKEN        #IMPLIED
+  >
+
+<!ELEMENT area EMPTY>
+<!ATTLIST area
+  %attrs;
+  %focus;
+  shape       %Shape;        "rect"
+  coords      %Coords;       #IMPLIED
+  href        %URI;          #IMPLIED
+  nohref      (nohref)       #IMPLIED
+  alt         %Text;         #REQUIRED
+  >
+
+<!--================ Forms ===============================================-->
+<!ELEMENT form %form.content;>   <!-- forms shouldn't be nested -->
+
+<!ATTLIST form
+  %attrs;
+  action      %URI;          #REQUIRED
+  method      (get|post)     "get"
+  enctype     %ContentType;  "application/x-www-form-urlencoded"
+  onsubmit    %Script;       #IMPLIED
+  onreset     %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  accept-charset %Charsets;  #IMPLIED
+  >
+
+<!--
+  Each label must not contain more than ONE field
+  Label elements shouldn't be nested.
+-->
+<!ELEMENT label %Inline;>
+<!ATTLIST label
+  %attrs;
+  for         IDREF          #IMPLIED
+  accesskey   %Character;    #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  >
+
+<!ENTITY % InputType
+  "(text | password | checkbox |
+    radio | submit | reset |
+    file | hidden | image | button)"
+   >
+
+<!-- the name attribute is required for all but submit & reset -->
+
+<!ELEMENT input EMPTY>     <!-- form control -->
+<!ATTLIST input
+  %attrs;
+  %focus;
+  type        %InputType;    "text"
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  checked     (checked)      #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  size        CDATA          #IMPLIED
+  maxlength   %Number;       #IMPLIED
+  src         %URI;          #IMPLIED
+  alt         CDATA          #IMPLIED
+  usemap      %URI;          #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  accept      %ContentTypes; #IMPLIED
+  >
+
+<!ELEMENT select (optgroup|option)+>  <!-- option selector -->
+<!ATTLIST select
+  %attrs;
+  name        CDATA          #IMPLIED
+  size        %Number;       #IMPLIED
+  multiple    (multiple)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  tabindex    %Number;       #IMPLIED
+  onfocus     %Script;       #IMPLIED
+  onblur      %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!ELEMENT optgroup (option)+>   <!-- option group -->
+<!ATTLIST optgroup
+  %attrs;
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #REQUIRED
+  >
+
+<!ELEMENT option (#PCDATA)>     <!-- selectable choice -->
+<!ATTLIST option
+  %attrs;
+  selected    (selected)     #IMPLIED
+  disabled    (disabled)     #IMPLIED
+  label       %Text;         #IMPLIED
+  value       CDATA          #IMPLIED
+  >
+
+<!ELEMENT textarea (#PCDATA)>     <!-- multi-line text field -->
+<!ATTLIST textarea
+  %attrs;
+  %focus;
+  name        CDATA          #IMPLIED
+  rows        %Number;       #REQUIRED
+  cols        %Number;       #REQUIRED
+  disabled    (disabled)     #IMPLIED
+  readonly    (readonly)     #IMPLIED
+  onselect    %Script;       #IMPLIED
+  onchange    %Script;       #IMPLIED
+  >
+
+<!--
+  The fieldset element is used to group form fields.
+  Only one legend element should occur in the content
+  and if present should only be preceded by whitespace.
+-->
+<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
+<!ATTLIST fieldset
+  %attrs;
+  >
+
+<!ELEMENT legend %Inline;>     <!-- fieldset label -->
+<!ATTLIST legend
+  %attrs;
+  accesskey   %Character;    #IMPLIED
+  >
+
+<!--
+ Content is %Flow; excluding a, form and form controls
+--> 
+<!ELEMENT button %button.content;>  <!-- push button -->
+<!ATTLIST button
+  %attrs;
+  %focus;
+  name        CDATA          #IMPLIED
+  value       CDATA          #IMPLIED
+  type        (button|submit|reset) "submit"
+  disabled    (disabled)     #IMPLIED
+  >
+
+<!--======================= Tables =======================================-->
+
+<!-- Derived from IETF HTML table standard, see [RFC1942] -->
+
+<!--
+ The border attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The frame attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the valign attribute.
+-->
+<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The rules attribute defines which rules to draw between cells:
+
+ If rules is absent then assume:
+     "none" if border is absent or border="0" otherwise "all"
+-->
+
+<!ENTITY % TRules "(none | groups | rows | cols | all)">
+  
+<!-- horizontal alignment attributes for cell contents
+
+  char        alignment char, e.g. char=':'
+  charoff     offset for alignment char
+-->
+<!ENTITY % cellhalign
+  "align      (left|center|right|justify|char) #IMPLIED
+   char       %Character;    #IMPLIED
+   charoff    %Length;       #IMPLIED"
+  >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cellvalign
+  "valign     (top|middle|bottom|baseline) #IMPLIED"
+  >
+
+<!ELEMENT table
+     (caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
+<!ELEMENT caption  %Inline;>
+<!ELEMENT thead    (tr)+>
+<!ELEMENT tfoot    (tr)+>
+<!ELEMENT tbody    (tr)+>
+<!ELEMENT colgroup (col)*>
+<!ELEMENT col      EMPTY>
+<!ELEMENT tr       (th|td)+>
+<!ELEMENT th       %Flow;>
+<!ELEMENT td       %Flow;>
+
+<!ATTLIST table
+  %attrs;
+  summary     %Text;         #IMPLIED
+  width       %Length;       #IMPLIED
+  border      %Pixels;       #IMPLIED
+  frame       %TFrame;       #IMPLIED
+  rules       %TRules;       #IMPLIED
+  cellspacing %Length;       #IMPLIED
+  cellpadding %Length;       #IMPLIED
+  >
+
+<!ATTLIST caption
+  %attrs;
+  >
+
+<!--
+colgroup groups a set of col elements. It allows you to group
+several semantically related columns together.
+-->
+<!ATTLIST colgroup
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+ col elements define the alignment properties for cells in
+ one or more columns.
+
+ The width attribute specifies the width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+
+ The span attribute causes the attributes of one
+ col element to apply to more than one column.
+-->
+<!ATTLIST col
+  %attrs;
+  span        %Number;       "1"
+  width       %MultiLength;  #IMPLIED
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!--
+    Use thead to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    tbody sections are rendered in scrolling panel.
+
+    Use tfoot to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+    tbody sections are rendered in scrolling panel.
+
+    Use multiple tbody sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST thead
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tfoot
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tbody
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST tr
+  %attrs;
+  %cellhalign;
+  %cellvalign;
+  >
+
+
+<!-- Scope is simpler than headers attribute for common tables -->
+<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
+
+<!-- th is for headers, td for data and for cells acting as both -->
+
+<!ATTLIST th
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+
+<!ATTLIST td
+  %attrs;
+  abbr        %Text;         #IMPLIED
+  axis        CDATA          #IMPLIED
+  headers     IDREFS         #IMPLIED
+  scope       %Scope;        #IMPLIED
+  rowspan     %Number;       "1"
+  colspan     %Number;       "1"
+  %cellhalign;
+  %cellvalign;
+  >
+

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/favicon.ico
----------------------------------------------------------------------
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 0000000..d54f35d
Binary files /dev/null and b/favicon.ico differ

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/help/email.md
----------------------------------------------------------------------
diff --git a/help/email.md b/help/email.md
new file mode 100644
index 0000000..ae23873
--- /dev/null
+++ b/help/email.md
@@ -0,0 +1,61 @@
+---
+layout: default
+title: Get help via email
+---
+
+We run three main mailing lists:
+
+ * The **announcements** mailing list for announcing new releases and other
+   important Wicket news.
+ * The **users** mailing list for developers working with Wicket&emdash;that
+   would be if you're using Wicket or are interested in using it
+ * The **dev** mailing list for talking about development of Wicket itself. If
+   you doubt that your message belongs on this list, use the **users** list.
+ * There’s also a **commits** mailing list for following SVN commits and 
JIRA issues.
+
+## Subscribing and unsubscribing ##
+
+<table>
+       <tr>
+               <td>Announcements list</td>
+               <td>Low traffic</td>
+               <td><a 
href="http://mail-archives.apache.org/mod_mbox/wicket-announce/";>Archives</a></td>
+               <td><a 
href="http://wicket-announce.markmail.org/";>Search</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Subscribe to Apache 
Wicket announcements list">Subscribe</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Unsubscribe from 
Apache Wicket announcements list">Unsubscribe</a></td>
+               <td><a href="mailto:[email protected]?subject=Get 
help for Apache Wicket announcements list">Help</a></td>
+       </tr>
+       <tr>
+               <td>Users list</td>
+               <td>High traffic</td>
+               <td><a 
href="http://mail-archives.apache.org/mod_mbox/wicket-users/";>Archives</a></td>
+               <td><a href="http://wicket-users.markmail.org/";>Search</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Subscribe to Apache 
Wicket users list">Subscribe</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Unsubscribe from 
Apache Wicket users list">Unsubscribe</a></td>
+               <td><a href="mailto:[email protected]?subject=Get 
help for Apache Wicket users list">Help</a></td>
+       </tr>
+       <tr>
+               <td>Wicket development list</td>
+               <td>Medium traffic</td>
+               <td><a 
href="http://mail-archives.apache.org/mod_mbox/wicket-dev/";>Archives</a></td>
+               <td><a href="http://wicket-dev.markmail.org/";>Search</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Subscribe to Apache Wicket 
development list">Subscribe</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Unsubscribe from Apache 
Wicket development list">Unsubscribe</a></td>
+               <td><a href="mailto:[email protected]?subject=Help for 
Apache Wicket development list">Help</a></td>
+       </tr>
+       <tr>
+               <td>Commits list</td>
+               <td>High traffic</td>
+               <td><a 
href="http://mail-archives.apache.org/mod_mbox/wicket-commits/";>Archives</a></td>
+               <td><a 
href="http://wicket-commits.markmail.org/";>Search</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Subscribe to Apache 
Wicket commits list">Subscribe</a></td>
+               <td><a 
href="mailto:[email protected]?subject=Unsubscribe from 
Apache Wicket commits list">Unsubscribe</a></td>
+               <td><a href="mailto:[email protected]?subject=Help 
for Apache Wicket commits list">Help</a></td>
+       </tr>
+</table>
+
+## Report a security issue ##
+
+If you have a security issue to report, please contact the [Wicket
+PMC](mailto:[email protected]?Security).
+

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/help/index.md
----------------------------------------------------------------------
diff --git a/help/index.md b/help/index.md
new file mode 100644
index 0000000..cf73f2d
--- /dev/null
+++ b/help/index.md
@@ -0,0 +1,71 @@
+---
+layout: default
+title: Get help
+---
+
+There are two types of help available for Apache Wicket:
+
+1. Support from the Apache Wicket open source project
+2. Commercial Support
+
+## Support From the Apache Wicket Open Source Project ##
+
+If you are experiencing problems using Wicket please report your problem via
+the Issue Tracker. You may also find it useful to discuss your issues with the
+community on one of the Mailing Lists. Below are some resources to check
+before asking for help:
+
+* [Mailing Lists](email.html)
+* [Issue Tracker](https://issues.apache.org/jira/browse/WICKET)
+* [IRC](irc://irc.freenode.net/%23%23wicket)
+
+Before asking for help with your issue, it's a very good idea to search for
+your issue in the mailing list archives and the FAQ. The majority of issues
+can be solved in this manner without having to send an email to the mailing
+list. If you don't find an answer, use the guidelines below when writing the
+e-mail.
+
+### How to Get Help ###
+
+Whenever you are reporting a problem, please be sure to include as much
+information as possible; the more we know, the better the chance of a quicker
+resolution.
+
+* which version of the software
+* what platform and JDK
+* any particular JEE container being used - if so what version
+* stack traces generally really help! If in doubt include the whole thing;
+  often exceptions get wrapped in other exceptions and the exception right
+  near the bottom explains the actual error, not the first few lines at the
+  top. Its very easy for us to skim-read past unnecessary parts of a stack
+  trace.
+* log output can be useful too; sometimes enabling DEBUG logging can help your
+  code & configuration files are often useful
+
+### How to get help faster ###
+
+We can help you much quicker if you try the following
+
+* provide us with a JUnit test case that demonstrates your issue. e.g. if you
+  think you've found a bug, can you create a test case to demonstrate the bug?
+* submit a patch fixing the bug! (We also buy you beer when we meet you if you
+  submit bug fixes for memory leaks or performance related issues, if you can
+  run a profiler on your test case and attach the output as a file (or zipped
+  file if its huge) to the JIRA we can normally fix things much faster. e.g.
+  run JProfiler or YourKit on your code and send us the output. To find memory
+  leaks its quicker to resolve if you can tell us what classes are taking up
+  all of the RAM; we can normally figure out whats wrong from that.
+
+## Commercial Support ##
+
+The list of companies found at [this wiki
+page](https://cwiki.apache.org/confluence/display/WICKET/Companies+that+provide+services)
+provide commercial services for Wicket which ranges from training courses,
+consultancy and even project development.
+
+Being mentioned here is not an indication of official "endorsement" by the
+Apache Software Foundation, but is instead provided as a public service. This
+list is in no way a complete listing of the many organizations providing
+either free or for cost support for ASF projects. If you would like to be
+added to this list, or removed, sign up for the wiki and add yourself to the
+list.

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/help/irc.md
----------------------------------------------------------------------
diff --git a/help/irc.md b/help/irc.md
new file mode 100644
index 0000000..16427db
--- /dev/null
+++ b/help/irc.md
@@ -0,0 +1,4 @@
+---
+layout: default
+title: Get help on IRC
+---

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/help/reportabug.md
----------------------------------------------------------------------
diff --git a/help/reportabug.md b/help/reportabug.md
new file mode 100644
index 0000000..e308c7c
--- /dev/null
+++ b/help/reportabug.md
@@ -0,0 +1,134 @@
+---
+layout: default
+title: Report a bug
+---
+
+Wicket manages bug reports via the [Apache Jira 
site](http://issues.apache.org/jira/browse/WICKET)
+
+It requires you to register with the site, to avoid spamming, and attribute
+credit where its due. It's relatively painless. Much harder is writing a
+clear and concise bug report.
+
+Etiquette for a bug report is:
+
+1. **Always search for an existing bug report about the issue before adding 
+   your own.** This can be tricky, but several duplicate bug reports just 
+   cause an administration headache for developers. If in doubt you can
+   always post the details of the bug to the [mailing list](email.html), and
+   wait to be asked to submit a bug report by a dev. But the jira search
+   functionality is pretty good, so do have go.
+2. **Be clear and concise in your language.** Wording a short but useful 
+   summary, with a description that contains all the steps leading up to the
+   error plus any extra circumstantial evidence, is not always easy, but its
+   vital to getting the issue resolved, and really valuable. 
+3. **Watch the bug.** The developers may ask you for more information via the
+   issue comments, so its good practices to check in on the issue whilst its
+   still open.
+4. **Don't be shy of maintaining the issue.** If you find its a duplicate of
+   some other issue that was reported before yours, then mark it as a
+   duplicate, and watch the original. If you get more info on the bug, add it
+   as a comment. If it doesnt get noticed by a dev, try submitting a
+   quickstart or better still a patch. Ask for it to be reviewed via the
+   mailing list.
+
+You will be rewarded with [subtle 
kudos](https://issues.apache.org/jira/secure/ConfigureReport.jspa?versionId=-1&issueStatus=all&selectedProjectId=12310561&reportKey=com.sourcelabs.jira.plugin.report.contributions%3Acontributionreport&Next=Next)
+and the bug is much more likely to be fixed promptly.
+
+## Build a Quickstart
+
+See [getting started](/start/quickstart.html) for a good introduction to
+building a barebone Wicket project from one command. There is even a tool to
+let you customise the command for your project.
+
+Or you can watch Al Maw's excellent
+[screencast](http://herebebeasties.com/2007-10-07/wicket-quickstart) covering
+the whole process of installing and running Maven, and getting your Eclipse
+workspace set up.
+
+The Maven command provided there is the quickest way to get a working Wicket
+project that you can use to clearly demonstrate a bug.
+
+Once you have an example that shows the minimum conditions under which the
+issue occurs, then you can zip up the project and attach it to the relevant
+issue.
+
+When a Wicket dev [asks you to submit a 
quickstart](https://issues.apache.org/jira/browse/WICKET-497?focusedCommentId=12521870&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_12521870),
+that is what they mean.
+
+That is far more useful than posting reams of your application code and
+telling everyone it doesn't work. The former will help diagnose the problem,
+the latter will mainly get you abused on the mailing list.
+
+## Submit a patch ##
+
+This is the most involved, but the most rewarding route ;-).
+In a nutshell this involves:
+ * Checking out the Wicket source code from the Subversion repository.
+ * Building it via mvn or IDE plugin.
+ * Proving the bug exists, either via a Quickstart, or writing a unit test.
+ * Submitting your fix as a Subversion patch file.
+
+This guide will outline how to do it with Eclipse + Subclipse + m2eclipse.
+If you prefer the command line, then start here: [building from 
source](/contribute/build.html)
+If you can provide a walk through for your IDE of choice then please do add it.
+   
+### Setting up ###
+
+Using an Eclipse 3.4.x flavour of your choice add install the following plugins
+
+* [Subclipse for accessing Subversion](http://subclipse.tigris.org/) - Eclipse 
update site URL http://subclipse.tigris.org/update_1.6.x
+* [m2eclipse for maven support](http://m2eclipse.sonatype.org/) - Eclipse 
update site: http://m2eclipse.sonatype.org/update/
+
+I usually install the entire Subclipse plugin, and all of m2eclipse except the 
Project configurators unless I am using a J2EE version of Eclipse.
+I had a spurious error when adding the m2eclipse update site, "No repository 
found at http://www.md.pp.ru/~eu/12/"; but it didn't cause any problems with the 
install.
+ 
+### Checking out Wicket from Subversion ###
+
+* **Add the Wicket Subversion repository** - Navigate to Window > Show
+  Perspective > Other... > SVN Repository Exploring (eclipse uses the term
+  perspective to mean a collection of views, and a view is one single panel
+  with some specific function like the navigator view or the editor view) In
+  the SVN Repositories tab on the left, right click > New > Repository
+  Location... and paste in the repository url:
+  http://svn.apache.org/repos/asf/wicket
+
+* **Checkout the code** - Click on the new Repository and navigate to: trunk
+  > right click > checkout as maven project. Some serious churning will now
+  occur as you download of Wicket source, and then maven crawls the internet
+  for all the required libraries. Seriously, go for a stroll in the sunshine;
+  the checkout and build took about 6minutes on my machine, and thats without
+  maven needing to download anything.
+
+* **Building Wicket** - All that waiting wasn't in vain, as you should now
+  have a fully checked out, dependency managed, built, possibly working,
+  Wicket code base.
+
+### Kick the tires ###
+
+* Create a Quickstart via the wicket-archetype-quickstart
+* Navigate to the pom.xml in your Quickstart project.
+* Set version element to the same value as the one found in the Wicket project 
pom.xml (e.g. 1.4-SNAPSHOT)
+* The plugin should automagically resolve the quickstart's Wicket dependency 
from the project rather than a .jar
+* Find WicketApplication.java
+* Click through to WebApplication class from the extends section of the class 
definition.
+* If all is well, you should be taken to the Wicket project .java version of 
WebApplication rather than a .class file from a .jar  
+
+### Proving a bug exists ###
+
+* **Writing a unit test with WicketTester**
+
+### Submitting a patch ###
+
+* **Extract your changeset into a patch file** - As we don't all have commit
+  access to the svn repository, we need some other way of getting our changes
+  to the developers. This is done by making an svn patch file, essentially a
+  plain text diff, with some subversion specific formatting. With the
+  Subclipse plug-in creating a patch file is as simple as:
+
+  1. Right click on the project root (e.g. wicket)
+  2. > Team > Create Patch...
+  3. Save In File System (and provide a filename, of the form **WICKET-&lt;bug 
id number>-fix.patch**)
+  4. > Next >
+  5. Patch Root: Project
+  6. Finish, you now have your patch file where you chose to put it in step 3
+  7. Attach it to the relevant bug report with any further information you have

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/help/security.md
----------------------------------------------------------------------
diff --git a/help/security.md b/help/security.md
new file mode 100644
index 0000000..8c61c09
--- /dev/null
+++ b/help/security.md
@@ -0,0 +1,8 @@
+---
+layout: default
+title: Report a security issue
+---
+
+If you encounter a security related issue, please contact the Wicket team
+privately using the following address: [email protected]. We will do
+our best to solve the issue as soon as possible.

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/help/support.md
----------------------------------------------------------------------
diff --git a/help/support.md b/help/support.md
new file mode 100644
index 0000000..45134c7
--- /dev/null
+++ b/help/support.md
@@ -0,0 +1,4 @@
+---
+layout: default
+title: Get help from companies
+---

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/img/logo-bigger.png
----------------------------------------------------------------------
diff --git a/img/logo-bigger.png b/img/logo-bigger.png
new file mode 100644
index 0000000..260d037
Binary files /dev/null and b/img/logo-bigger.png differ

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/index.md
----------------------------------------------------------------------
diff --git a/index.md b/index.md
new file mode 100644
index 0000000..a116abe
--- /dev/null
+++ b/index.md
@@ -0,0 +1,48 @@
+---
+layout: default
+title: Welcome to Apache Wicket
+---
+With proper mark-up/logic separation, a POJO data model, and a refreshing
+lack of XML, Apache Wicket makes developing web-apps simple and enjoyable
+again. Swap the boilerplate, complex debugging and brittle code for powerful,
+reusable components written with plain Java and HTML.
+
+* Check the [feature list](meet/features.html)
+* Read some [Wicket buzz](meet/buzz.html), some [Wicket blogs](meet/blogs.html)
+* Find out why you should [use Wicket](meet/introduction.html)
+* Check out some selected [examples in detail](learn/examples) or see them and 
many more in [live action](http://www.wicket-library.com/wicket-examples/)
+* Take a look at our live [component 
reference](http://www.wicket-library.com/wicket-examples/compref/)
+* Go and [download Wicket](start/download.html)
+* See what [extras are available](learn/projects)
+
+Wicket is released under the [Apache License, Version
+2.0](http://www.apache.org/licenses/LICENSE-2.0.html).
+
+{% for post in site.posts limit:2 %}
+# [{{ post.title}}]({{post.url}}) #
+{{post.content}}
+{% endfor %}
+
+<h1>Older news items</h1>
+<ul>
+{% for post in site.posts limit:10 offset:2 %}
+
+<li>
+        <a href="{{post.url}}">{{post.title}}</a> - <span>{{post.date | 
date_to_string}}</span><br />
+        {{ post.content | strip_html | truncatewords:25 }}
+        <a href="{{post.url}}">more</a></li>
+{% endfor %}
+</ul>
+# Books about Wicket
+
+The following books are published regarding Apache Wicket (click a cover to
+learn more about the book):
+
+<a href="/learn/books/awc.html"><img src="/learn/books/awc.png" height="200px" 
/></a>
+<a href="/learn/books/wia.html"><img src="/learn/books/wia.png" height="200px" 
/></a>
+<a href="/learn/books/ewdww.html"><img src="/learn/books/ewdww.png" 
height="200px" /></a>
+<a href="/learn/books/prowicket.html"><img src="/learn/books/prowicket.png" 
height="200px" /></a>
+<a href="/learn/books/kwij.html"><img src="/learn/books/kwij.png" 
height="200px" /></a>
+<a href="/learn/books/praxisbuchwicket.html"><img 
src="/learn/books/praxisbuchwicket.png" height="200px" /></a>
+<a href="/learn/books/wicket-jp.html"><img src="/learn/books/wicket-jp.png" 
height="200px" /></a>
+<a href="/learn/books/koda.html"><img src="/learn/books/koda.jpg" 
height="200px" /></a>

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/js/html5shiv.js
----------------------------------------------------------------------
diff --git a/js/html5shiv.js b/js/html5shiv.js
new file mode 100644
index 0000000..1c3a552
--- /dev/null
+++ b/js/html5shiv.js
@@ -0,0 +1,5 @@
+// html5shiv MIT @rem remysharp.com/html5-enabling-script
+// iepp v1.5.1 MIT @jon_neal iecss.com/print-protector
+/*@cc_on@if(@_jscript_version<9)(function(p,e){function 
q(a,b){if(g[a])g[a].styleSheet.cssText+=b;else{var 
c=r[l],d=e[j]("style");d.media=a;c.insertBefore(d,c[l]);g[a]=d;q(a,b)}}function 
s(a,b){for(var c=new 
RegExp("\\b("+m+")\\b(?!.*[;}])","gi"),d=function(k){return".iepp_"+k},h=-1;++h<a.length;){b=a[h].media||b;s(a[h].imports,b);q(b,a[h].cssText.replace(c,d))}}function
 t(){for(var a,b=e.getElementsByTagName("*"),c,d,h=new 
RegExp("^"+m+"$","i"),k=-1;++k<b.length;)if((a=b[k])&&(d=a.nodeName.match(h))){c=new
 RegExp("^\\s*<"+d+"(.*)\\/"+
+d+">\\s*$","i");i.innerHTML=a.outerHTML.replace(/\r|\n/g," 
").replace(c,a.currentStyle.display=="block"?"<div$1/div>":"<span$1/span>");c=i.childNodes[0];c.className+="
 
iepp_"+d;c=f[f.length]=[a,c];a.parentNode.replaceChild(c[1],c[0])}s(e.styleSheets,"all")}function
 u(){for(var 
a=-1,b;++a<f.length;)f[a][1].parentNode.replaceChild(f[a][0],f[a][1]);for(b in 
g)r[l].removeChild(g[b]);g={};f=[]}for(var m="abbr article aside audio canvas 
command datalist details figure figcaption footer header hgroup mark meter nav 
output progress section summary time video".replace(/ /g,
+"|"),n=m.split("|"),r=e.documentElement,i=e.createDocumentFragment(),g={},f=[],o=-1,l="firstChild",j="createElement";++o<n.length;){e[j](n[o]);i[j](n[o])}i=i.appendChild(e[j]("div"));p.attachEvent("onbeforeprint",t);p.attachEvent("onafterprint",u)})(this,document)@end@*/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/js/zeroclipboard/ZeroClipboard.as
----------------------------------------------------------------------
diff --git a/js/zeroclipboard/ZeroClipboard.as 
b/js/zeroclipboard/ZeroClipboard.as
new file mode 100755
index 0000000..26ad18b
--- /dev/null
+++ b/js/zeroclipboard/ZeroClipboard.as
@@ -0,0 +1,81 @@
+package {
+       // Simple Set Clipboard System
+       // Author: Joseph Huckaby
+       
+       import flash.display.Stage;
+       import flash.display.Sprite;
+       import flash.display.LoaderInfo;
+       import flash.display.StageScaleMode;
+       import flash.events.*;
+       import flash.display.StageAlign;
+       import flash.display.StageScaleMode;
+       import flash.external.ExternalInterface;
+       import flash.system.Security;
+       import flash.utils.*;
+       import flash.system.System;
+ 
+       public class ZeroClipboard extends Sprite {
+               
+               private var id:String = '';
+               private var button:Sprite;
+               private var clipText:String = '';
+               
+               public function ZeroClipboard() {
+                       // constructor, setup event listeners and external 
interfaces
+                       stage.scaleMode = StageScaleMode.EXACT_FIT;
+                       flash.system.Security.allowDomain("*");
+                       
+                       // import flashvars
+                       var flashvars:Object = LoaderInfo( this.root.loaderInfo 
).parameters;
+                       id = flashvars.id;
+                       
+                       // invisible button covers entire stage
+                       button = new Sprite();
+                       button.buttonMode = true;
+                       button.useHandCursor = true;
+                       button.graphics.beginFill(0xCCFF00);
+                       button.graphics.drawRect(0, 0, 
Math.floor(flashvars.width), Math.floor(flashvars.height));
+                       button.alpha = 0.0;
+                       addChild(button);
+                       button.addEventListener(MouseEvent.CLICK, clickHandler);
+                       
+                       button.addEventListener(MouseEvent.MOUSE_OVER, 
function(event:Event) {
+                               ExternalInterface.call( 
'ZeroClipboard.dispatch', id, 'mouseOver', null );
+                       } );
+                       button.addEventListener(MouseEvent.MOUSE_OUT, 
function(event:Event) {
+                               ExternalInterface.call( 
'ZeroClipboard.dispatch', id, 'mouseOut', null );
+                       } );
+                       button.addEventListener(MouseEvent.MOUSE_DOWN, 
function(event:Event) {
+                               ExternalInterface.call( 
'ZeroClipboard.dispatch', id, 'mouseDown', null );
+                       } );
+                       button.addEventListener(MouseEvent.MOUSE_UP, 
function(event:Event) {
+                               ExternalInterface.call( 
'ZeroClipboard.dispatch', id, 'mouseUp', null );
+                       } );
+                       
+                       // external functions
+                       ExternalInterface.addCallback("setHandCursor", 
setHandCursor);
+                       ExternalInterface.addCallback("setText", setText);
+                       
+                       // signal to the browser that we are ready
+                       ExternalInterface.call( 'ZeroClipboard.dispatch', id, 
'load', null );
+               }
+               
+               public function setText(newText) {
+                       // set the maximum number of files allowed
+                       clipText = newText;
+               }
+               
+               public function setHandCursor(enabled:Boolean) {
+                       // control whether the hand cursor is shown on rollover 
(true)
+                       // or the default arrow cursor (false)
+                       button.useHandCursor = enabled;
+               }
+               
+               private function clickHandler(event:Event):void {
+                       // user click copies text to clipboard
+                       // as of flash player 10, this MUST happen from an 
in-movie flash click event
+                       System.setClipboard( clipText );
+                       ExternalInterface.call( 'ZeroClipboard.dispatch', id, 
'complete', clipText );
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/js/zeroclipboard/ZeroClipboard.fla
----------------------------------------------------------------------
diff --git a/js/zeroclipboard/ZeroClipboard.fla 
b/js/zeroclipboard/ZeroClipboard.fla
new file mode 100755
index 0000000..007dc94
Binary files /dev/null and b/js/zeroclipboard/ZeroClipboard.fla differ

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/js/zeroclipboard/ZeroClipboard.js
----------------------------------------------------------------------
diff --git a/js/zeroclipboard/ZeroClipboard.js 
b/js/zeroclipboard/ZeroClipboard.js
new file mode 100755
index 0000000..5adde95
--- /dev/null
+++ b/js/zeroclipboard/ZeroClipboard.js
@@ -0,0 +1,311 @@
+// Simple Set Clipboard System
+// Author: Joseph Huckaby
+
+var ZeroClipboard = {
+       
+       version: "1.0.7",
+       clients: {}, // registered upload clients on page, indexed by id
+       moviePath: 'ZeroClipboard.swf', // URL to movie
+       nextId: 1, // ID of next movie
+       
+       $: function(thingy) {
+               // simple DOM lookup utility function
+               if (typeof(thingy) == 'string') thingy = 
document.getElementById(thingy);
+               if (!thingy.addClass) {
+                       // extend element with a few useful methods
+                       thingy.hide = function() { this.style.display = 'none'; 
};
+                       thingy.show = function() { this.style.display = ''; };
+                       thingy.addClass = function(name) { 
this.removeClass(name); this.className += ' ' + name; };
+                       thingy.removeClass = function(name) {
+                               var classes = this.className.split(/\s+/);
+                               var idx = -1;
+                               for (var k = 0; k < classes.length; k++) {
+                                       if (classes[k] == name) { idx = k; k = 
classes.length; }
+                               }
+                               if (idx > -1) {
+                                       classes.splice( idx, 1 );
+                                       this.className = classes.join(' ');
+                               }
+                               return this;
+                       };
+                       thingy.hasClass = function(name) {
+                               return !!this.className.match( new 
RegExp("\\s*" + name + "\\s*") );
+                       };
+               }
+               return thingy;
+       },
+       
+       setMoviePath: function(path) {
+               // set path to ZeroClipboard.swf
+               this.moviePath = path;
+       },
+       
+       dispatch: function(id, eventName, args) {
+               // receive event from flash movie, send to client               
+               var client = this.clients[id];
+               if (client) {
+                       client.receiveEvent(eventName, args);
+               }
+       },
+       
+       register: function(id, client) {
+               // register new client to receive events
+               this.clients[id] = client;
+       },
+       
+       getDOMObjectPosition: function(obj, stopObj) {
+               // get absolute coordinates for dom element
+               var info = {
+                       left: 0, 
+                       top: 0, 
+                       width: obj.width ? obj.width : obj.offsetWidth, 
+                       height: obj.height ? obj.height : obj.offsetHeight
+               };
+
+               while (obj && (obj != stopObj)) {
+                       info.left += obj.offsetLeft;
+                       info.top += obj.offsetTop;
+                       obj = obj.offsetParent;
+               }
+
+               return info;
+       },
+       
+       Client: function(elem) {
+               // constructor for new simple upload client
+               this.handlers = {};
+               
+               // unique ID
+               this.id = ZeroClipboard.nextId++;
+               this.movieId = 'ZeroClipboardMovie_' + this.id;
+               
+               // register client with singleton to receive flash events
+               ZeroClipboard.register(this.id, this);
+               
+               // create movie
+               if (elem) this.glue(elem);
+       }
+};
+
+ZeroClipboard.Client.prototype = {
+       
+       id: 0, // unique ID for us
+       ready: false, // whether movie is ready to receive events or not
+       movie: null, // reference to movie object
+       clipText: '', // text to copy to clipboard
+       handCursorEnabled: true, // whether to show hand cursor, or default 
pointer cursor
+       cssEffects: true, // enable CSS mouse effects on dom container
+       handlers: null, // user event handlers
+       
+       glue: function(elem, appendElem, stylesToAdd) {
+               // glue to DOM element
+               // elem can be ID or actual DOM element object
+               this.domElement = ZeroClipboard.$(elem);
+               
+               // float just above object, or zIndex 99 if dom element isn't 
set
+               var zIndex = 99;
+               if (this.domElement.style.zIndex) {
+                       zIndex = parseInt(this.domElement.style.zIndex, 10) + 1;
+               }
+               
+               if (typeof(appendElem) == 'string') {
+                       appendElem = ZeroClipboard.$(appendElem);
+               }
+               else if (typeof(appendElem) == 'undefined') {
+                       appendElem = document.getElementsByTagName('body')[0];
+               }
+               
+               // find X/Y position of domElement
+               var box = ZeroClipboard.getDOMObjectPosition(this.domElement, 
appendElem);
+               
+               // create floating DIV above element
+               this.div = document.createElement('div');
+               var style = this.div.style;
+               style.position = 'absolute';
+               style.left = '' + box.left + 'px';
+               style.top = '' + box.top + 'px';
+               style.width = '' + box.width + 'px';
+               style.height = '' + box.height + 'px';
+               style.zIndex = zIndex;
+               
+               if (typeof(stylesToAdd) == 'object') {
+                       for (addedStyle in stylesToAdd) {
+                               style[addedStyle] = stylesToAdd[addedStyle];
+                       }
+               }
+               
+               // style.backgroundColor = '#f00'; // debug
+               
+               appendElem.appendChild(this.div);
+               
+               this.div.innerHTML = this.getHTML( box.width, box.height );
+       },
+       
+       getHTML: function(width, height) {
+               // return HTML for movie
+               var html = '';
+               var flashvars = 'id=' + this.id + 
+                       '&width=' + width + 
+                       '&height=' + height;
+                       
+               if (navigator.userAgent.match(/MSIE/)) {
+                       // IE gets an OBJECT tag
+                       var protocol = location.href.match(/^https/i) ? 
'https://' : 'http://';
+                       html += '<object 
classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
codebase="'+protocol+'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
 width="'+width+'" height="'+height+'" id="'+this.movieId+'" 
align="middle"><param name="allowScriptAccess" value="always" /><param 
name="allowFullScreen" value="false" /><param name="movie" 
value="'+ZeroClipboard.moviePath+'" /><param name="loop" value="false" /><param 
name="menu" value="false" /><param name="quality" value="best" /><param 
name="bgcolor" value="#ffffff" /><param name="flashvars" 
value="'+flashvars+'"/><param name="wmode" value="transparent"/></object>';
+               }
+               else {
+                       // all other browsers get an EMBED tag
+                       html += '<embed id="'+this.movieId+'" 
src="'+ZeroClipboard.moviePath+'" loop="false" menu="false" quality="best" 
bgcolor="#ffffff" width="'+width+'" height="'+height+'" name="'+this.movieId+'" 
align="middle" allowScriptAccess="always" allowFullScreen="false" 
type="application/x-shockwave-flash" 
pluginspage="http://www.macromedia.com/go/getflashplayer"; 
flashvars="'+flashvars+'" wmode="transparent" />';
+               }
+               return html;
+       },
+       
+       hide: function() {
+               // temporarily hide floater offscreen
+               if (this.div) {
+                       this.div.style.left = '-2000px';
+               }
+       },
+       
+       show: function() {
+               // show ourselves after a call to hide()
+               this.reposition();
+       },
+       
+       destroy: function() {
+               // destroy control and floater
+               if (this.domElement && this.div) {
+                       this.hide();
+                       this.div.innerHTML = '';
+                       
+                       var body = document.getElementsByTagName('body')[0];
+                       try { body.removeChild( this.div ); } catch(e) {;}
+                       
+                       this.domElement = null;
+                       this.div = null;
+               }
+       },
+       
+       reposition: function(elem) {
+               // reposition our floating div, optionally to new container
+               // warning: container CANNOT change size, only position
+               if (elem) {
+                       this.domElement = ZeroClipboard.$(elem);
+                       if (!this.domElement) this.hide();
+               }
+               
+               if (this.domElement && this.div) {
+                       var box = 
ZeroClipboard.getDOMObjectPosition(this.domElement);
+                       var style = this.div.style;
+                       style.left = '' + box.left + 'px';
+                       style.top = '' + box.top + 'px';
+               }
+       },
+       
+       setText: function(newText) {
+               // set text to be copied to clipboard
+               this.clipText = newText;
+               if (this.ready) this.movie.setText(newText);
+       },
+       
+       addEventListener: function(eventName, func) {
+               // add user event listener for event
+               // event types: load, queueStart, fileStart, fileComplete, 
queueComplete, progress, error, cancel
+               eventName = eventName.toString().toLowerCase().replace(/^on/, 
'');
+               if (!this.handlers[eventName]) this.handlers[eventName] = [];
+               this.handlers[eventName].push(func);
+       },
+       
+       setHandCursor: function(enabled) {
+               // enable hand cursor (true), or default arrow cursor (false)
+               this.handCursorEnabled = enabled;
+               if (this.ready) this.movie.setHandCursor(enabled);
+       },
+       
+       setCSSEffects: function(enabled) {
+               // enable or disable CSS effects on DOM container
+               this.cssEffects = !!enabled;
+       },
+       
+       receiveEvent: function(eventName, args) {
+               // receive event from flash
+               eventName = eventName.toString().toLowerCase().replace(/^on/, 
'');
+                               
+               // special behavior for certain events
+               switch (eventName) {
+                       case 'load':
+                               // movie claims it is ready, but in IE this 
isn't always the case...
+                               // bug fix: Cannot extend EMBED DOM elements in 
Firefox, must use traditional function
+                               this.movie = 
document.getElementById(this.movieId);
+                               if (!this.movie) {
+                                       var self = this;
+                                       setTimeout( function() { 
self.receiveEvent('load', null); }, 1 );
+                                       return;
+                               }
+                               
+                               // firefox on pc needs a "kick" in order to set 
these in certain cases
+                               if (!this.ready && 
navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) {
+                                       var self = this;
+                                       setTimeout( function() { 
self.receiveEvent('load', null); }, 100 );
+                                       this.ready = true;
+                                       return;
+                               }
+                               
+                               this.ready = true;
+                               this.movie.setText( this.clipText );
+                               this.movie.setHandCursor( 
this.handCursorEnabled );
+                               break;
+                       
+                       case 'mouseover':
+                               if (this.domElement && this.cssEffects) {
+                                       this.domElement.addClass('hover');
+                                       if (this.recoverActive) 
this.domElement.addClass('active');
+                               }
+                               break;
+                       
+                       case 'mouseout':
+                               if (this.domElement && this.cssEffects) {
+                                       this.recoverActive = false;
+                                       if (this.domElement.hasClass('active')) 
{
+                                               
this.domElement.removeClass('active');
+                                               this.recoverActive = true;
+                                       }
+                                       this.domElement.removeClass('hover');
+                               }
+                               break;
+                       
+                       case 'mousedown':
+                               if (this.domElement && this.cssEffects) {
+                                       this.domElement.addClass('active');
+                               }
+                               break;
+                       
+                       case 'mouseup':
+                               if (this.domElement && this.cssEffects) {
+                                       this.domElement.removeClass('active');
+                                       this.recoverActive = false;
+                               }
+                               break;
+               } // switch eventName
+               
+               if (this.handlers[eventName]) {
+                       for (var idx = 0, len = 
this.handlers[eventName].length; idx < len; idx++) {
+                               var func = this.handlers[eventName][idx];
+                       
+                               if (typeof(func) == 'function') {
+                                       // actual function reference
+                                       func(this, args);
+                               }
+                               else if ((typeof(func) == 'object') && 
(func.length == 2)) {
+                                       // PHP style object + method, i.e. 
[myObject, 'myMethod']
+                                       func[0][ func[1] ](this, args);
+                               }
+                               else if (typeof(func) == 'string') {
+                                       // name of function
+                                       window[func](this, args);
+                               }
+                       } // foreach event handler defined
+               } // user defined handler for event
+       }
+       
+};

http://git-wip-us.apache.org/repos/asf/wicket-site/blob/8cc72bad/js/zeroclipboard/ZeroClipboard.swf
----------------------------------------------------------------------
diff --git a/js/zeroclipboard/ZeroClipboard.swf 
b/js/zeroclipboard/ZeroClipboard.swf
new file mode 100755
index 0000000..13bf8e3
Binary files /dev/null and b/js/zeroclipboard/ZeroClipboard.swf differ

Reply via email to