You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2005/06/08 18:06:46 UTC

svn commit: r189602 [46/50] - in /incubator/roller/trunk: ./ contrib/ contrib/lib/ contrib/plugins/ contrib/plugins/src/ contrib/plugins/src/org/ contrib/plugins/src/org/roller/ contrib/plugins/src/org/roller/presentation/ contrib/plugins/src/org/roller/presentation/velocity/ contrib/plugins/src/org/roller/presentation/velocity/plugins/ contrib/plugins/src/org/roller/presentation/velocity/plugins/acronyms/ contrib/plugins/src/org/roller/presentation/velocity/plugins/bookmarks/ contrib/plugins/src/org/roller/presentation/velocity/plugins/email/ contrib/plugins/src/org/roller/presentation/velocity/plugins/jspwiki/ contrib/plugins/src/org/roller/presentation/velocity/plugins/radeox/ contrib/plugins/src/org/roller/presentation/velocity/plugins/readmore/ contrib/plugins/src/org/roller/presentation/velocity/plugins/smileys/ contrib/plugins/src/org/roller/presentation/velocity/plugins/textile/ docs/ docs/images/ docs/installguide/ docs/installguide/old/ docs/userguide/ docs/userguide/images/ docs/userguide/old/ metadata/ metadata/database/ metadata/database/hibernate/ metadata/xdoclet/ personal/ personal/eclipse/ personal/testing/ src/ src/org/ src/org/roller/ src/org/roller/business/ src/org/roller/business/hibernate/ src/org/roller/business/utils/ src/org/roller/model/ src/org/roller/pojos/ src/org/roller/presentation/ src/org/roller/presentation/atom/ src/org/roller/presentation/bookmarks/ src/org/roller/presentation/bookmarks/actions/ src/org/roller/presentation/bookmarks/formbeans/ src/org/roller/presentation/bookmarks/tags/ src/org/roller/presentation/filters/ src/org/roller/presentation/forms/ src/org/roller/presentation/newsfeeds/ src/org/roller/presentation/pagecache/ src/org/roller/presentation/pagecache/rollercache/ src/org/roller/presentation/tags/ src/org/roller/presentation/tags/calendar/ src/org/roller/presentation/tags/menu/ src/org/roller/presentation/velocity/ src/org/roller/presentation/weblog/ src/org/roller/presentation/weblog/actions/ src/org/roller/presentation/weblog/formbeans/ src/org/roller/presentation/weblog/search/ src/org/roller/presentation/weblog/search/operations/ src/org/roller/presentation/weblog/tags/ src/org/roller/presentation/website/ src/org/roller/presentation/website/actions/ src/org/roller/presentation/website/formbeans/ src/org/roller/presentation/website/tags/ src/org/roller/presentation/xmlrpc/ src/org/roller/util/ tests/ tests/org/ tests/org/roller/ tests/org/roller/business/ tests/org/roller/model/ tests/org/roller/persistence/ tests/org/roller/presentation/ tests/org/roller/presentation/atom/ tests/org/roller/presentation/bookmarks/ tests/org/roller/presentation/velocity/ tests/org/roller/presentation/velocity/plugins/ tests/org/roller/presentation/velocity/plugins/smileys/ tests/org/roller/presentation/velocity/plugins/textile/ tests/org/roller/presentation/xmlrpc/ tests/org/roller/util/ tools/ tools/buildtime/ tools/buildtime/mockrunner-0.2.6/ tools/buildtime/mockrunner-0.2.6/lib/ tools/buildtime/tomcat-4.1.24/ tools/buildtime/xdoclet-1.2/ tools/buildtime/xdoclet-1.2/lib/ tools/hibernate-2.1/ tools/hibernate-2.1/lib/ tools/lib/ tools/standard-1.0.3/ tools/standard-1.0.3/lib/ tools/standard-1.0.3/tld/ tools/struts-1.1/ tools/struts-1.1/lib/ web/ web/WEB-INF/ web/WEB-INF/classes/ web/WEB-INF/classes/flavors/ web/WEB-INF/classes/themes/ web/bookmarks/ web/images/ web/images/editor/ web/images/midas/ web/images/preview/ web/images/smileys/ web/tags/ web/templates/ web/theme/ web/theme/images/ web/theme/lavender/ web/theme/scripts/ web/theme/scripts/classes/ web/themes/ web/themes/basic/ web/themes/berkley/ web/themes/berkley/images/ web/themes/cheb/ web/themes/cheb/images/ web/themes/cheb/scripts/ web/themes/clean/ web/themes/currency-i18n/ web/themes/currency-i18n/images/ web/themes/currency/ web/themes/currency/images/ web/themes/grey2/ web/themes/moonshine/ web/themes/pacifica/ web/themes/robot/ web/themes/rolling/ web/themes/rolling/images/ web/themes/sotto/ web/themes/sotto/images/ web/themes/sotto/styles/ web/themes/sunsets/ web/themes/sunsets/images/ web/themes/sunsets/scripts/ web/themes/sunsets/styles/ web/themes/werner/ web/themes/x2/ web/themes/x2/images/ web/themes/x2/scripts/ web/themes/x2/styles/ web/weblog/ web/website/

Added: incubator/roller/trunk/web/theme/scripts/xmlp.js
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/theme/scripts/xmlp.js?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/theme/scripts/xmlp.js (added)
+++ incubator/roller/trunk/web/theme/scripts/xmlp.js Wed Jun  8 09:06:16 2005
@@ -0,0 +1,1179 @@
+/*
+ * xmlp.js, version 1.0
+ * An XML parser in JavaScript
+ *
+ * Revision history:
+ *    1.0, 23 Nov 2001 : Initial version
+ *
+ * Copyright (C) 2001 David A. Lindquist (dave@gazingus.org)
+ *
+ * This library is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
+ * (at your option) any later version.
+ * 
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ * 
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+/// Node ///////////////////////////////////////////////////////////////////////
+
+Node.ELEMENT_NODE                =  1;
+Node.ATTRIBUTE_NODE              =  2;
+Node.TEXT_NODE                   =  3;
+Node.CDATA_SECTION_NODE          =  4;
+Node.ENTITY_REFERENCE_NODE       =  5;
+Node.ENTITY_NODE                 =  6; // not used
+Node.PROCESSING_INSTRUCTION_NODE =  7;
+Node.COMMENT_NODE                =  8;
+Node.DOCUMENT_NODE               =  9;
+Node.DOCUMENT_TYPE_NODE          = 10;
+Node.DOCUMENT_FRAGMENT_NODE      = 11;
+Node.NOTATION_NODE               = 12; // not used
+
+function Node() {
+  this.attributes = null;
+  this.childNodes = new NodeList();
+  this.firstChild = null
+  this.lastChild = null;
+  this.nextSibling = null;
+  this.nodeName = null;
+  this.nodeType = null;
+  this.nodeValue = null;
+  this.ownerDocument = null;
+  this.parentNode = null;
+  this.previousSibling = null;
+}
+
+Node.prototype.getAttributes = function() { return this.attributes; }
+Node.prototype.getChildNodes = function() { return this.childNodes; }
+Node.prototype.getFirstChild = function() { return this.firstChild; }
+Node.prototype.getLastChild = function() { return this.lastChild; }
+Node.prototype.getNextSibling = function() { return this.nextSibling; }
+Node.prototype.getNodeName = function() { return this.nodeName; }
+Node.prototype.getNodeType = function() { return this.nodeType; }
+Node.prototype.getNodeValue = function() { return this.nodeValue; }
+Node.prototype.getOwnerDocument = function() { return this.ownerDocument; }
+Node.prototype.getParentNode = function() { return this.parentNode; }
+Node.prototype.getPreviousSibling = function() { return this.previousSibling; }
+
+Node.prototype.setNodeValue =
+function() {
+  // Default behavior is to do nothing;
+  // overridden in some subclasses
+}
+
+Node.prototype.appendChild =
+function( childNode ) {
+  if ( this.nodeType == Node.ELEMENT_NODE ||
+       this.nodeType == Node.ATTRIBUTE_NODE ||
+       this.nodeType == Node.DOCUMENT_NODE ||
+       this.nodeType == Node.DOCUMENT_FRAGMENT_NODE ) {
+    this.childNodes.add( childNode );
+  }
+  else {
+    // :REVISIT: change to DOMException
+    throw new ParseError( "Cannot append child node" );
+  }
+
+  if ( this.ownerDocument != childNode.ownerDocument ) {
+    // :REVISIT: change to DOMException
+    throw new ParseError( "Cannot append child to this document" );
+  }
+  
+  if ( this.childNodes.length == 1 ) {
+    this.firstChild = childNode;
+  }
+
+  this.lastChild = childNode;
+  childNode.parentNode = this;
+  
+  var prevSibling = this.childNodes.item( -2 );
+  childNode.previousSibling = prevSibling;
+  
+  if ( prevSibling != null ) {
+    prevSibling.nextSibling = childNode;
+  }
+}
+
+Node.prototype.cloneNode =
+function( deep ) {
+  // :REVISIT: change to DOMException
+  throw new ParseError( "Not implemented" );
+}
+
+Node.prototype.hasChildNodes =
+function() {
+  return ( this.childNodes.length > 0 );
+}
+
+Node.prototype.insertBefore =
+function( newChild, refChild ) {
+  var currentChildren = this.childNodes;
+  this.childNodes = new NodeList();
+  for ( var i = 0; i < currentChildren.length; ) {
+    var child = currentChildren.item(i);
+    if ( child == refChild && refChild != null ) {
+      this.appendChild( newChild );
+      refChild = null;
+    }
+    else {
+      this.appendChild( child );
+      i++;
+    }
+  }
+}
+
+Node.prototype.removeChild =
+function( oldChild ) {
+  var currentChildren = this.childNodes;
+  this.childNodes = new NodeList();
+  for ( var i = 0; i < currentChildren.length; i++ ) {
+    var child = currentChildren.item(i)
+    if ( child != oldChild ) {
+      this.appendChild( child );
+    }
+  }
+}
+
+Node.prototype.replaceChild =
+function( newChild, oldChild ) {
+  var oldChildren = this.childNodes;
+  this.childNodes = new NodeList();
+  for ( var i = 0; i < oldChildren.length; i++ ) {
+    if ( oldChildren.item(i) == oldChild ) {
+      this.appendChild( newChild );
+    }
+    else {
+      this.appendChild( oldChild );
+    }
+  }
+}
+
+/// Element ////////////////////////////////////////////////////////////////////
+
+Element.prototype = new Node();
+Element.prototype.constructor = Element;
+  // Element : Node
+
+function Element( ownerDoc, name ) {
+  this.tagName = name;
+  
+  // inherited from Node
+  this.attributes = new NamedNodeMap();
+  this.childNodes = new NodeList();
+  this.nodeType = Node.ELEMENT_NODE;
+  this.nodeName = name;
+  this.ownerDocument = ownerDoc;
+}
+
+Element.prototype.getAttribute =
+function( name ) {
+  var attr = this.attributes.getNamedItem( name );
+  return ( attr == null ) ? "" : attr.getValue();
+}
+
+Element.prototype.getAttributeNode =
+function( name ) {
+  return this.attributes.getNamedItem( name );
+}
+
+Element.prototype.getElementsByTagName =
+function( tagName ) {
+  return new DeepNodeList( this, tagName );
+}
+
+Element.prototype.getTagName =
+function() {
+  return this.tagName;
+}
+
+Element.prototype.normalize =
+function() {
+  var child, next;
+  for ( child = this.getFirstChild(); child != null; child = next ) {
+    next = child.getNextSibling();
+    if ( child.getNodeType() == Node.TEXT_NODE ) {
+      if ( next != null && next.getNodeType() == Node.TEXT_NODE ) {
+        child.appendData( next.getNodeValue() );
+        this.removeChild( next );
+        next = child;
+      }
+      else {
+        if ( child.getNodeValue().length == 0 ) {
+          this.removeChild( child );
+        }
+      }
+    }
+    else if ( child.getNodeType() == Node.ELEMENT_NODE ) {
+      child.normalize();
+    }
+  }
+}
+
+Element.prototype.removeAttribute = 
+function( name ) {
+  this.attributes.removeNamedItem( name );
+}
+
+Element.prototype.removeAttributeNode =
+function( attr ) {
+  return this.attributes.removeNamedItem( attr.nodeName );
+}
+
+Element.prototype.setAttribute =
+function( name, value ) {
+  var attr = this.ownerDocument.createAttribute( name );
+  arrt.setValue( value );
+  this.attributes.setNamedItem( attr );
+}
+
+Element.prototype.setAttributeNode =
+function( attr ) {
+  return this.attributes.setNamedItem( attr );
+}
+
+/// Attr ///////////////////////////////////////////////////////////////////////
+
+Attr.prototype = new Node();
+Attr.prototype.constructor = Attr;
+  // Attr : Node
+
+function Attr( ownerDoc, name ) {
+  this.name = name;
+  this.specified = true;
+  this.value = null;
+  
+  // inherited from Node
+  this.childNodes = new NodeList();
+  this.nodeName = name;
+  this.nodeType = Node.ATTRIBUTE_NODE;
+  this.nodeValue = null;
+  this.ownerDocument = ownerDoc;
+}
+
+Attr.prototype.getName =
+function() {
+  return this.name;
+}
+
+Attr.prototype.getNodeValue =
+function() {
+  return this.getValue();
+}
+
+Attr.prototype.getSpecified =
+function() {
+  return this.specified;
+}
+
+Attr.prototype.getValue =
+function() {
+  // :REVISIT:
+  var value = "";
+  for ( var i = 0; i < this.childNodes.length; i++ ) {
+    value += this.childNodes.item(i).getNodeValue();
+  }
+  return value;
+}
+
+Attr.prototype.setValue =
+function( value ) {
+  // :REVISIT:
+  this.childNodes = new NodeList();
+  this.firstChild = null;
+  this.lastChild = null;
+  
+  if ( value != null ) {
+    this.appendChild( this.ownerDocument.createTextNode( value ) );
+  }
+}
+
+/// CharacterData //////////////////////////////////////////////////////////////
+
+CharacterData.prototype = new Node();
+CharacterData.prototype.constructor = CharacterData;
+  // CharacterData : Node
+
+function CharacterData( data ) {
+  this.data = data;
+  
+  // inherited from Node
+  this.nodeValue = data;
+}
+
+CharacterData.prototype.appendData =
+function( data ) {
+  this.setData( this.getData() + data );
+}
+
+CharacterData.prototype.deleteData =
+function( offset, count ) {
+  var begin = this.getData().substring( 0, offset );
+  var end = this.getData().substring( offset + count );
+  this.setData( begin + end );
+}
+
+CharacterData.prototype.getData =
+function() {
+  return this.data;
+}
+
+CharacterData.prototype.getLength =
+function() {
+  return ( this.data ) ? this.data.length : 0;
+}
+
+CharacterData.prototype.insetData =
+function( offset, data ) {
+  var begin = this.getData().substring( 0, offset );
+  var end = this.getData().substring( offset, this.getLength );
+  this.setData( begin + data + end );
+}
+
+CharacterData.prototype.replaceData =
+function( offset, count, data ) {
+  this.deleteData( offset, count );
+  this.insertData( offset, data );
+}
+
+CharacterData.prototype.setData =
+function( data ) {
+  this.setNodeValue( data );
+}
+
+CharacterData.prototype.setNodeValue =
+function( value ) {
+  this.data = value;
+  this.nodeValue = value;
+}
+
+CharacterData.prototype.substringData =
+function( offset, count ) {
+  return this.getData().substring( offset, offset + count );
+}
+
+/// Text ///////////////////////////////////////////////////////////////////////
+
+Text.prototype = new CharacterData();
+Text.prototype.constructor = Text;
+  // Text : CharacterData
+
+function Text( ownerDoc, data ) {
+  // inherited from CharacterData
+  this.data = data;
+  
+  // inherited from CharacterData : Node
+  this.nodeName = "#text";
+  this.nodeType = Node.TEXT_NODE;
+  this.nodeValue = data;
+  this.ownerDocument = ownerDoc;
+}
+
+Text.prototype.splitText =
+function( offset ) {
+  // :REVISIT:
+  // check for index out of bounds condition
+  
+  var newText =
+    this.getOwnerDocument().createTextNode( this.data.substring( offset ) );
+  
+  var parentNode = this.getParentNode();
+  if ( parentNode != null ) {
+    parentNode.insetBefore( newText, this.nextSibling );
+  }
+  
+  return newText;
+}
+
+/// CDATASection ///////////////////////////////////////////////////////////////
+
+CDATASection.prototype = new Text();
+CDATASection.prototype.constructor = CDATASection;
+  // CDATASection : Text
+
+function CDATASection( ownerDoc, data ) {
+  
+  // inherited from Text : CharacterData
+  this.data = data;
+  
+  // inherited from Text : CharacterData : Node
+  this.nodeName = "#cdata-section";
+  this.nodeType = Node.CDATA_SECTION_NODE;
+  this.nodeValue = data;
+  this.ownerDocument = ownerDoc;
+}
+
+/// EntityReference ////////////////////////////////////////////////////////////
+
+EntityReference.prototype = new Node();
+EntityReference.prototype.constructor = EntityReference;
+  // EntityReference : Node
+
+function EntityReference( ownerDoc, name ) {
+  
+  // inherited from Node
+  this.nodeName = name;
+  this.nodeType = Node.ENTITY_REFERENCE_NODE;
+  this.ownerDocument = ownerDoc;
+}
+
+/// ProcessingInstruction //////////////////////////////////////////////////////
+
+ProcessingInstruction.prototype = new Node();
+ProcessingInstruction.prototype.constructor = ProcessingInstruction;
+  // ProcessingInstruction : Node
+
+function ProcessingInstruction( ownerDoc, target, data ) {
+  this.target = target;
+  this.data = data;
+  
+  // inherited from Node
+  this.nodeName = target;
+  this.nodeType = Node.PROCESSING_INSTRUCTION_NODE;
+  this.nodeValue = data;
+  this.ownerDocument = ownerDoc;
+}
+
+ProcessingInstruction.prototype.getData =
+function() {
+  return this.data;
+}
+
+ProcessingInstruction.prototype.getTarget =
+function() {
+  return this.target;
+}
+
+ProcessingInstruction.prototype.setData =
+function( data ) {
+  this.setNodeValue( data );
+}
+
+ProcessingInstruction.prototype.setNodeValue =
+function( value ) {
+  this.data = data;
+  this.nodeValue = data;
+}
+
+/// Comment ////////////////////////////////////////////////////////////////////
+
+Comment.prototype = new CharacterData();
+Comment.prototype.constructor = Comment;
+  // Comment : CharacterData
+
+function Comment( ownerDoc, data ) {
+  // inherited from CharacterData
+  this.data = data;
+  
+  // inherited from CharacterData : Node
+  this.nodeName = "#comment";
+  this.nodeType = Node.COMMENT_NODE;
+  this.nodeValue = data;
+  this.ownerDocument = ownerDoc;
+}
+
+/// Document ///////////////////////////////////////////////////////////////////
+
+Document.prototype = new Node();
+Document.prototype.constructor = Document;
+  // Document : Node
+
+function Document() {
+  this.doctype = null;
+  this.implementation = null;
+  this.documentElement = null;
+
+  // inherited from Node
+  this.childNodes = new NodeList();
+  this.nodeName = "#document";
+  this.nodeType = Node.DOCUMENT_NODE;
+  this.ownerDocument = this;
+}
+
+Document.prototype.createAttribute =
+function( name, value ) {
+  return new Attr( this, name, value );
+}
+
+Document.prototype.createCDATASection =
+function( data ) {
+  return new CDATASection( this, data );
+}
+
+Document.prototype.createComment =
+function( data ) {
+  return new Comment( this, data );
+}
+
+Document.prototype.createDocumentFragment =
+function() {
+  return new DocumentFragment( this );
+}
+
+Document.prototype.createElement =
+function( tagName ) {
+  return new Element( this, tagName );
+}
+
+Document.prototype.createEntityReference =
+function( name ) {
+  return new EntityReference( this, name );
+}
+
+Document.prototype.createProcessingInstruction =
+function( target, data ) {
+  return new ProcessingInstruction( this, target, data );
+}
+
+Document.prototype.createTextNode =
+function( data ) {
+  return new Text( this, data );
+}
+
+Document.prototype.getDoctype =
+function() {
+  return this.doctype;
+}
+
+Document.prototype.getDocumentElement =
+function() {
+  return this.documentElement;
+}
+
+Document.prototype.getElementsByTagName =
+function( tagName ) {
+  return new DeepNodeList( this, tagName );
+}
+
+Document.prototype.getImplementation =
+function() {
+  // :REVISIT:
+  return this.implementation;
+}
+
+/// DocumentType ///////////////////////////////////////////////////////////////
+
+DocumentType.prototype = new Node();
+DocumentType.prototype.constructor = DocumentType;
+  // DocumentType : Node
+
+function DocumentType( ownderDoc, name ) {
+  this.name = name;
+  this.entities = null;
+  this.notations = null;
+  
+  // inherited from Node
+  this.nodeName = name;
+  this.nodeType = Node.DOCUMENT_TYPE_NODE;
+  this.ownerDocument = ownderDoc;
+}
+
+DocumentType.prototype.getEntities = 
+function() {
+  // :REVISIT: change to DOMException
+  throw new ParseError( "Not implemented" );
+}
+
+DocumentType.prototype.getName = 
+function() {
+  return this.name;
+}
+
+DocumentType.prototype.getNotations = 
+function() {
+  // :REVISIT: change to DOMException
+  throw new ParseError( "Not implemented" );
+}
+
+/// DocumentFragment ///////////////////////////////////////////////////////////
+
+DocumentFragment.prototype = new Node();
+DocumentFragment.prototype.constructor = DocumentFragment;
+  // DocumentFragment : Node
+
+function DocumentFragment( ownerDoc ) {
+  
+  // inherited from Node
+  this.childNodes = new NodeList();
+  this.nodeName = "#document-fragment";
+  this.nodeType = Node.DOCUMENT_FRAGMENT_NODE;
+  this.ownerDocument = ownerDoc;
+}
+
+/// NodeList ///////////////////////////////////////////////////////////////////
+
+function NodeList() {
+  this.length = 0;
+}
+
+NodeList.prototype.getLength =
+function() {
+  return this.length;
+}
+
+NodeList.prototype.item =
+function( index ) {
+  var item;
+  item = ( index < 0 ) ? this[ this.length + index ]
+                       : this[ index ];
+  return ( item || null );
+}
+
+NodeList.prototype.add =
+function( node ) {
+  this[ this.length++ ] = node;
+}
+
+/// DeepNodeList ///////////////////////////////////////////////////////////////
+
+DeepNodeList.prototype = new NodeList();
+DeepNodeList.prototype.constructor = DeepNodeList;
+  // DeepNodeList : NodeList
+
+function DeepNodeList( rootNode, tagName ) {
+  this.rootNode = rootNode;
+  this.tagName = tagName;
+  this.getElementsByTagName( rootNode );
+}
+
+DeepNodeList.prototype.getElementsByTagName =
+function( contextNode ) {
+  var nextNode;
+  while ( contextNode != null ) {
+    if ( contextNode.hasChildNodes() ) {
+      contextNode = contextNode.firstChild;
+    }
+    else if ( contextNode != this.rootNode &&
+              null != ( next = contextNode.nextSibling ) ) {
+      contextNode = next;
+    }
+    else {
+      next = null;
+      for ( ; contextNode != this.rootNode;
+           contextNode = contextNode.parentNode ) {
+        next = contextNode.nextSibling;
+        if ( next != null ) {
+          break;
+        }
+      }
+      contextNode = next;
+    }
+    if ( contextNode != this.rootNode &&
+         contextNode != null &&
+         contextNode.nodeType == Node.ELEMENT_NODE ) {
+      if ( this.tagName == "*" || contextNode.tagName == this.tagName ) {
+        this.add( contextNode );
+      }
+    }
+  }
+  return null;
+}
+
+/// NamedNodeMap ///////////////////////////////////////////////////////////////
+
+function NamedNodeMap() {
+  this.length = 0;
+}
+
+NamedNodeMap.prototype.getLength =
+function() {
+  return this.length;
+}
+
+NamedNodeMap.prototype.getNamedItem =
+function( name ) {
+  return ( this[ name ] || null );
+}
+
+NamedNodeMap.prototype.item =
+function( index ) {
+  var item;
+  item = ( index < 0 ) ? this[ this.length + index ]
+                       : this[ index ];
+  return ( item || null );
+}
+
+NamedNodeMap.prototype.removeNamedItem =
+function( name ) {
+  var removed = this[ name ];
+
+  if ( !removed ) {
+    return null;
+  }
+
+  delete this[ name ];
+  for ( var i = 0; i < this.length - 1; i++ ) {
+    if ( !this[i] ) {
+      this[i] = this[ i + 1 ];
+      delete this[ i + 1 ];
+    }
+  }
+  this.length--;
+  return removed;
+}
+
+NamedNodeMap.prototype.setNamedItem =
+function( node ) {
+  var nodeName = node.getNodeName();
+  var item = this.getNamedItem( nodeName );
+  this[ nodeName ] = node;
+  
+  if ( item == null ) {
+    this[ this.length++ ] = node;
+  }
+  
+  return item;
+}
+
+/// ParseError /////////////////////////////////////////////////////////////////
+
+ParseError.prototype = new Error();
+ParseError.prototype.constructor = ParseError;
+  // ParseError : Error
+
+function ParseError( message ) {
+  this.message = message;
+}
+
+/// DOMException ///////////////////////////////////////////////////////////////
+
+// :REVISIT:
+// not currently used
+
+DOMException.prototype = new Error();
+DOMException.prototype.constructor = DOMException;
+  // DOMException : Error
+
+DOMException.INDEX_SIZE_ERR              = 1;
+DOMException.DOMSTRING_SIZE_ERR          = 2;
+DOMException.HIERARCHY_REQUEST_ERR       = 3;
+DOMException.WRONG_DOCUMENT_ERR          = 4;
+DOMException.INVALID_CHARACTER_ERR       = 5;
+DOMException.NO_DATA_ALLOWED_ERR         = 6;
+DOMException.NO_MODIFICATION_ALLOWED_ERR = 7;
+DOMException.NOT_FOUND_ERR               = 8;
+DOMException.NOT_SUPPORTED_ERR           = 9;
+DOMException.INUSE_ATTRIBUTE_ERR         = 10;
+
+function DOMException( code, message ) {
+  this.code = code;
+  this.message = message;
+}
+
+/// XMLParser //////////////////////////////////////////////////////////////////
+
+XMLParser.VERSION = 1.0;
+
+function XMLParser() {
+  this.doc = new Document();
+  this.xml = null;
+
+  this.openedTags = new Array();
+  this.contextNodes = new Array( this.doc );
+}
+
+XMLParser.prototype.parse =
+function( xml ) {
+  this.xml = xml.trim();
+  this.processProlog();
+  this.processRootElement();
+  this.processMisc();
+
+  if ( this.xml.length != 0 ) {
+    throw( new ParseError( "Illegal construct in XML document" ) );
+  }
+}
+
+XMLParser.prototype.processProlog =
+function() {
+  this.processXmlDecl();
+  this.processMisc();
+  this.processDoctypeDecl();
+  this.processMisc();
+}
+
+XMLParser.prototype.processRootElement =
+function() {
+  var matches;
+  
+  if ( matches = this.xml.match( RegExp.$STag ) ) {
+    this.processSTag( matches );
+    this.xml = this.xml.substring( matches[0].length );
+    this.processContent();
+  }
+  else if ( matches = this.xml.match( RegExp.$EmptyElemTag ) ) {
+    this.processEmptyElemTag( matches );
+    this.xml = this.xml.substring( matches[0].length );
+  }
+  else {
+    throw( new ParseError( "Root element not found" ) );
+  }
+}
+
+XMLParser.prototype.processMisc =
+function() {
+  var matches;
+  
+  while ( RegExp.$Misc.test( this.xml ) ) {
+    
+      // white space
+    if ( matches = this.xml.match( RegExp.$S ) ) {
+      ;
+    }
+      // comment
+    else if ( matches = this.xml.match( RegExp.$Comment ) ) {
+      var comment = this.doc.createComment( matches[1] );
+      
+      this.doc.appendChild( comment );
+    }
+      // processing instruction
+    else if ( matches = this.xml.match( RegExp.$PI ) ) {
+      var target = matches[1];
+      var data = matches[3];
+      var pi = this.doc.createProcessingInstruction( target, data );
+      
+      this.doc.appendChild( pi );
+    }
+      // unknown construct
+    else {
+      throw( new ParseError( "Illegal construct in XML document" ) );
+    }
+    
+    this.xml = this.xml.substring( matches[0].length );
+  }
+}
+
+XMLParser.prototype.processContent =
+function() {
+  var matches;
+
+  while ( this.openedTags.length != 0  ) {
+
+      // start tag
+    if ( matches = this.xml.match( RegExp.$STag ) ) {
+      this.processSTag( matches );
+    }
+      // end tag
+    else if ( matches = this.xml.match( RegExp.$ETag ) ) {
+      this.processETag( matches );
+    }
+      // empty element
+    else if ( matches = this.xml.match( RegExp.$EmptyElemTag ) ) {
+      this.processEmptyElemTag( matches );
+    }
+      // character data
+    else if ( matches = this.xml.match( RegExp.$CharData ) ) {
+      this.processCharData( matches );
+    }
+      // entity reference
+    else if ( matches = this.xml.match( RegExp.$Reference ) ) {
+      this.processReference( matches );
+    }
+      // CDATA section
+    else if ( matches = this.xml.match( RegExp.$CDSect ) ) {
+      this.processCDSect( matches );
+    }
+      // processing instruction
+    else if ( matches = this.xml.match( RegExp.$PI ) ) {
+      this.processPI( matches );
+    }
+      // comment
+    else if ( matches = this.xml.match( RegExp.$Comment ) ) {
+      this.processComment( matches );
+    }
+      // unknown construct
+    else {
+      throw( new ParseError( "Illegal construct in XML document" ) );
+    }
+
+    this.xml = this.xml.substring( matches[0].length );
+  }
+}
+
+XMLParser.prototype.processAttributes =
+function( attString ) {
+  var matches;
+
+  while ( matches = attString.match( RegExp.$Attribute ) ) {
+    var name = matches[1];
+    var value = matches[2].removeQuotes();
+    var attr = this.doc.createAttribute( name );
+    var currentContext = this.contextNodes.lastItem();
+
+    attr.setValue( value );
+    
+    attString = attString.substring( matches[0].length ).trim();
+    currentContext.attributes.setNamedItem( attr );
+  }
+}
+
+XMLParser.prototype.processXmlDecl =
+function() {
+  var matches;
+
+  if ( matches = this.xml.match( RegExp.$XMLDecl ) ) {
+    this.xml = this.xml.substring( matches[0].length );
+  }
+}
+
+XMLParser.prototype.processDoctypeDecl =
+function() {
+  var matches;
+  
+  if ( matches = this.xml.match( RegExp.$doctypedecl ) ) {
+    var name = matches[1];
+    
+    var doctype = new DocumentType( this.doc, name );
+    this.doc.appendChild( doctype );
+    this.doc.doctype = doctype;
+    
+    this.xml = this.xml.substring( matches[0].length );
+  }
+}
+
+XMLParser.prototype.processSTag =
+function( matches ) {
+  var element = this.doc.createElement( matches[1] );
+  var attString = matches[2];
+  
+  this.openedTags.push( matches[1] );
+  this.addNode( element );
+  
+  if ( attString ) {
+    this.processAttributes( attString.trim() );
+  }
+}
+
+XMLParser.prototype.processETag =
+function( matches ) {
+  this.contextNodes.pop();
+  
+  if ( this.openedTags.pop() != matches[1] ) {
+    throw( new ParseError( "End tag does not match opening tag" ) );
+  }
+}
+
+XMLParser.prototype.processEmptyElemTag =
+function( matches ) {
+  var element = this.doc.createElement( matches[1] );
+  var attString = matches[2];
+  
+  this.addNode( element );
+  
+  if ( attString ) {
+    this.processAttributes( attString.trim() );
+  }
+  
+  this.contextNodes.pop();
+}
+
+XMLParser.prototype.processCharData =
+function( matches ) {
+  if ( matches[0].trim() != "" ) {
+    var text = this.doc.createTextNode( matches[0] );
+    this.addNode( text );
+  }
+}
+
+XMLParser.prototype.processReference =
+function( matches ) {
+  var reference = this.doc.createEntityReference( matches[0] );
+  this.addNode( reference );
+}
+
+XMLParser.prototype.processCDSect =
+function( matches ) {
+  var cdsect = this.doc.createCDATASection( matches[1] );
+  this.addNode( cdsect );
+}
+
+XMLParser.prototype.processPI =
+function( matches ) {
+  var target = matches[1];
+  var data = matches[3];
+  var pi = this.doc.createProcessingInstruction( target, data );
+  this.addNode( pi );
+}
+
+XMLParser.prototype.processComment =
+function( matches ) {
+  var comment = this.doc.createComment( matches[1] );
+  this.addNode( comment );
+}
+
+XMLParser.prototype.addNode =
+function( node ) {
+  var currentContext = this.contextNodes.lastItem();
+  currentContext.appendChild( node );
+  
+  if ( node.nodeType == Node.ELEMENT_NODE ) {
+    var contextNode = currentContext.childNodes.item( -1 );
+    this.contextNodes.push( contextNode );
+    
+    if ( !this.doc.documentElement ) {
+      this.doc.documentElement = this.contextNodes.lastItem();
+    }
+  }
+}
+
+/// Utilities //////////////////////////////////////////////////////////////////
+
+/*
+ * Utility. Removes leading and trailing white space
+ * from a string
+ */
+String.prototype.trim =
+function() {
+  return this.replace( /^[ \n\r\t]+|[ \n\r\t]+$/g, "" );
+}
+
+/*
+ * Utility. Like pop(), but does not affect the length
+ * of the array
+ */
+Array.prototype.lastItem =
+function() {
+  return this[ this.length - 1 ];
+}
+
+String.prototype.removeQuotes =
+function() {
+  return this.replace( /^['"]|['"]$/g, "" );
+}
+
+/*
+ * Utility. Translates a string into a regex. Replaces identifiers
+ * (beginning with "$") with corresponding regex fragment
+ */
+String.prototype.resolve =
+function() {
+  var resolved = this;
+  var regex = /(\$[a-zA-Z0-9]+)/;
+  
+  while ( regex.test( resolved ) ) {
+    resolved = resolved.replace( RegExp.$1, String[ RegExp.$1 ] );
+  }
+  
+  return resolved.replace( / /g,"" );
+}
+
+/// Productions ////////////////////////////////////////////////////////////////
+
+// Character Range
+String.$Char          = "(?: \\u0009 | \\u000A | \\u000D | " +
+                        "[\\u0020-\\uD7FF] | [\\uE000-\\uFFFD] | " +
+                        "[\\u10000-\\u10FFFF] )";
+
+// White Space
+String.$S             = "(?: (?: \\u0020 | \\u0009 | \\u000D | \\u000A )+ )";
+
+// Names and matches
+String.$NameChar      = "(?: $Letter | $Digit | \\. | \\- | _ | : | " +
+                        "$CombiningChar | $Extender )";
+String.$Name          = "(?: $Letter | _ | : ) $NameChar*";
+
+// Literals
+String.$AttValue      = "(?: \" (?: [^<&\"] | $Reference )* \" ) | " + 
+                        "(?: ' (?: [^<&'] | $Reference )* ' )";
+String.$SystemLiteral = "(?: (?: \" [^\"]* \") | (?: ' [^']* '))";
+String.$PubidLiteral  = "(?: (?: \" $PubidChar* \") | " +
+                        "(?: ' (?: (?!')$PubidChar)* '))";
+String.$PubidChar     = "(?: \\u0020 | \\u000D | \\u000A | [a-zA-Z0-9] | " +
+                        "[-'()+,./:=?;!*#@$_%])";
+
+// Character Data
+//String.$CharData    = "(?![^<&]*]]>[^<&]*)[^<&]*"; // :REVISIT:
+String.$CharData      = "[^<&]+";
+
+// Comments
+String.$Comment       = "<!-- ( (?: (?: (?!- ) $Char ) | " +
+                        "(?: - (?: (?!- ) $Char ) ) )* ) -->";
+
+// Processing Instructions
+String.$PI            = "<\\? ( $PITarget ) ( $S $Char*? )? \\?>";
+String.$PITarget      = "(?: (?: \\b( $Letter | _ | : ) " +
+                        "(?: $NameChar ){0,1}\\b ) | " +
+                        "(?: (?! [Xx][Mm][Ll] ) (?: $Letter | _ | : ) " +
+                        "(?: $NameChar ){2} | (?: $Letter | _ | : ) " +
+                        "(?: $NameChar ){3,} ) )";
+
+// CDATA Sections
+String.$CDSect        = "<!\\[CDATA\\[ ( $Char*? ) ]]>";
+
+// Prolog
+String.$prolog        = "(?: $XMLDecl? $Misc* (?: $doctypedecl $Misc* )? )";
+String.$XMLDecl       = "<\\?xml $VersionInfo $EncodingDecl? " +
+                        "$SDDecl? $S? \\?>";
+String.$VersionInfo   = "(?: $S version $Eq ( ' $VersionNum ' | " +
+                        "\" $VersionNum \" ) )";
+String.$Eq            = "(?: $S? = $S? )";
+String.$VersionNum    = "(?: (?: [a-zA-Z0-9_.:] | - )+ )";
+String.$Misc          = "(?: $Comment | $PI | $S )";
+
+// Document Type Definition
+String.$doctypedecl   = "<!DOCTYPE $S ( $Name ) (?: $S $ExternalID)? $S? " +
+                        "(?: \\[ [^]]* \\] )? $S? >";
+
+// Standalone Document Declaration
+String.$SDDecl        = "(?: $S standalone $Eq ( (?: \"(?: yes|no )\" ) | " +
+                        "(?: '(?: yes|no)' ) ) )";
+
+// Start-tag
+String.$STag          = "< ( $Name ) ( (?: $S $Attribute )* ) $S? >";
+String.$Attribute     = "( $Name ) $Eq ( $AttValue )";
+
+// End-tag
+String.$ETag          = "</ ( $Name ) $S? >";
+
+// Tags for Empty Elements
+String.$EmptyElemTag  = "< ( $Name ) ( (?: $S $Attribute )* ) $S? />";
+
+// Character Reference
+String.$CharRef       = "(?: &#[0-9]+; | &#x[0-9a-fA-F]+; )";
+
+// Entity Reference
+String.$Reference     = "(?: $EntityRef | $CharRef )";
+String.$EntityRef     = "& $Name ;";
+
+// External Entity Declaration
+String.$ExternalID    = "(?: (?: SYSTEM $S ( $SystemLiteral ) ) | " +
+                        "(?: PUBLIC $S ( $PubidLiteral ) $S " +
+                        "( $SystemLiteral ) ) )";
+
+// Encoding Declaration
+String.$EncodingDecl  = "(?: $S encoding $Eq ( ' $EncName ' | " +
+                        "\" $EncName \" ) )";
+String.$EncName       = "[A-Za-z](?: [A-Za-z0-9._]|- )*";
+
+// Characters
+String.$Letter        = "(?: $BaseChar | $Ideographic )";
+  if (Boolean.$I18N != true) { // if i18n.js is included
+String.$BaseChar      = "(?: [\\u0041-\\u005A] | [\\u0061-\\u007A] )";
+String.$Ideographic   = "\\u0000";
+String.$CombiningChar = "\\u0000";
+String.$Digit         = "[\\u0030-\\u0039]";
+String.$Extender      = "\\u0000";
+  }
+
+// compile regular expressions
+RegExp.$prolog       = new RegExp( "^" + String.$prolog.resolve() );
+RegExp.$XMLDecl      = new RegExp( "^" + String.$XMLDecl.resolve() );
+RegExp.$doctypedecl  = new RegExp( "^" + String.$doctypedecl.resolve() );
+RegExp.$STag         = new RegExp( "^" + String.$STag.resolve() );
+RegExp.$ETag         = new RegExp( "^" + String.$ETag.resolve() );
+RegExp.$EmptyElemTag = new RegExp( "^" + String.$EmptyElemTag.resolve() );
+RegExp.$Attribute    = new RegExp( "^" + String.$Attribute.resolve() );
+RegExp.$CDSect       = new RegExp( "^" + String.$CDSect.resolve() );
+RegExp.$CharData     = new RegExp( "^" + String.$CharData.resolve() );
+RegExp.$Reference    = new RegExp( "^" + String.$Reference.resolve() );
+RegExp.$PI           = new RegExp( "^" + String.$PI.resolve() );
+RegExp.$Comment      = new RegExp( "^" + String.$Comment.resolve() );
+RegExp.$Misc         = new RegExp( "^" + String.$Misc.resolve() );
+RegExp.$S            = new RegExp( "^" + String.$S.resolve() );
\ No newline at end of file

Added: incubator/roller/trunk/web/theme/status.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/theme/status.jsp?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/theme/status.jsp (added)
+++ incubator/roller/trunk/web/theme/status.jsp Wed Jun  8 09:06:16 2005
@@ -0,0 +1,17 @@
+<%@ include file="/taglibs.jsp" %>
+
+<logic:present name="loggedIn" scope="request" >
+    <fmt:message key="mainPage.loggedInAs" /> [<bean:write name="userName"/>].<br /><br />
+    <html:link forward="logout-redirect"><fmt:message key="navigationBar.logout"/></html:link>
+</logic:present>
+
+<logic:present name="allowNewUsers" scope="request" >
+    <html:link forward="login-redirect"><fmt:message key="navigationBar.login"/></html:link><br /><br />
+    <html:link forward="newUser"><fmt:message key="navigationBar.register"/></html:link>
+</logic:present>
+
+<logic:notPresent name="loggedIn">
+    <logic:notPresent name="allowNewUsers">
+    <html:link forward="login-redirect"><fmt:message key="navigationBar.login"/></html:link>
+    </logic:notPresent>
+</logic:notPresent>

Added: incubator/roller/trunk/web/themes/base.css
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/base.css?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/base.css (added)
+++ incubator/roller/trunk/web/themes/base.css Wed Jun  8 09:06:16 2005
@@ -0,0 +1,377 @@
+/**************/
+/* Common CSS */
+/**************/
+a {
+	font-weight: normal;
+	text-decoration: underline;
+}
+a:active {}
+a:link {}
+a:visited {}
+a:hover {}
+body {
+	font-family: verdana, sans-serif;
+	font-size: small;
+	color: black;
+	background-color: white;
+}
+h1 {
+	margin:10px 10px 10px 10px;
+	font-weight: bold;
+	text-align: center;
+}
+h2 {
+	margin:10px 10px 10px 10px;
+	font-weight: bolder;
+	text-align: center;
+}
+p {
+	margin:10px 10px 10px 10px;
+    text-align: left;
+}
+pre {
+	margin:0px 10px 0px 10px;
+	overflow: auto;
+}
+.code {
+    background: #ffffcc;
+    color: #000000;
+	border: 1px solid #999999;
+	margin:10px 10px 10px 20px;
+	padding: 3px 3px;
+}
+.quote {
+	margin-left: 10%;
+	text-align: justify;
+	font-style: italic;
+}
+img {
+    border: 0px;
+  	margin: 0px; 
+}
+
+/***************/
+/* bookmark.vm */
+/***************/
+rFolder {
+	font-size: medium;
+	font-weight: bolder;
+}
+li.rFolderItem {
+	list-style: none;
+	margin-left: 0;
+	padding-left: 0;
+	font-size : small;
+	font-weight: normal;
+}
+a.rBookmark0 {
+	margin-left: 10px;
+}
+img.rBookmark {
+	margin-left: 10px;
+	border: 0;
+}
+img.smrssbadge {
+	margin-left: 10px;
+	border: 0;
+}
+
+
+/*************/
+/* navbar.vm */
+/*************/
+rNavigationBar {
+	margin-left: 0;
+	padding-left: 0;
+}
+li.rNavItem {
+	list-style: none;
+	font-size : small;
+	font-weight: normal;
+}
+
+/* navbar-css.vm */
+ul.rMenu {
+	list-style: none;
+	margin-left: 0;
+	padding-left: 0;
+}
+li.rMenuItem {
+	font-size : small;
+	font-weight: normal;
+}
+
+/* navbar-horizontal.vm: no styling */
+/* navbar-vertical.vm: no styling */
+
+/***************/
+/* newsfeed.vm */
+/***************/
+div.rNewsfeedTitle {
+	font-weight: 600;
+}
+a.rNewsfeedLink, span.rNewsfeedLink {
+	display:block;
+	margin-left: 10px;
+	font-size : small;
+	font-weight: bolder;
+}
+span.rNewsfeedDesc {
+	display:block;
+	margin-left: 10px;
+	font-size : small;
+	font-weight: normal;
+}
+
+/**************/
+/* referer.vm */
+/**************/
+ul.rReferersList {
+	list-style: none;
+	margin-left: 0;
+	padding-left: 0;
+}
+li.rReferersListItem {
+	font-size : small;
+	font-weight: normal;
+}
+a.linkback {
+	border-style: double;
+}
+
+/*************/
+/* roller.vm */
+/*************/
+
+/***********/
+/* user.vm */
+/***********/
+
+/*************/
+/* comments.vm */
+/*************/
+a.entrycommentslink {
+    background: transparent;
+}
+/* master containing div or ul */
+.comments {
+  margin: 15px 15px 15px 15px;
+}
+/* Preview / Comments Header */
+div.comments-head {
+  color: #999; 
+  font-weight:bold;
+  margin-top:10px;
+  text-transform:uppercase;
+  border-bottom:1px dotted #666;
+}
+/* actual comment content */
+.comment {
+}
+/* commenter info */
+p.comment-details {
+}
+div.comments-form {
+  color:#999;
+  font-weight:normal;
+  background:#FFF;	
+  margin: 15px 15px 15px 15px;
+}
+span.comments-syntax-indicator {
+	display: block;
+}
+
+ul.commentsList {
+	list-style: none;
+	margin-left: 0;
+	padding-left: 0;
+}
+li.commentsListItem {
+	font-size : small;
+	font-weight: normal;
+}
+/* Begin Hidden Comment Form */
+form.commentFormBox {
+    margin-top: 10px;
+}
+tr.commentFormRow {
+    color: #808080;
+    font-size: 12px;
+    padding-bottom: 6px;
+}
+input.commentFormInput {
+    font-size: 1em;
+}
+textarea.commentFormTextarea {
+    font-size: 12px;
+    width: 90% !important;
+}
+div.htmlSyntax {
+    font-weight: bold;
+}
+div.commentBody {}
+div.commentByline {}
+div.commentAuthor {
+    border: none;
+}
+/* End Hidden Comment Form */
+
+/*************/
+/* weblog.vm */
+/*************/
+a.daypermalink {
+	border-style : none;
+}
+a.entrypermalink {
+    background: transparent;
+}
+span.disabled {
+    color: red;
+}
+span.enabled {
+    color: green;
+}
+form#searchForm {
+}
+div#searchAgain {
+  border: 1px solid #999;
+  font-size: 1em;
+}
+div.trackbackUrl {
+    background: transparent;
+    margin: 0px 10px 10px 10px;
+    text-align: left;
+}
+#nextEntry {
+	text-align: right;
+}
+#previousEntry {
+	text-align: left;
+}
+ul.recentposts {
+	list-style: none;
+	margin-left: 0;
+	padding-left: 0;
+}
+li.recentposts {
+	font-size : small;
+	font-weight: normal;
+}
+ul.linkblog {
+	list-style: none;
+	margin-left: 0;
+	padding-left: 0;
+}
+li.linkblog {
+	font-size : small;
+	font-weight: normal;
+}
+div#next-previous {
+	text-align: center;
+}
+.error {
+	display: block;
+	background-color: #ffcccc;
+	border: 1px solid red;
+	color: #aa0000;
+	font-size: 0.9em;
+	font-weight: normal;
+	margin: 5px 10px 5px 0px;
+	padding: 3px;
+	width: 95%;
+}
+.status {
+	display: block;
+	background-color: #CCFFCC;
+	border: 1px solid green;
+	color: #000000;
+	font-size: .9em;
+	font-weight: normal;
+	margin: 5px 10px 5px 0px;
+	padding: 3px;
+	width: 95%;
+}
+
+/**************/
+/* website.vm */
+/**************/
+div.rWeblogCategoryChooser {
+    background: transparent;
+	margin-bottom: 10px;
+}
+a.rUnchosenCategory {
+    font-size: medium;
+	font-weight: normal;
+}
+span.rChosenCategory {
+    font-size: medium;
+    font-weight: bolder;
+}
+
+/********************/
+/* CalendarTag.java */
+/********************/
+table.hCalendarTable {
+	text-align : center;
+}
+td.hCalendarMonthYearRow {
+	font-weight: bold;
+}
+a.hCalendarNavBar {
+}
+th.hCalendarDayNameRow {
+	text-align : center;
+	font-size : x-small;
+	font-weight : bolder;
+}
+tr.hCalendarNextPrev {
+	text-align : center;
+	font-size : x-small;
+	font-style : italic;
+}
+td.hCalendarDayNotInMonth {
+	font-size : x-small;
+	background-color: white;
+	color: gray;
+}
+td.hCalendarDayCurrent {
+	text-align : center;
+	font-size  : x-small;
+	font-weight: bolder;
+}
+td.hCalendarDayLinked {
+	text-align : center;
+	font-size  : x-small;
+	font-weight: bolder;
+}
+div.hCalendarDayTitle {
+    font-size:  .9em;
+    text-align: center;
+}
+td.hCalendarDay {
+	text-align: center;
+	font-size : x-small;
+}
+
+/**************************/
+/* BigWeblogCalendarModel */ 
+/**************************/
+div.hCalendarDayTitleBig {
+  position: relative;
+  left: 0;
+  top: 0;
+  width: 25%;
+  padding: 3px 0 3px 0;
+  background: transparent;
+  color: #050505;
+  border-right: 1px solid #050505;
+  border-bottom: 1px solid #050505;
+  font-size: small;
+  text-align: center;
+  font-size: small;
+}
+div.bCalendarDayContentBig {
+  font-size: x-small;
+  padding: 3px 0px 3px 0px;
+}
+

Added: incubator/roller/trunk/web/themes/basic/Weblog.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/basic/Weblog.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/basic/Weblog.vm (added)
+++ incubator/roller/trunk/web/themes/basic/Weblog.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,44 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    #showContentLanguage($locale.language)
+    <link rel="stylesheet" type="text/css" href="$ctxPath/themes/base.css" />
+    <link rel="stylesheet" type="text/css" href="#showThemePath("basic")/theme.css" />
+    <style type="text/css">#includePage("_css")</style>
+    #showRSSAutodiscoveryLink()
+    <script type="text/javascript" src="$ctxPath/theme/scripts/roller.js">
+    </script>
+    <title>#showWebsiteTitle()</title>
+</head>
+<body>
+<table border="0" align="center" width="95%"><tbody><tr>
+  <td class="entries" width="80%" valign="top" bgcolor="#ffffff">
+    <center>
+      <h1>#showWebsiteTitle()</h1>
+      <p class="descrip">#showWebsiteDescription()</p>
+      #showWeblogCategoryChooser()<br>
+    </center>
+    #showNextPreviousLinks()
+    #showWeblogEntries("_day" 15)
+  </td>
+  <td width="20%" valign="top" bgcolor="#ffffff" width="20%">
+    <h2>Calendar</h2>
+    #showWeblogCalendar()<br>
+    <h2>RSS Feeds</h2>
+    #showRSSBadge()<br>
+    #showRSSLinks()
+    <h2>Search</h2>
+    #showSearchForm()
+    <h2>Links</h2>
+    #showBookmarks("Blogroll" true false)<br>
+    #showBookmarks("News" true false)
+    <h2>Navigation</h2>
+    #showBasicNavBar(true)<br>
+    #showEditorNavBar(true)<br>
+    <h2>Referers</h2>
+    #showReferers(30 20)
+   </td>
+</tr></tbody></table>
+</body>
+</html>

Added: incubator/roller/trunk/web/themes/basic/_css.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/basic/_css.vm?rev=189602&view=auto
==============================================================================
    (empty)

Added: incubator/roller/trunk/web/themes/basic/_day.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/basic/_day.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/basic/_day.vm (added)
+++ incubator/roller/trunk/web/themes/basic/_day.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,20 @@
+<div class="box">
+
+<div class="entry">
+   #showDayPermalink( $day )
+   #showEntryDate( $day )
+</div>
+
+#foreach( $entry in $entries )
+<p>
+   <a name="$utilities.encode($entry.anchor)" id="$utilities.encode($entry.anchor)"></a>
+   <b>$entry.title</b> #showEntryText($entry)
+   <span class="dateStamp">(#showTimestamp($entry.pubTime))</span>
+   #showEntryPermalink( $entry )
+   #showCommentsPageLink( $entry )
+</p>
+#end
+    
+#showLinkbacks( $day )
+
+</div>

Added: incubator/roller/trunk/web/themes/basic/theme.css
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/basic/theme.css?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/basic/theme.css (added)
+++ incubator/roller/trunk/web/themes/basic/theme.css Wed Jun  8 09:06:16 2005
@@ -0,0 +1,175 @@
+
+div.entry {
+  font-family:verdana, arial, sans-serif; 
+  font-size: 10px; 
+  color: #999; 
+  font-weight:bold;
+  margin-top:10px;
+  text-transform:uppercase;
+  border-bottom:1px dotted #666;		
+}
+
+div.day {
+  border-style: dotted;
+  border-width: thin;
+  font-family: verdana, sans-serif;
+  font-size: small;
+  color: black;
+  color : #000000;
+}
+
+div.box {
+  margin: 15px 15px 15px 15px;
+}
+
+h1 {
+  color:#CC9933;
+}
+h2 {
+  font-family:verdana, arial, sans-serif;
+  color:#999;
+  font-size:9px;
+  font-weight:bold;
+  background:#FFF;
+  line-height:14px;
+  padding:2px;
+  margin-top:10px;
+  border-bottom:1px dotted #666;
+  text-transform:uppercase;
+  letter-spacing: .2em;  					
+}
+
+p {
+  font-family: verdana, sans-serif;
+  font-size: small;
+  color: black;
+  color : #000000;
+}
+
+body {
+  font-family: verdana, sans-serif;
+  font-size: small;
+  color: black;
+  background-color: white;
+}
+a {
+  text-decoration: none;
+}
+a:link { 
+  color: blue;
+  font-weight: medium;
+}
+a:visited {
+  color: purple;
+  font-weight: medium;
+}
+
+a:hover {
+  text-decoration: underline overline;
+}
+img {
+  border: 0px;
+  margin: 0px; 
+}
+
+.dateStamp {
+  color : gray;
+  font-size: small;
+}
+
+.rBookmark1 {
+  margin-left: 10px;
+  font-size: small;
+  font-weight: bold;
+}
+.rBookmark2 {
+  margin-left: 10px;
+  font-weight: bold;
+  font-size: large
+}
+.rBookmark3 {
+  margin-left: 10px;
+  font-size: x-large
+}
+
+.hCalendarTable {
+  text-align : center;
+}
+.hCalendarTitle {
+  text-align : center;
+  font-weight : bolder;
+  font-size: large;
+}
+.hCalendarDayNameRow {
+  text-align : center;
+  font-weight : bolder;
+  font-size : x-small;
+}
+.hCalendarDay {
+  text-align : center;
+  font-size : x-small;
+}
+.hCalendarDayCurrent {
+  text-align : center;
+  font-size : x-small;
+  font-weight : bolder ;
+}
+.hCalendarDayLinked {
+  font-size : x-small;
+  font-weight : bolder ;
+  text-align : center;
+}
+.hCalendarDayNotInMonth {
+  font-size : x-small;
+  background-color: white;
+  color: gray;
+}
+.hCalendarNextPrev {
+  font-size : x-small;
+  text-align : center;
+  font-style : italic;
+}
+
+.rChosenCategory {
+    font-weight: bolder;
+}
+.rUnchosenCategory {
+    font-size: medium;
+}
+
+ul.rReferersList {
+  list-style: none;
+  margin-left: 0;
+  padding-left: 0;
+  font-size : x-small;
+}
+li.rReferersListItem {
+  list-style: none;
+  margin-left: 0;
+  padding-left: 0;
+  font-size : x-small;
+}
+    
+.comments {
+  margin: 15px 15px 15px 15px;
+}		
+
+.comments-form {
+  font-family:verdana, arial, sans-serif;
+  color:#999;
+  font-size:10px;
+  font-weight:normal;
+  background:#FFF;	
+  margin: 15px 15px 15px 15px;
+}	
+			
+.comments-head	{ 
+  font-family:verdana, arial, sans-serif; 
+  font-size: 10px; 
+  color: #999; 
+  font-weight:bold;
+  margin-top:10px;
+  text-transform:uppercase;
+  border-bottom:1px dotted #666;		
+}
+

Added: incubator/roller/trunk/web/themes/berkley/Weblog.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/Weblog.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/berkley/Weblog.vm (added)
+++ incubator/roller/trunk/web/themes/berkley/Weblog.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,243 @@
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    #showContentLanguage($locale.language)
+    <title>#showWebsiteTitle()</title>
+    <link rel="stylesheet" type="text/css" href="$ctxPath/themes/base.css" />
+    <link rel="stylesheet" type="text/css" href="#showThemePath("berkley")/theme.css" />
+    <style>
+    #includePage("_css")
+    </style>
+    <script type="text/javascript" src="$ctxPath/theme/scripts/roller.js">
+    </script>
+</head>
+
+<noscript>You need to have Javascript enabled to view this page</noscript>
+<script>
+var bikky = document.cookie;
+var strControls = "";
+
+//check DOM compliance
+bNS   = (document.layers) ? true:false;                     // netscape 4
+bIE   = (document.all) ? true:false;                        // ie4+
+bDOM  = ((document.getElementById)&&(!bIE))?true:false;     // ns6 etc.
+
+
+function initPage() {
+    window.defaultStatus="Welcome to #showWebsiteTitle()";
+}
+
+function exitPage() {
+    if (strControls.length == 0) deleteCookie("Controls")
+    else setCookie("Controls",strControls);
+}
+
+function go(url) {
+    window.location.href=url;
+}
+
+function getObj(id) {
+    if (bDOM) return document.getElementById(id);
+    if (bIE) return document.all[id];
+}
+
+function show(id) {
+    if (strControls.indexOf(id) != -1) return;
+    getObj("Controls").innerHTML += "<DIV class='box1'>"+getObj(id).innerHTML+"</DIV>";
+    strControls+=id+";";
+}
+
+function hide(id) {
+    index = strControls.indexOf(id);
+    if (index == -1) return;
+
+    pre = strControls.substring(0, index);
+    post = strControls.substring(index+id.length+1);
+
+    // rebuild the list of controls
+    showControls(pre+post);
+
+}
+
+function showControls(newControls) {
+    getObj("Controls").innerHTML = "";
+    strControls = "";
+
+    var split = newControls.split(";");
+    for (i=0; i<split.length; i++) {
+        show(split[i]);
+    }
+}
+
+function getCookie(name) {
+    var index = bikky.indexOf(name + "=");
+    if (index == -1) return "";
+    index = bikky.indexOf("=", index) + 1;
+    var endstr = bikky.indexOf(";", index);
+    if (endstr == -1) endstr = bikky.length;
+    return unescape(bikky.substring(index, endstr));
+}
+
+function setCookie(name, value) {
+    if (value != "") {
+        document.cookie=name + "=" + escape(value) + ";path=/" ;
+        bikky= document.cookie; // update bikky
+    }
+}
+
+function deleteCookie (name) {
+
+    if (getCookie(name)) {
+        document.cookie = name + "=" + ";path=/; expires=Thu, 01-Jan-70 00:00:01 GMT";
+    }
+}
+
+
+</script>
+
+<BODY onload="initPage()" onunload="exitPage()">
+<table width="574">
+    <tr>
+        <td class="Banner">
+            <img src="#showThemePath("berkley")/images/banner_palms.jpg" border="0">
+            <TABLE cellspacing="0" cellpadding="0">
+                <TR>
+                    <TD align="left" width="533" bgcolor="#ffffff" >
+                        <DIV align="center" id="menu_controls" style="visibility: hidden;">
+                            <FONT face="Verdana, Arial, Helvetica, sans-serif" color="#000000" size="1">
+                                <A href="javascript:show('calendar')">Calendar</A> |
+                                <A href="javascript:show('menu')">Controls</A> |
+                                <A href="javascript:show('blogs')">Blogs</A> |
+                                <A href="javascript:show('referrers')">Referrers</A> |
+                                <A href="javascript:show('cat')">Categories</A> |
+                                <A href="javascript:show('about')">About</A> |
+                                <A href="javascript:show('search')">Search</A> |
+                                <A href="$ctxPath/rss/$userName">RSS</A>
+                            </FONT>
+                        </DIV>
+                    </TD>
+                </TR>
+            </TABLE>
+        </td>
+    </tr>
+</table>
+#showNextPreviousLinks()
+#showWeblogEntries("_day" 15)
+
+<div id="Controls" class="controls"></div>
+
+<div class="hidden" id="search">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title"><a href="javascript:hide('search')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left"></a>Search</td>
+            <td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">
+            #showSearchForm()
+            </td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+<div class="hidden" id="referrers">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title"><a href="javascript:hide('referrers')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left"></a>Referrers</td>
+            <td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">
+            #showReferers(20 30)
+            </td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+
+<div class="hidden" id="menu">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title"><a href="javascript:hide('menu')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left"></a>Menu</td>
+            <td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">
+                #showBasicNavBar(true)
+                #showEditorNavBar(true)
+            </td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+<div class="hidden" id="blogs">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title"><a href="javascript:hide('blogs')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left"></a>Blogs</td>
+            <td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">#showBookmarks("Blogroll" true false)</td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+<div class="hidden" id="cat">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title" width="140" nowrap><a href="javascript:hide('cat')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left"></a>Categories</td>
+            <td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">#showWeblogCategoryChooser()</td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+<div class="hidden" id="about">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title"><a href="javascript:hide('about')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left"></a>About</td>
+            <td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">Contact:
+            <a href="mailto:$encodedEmail">$fullName</a>
+            </td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+<div class="hidden" id="calendar">
+    <table cellspacing="0" cellpadding="0" width="140">
+        <tr>
+            <td class="ctrl_title"><a href="javascript:hide('calendar')">
+            <img src="#showThemePath('berkley')/images/ctrl_close.gif" border="0" align="left">
+            </a>Calendar</td><td><img src="#showThemePath('berkley')/images/ctrl_title_t.gif"></td>
+        </tr>
+        <tr>
+            <td class="ctrl_content">#showWeblogCalendar()</td>
+            <td>&nbsp;</td>
+        </tr>
+    </table>
+</div>
+
+
+</BODY>
+</HTML>
+<script>
+    showControls(getCookie("Controls"));
+        getObj("menu_controls").style.visibility="visible";
+</script>

Added: incubator/roller/trunk/web/themes/berkley/_css.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/_css.vm?rev=189602&view=auto
==============================================================================
    (empty)

Added: incubator/roller/trunk/web/themes/berkley/_day.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/_day.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/berkley/_day.vm (added)
+++ incubator/roller/trunk/web/themes/berkley/_day.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,27 @@
+<table width="572">
+	#foreach( $entry in $entries )
+	<tr>
+		<td>			
+			<TABLE class="BlogTitle" align="right" cellspacing="0" cellpadding="0" border="0">
+				<tr>
+					<td><img src="#showThemePath('berkley')/images/title_left_t.gif"></td>
+					<td width="10%" class="BlogTitle" nowrap>
+                        <a name="$utilities.encode($entry.anchor)" id="$utilities.encode($entry.anchor)"></a>
+                        ::: $entry.title :::
+                    </td>
+					<td><img src="#showThemePath('berkley')/images/title_right_t.gif"></td>
+					<td width="90%" class="BlogDate" align="right">#showEntryDate( $day )</td>
+				</tr>
+				<tr>
+					<td class="NewBlog" colspan="4">
+						#showEntryText($entry)
+						<DIV class="BlogTime" align="right">									
+							[#showTimestamp($entry.updateTime)|<a href="$entry.getPermaLink()">#</a>]
+						</DIV>
+					</td>
+				</tr>
+			</table>				
+		</td>
+	</tr>	
+	#end	
+</table>

Added: incubator/roller/trunk/web/themes/berkley/images/banner_palms.jpg
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/images/banner_palms.jpg?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/berkley/images/banner_palms.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/berkley/images/ctrl_close.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/images/ctrl_close.gif?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/berkley/images/ctrl_close.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/berkley/images/ctrl_title_t.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/images/ctrl_title_t.gif?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/berkley/images/ctrl_title_t.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/berkley/images/title_left_t.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/images/title_left_t.gif?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/berkley/images/title_left_t.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/berkley/images/title_right_t.gif
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/images/title_right_t.gif?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/berkley/images/title_right_t.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/berkley/theme.css
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/berkley/theme.css?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/berkley/theme.css (added)
+++ incubator/roller/trunk/web/themes/berkley/theme.css Wed Jun  8 09:06:16 2005
@@ -0,0 +1,122 @@
+A:active {
+	COLOR: Silver;
+	TEXT-DECORATION: none
+}
+A:hover {
+	COLOR: Navy;
+	TEXT-DECORATION: underline;
+}
+A:link {
+	COLOR: Navy;
+	TEXT-DECORATION: none
+}
+A:visited {
+	TEXT-DECORATION: none;
+	color : #00008B;
+}
+BODY {
+	margin : 42px;
+	background-color : #DBEAF3;
+	color : Black;
+}
+
+td.NewBlog {
+	background-color : White;
+	text-align : left;
+	padding: 4px;
+	border : 4px solid Navy;
+        width : 572px;
+}
+
+div.quote {
+	padding: 5px;
+	margin:10px;
+	font-style : italic;
+	background-color: #FFFFF0;
+	border : 1px solid Silver;
+}
+
+div.BlogTime {
+	color : Navy;
+	font : smaller Tahoma;
+}
+
+td.BlogTitle {
+	background-color : Navy;
+	font-family : Tahoma;
+	font-size : small;
+	color : White;
+}
+
+td.BlogDate {
+	font-family : Tahoma;
+	font-size : 12;
+}
+
+table.BlogTitle {
+	width : 572px;
+	border : 0px;
+}
+
+.hCalendarTitle {  font-family : Tahoma;text-align : center;  font-weight : bolder ;}
+.hCalendarDay {  font-family : Tahoma;text-align : center;  font-size : 9px;  border-width: thin;}
+.hCalendarDayCurrent {  font-family : Tahoma;text-align : center;  font-size : 9px;  font-weight : bolder ;  border-width: thin;  border-style: dotted;}
+.hCalendarDayNameRow {  font-family : Tahoma;text-align : center;  font-weight : bold ;  font-size : 9px;}
+.hCalendarDayLinked {  font-family : Tahoma;font-weight : bolder ;  text-align : center;  font-size : 9px;  border-width: thin;}
+.hCalendarDayNotInMonth {  font-family : Tahoma;text-align : center;  font-size : 9px;	color : #aaaaaa;}
+.hCalendarNextPrev {  font-family : Tahoma;text-align : center;  font-size : smaller;  margin-top:5px;}
+.hCalendarMonthYearRow {
+	background-color : Navy;
+	color : White;
+}
+
+div.hidden {
+	visibility: hidden;
+}
+
+div.box1 {
+	background-color : #DBEAF3;
+	border-left :4 solid Navy;
+	padding-bottom:5;	
+	position: relative;
+}
+
+div.controls {
+	position: absolute;
+	left:622;
+	top:44;
+}
+
+td.Banner {
+	border : 4px solid Navy;
+	background-color : White;
+	text-align : center;
+	vertical-align : middle;
+	padding-bottom : 2px;
+	padding-left : 0px;
+	padding-right : 0px;
+	padding-top : 0px;
+}
+
+td.ctrl_title {
+	background-color : Navy;
+	font-family : Tahoma;
+	font-size : smaller;
+	color : White;
+	text-align : right;
+	padding: 2px;
+	border: 0px;
+	font-weight : bold;
+}
+
+td.ctrl_content {
+	background-color : white;
+	border-right : 1px solid Silver;
+	border-bottom : 1px solid Silver;
+	padding: 4px;
+	font-family : Tahoma;
+	font-size : 11px;
+	color : Black;
+	text-align : left;
+	line-height : 14px;
+}

Added: incubator/roller/trunk/web/themes/cheb/Weblog.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/Weblog.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/cheb/Weblog.vm (added)
+++ incubator/roller/trunk/web/themes/cheb/Weblog.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,63 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
+    #showContentLanguage($locale.language)
+    <title>#showWebsiteTitle()</title>
+    <link rel="stylesheet" type="text/css" href="$ctxPath/themes/base.css" />
+    <link rel="stylesheet" type="text/css" href="#showThemePath("cheb")/theme.css" />
+    <style type="text/css">
+    #includePage("_css")
+    </style>
+</head>
+<body>
+  <div id="content">
+    <h1>#showWebsiteTitle()</h1>
+    #showWeblogCategoryChooser()
+
+    #showNextPreviousLinks()
+    <div id="entries">
+        #showWeblogEntries("_day" 10)
+    </div>
+  </div>
+
+  <div id="menu">
+    #showRSSBadge()
+    <div id="calendar">
+        #showWeblogCalendar()
+    </div>
+    <div class="item">
+        #showSearchForm()
+    </div>
+    <div class="item">
+        #showBookmarks("Blogroll" false false )
+    <div>
+    <div class="item">
+        #showBookmarks("News" false false)
+    </div>
+    <div class="item">
+        #showEditorNavBar(true)
+    </div>
+    <div class="item">
+        #showBasicNavBar(false)
+    </div>
+    <div class="item">
+        <a href="http://validator.w3.org/check/referer">
+          <img class="w3" src="$ctxPath/images/vcss.png"
+            alt="Valid CSS!"/></a>
+        <a href="http://validator.w3.org/check/referer"><img
+            src="$ctxPath/images/valid-xhtml10.png"
+            alt="Valid XHTML 1.0!" class="w3"/></a>
+    </div>
+    <div class="item">
+        #showReferers(20 25)
+    </div>
+
+     <div class="item">design by
+       <a href="http://www.cheblogs.com/roller/page/bblakeley">Brian Blakeley</a>
+     </div>
+  </div>
+ </body>
+</html>

Added: incubator/roller/trunk/web/themes/cheb/_css.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/_css.vm?rev=189602&view=auto
==============================================================================
    (empty)

Added: incubator/roller/trunk/web/themes/cheb/_day.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/_day.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/cheb/_day.vm (added)
+++ incubator/roller/trunk/web/themes/cheb/_day.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,12 @@
+
+<div class="entryHeader">
+   #showDayPermalink( $day )
+   #showEntryDate( $day )
+</div>
+
+#foreach( $entry in $entries )
+<div class="entryContent">
+    <p>
+        <a name="$utilities.encode($entry.anchor)" id="$utilities.encode($entry.anchor)"></a>
+        <b>$entry.title</b> #showEntryText($entry)
        <span class="dateStamp">(#showTimestamp($entry.pubTime))</span>
        #showEntryPermalink( $entry )
        #showCommentsPageLink( $entry )<br />
        Trackback: #showTrackbackURL($entry)
    </p>
</div>
#end
+<p>#showLinkbacks( $day )</p>

Added: incubator/roller/trunk/web/themes/cheb/images/background.jpg
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/images/background.jpg?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/cheb/images/background.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/cheb/images/titlebar.jpg
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/images/titlebar.jpg?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/cheb/images/titlebar.jpg
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/cheb/images/valid-xhtml10.png
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/images/valid-xhtml10.png?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/cheb/images/valid-xhtml10.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/cheb/images/vcss.png
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/images/vcss.png?rev=189602&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/themes/cheb/images/vcss.png
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/themes/cheb/scripts/global.js
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/scripts/global.js?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/cheb/scripts/global.js (added)
+++ incubator/roller/trunk/web/themes/cheb/scripts/global.js Wed Jun  8 09:06:16 2005
@@ -0,0 +1,229 @@
+/* Function to route non-standards compliant browsers to upgrade */
+/*
+if (!document.getElementById) {
+    window.location = 
+	   "http://archive.webstandards.org/upgrade/"
+}
+*/
+
+function MM_preloadImages() { //v3.0
+  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
+    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
+    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
+}
+
+function MM_swapImgRestore() { //v3.0
+  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
+}
+
+function MM_findObj(n, d) { //v4.01
+  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
+    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
+  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
+  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
+  if(!x && d.getElementById) x=d.getElementById(n); return x;
+}
+
+function MM_swapImage() { //v3.0
+  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
+   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
+}
+
+/* This function is used to change the style class of an element */
+function swapClass(obj, newStyle) {
+    obj.className = newStyle;
+}
+
+function isUndefined(value) {   
+    var undef;   
+    return value == undef; 
+}
+
+/* Function for showing and hiding layers (divs) */
+function toggleBox(szDivID, iState) // 1 visible, 0 hidden
+{
+    var divName = document.getElementById(szDivID);
+    divName.style.visibility = iState ? "visible" : "hidden";
+}
+
+/* Function for showing and hiding rows or divs */
+function toggleRow(szDivID, iState) // 1 visible, 0 hidden
+{
+    isNS = (navigator.appName == "Netscape") ? true : false;
+    var displayType;
+    if (isNS) {
+        displayType = "table-row";
+    } else {
+        displayType = "block";
+    }
+    var obj = document.getElementById(szDivID);
+    obj.style.display = iState ? displayType : "none";
+}
+
+function checkAll(theForm) { // check all the checkboxes in the list
+  for (var i=0;i<theForm.elements.length;i++) {
+    var e = theForm.elements[i];
+		var eName = e.name;
+    	if (eName != 'allbox' && 
+            (e.type.indexOf("checkbox") == 0)) {
+        	e.checked = theForm.allbox.checked;		
+		}
+	} 
+}
+
+/* Function to clear a form of all it's values */
+function clearForm(frmObj) {
+	for(var i = 0; i < frmObj.length; i++) {
+		if(frmObj.elements[i].type.indexOf("text") == 0 || 
+				frmObj.elements[i].type.indexOf("password") == 0) {
+					frmObj.elements[i].value="";
+		} else if (frmObj.elements[i].type.indexOf("radio") == 0) {
+			frmObj.elements[i].checked=false;
+		} else if (frmObj.elements[i].type.indexOf("checkbox") == 0) {
+			frmObj.elements[i].checked = false;
+		} else if (frmObj.elements[i].type.indexOf("select") == 0) {
+			for(var j = 0; j < frmObj.elements[i].length ; j++) {
+				frmObj.elements[i].options[j].selected=false;
+			}
+            frmObj.elements[i].options[0].selected=true;
+		}
+	} 
+}
+
+/* Function to hide form elements that show through
+   the search form when it is visible */
+function toggleForm(frmObj, iState) // 1 visible, 0 hidden 
+{
+	for(var i = 0; i < frmObj.length; i++) {
+		if (frmObj.elements[i].type.indexOf("select") == 0 || frmObj.elements[i].type.indexOf("checkbox") == 0) {
+            frmObj.elements[i].style.visibility = iState ? "visible" : "hidden";
+		}
+	} 
+}
+    
+/* This function is used to open a pop-up window */
+function openWindow(url, winName, winParams) {
+	popupWin = window.open(url, winName, winParams);
+    popupWin.focus();
+}
+
+// This resizes the browser window to take up the user's
+// entire screen height & width
+function growToFullWindow() {
+    var screenWidth = window.screen.availWidth;
+    var screenHeight = window.screen.availHeight;
+    top.window.resizeTo(screenWidth,screenHeight); 
+    top.window.moveTo(0,0);
+}
+
+function shrinkWindow(newWidth, newHeight) {
+    top.window.resizeTo(newWidth,newHeight); 
+    top.window.moveTo(0,0);
+}
+
+/* This function is used to set cookies */
+function setCookie(name,value,expires,path,domain,secure) {
+  document.cookie = name + "=" + escape (value) +
+    ((expires) ? "; expires=" + expires.toGMTString() : "") +
+    ((path) ? "; path=" + path : "") +
+    ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
+}
+
+/* This function is used to get cookies */
+function getCookie(name) {
+	var prefix = name + "=" 
+	var start = document.cookie.indexOf(prefix) 
+
+	if (start==-1) {
+		return null;
+	}
+	
+	var end = document.cookie.indexOf(";", start+prefix.length) 
+	if (end==-1) {
+		end=document.cookie.length;
+	}
+
+	var value=document.cookie.substring(start+prefix.length, end) 
+	return unescape(value);
+}
+
+/* This function is used to delete cookies */
+function deleteCookie(name,path,domain) {
+  if (getCookie(name)) {
+    document.cookie = name + "=" +
+      ((path) ? "; path=" + path : "") +
+      ((domain) ? "; domain=" + domain : "") +
+      "; expires=Thu, 01-Jan-70 00:00:01 GMT";
+  }
+}
+
+function setTheme(themeName) {
+    var expires = new Date();
+    expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // sets it for approx 365 days.
+    setCookie("roller-theme",themeName,expires,"/");
+    document.location.reload();
+}
+
+/* This function is used to show/hide elements with a display:none style attribute */ 
+function toggle(targetId) {
+    if (document.getElementById) {
+        target = document.getElementById(targetId);
+    	if (target.style.display == "none") {
+    		target.style.display = "";            
+    	} else {
+    		target.style.display = "none";
+    	}
+    }
+}
+
+/* The toggleFolder and togglePlusMinus functions are for expanding/contracting folders */
+function toggleFolder(targetId) {
+    var expanded;
+    if (document.getElementById) {
+        target = document.getElementById(targetId);
+    	if (target.style.display == "none") {
+    		target.style.display = "";    
+            expanded = true;        
+    	} else {
+    		target.style.display = "none";
+            expanded = false;
+    	}
+        togglePlusMinus("i" + targetId);
+        
+        // set a cookie to remember this preference
+        var expires = new Date();
+        expires.setTime(expires.getTime() + 24 * 365 * 60 * 60 * 1000); // sets it for approx 365 days.
+        setCookie("rfolder-"+targetId,expanded,expires,"/");
+    }
+}
+
+function togglePlusMinus(targetId) {
+    if (document.getElementById) {
+        target = document.getElementById(targetId);
+    	if (target.innerHTML == "+") {
+    		target.innerHTML = "-";
+    	} else {
+    		target.innerHTML = "+";
+    	}
+    }
+}
+
+/* This function is to set folders to expand/contract based on a user's preference */
+function folderPreference(folderId) {
+    var folderCookie = getCookie("rfolder-"+folderId);
+    if (folderCookie != null) { // we have user's last setting
+        folder = document.getElementById(folderId);
+        plusMinus = document.getElementById("i"+folderId);
+        if (folderCookie == "true") { // show
+            folder.style.display = "";
+            plusMinus.innerHTML = "-";
+        } else { // hide
+            folder.style.display = "none";
+            plusMinus.innerHTML = "+"; 
+        }
+    }
+}
+
+// Show the document's title on the status bar
+window.defaultStatus=document.title;
+

Added: incubator/roller/trunk/web/themes/cheb/theme.css
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/cheb/theme.css?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/cheb/theme.css (added)
+++ incubator/roller/trunk/web/themes/cheb/theme.css Wed Jun  8 09:06:16 2005
@@ -0,0 +1,238 @@
+body {
+	margin: 0px 0px 0px 0px;
+}
+
+h2 {
+	padding-top: 10px;
+}
+
+p,h1,pre {
+	margin: 0px 30px 10px 30px;
+}
+
+#content {
+	margin-right: 185px;
+	padding: 10px;
+	text-align: center; /* centers content */
+}
+
+#content #entries {
+	text-align: left;
+}
+
+#content #title {
+	border: 0px;
+	height: 73px;
+	width: 422px;
+}
+
+#content .rWeblogCategoryChooser {
+	margin-bottom: 10px;
+}
+
+#menu {
+	line-height: 17px;
+	padding: 10px;
+	position: absolute;
+	right: 0px;
+	top: 0px;
+	width: 185px;
+}
+
+#menu #calendar {
+	margin-bottom: 10px;
+	margin-top: 5px;
+	padding: 2px;
+}
+
+/* center the calendar table */
+#menu #calendar table {
+	margin-left: auto;
+	margin-right: auto;
+}
+
+#menu .item {
+	padding: 10px 0px 10px 2px;
+}
+
+
+body {
+	/* Here we'll declare the default font-size and font-family. 
+	 * The rest of the typographical rules use relative sizes based on this font-size. 
+	 * We can easily modify overall typography by changing or overriding these values. 
+	 */
+	background: #F4F4D1; 
+	color: #573e93;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 70%;
+    	margin: 0px;
+}
+
+a {
+	font-weight: bold;
+	text-decoration: none;
+}
+
+a:hover {
+	text-decoration: underline overline;
+}
+
+a:active {
+	text-decoration: none;
+}
+
+.dateStamp {
+	background: transparent;
+	color: #825d9c;
+	font-size: 8pt;
+}
+
+.error {
+	background: transparent;
+	color: #FF0000;
+}
+
+#calendar {
+	color: #412FC8;//825d9c
+}
+
+.hCalendarDay {
+	border-width: thin;
+	font-size: .9em;
+	text-align: center;
+}
+
+.hCalendarDayCurrent {
+	border-style: solid;
+	border-width: medium;
+	font-size: .9em;
+	font-weight: bolder;
+	text-align: center;
+}
+
+.hCalendarDayLinked {
+	border-width: thin;
+	font-size: .9em;
+	font-weight: bolder;
+	text-align: center;
+}
+
+.hCalendarDayNameRow {
+	font-size: .9em;
+	font-weight: bolder;
+	text-align: center;
+}
+
+.hCalendarDayNotInMonth {
+	background: transparent;
+	color: #AAAAAA;
+	font-size: .9em;
+	text-align: center;
+}
+
+.hCalendarNextPrev {
+	text-align: center;
+}
+
+.hCalendarTitle {
+	font-weight: bolder;
+	text-align: center;
+}
+
+#menu {
+	background-color: #000080;
+	background-image: url(#showThemeImagePath("cheb" "background.jpg"));
+	color: #000080;
+	width: 20%;
+}
+
+#menu #calendar {
+	border: 3px solid #575700;
+}
+
+#menu .item {
+	border-top: 2px dashed #575700;
+}
+
+.rFolder, .rNewsfeedTitle {
+	font-weight: 600;
+}
+
+.permalink, .daypermalink {
+	border: 0px;
+	vertical-align: bottom;
+}
+
+/* hide borders for all images with links */
+img a {
+    border: 0px;
+}
+
+#content {
+	background: #F4F4D1;
+	color: #412FC8;
+}
+
+#content a {
+	background: transparent;
+	color: #000080;
+}
+
+#content pre {
+	background: #FFFFCC;
+	color: #573e93;
+	padding: 5px;
+}
+
+.entryHeader {
+	background: #F4F4D1;
+	background-image: url(#showThemeImagePath("cheb" "titlebar.jpg"));
+	background-image: no-repeat;
+	color: #000080;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size: 1.1em;
+	font-variant: small-caps;
+	font-weight: bold;
+	position: relative;
+	top: 0px;
+	left: 10px;
+	width: 490px;
+	margin: 5px;
+	padding: 5px;
+}
+
+.entryContent {
+    background: #F4F4D1;
+    color: #000080;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 1.1em;
+    position: relative;
+	left: 20px;
+	width: 65%;
+    margin: 5px;
+    padding: 5px;
+}
+
+#menu a {
+	background: transparent;
+	color: #573e93;
+}
+
+#menu .rFolder a, #menu .rNewsfeedTitle a {
+	background: transparent;
+	color: #EFABB3;
+}
+
+#menu .rFolder span, #menu .rNewsfeedTitle span {
+    font-weight: bold;
+}
+
+.rReferersList {
+	font-size:1em;
+	margin-left: 5px;
+	padding-left: 5px;
+}
+
+.rReferersListItem {
+	font-size:0.7em;
+}

Added: incubator/roller/trunk/web/themes/clean/Weblog.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/clean/Weblog.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/clean/Weblog.vm (added)
+++ incubator/roller/trunk/web/themes/clean/Weblog.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,37 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    #showContentLanguage($locale.language)
+    <link rel="stylesheet" type="text/css" href="$ctxPath/themes/base.css" />
+    <link rel="stylesheet" type="text/css" href="#showThemePath("clean")/theme.css" />
+    <style type="text/css">#includePage("_css")</style>
+    <title>#showWebsiteTitle()</title>
+</head>
+<body>
+    <table cellpadding="5" cellspacing="15" border="0" align="center" width="95%">
+        <tbody>
+            <tr>
+                <td width="5%" valign="top" bgcolor="#ffffff">&nbsp;</td>
+                <td width="75%" valign="top" bgcolor="#ffffff">
+                    <h2>#showWebsiteTitle()</h2>
+                    <h3>#showWebsiteDescription()</h3>
+                    #showWeblogCategoryChooser()<br>
+                    #showNextPreviousLinks()
+                    #showWeblogEntries("_day" 5)
+                </td>
+                <td valign="top" bgcolor="#ffffff" width="20%">
+                    <br>#showWeblogCalendar()<br><br>
+                    #showRSSBadge()<br><br><br>
+                    #showBasicNavBar(true)<br>
+                    #showSearchForm()<br>
+                    #showBookmarks("Blogroll" true false)<br>
+                    #showBookmarks("News" true false)<br>
+                    #showEditorNavBar(true)<br>
+                    #showReferers(30 20)
+                </td>
+            </tr>
+        </tbody>
+    </table>
+</body>
+</html>
\ No newline at end of file

Added: incubator/roller/trunk/web/themes/clean/_css.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/clean/_css.vm?rev=189602&view=auto
==============================================================================
    (empty)

Added: incubator/roller/trunk/web/themes/clean/_day.vm
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/clean/_day.vm?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/clean/_day.vm (added)
+++ incubator/roller/trunk/web/themes/clean/_day.vm Wed Jun  8 09:06:16 2005
@@ -0,0 +1,3 @@
+<table>
    <tr>
       <td style="font-size:11px;">
       #showDayPermalink( $day )
       #showEntryDate( $day )
       </td>
    </tr>
+    <tr><td style="font-size:11px;">
    #foreach( $entry in $entries )
        <p><a name="$utilities.encode($entry.anchor)" id="$utilities.encode($entry.anchor)"></a>
            <div class="belowTitle">
                <div class="title">
                    &nbsp;<b>$entry.title</b>
                </div>
            </div>
            <br>
            #showEntryText($entry)
            <br><br>
            <small>(#showTimestamp($entry.updateTime)/#showTimestamp($entry.pubTime))</small>
           #showEntryPermalink( $entry )
           #showCommentsPageLink( $entry )<br>
           Trackback: #showTrackbackURL( $entry )
        </p>
    #end
    </td></tr>
+    <tr><td style="font-size:11px;">
        <div class="box">
        #showLinkbacks( $day )
        </div>
    </td></tr>
</table>
\ No newline at end of file

Added: incubator/roller/trunk/web/themes/clean/theme.css
URL: http://svn.apache.org/viewcvs/incubator/roller/trunk/web/themes/clean/theme.css?rev=189602&view=auto
==============================================================================
--- incubator/roller/trunk/web/themes/clean/theme.css (added)
+++ incubator/roller/trunk/web/themes/clean/theme.css Wed Jun  8 09:06:16 2005
@@ -0,0 +1,92 @@
+body  {
+    margin:  0;
+    padding:  0;
+    color:  black;
+    background-color: white;
+    font-family: Verdana, Arial, Helvetica, sans-serif;
+    font-size: 10px;
+}
+h1 {
+    color : #0000FAA;
+}
+h2 {
+    color : #0000AA;
+    font-size: 20px;
+}
+h3 {
+    color : #0000AA;
+    font-size: 11px;
+}
+td{
+    font-size: 10px;
+}
+p {
+    color : #000055;
+    font-size: 10px;
+}
+.rBookmark {
+    font-size: small;
+}
+.hCalendarMonthYearRow {
+    font-size: medium;
+    font-weight: bold;
+    color: #0000AA;
+}
+.hCalendarDayNameRow {
+    font-size: x-small;
+    font-weight: bold;
+}
+.hCalendarDay {
+    font-size: x-small;
+}
+.hCalendarDayCurrent {
+    font-size: x-small;
+    font-weight: bold;
+    border-style: dashed;
+    border-width: thin;
+    border-color: #0000AA;
+    color: #0000AA;
+}
+.hCalendarNextPrev {
+    font-size: x-small;
+    font-weight: bold;
+}
+a {
+	font-family:Verdana, Arial, Helvetica, sans-serif;
+	text-decoration: none;
+	font-size: 10px;
+    font-weight: bold;
+}
+a:hover {
+	font-family:Verdana, Arial, Helvetica, sans-serif;
+	text-decoration: none;
+	font-size: 10px;
+    font-weight: bold;
+}
+div.codeblock {
+    font-size:9px;
+    color:white;
+    border-style:solid;
+    border-width:1px;
+    border-color:black;
+    background-color:#B0B0B0;
+}
+div.title {
+    position: relative;
+    top:2px;
+    left:2px;
+    height:15px;
+    width:300px;
+    color: white;
+    background-color:#0000A0;
+    border-color:white;
+    border-style:solid;
+    border-width:1px;
+}
+div.belowTitle {
+    vertical-align:middle;
+    height:21px;
+    width:306px;
+    color: white;
+    background-color:#0000A0;
+}