You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by gs...@apache.org on 2009/06/25 16:43:06 UTC

svn commit: r788367 [3/7] - in /lucene/openrelevance/site: ./ publish/ publish/images/ publish/skin/ publish/skin/css/ publish/skin/images/ publish/skin/scripts/ publish/skin/translations/ src/ src/documentation/ src/documentation/classes/ src/document...

Added: lucene/openrelevance/site/publish/skin/prototype.js
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/publish/skin/prototype.js?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/publish/skin/prototype.js (added)
+++ lucene/openrelevance/site/publish/skin/prototype.js Thu Jun 25 14:43:01 2009
@@ -0,0 +1,1257 @@
+/*  Prototype JavaScript framework, version 1.4.0_pre4
+ *  (c) 2005 Sam Stephenson <sa...@conio.net>
+ *
+ *  THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
+ *  against the source tree, available from the Prototype darcs repository. 
+ *
+ *  Prototype is freely distributable under the terms of an MIT-style license.
+ *
+ *  For details, see the Prototype web site: http://prototype.conio.net/
+ *
+/*--------------------------------------------------------------------------*/
+
+var Prototype = {
+  Version: '1.4.0_pre4',
+  
+  emptyFunction: function() {},
+  K: function(x) {return x}
+}
+
+var Class = {
+  create: function() {
+    return function() { 
+      this.initialize.apply(this, arguments);
+    }
+  }
+}
+
+var Abstract = new Object();
+
+Object.extend = function(destination, source) {
+  for (property in source) {
+    destination[property] = source[property];
+  }
+  return destination;
+}
+
+Function.prototype.bind = function(object) {
+  var __method = this;
+  return function() {
+    return __method.apply(object, arguments);
+  }
+}
+
+Function.prototype.bindAsEventListener = function(object) {
+  var __method = this;
+  return function(event) {
+    return __method.call(object, event || window.event);
+  }
+}
+
+Number.prototype.toColorPart = function() {
+  var digits = this.toString(16);
+  if (this < 16) return '0' + digits;
+  return digits;
+}
+
+var Try = {
+  these: function() {
+    var returnValue;
+
+    for (var i = 0; i < arguments.length; i++) {
+      var lambda = arguments[i];
+      try {
+        returnValue = lambda();
+        break;
+      } catch (e) {}
+    }
+
+    return returnValue;
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var PeriodicalExecuter = Class.create();
+PeriodicalExecuter.prototype = {
+  initialize: function(callback, frequency) {
+    this.callback = callback;
+    this.frequency = frequency;
+    this.currentlyExecuting = false;
+
+    this.registerCallback();
+  },
+
+  registerCallback: function() {
+    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+  },
+
+  onTimerEvent: function() {
+    if (!this.currentlyExecuting) {
+      try { 
+        this.currentlyExecuting = true;
+        this.callback(); 
+      } finally { 
+        this.currentlyExecuting = false;
+      }
+    }
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+function $() {
+  var elements = new Array();
+
+  for (var i = 0; i < arguments.length; i++) {
+    var element = arguments[i];
+    if (typeof element == 'string')
+      element = document.getElementById(element);
+
+    if (arguments.length == 1) 
+      return element;
+
+    elements.push(element);
+  }
+
+  return elements;
+}
+
+if (!Array.prototype.push) {
+  Array.prototype.push = function() {
+		var startLength = this.length;
+		for (var i = 0; i < arguments.length; i++)
+      this[startLength + i] = arguments[i];
+	  return this.length;
+  }
+}
+
+if (!Function.prototype.apply) {
+  // Based on code from http://www.youngpup.net/
+  Function.prototype.apply = function(object, parameters) {
+    var parameterStrings = new Array();
+    if (!object)     object = window;
+    if (!parameters) parameters = new Array();
+    
+    for (var i = 0; i < parameters.length; i++)
+      parameterStrings[i] = 'parameters[' + i + ']';
+    
+    object.__apply__ = this;
+    var result = eval('object.__apply__(' + 
+      parameterStrings.join(', ') + ')');
+    object.__apply__ = null;
+    
+    return result;
+  }
+}
+
+Object.extend(String.prototype, {
+  stripTags: function() {
+    return this.replace(/<\/?[^>]+>/gi, '');
+  },
+
+  escapeHTML: function() {
+    var div = document.createElement('div');
+    var text = document.createTextNode(this);
+    div.appendChild(text);
+    return div.innerHTML;
+  },
+
+  unescapeHTML: function() {
+    var div = document.createElement('div');
+    div.innerHTML = this.stripTags();
+    return div.childNodes[0].nodeValue;
+  },
+  
+  parseQuery: function() {
+    var str = this;
+    if (str.substring(0,1) == '?') {
+      str = this.substring(1);
+    }
+    var result = {};
+    var pairs = str.split('&');
+    for (var i = 0; i < pairs.length; i++) {
+      var pair = pairs[i].split('=');
+      result[pair[0]] = pair[1];
+    }
+    return result;
+  }
+});
+
+
+var _break    = new Object();
+var _continue = new Object();
+
+var Enumerable = {
+  each: function(iterator) {
+    var index = 0;
+    try {
+      this._each(function(value) {
+        try {
+          iterator(value, index++);
+        } catch (e) {
+          if (e != _continue) throw e;
+        }
+      });
+    } catch (e) {
+      if (e != _break) throw e;
+    }
+  },
+  
+  all: function(iterator) {
+    var result = true;
+    this.each(function(value, index) {
+      if (!(result &= (iterator || Prototype.K)(value, index))) 
+        throw _break;
+    });
+    return result;
+  },
+  
+  any: function(iterator) {
+    var result = true;
+    this.each(function(value, index) {
+      if (result &= (iterator || Prototype.K)(value, index)) 
+        throw _break;
+    });
+    return result;
+  },
+  
+  collect: function(iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      results.push(iterator(value, index));
+    });
+    return results;
+  },
+  
+  detect: function (iterator) {
+    var result;
+    this.each(function(value, index) {
+      if (iterator(value, index)) {
+        result = value;
+        throw _break;
+      }
+    });
+    return result;
+  },
+  
+  findAll: function(iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      if (iterator(value, index))
+        results.push(value);
+    });
+    return results;
+  },
+  
+  grep: function(pattern, iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      var stringValue = value.toString();
+      if (stringValue.match(pattern))
+        results.push((iterator || Prototype.K)(value, index));
+    })
+    return results;
+  },
+  
+  include: function(object) {
+    var found = false;
+    this.each(function(value) {
+      if (value == object) {
+        found = true;
+        throw _break;
+      }
+    });
+    return found;
+  },
+  
+  inject: function(memo, iterator) {
+    this.each(function(value, index) {
+      memo = iterator(memo, value, index);
+    });
+    return memo;
+  },
+  
+  invoke: function(method) {
+    var args = $A(arguments).slice(1);
+    return this.collect(function(value) {
+      return value[method].apply(value, args);
+    });
+  },
+  
+  max: function(iterator) {
+    var result;
+    this.each(function(value, index) {
+      value = (iterator || Prototype.K)(value, index);
+      if (value >= (result || value))
+        result = value;
+    });
+    return result;
+  },
+  
+  min: function(iterator) {
+    var result;
+    this.each(function(value, index) {
+      value = (iterator || Prototype.K)(value, index);
+      if (value <= (result || value))
+        result = value;
+    });
+    return result;
+  },
+  
+  partition: function(iterator) {
+    var trues = [], falses = [];
+    this.each(function(value, index) {
+      ((iterator || Prototype.K)(value, index) ? 
+        trues : falses).push(value);
+    });
+    return [trues, falses];
+  },
+  
+  pluck: function(property) {
+    var results = [];
+    this.each(function(value, index) {
+      results.push(value[property]);
+    });
+    return results;
+  },
+  
+  reject: function(iterator) {
+    var results = [];
+    this.each(function(value, index) {
+      if (!iterator(value, index))
+        results.push(value);
+    });
+    return results;
+  },
+  
+  sortBy: function(iterator) {
+    return this.collect(function(value, index) {
+      return {value: value, criteria: iterator(value, index)};
+    }).sort(function(left, right) {
+      var a = left.criteria, b = right.criteria;
+      return a < b ? -1 : a > b ? 1 : 0;
+    }).pluck('value');
+  },
+  
+  toArray: function() {
+    return this.collect(Prototype.K);
+  },
+  
+  zip: function() {
+    var iterator = Prototype.K, args = $A(arguments);
+    if (typeof args.last() == 'function')
+      iterator = args.pop();
+
+    var collections = [this].concat(args).map($A);
+    return this.map(function(value, index) {
+      iterator(value = collections.pluck(index));
+      return value;
+    });
+  }
+}
+
+Object.extend(Enumerable, {
+  map:     Enumerable.collect,
+  find:    Enumerable.detect,
+  select:  Enumerable.findAll,
+  member:  Enumerable.include,
+  entries: Enumerable.toArray
+});
+
+$A = Array.from = function(iterable) {
+  var results = [];
+  for (var i = 0; i < iterable.length; i++)
+    results.push(iterable[i]);
+  return results;
+}
+
+Object.extend(Array.prototype, {
+  _each: function(iterator) {
+    for (var i = 0; i < this.length; i++)
+      iterator(this[i]);
+  },
+  
+  first: function() {
+    return this[0];
+  },
+  
+  last: function() {
+    return this[this.length - 1];
+  }
+});
+
+Object.extend(Array.prototype, Enumerable);
+
+
+var Ajax = {
+  getTransport: function() {
+    return Try.these(
+      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
+      function() {return new ActiveXObject('Microsoft.XMLHTTP')},
+      function() {return new XMLHttpRequest()}
+    ) || false;
+  }
+}
+
+Ajax.Base = function() {};
+Ajax.Base.prototype = {
+  setOptions: function(options) {
+    this.options = {
+      method:       'post',
+      asynchronous: true,
+      parameters:   ''
+    }
+    Object.extend(this.options, options || {});
+  },
+
+  responseIsSuccess: function() {
+    return this.transport.status == undefined
+        || this.transport.status == 0 
+        || (this.transport.status >= 200 && this.transport.status < 300);
+  },
+
+  responseIsFailure: function() {
+    return !this.responseIsSuccess();
+  }
+}
+
+Ajax.Request = Class.create();
+Ajax.Request.Events = 
+  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
+
+Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
+  initialize: function(url, options) {
+    this.transport = Ajax.getTransport();
+    this.setOptions(options);
+    this.request(url);
+  },
+
+  request: function(url) {
+    var parameters = this.options.parameters || '';
+    if (parameters.length > 0) parameters += '&_=';
+
+    try {
+      if (this.options.method == 'get')
+        url += '?' + parameters;
+
+      this.transport.open(this.options.method, url,
+        this.options.asynchronous);
+
+      if (this.options.asynchronous) {
+        this.transport.onreadystatechange = this.onStateChange.bind(this);
+        setTimeout((function() {this.respondToReadyState(1)}).bind(this), 10);
+      }
+
+      this.setRequestHeaders();
+
+      var body = this.options.postBody ? this.options.postBody : parameters;
+      this.transport.send(this.options.method == 'post' ? body : null);
+
+    } catch (e) {
+    }
+  },
+
+  setRequestHeaders: function() {
+    var requestHeaders = 
+      ['X-Requested-With', 'XMLHttpRequest',
+       'X-Prototype-Version', Prototype.Version];
+
+    if (this.options.method == 'post') {
+      requestHeaders.push('Content-type', 
+        'application/x-www-form-urlencoded');
+
+      /* Force "Connection: close" for Mozilla browsers to work around
+       * a bug where XMLHttpReqeuest sends an incorrect Content-length
+       * header. See Mozilla Bugzilla #246651. 
+       */
+      if (this.transport.overrideMimeType)
+        requestHeaders.push('Connection', 'close');
+    }
+
+    if (this.options.requestHeaders)
+      requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
+
+    for (var i = 0; i < requestHeaders.length; i += 2)
+      this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
+  },
+
+  onStateChange: function() {
+    var readyState = this.transport.readyState;
+    if (readyState != 1)
+      this.respondToReadyState(this.transport.readyState);
+  },
+
+  respondToReadyState: function(readyState) {
+    var event = Ajax.Request.Events[readyState];
+
+    if (event == 'Complete')
+      (this.options['on' + this.transport.status]
+       || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]
+       || Prototype.emptyFunction)(this.transport);
+
+    (this.options['on' + event] || Prototype.emptyFunction)(this.transport);
+
+    /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
+    if (event == 'Complete')
+      this.transport.onreadystatechange = Prototype.emptyFunction;
+  }
+});
+
+Ajax.Updater = Class.create();
+Ajax.Updater.ScriptFragment = '(?:<script.*?>)((\n|.)*?)(?:<\/script>)';
+
+Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
+  initialize: function(container, url, options) {
+    this.containers = {
+      success: container.success ? $(container.success) : $(container),
+      failure: container.failure ? $(container.failure) :
+        (container.success ? null : $(container))
+    }
+
+    this.transport = Ajax.getTransport();
+    this.setOptions(options);
+
+    var onComplete = this.options.onComplete || Prototype.emptyFunction;
+    this.options.onComplete = (function() {
+      this.updateContent();
+      onComplete(this.transport);
+    }).bind(this);
+
+    this.request(url);
+  },
+
+  updateContent: function() {
+    var receiver = this.responseIsSuccess() ?
+      this.containers.success : this.containers.failure;
+
+    var match    = new RegExp(Ajax.Updater.ScriptFragment, 'img');
+    var response = this.transport.responseText.replace(match, '');
+    var scripts  = this.transport.responseText.match(match);
+
+    if (receiver) {
+      if (this.options.insertion) {
+        new this.options.insertion(receiver, response);
+      } else {
+        receiver.innerHTML = response;
+      }
+    }
+
+    if (this.responseIsSuccess()) {
+      if (this.onComplete)
+        setTimeout((function() {this.onComplete(
+          this.transport)}).bind(this), 10);
+    }
+
+    if (this.options.evalScripts && scripts) {
+      match = new RegExp(Ajax.Updater.ScriptFragment, 'im');
+      setTimeout((function() {
+        for (var i = 0; i < scripts.length; i++)
+          eval(scripts[i].match(match)[1]);
+      }).bind(this), 10);
+    }
+  }
+});
+
+Ajax.PeriodicalUpdater = Class.create();
+Ajax.PeriodicalUpdater.prototype = Object.extend(new Ajax.Base(), {
+  initialize: function(container, url, options) {
+    this.setOptions(options);
+    this.onComplete = this.options.onComplete;
+
+    this.frequency = (this.options.frequency || 2);
+    this.decay = 1;
+
+    this.updater = {};
+    this.container = container;
+    this.url = url;
+
+    this.start();
+  },
+
+  start: function() {
+    this.options.onComplete = this.updateComplete.bind(this);
+    this.onTimerEvent();
+  },
+
+  stop: function() {
+    this.updater.onComplete = undefined;
+    clearTimeout(this.timer);
+    (this.onComplete || Ajax.emptyFunction).apply(this, arguments);
+  },
+
+  updateComplete: function(request) {
+    if (this.options.decay) {
+      this.decay = (request.responseText == this.lastText ? 
+        this.decay * this.options.decay : 1);
+
+      this.lastText = request.responseText;
+    }
+    this.timer = setTimeout(this.onTimerEvent.bind(this), 
+      this.decay * this.frequency * 1000);
+  },
+
+  onTimerEvent: function() {
+    this.updater = new Ajax.Updater(this.container, this.url, this.options);
+  }
+});
+
+document.getElementsByClassName = function(className) {
+  var children = document.getElementsByTagName('*') || document.all;
+  var elements = new Array();
+  
+  for (var i = 0; i < children.length; i++) {
+    var child = children[i];
+    var classNames = child.className.split(' ');
+    for (var j = 0; j < classNames.length; j++) {
+      if (classNames[j] == className) {
+        elements.push(child);
+        break;
+      }
+    }
+  }
+  
+  return elements;
+}
+
+/*--------------------------------------------------------------------------*/
+
+if (!window.Element) {
+  var Element = new Object();
+}
+
+Object.extend(Element, {
+  toggle: function() {
+    for (var i = 0; i < arguments.length; i++) {
+      var element = $(arguments[i]);
+      element.style.display = 
+        (element.style.display == 'none' ? '' : 'none');
+    }
+  },
+
+  hide: function() {
+    for (var i = 0; i < arguments.length; i++) {
+      var element = $(arguments[i]);
+      element.style.display = 'none';
+    }
+  },
+
+  show: function() {
+    for (var i = 0; i < arguments.length; i++) {
+      var element = $(arguments[i]);
+      element.style.display = '';
+    }
+  },
+
+  remove: function(element) {
+    element = $(element);
+    element.parentNode.removeChild(element);
+  },
+   
+  getHeight: function(element) {
+    element = $(element);
+    return element.offsetHeight; 
+  },
+
+  hasClassName: function(element, className) {
+    element = $(element);
+    if (!element)
+      return;
+    var a = element.className.split(' ');
+    for (var i = 0; i < a.length; i++) {
+      if (a[i] == className)
+        return true;
+    }
+    return false;
+  },
+
+  addClassName: function(element, className) {
+    element = $(element);
+    Element.removeClassName(element, className);
+    element.className += ' ' + className;
+  },
+
+  removeClassName: function(element, className) {
+    element = $(element);
+    if (!element)
+      return;
+    var newClassName = '';
+    var a = element.className.split(' ');
+    for (var i = 0; i < a.length; i++) {
+      if (a[i] != className) {
+        if (i > 0)
+          newClassName += ' ';
+        newClassName += a[i];
+      }
+    }
+    element.className = newClassName;
+  },
+  
+  // removes whitespace-only text node children
+  cleanWhitespace: function(element) {
+    var element = $(element);
+    for (var i = 0; i < element.childNodes.length; i++) {
+      var node = element.childNodes[i];
+      if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) 
+        Element.remove(node);
+    }
+  }
+});
+
+var Toggle = new Object();
+Toggle.display = Element.toggle;
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.Insertion = function(adjacency) {
+  this.adjacency = adjacency;
+}
+
+Abstract.Insertion.prototype = {
+  initialize: function(element, content) {
+    this.element = $(element);
+    this.content = content;
+    
+    if (this.adjacency && this.element.insertAdjacentHTML) {
+      this.element.insertAdjacentHTML(this.adjacency, this.content);
+    } else {
+      this.range = this.element.ownerDocument.createRange();
+      if (this.initializeRange) this.initializeRange();
+      this.fragment = this.range.createContextualFragment(this.content);
+      this.insertContent();
+    }
+  }
+}
+
+var Insertion = new Object();
+
+Insertion.Before = Class.create();
+Insertion.Before.prototype = Object.extend(new Abstract.Insertion('beforeBegin'), {
+  initializeRange: function() {
+    this.range.setStartBefore(this.element);
+  },
+  
+  insertContent: function() {
+    this.element.parentNode.insertBefore(this.fragment, this.element);
+  }
+});
+
+Insertion.Top = Class.create();
+Insertion.Top.prototype = Object.extend(new Abstract.Insertion('afterBegin'), {
+  initializeRange: function() {
+    this.range.selectNodeContents(this.element);
+    this.range.collapse(true);
+  },
+  
+  insertContent: function() {  
+    this.element.insertBefore(this.fragment, this.element.firstChild);
+  }
+});
+
+Insertion.Bottom = Class.create();
+Insertion.Bottom.prototype = Object.extend(new Abstract.Insertion('beforeEnd'), {
+  initializeRange: function() {
+    this.range.selectNodeContents(this.element);
+    this.range.collapse(this.element);
+  },
+  
+  insertContent: function() {
+    this.element.appendChild(this.fragment);
+  }
+});
+
+Insertion.After = Class.create();
+Insertion.After.prototype = Object.extend(new Abstract.Insertion('afterEnd'), {
+  initializeRange: function() {
+    this.range.setStartAfter(this.element);
+  },
+  
+  insertContent: function() {
+    this.element.parentNode.insertBefore(this.fragment, 
+      this.element.nextSibling);
+  }
+});
+
+var Field = {
+  clear: function() {
+    for (var i = 0; i < arguments.length; i++)
+      $(arguments[i]).value = '';
+  },
+
+  focus: function(element) {
+    $(element).focus();
+  },
+  
+  present: function() {
+    for (var i = 0; i < arguments.length; i++)
+      if ($(arguments[i]).value == '') return false;
+    return true;
+  },
+  
+  select: function(element) {
+    $(element).select();
+  },
+   
+  activate: function(element) {
+    $(element).focus();
+    $(element).select();
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var Form = {
+  serialize: function(form) {
+    var elements = Form.getElements($(form));
+    var queryComponents = new Array();
+    
+    for (var i = 0; i < elements.length; i++) {
+      var queryComponent = Form.Element.serialize(elements[i]);
+      if (queryComponent)
+        queryComponents.push(queryComponent);
+    }
+    
+    return queryComponents.join('&');
+  },
+  
+  getElements: function(form) {
+    var form = $(form);
+    var elements = new Array();
+
+    for (tagName in Form.Element.Serializers) {
+      var tagElements = form.getElementsByTagName(tagName);
+      for (var j = 0; j < tagElements.length; j++)
+        elements.push(tagElements[j]);
+    }
+    return elements;
+  },
+  
+  getInputs: function(form, typeName, name) {
+    var form = $(form);
+    var inputs = form.getElementsByTagName('input');
+    
+    if (!typeName && !name)
+      return inputs;
+      
+    var matchingInputs = new Array();
+    for (var i = 0; i < inputs.length; i++) {
+      var input = inputs[i];
+      if ((typeName && input.type != typeName) ||
+          (name && input.name != name)) 
+        continue;
+      matchingInputs.push(input);
+    }
+
+    return matchingInputs;
+  },
+
+  disable: function(form) {
+    var elements = Form.getElements(form);
+    for (var i = 0; i < elements.length; i++) {
+      var element = elements[i];
+      element.blur();
+      element.disabled = 'true';
+    }
+  },
+
+  enable: function(form) {
+    var elements = Form.getElements(form);
+    for (var i = 0; i < elements.length; i++) {
+      var element = elements[i];
+      element.disabled = '';
+    }
+  },
+
+  focusFirstElement: function(form) {
+    var form = $(form);
+    var elements = Form.getElements(form);
+    for (var i = 0; i < elements.length; i++) {
+      var element = elements[i];
+      if (element.type != 'hidden' && !element.disabled) {
+        Field.activate(element);
+        break;
+      }
+    }
+  },
+
+  reset: function(form) {
+    $(form).reset();
+  }
+}
+
+Form.Element = {
+  serialize: function(element) {
+    var element = $(element);
+    var method = element.tagName.toLowerCase();
+    var parameter = Form.Element.Serializers[method](element);
+    
+    if (parameter)
+      return encodeURIComponent(parameter[0]) + '=' + 
+        encodeURIComponent(parameter[1]);                   
+  },
+  
+  getValue: function(element) {
+    var element = $(element);
+    var method = element.tagName.toLowerCase();
+    var parameter = Form.Element.Serializers[method](element);
+    
+    if (parameter) 
+      return parameter[1];
+  }
+}
+
+Form.Element.Serializers = {
+  input: function(element) {
+    switch (element.type.toLowerCase()) {
+      case 'submit':
+      case 'hidden':
+      case 'password':
+      case 'text':
+        return Form.Element.Serializers.textarea(element);
+      case 'checkbox':  
+      case 'radio':
+        return Form.Element.Serializers.inputSelector(element);
+    }
+    return false;
+  },
+
+  inputSelector: function(element) {
+    if (element.checked)
+      return [element.name, element.value];
+  },
+
+  textarea: function(element) {
+    return [element.name, element.value];
+  },
+
+  select: function(element) {
+    var value = '';
+    if (element.type == 'select-one') {
+      var index = element.selectedIndex;
+      if (index >= 0)
+        value = element.options[index].value || element.options[index].text;
+    } else {
+      value = new Array();
+      for (var i = 0; i < element.length; i++) {
+        var opt = element.options[i];
+        if (opt.selected)
+          value.push(opt.value || opt.text);
+      }
+    }
+    return [element.name, value];
+  }
+}
+
+/*--------------------------------------------------------------------------*/
+
+var $F = Form.Element.getValue;
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.TimedObserver = function() {}
+Abstract.TimedObserver.prototype = {
+  initialize: function(element, frequency, callback) {
+    this.frequency = frequency;
+    this.element   = $(element);
+    this.callback  = callback;
+    
+    this.lastValue = this.getValue();
+    this.registerCallback();
+  },
+  
+  registerCallback: function() {
+    setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
+  },
+  
+  onTimerEvent: function() {
+    var value = this.getValue();
+    if (this.lastValue != value) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  }
+}
+
+Form.Element.Observer = Class.create();
+Form.Element.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.Observer = Class.create();
+Form.Observer.prototype = Object.extend(new Abstract.TimedObserver(), {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+
+/*--------------------------------------------------------------------------*/
+
+Abstract.EventObserver = function() {}
+Abstract.EventObserver.prototype = {
+  initialize: function(element, callback) {
+    this.element  = $(element);
+    this.callback = callback;
+    
+    this.lastValue = this.getValue();
+    if (this.element.tagName.toLowerCase() == 'form')
+      this.registerFormCallbacks();
+    else
+      this.registerCallback(this.element);
+  },
+  
+  onElementEvent: function() {
+    var value = this.getValue();
+    if (this.lastValue != value) {
+      this.callback(this.element, value);
+      this.lastValue = value;
+    }
+  },
+  
+  registerFormCallbacks: function() {
+    var elements = Form.getElements(this.element);
+    for (var i = 0; i < elements.length; i++)
+      this.registerCallback(elements[i]);
+  },
+  
+  registerCallback: function(element) {
+    if (element.type) {
+      switch (element.type.toLowerCase()) {
+        case 'checkbox':  
+        case 'radio':
+          element.target = this;
+          element.prev_onclick = element.onclick || Prototype.emptyFunction;
+          element.onclick = function() {
+            this.prev_onclick(); 
+            this.target.onElementEvent();
+          }
+          break;
+        case 'password':
+        case 'text':
+        case 'textarea':
+        case 'select-one':
+        case 'select-multiple':
+          element.target = this;
+          element.prev_onchange = element.onchange || Prototype.emptyFunction;
+          element.onchange = function() {
+            this.prev_onchange(); 
+            this.target.onElementEvent();
+          }
+          break;
+      }
+    }    
+  }
+}
+
+Form.Element.EventObserver = Class.create();
+Form.Element.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+  getValue: function() {
+    return Form.Element.getValue(this.element);
+  }
+});
+
+Form.EventObserver = Class.create();
+Form.EventObserver.prototype = Object.extend(new Abstract.EventObserver(), {
+  getValue: function() {
+    return Form.serialize(this.element);
+  }
+});
+
+
+if (!window.Event) {
+  var Event = new Object();
+}
+
+Object.extend(Event, {
+  KEY_BACKSPACE: 8,
+  KEY_TAB:       9,
+  KEY_RETURN:   13,
+  KEY_ESC:      27,
+  KEY_LEFT:     37,
+  KEY_UP:       38,
+  KEY_RIGHT:    39,
+  KEY_DOWN:     40,
+  KEY_DELETE:   46,
+
+  element: function(event) {
+    return event.target || event.srcElement;
+  },
+
+  isLeftClick: function(event) {
+    return (((event.which) && (event.which == 1)) ||
+            ((event.button) && (event.button == 1)));
+  },
+
+  pointerX: function(event) {
+    return event.pageX || (event.clientX + 
+      (document.documentElement.scrollLeft || document.body.scrollLeft));
+  },
+
+  pointerY: function(event) {
+    return event.pageY || (event.clientY + 
+      (document.documentElement.scrollTop || document.body.scrollTop));
+  },
+
+  stop: function(event) {
+    if (event.preventDefault) { 
+      event.preventDefault(); 
+      event.stopPropagation(); 
+    } else {
+      event.returnValue = false;
+    }
+  },
+
+  // find the first node with the given tagName, starting from the
+  // node the event was triggered on; traverses the DOM upwards
+  findElement: function(event, tagName) {
+    var element = Event.element(event);
+    while (element.parentNode && (!element.tagName ||
+        (element.tagName.toUpperCase() != tagName.toUpperCase())))
+      element = element.parentNode;
+    return element;
+  },
+
+  observers: false,
+  
+  _observeAndCache: function(element, name, observer, useCapture) {
+    if (!this.observers) this.observers = [];
+    if (element.addEventListener) {
+      this.observers.push([element, name, observer, useCapture]);
+      element.addEventListener(name, observer, useCapture);
+    } else if (element.attachEvent) {
+      this.observers.push([element, name, observer, useCapture]);
+      element.attachEvent('on' + name, observer);
+    }
+  },
+  
+  unloadCache: function() {
+    if (!Event.observers) return;
+    for (var i = 0; i < Event.observers.length; i++) {
+      Event.stopObserving.apply(this, Event.observers[i]);
+      Event.observers[i][0] = null;
+    }
+    Event.observers = false;
+  },
+
+  observe: function(element, name, observer, useCapture) {
+    var element = $(element);
+    useCapture = useCapture || false;
+    
+    if (name == 'keypress' &&
+        ((/Konqueror|Safari|KHTML/.test(navigator.userAgent)) 
+        || element.attachEvent))
+      name = 'keydown';
+    
+    this._observeAndCache(element, name, observer, useCapture);
+  },
+
+  stopObserving: function(element, name, observer, useCapture) {
+    var element = $(element);
+    useCapture = useCapture || false;
+    
+    if (name == 'keypress' &&
+        ((/Konqueror|Safari|KHTML/.test(navigator.userAgent)) 
+        || element.detachEvent))
+      name = 'keydown';
+    
+    if (element.removeEventListener) {
+      element.removeEventListener(name, observer, useCapture);
+    } else if (element.detachEvent) {
+      element.detachEvent('on' + name, observer);
+    }
+  }
+});
+
+/* prevent memory leaks in IE */
+Event.observe(window, 'unload', Event.unloadCache, false);
+
+var Position = {
+
+  // set to true if needed, warning: firefox performance problems
+  // NOT neeeded for page scrolling, only if draggable contained in
+  // scrollable elements
+  includeScrollOffsets: false, 
+
+  // must be called before calling withinIncludingScrolloffset, every time the
+  // page is scrolled
+  prepare: function() {
+    this.deltaX =  window.pageXOffset 
+                || document.documentElement.scrollLeft 
+                || document.body.scrollLeft 
+                || 0;
+    this.deltaY =  window.pageYOffset 
+                || document.documentElement.scrollTop 
+                || document.body.scrollTop 
+                || 0;
+  },
+
+  realOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.scrollTop  || 0;
+      valueL += element.scrollLeft || 0; 
+      element = element.parentNode;
+    } while (element);
+    return [valueL, valueT];
+  },
+
+  cumulativeOffset: function(element) {
+    var valueT = 0, valueL = 0;
+    do {
+      valueT += element.offsetTop  || 0;
+      valueL += element.offsetLeft || 0;
+      element = element.offsetParent;
+    } while (element);
+    return [valueL, valueT];
+  },
+
+  // caches x/y coordinate pair to use with overlap
+  within: function(element, x, y) {
+    if (this.includeScrollOffsets)
+      return this.withinIncludingScrolloffsets(element, x, y);
+    this.xcomp = x;
+    this.ycomp = y;
+    this.offset = this.cumulativeOffset(element);
+
+    return (y >= this.offset[1] &&
+            y <  this.offset[1] + element.offsetHeight &&
+            x >= this.offset[0] && 
+            x <  this.offset[0] + element.offsetWidth);
+  },
+
+  withinIncludingScrolloffsets: function(element, x, y) {
+    var offsetcache = this.realOffset(element);
+
+    this.xcomp = x + offsetcache[0] - this.deltaX;
+    this.ycomp = y + offsetcache[1] - this.deltaY;
+    this.offset = this.cumulativeOffset(element);
+
+    return (this.ycomp >= this.offset[1] &&
+            this.ycomp <  this.offset[1] + element.offsetHeight &&
+            this.xcomp >= this.offset[0] && 
+            this.xcomp <  this.offset[0] + element.offsetWidth);
+  },
+
+  // within must be called directly before
+  overlap: function(mode, element) {  
+    if (!mode) return 0;  
+    if (mode == 'vertical') 
+      return ((this.offset[1] + element.offsetHeight) - this.ycomp) / 
+        element.offsetHeight;
+    if (mode == 'horizontal')
+      return ((this.offset[0] + element.offsetWidth) - this.xcomp) / 
+        element.offsetWidth;
+  },
+
+  clone: function(source, target) {
+    source = $(source);
+    target = $(target);
+    target.style.position = 'absolute';
+    var offsets = this.cumulativeOffset(source);
+    target.style.top    = offsets[1] + 'px';
+    target.style.left   = offsets[0] + 'px';
+    target.style.width  = source.offsetWidth + 'px';
+    target.style.height = source.offsetHeight + 'px';
+  }
+}

Added: lucene/openrelevance/site/publish/skin/screen.css
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/publish/skin/screen.css?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/publish/skin/screen.css (added)
+++ lucene/openrelevance/site/publish/skin/screen.css Thu Jun 25 14:43:01 2009
@@ -0,0 +1,587 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one or more
+* contributor license agreements.  See the NOTICE file distributed with
+* this work for additional information regarding copyright ownership.
+* The ASF licenses this file to You under the Apache License, Version 2.0
+* (the "License"); you may not use this file except in compliance with
+* the License.  You may obtain a copy of the License at
+*
+*     http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+body {  margin: 0px 0px 0px 0px; font-family: Verdana, Helvetica, sans-serif; }
+
+h1     { font-size : 160%; margin: 0px 0px 0px 0px;  padding: 0px; }
+h2     { font-size : 140%; margin: 1em 0px 0.8em 0px; padding: 0px; font-weight : bold;}
+h3     { font-size : 130%; margin: 0.8em 0px 0px 0px; padding: 0px; font-weight : bold; }
+.h3 { margin: 22px 0px 3px 0px; }
+h4     { font-size : 120%; margin: 0.7em 0px 0px 0px; padding: 0px; font-weight : normal; text-align: left; }
+.h4 { margin: 18px 0px 0px 0px; }
+h4.faq { font-size : 120%; margin: 18px 0px 0px 0px; padding: 0px; font-weight : bold;   text-align: left; }
+h5     { font-size : 100%; margin: 14px 0px 0px 0px; padding: 0px; font-weight : normal; text-align: left; }
+
+/**
+* table
+*/
+table .title { background-color: #000000; }
+.ForrestTable         {
+    color: #ffffff;
+    background-color: #7099C5;
+    width: 100%;
+    font-size : 100%;
+    empty-cells: show;
+}
+table caption {
+    padding-left: 5px;
+    color: white;
+    text-align: left;
+    font-weight: bold;
+    background-color: #000000;
+}
+.ForrestTable td {
+    color: black;
+    background-color: #f0f0ff;
+}
+.ForrestTable th { text-align: center; }
+/**
+ * Page Header
+ */
+
+#top {
+    position: relative;
+    float: left;
+    width: 100%;
+    background: #294563; /* if you want a background in the header, put it here */
+}
+
+#top .breadtrail {
+    background: #CFDCED;
+    color: black;
+    border-bottom: solid 1px white;
+    padding: 3px 10px;
+    font-size: 75%;
+}
+#top .breadtrail a { color: black; }
+
+#top .header {
+    float: left;
+    width: 100%;
+    background: url("images/header_white_line.gif") repeat-x bottom;
+}
+
+#top .grouplogo {
+    padding: 7px 0 10px 10px;
+    float: left;
+    text-align: left;
+}
+#top .projectlogo {
+    padding: 7px 0 10px 10px;
+    float: left;
+    width: 33%;
+    text-align: right;
+}
+#top .projectlogoA1 {
+    padding: 7px 0 10px 10px;
+    float: right;
+}
+html>body #top .searchbox {
+    bottom: 0px;
+}
+#top .searchbox {
+    position: absolute;
+    right: 10px;
+    height: 42px;
+    font-size: 70%;
+    white-space: nowrap;
+    text-align: right;
+    color: white;
+    background-color: #000000;
+    z-index:0;
+    background-image: url(images/rc-t-l-5-1header-2searchbox-3searchbox.png);
+    background-repeat: no-repeat;
+    background-position: top left;
+    bottom: -1px; /* compensate for IE rendering issue */
+}
+
+#top .searchbox form {
+    padding: 5px 10px;
+    margin: 0;
+}
+#top .searchbox p {
+    padding: 0 0 2px 0;
+    margin: 0;
+}
+#top .searchbox input {
+    font-size: 100%;
+}
+
+#tabs {
+    clear: both;
+    padding-left: 10px;
+    margin: 0;
+    list-style: none;
+}
+/*    background: #CFDCED url("images/tab-right.gif") no-repeat right top;*/
+#tabs li {
+    float: left;
+    background-image: url(images/rc-t-r-5-1header-2tab-unselected-3tab-unselected.png);
+    background-repeat: no-repeat;
+    background-position: top right;
+    background-color: #000000;
+    margin: 0 3px 0 0;
+    padding: 0;
+}
+
+/*background: url("images/tab-left.gif") no-repeat left top;*/
+#tabs li a {
+    float: left;
+    display: block;
+    font-family: verdana, arial, sans-serif;
+    text-decoration: none;
+    color: black;
+    white-space: nowrap;
+    background-image: url(images/rc-t-l-5-1header-2tab-unselected-3tab-unselected.png);
+    background-repeat: no-repeat;
+    background-position: top left;
+    padding: 5px 15px 4px;
+    width: .1em; /* IE/Win fix */
+}
+
+#tabs li a:hover {
+   
+    cursor: pointer;
+    text-decoration:underline;
+}
+
+#tabs > li a { width: auto; } /* Rest of IE/Win fix */
+
+/* Commented Backslash Hack hides rule from IE5-Mac \*/
+#tabs a { float: none; }
+/* End IE5-Mac hack */
+
+#top .header .current {
+    background-color: #4C6C8F;
+    background-image: url(images/rc-t-r-5-1header-2tab-selected-3tab-selected.png);
+    background-repeat: no-repeat;
+    background-position: top right;
+}
+#top .header .current a {
+    font-weight: bold;
+    padding-bottom: 5px;
+    color: white;
+    background-image: url(images/rc-t-l-5-1header-2tab-selected-3tab-selected.png);
+    background-repeat: no-repeat;
+    background-position: top left;
+}
+#publishedStrip {
+    padding-right: 10px;
+    padding-left: 20px;
+    padding-top: 3px;
+    padding-bottom:3px;
+    color: #ffffff;
+    font-size : 60%;
+    font-weight: bold;
+    background-color: #4C6C8F;
+    text-align:right;
+}
+
+#level2tabs {
+margin: 0;
+float:left;
+position:relative;
+
+}
+
+
+
+#level2tabs  a:hover {
+   
+    cursor: pointer;
+    text-decoration:underline;
+    
+}
+
+#level2tabs  a{
+   
+    cursor: pointer;
+    text-decoration:none;
+    background-image: url('images/chapter.gif');
+    background-repeat: no-repeat;
+    background-position: center left;
+    padding-left: 6px;
+    margin-left: 6px;
+}
+
+/*
+*    border-top: solid #4C6C8F 15px;
+*/
+#main {
+    position: relative;
+    background: white;
+    clear:both;
+}
+#main .breadtrail {
+    clear:both;
+    position: relative;
+    background: #CFDCED;
+    color: black;
+    border-bottom: solid 1px black;
+    border-top: solid 1px black;
+    padding: 0px 180px;
+    font-size: 75%;
+    z-index:10;
+}
+/**
+* Round corner
+*/
+#roundtop {
+    background-image: url(images/rc-t-r-15-1body-2menu-3menu.png);
+    background-repeat: no-repeat;
+    background-position: top right;
+}
+
+#roundbottom {
+    background-image: url(images/rc-b-r-15-1body-2menu-3menu.png);
+    background-repeat: no-repeat;
+    background-position: top right;
+}
+
+img.corner {
+   width: 15px;
+   height: 15px;
+   border: none;
+   display: block !important;
+}
+
+.roundtopsmall {
+    background-image: url(images/rc-t-r-5-1header-2searchbox-3searchbox.png);
+    background-repeat: no-repeat;
+    background-position: top right;
+}
+
+#roundbottomsmall {
+    background-image: url(images/rc-b-r-5-1header-2tab-selected-3tab-selected.png);
+    background-repeat: no-repeat;
+    background-position: top right;
+}
+
+img.cornersmall {
+   width: 5px;
+   height: 5px;
+   border: none;
+   display: block !important;
+}
+/**
+ * Side menu
+ */
+#menu a {  font-weight: normal; text-decoration: none;}
+#menu a:visited {  font-weight: normal; }
+#menu a:active {  font-weight: normal; }
+#menu a:hover {  font-weight: normal;  text-decoration:underline;}
+
+#menuarea { width:10em;}
+#menu {
+    position: relative;
+    float: left;
+    width: 160px;
+    padding-top: 0px;
+    top:-18px;
+    left:10px;
+    z-index: 20;
+    background-color: #f90;
+    font-size : 70%;
+    
+}
+
+.menutitle {
+        cursor:pointer;
+        padding: 3px 12px;
+        margin-left: 10px;
+        background-image: url('images/chapter.gif');
+        background-repeat: no-repeat;
+        background-position: center left;
+        font-weight : bold;
+
+        
+}
+
+.menutitle:hover{text-decoration:underline;cursor: pointer;}
+
+#menu .menuitemgroup {
+        margin: 0px 0px 6px 8px;
+        padding: 0px;
+        font-weight : bold; }
+
+#menu .selectedmenuitemgroup{
+        margin: 0px 0px 0px 8px;
+        padding: 0px;
+        font-weight : normal; 
+       
+        }
+
+#menu .menuitem {
+        padding: 2px 0px 1px 13px;
+        background-image: url('images/page.gif');
+        background-repeat: no-repeat;
+        background-position: center left;
+        font-weight : normal;
+        margin-left: 10px;
+}
+
+#menu .menupage {
+        margin: 2px 0px 1px 10px;
+        padding: 0px 3px 0px 12px;
+        background-image: url('images/page.gif');
+        background-repeat: no-repeat;
+        background-position: center left;
+        font-style : normal;
+}
+#menu .menupagetitle {
+        padding: 0px 0px 0px 1px;
+        font-style : normal;
+        border-style: solid;
+        border-width: 1px;
+        margin-right: 10px;
+         
+}
+#menu .menupageitemgroup {
+        padding: 3px 0px 4px 6px;
+        font-style : normal;
+        border-bottom: 1px solid ;
+        border-left: 1px solid ;
+        border-right: 1px solid ;
+        margin-right: 10px;
+}
+#menu .menupageitem {
+        font-style : normal;
+        font-weight : normal;
+        border-width: 0px;
+        font-size : 90%;
+}
+#menu #credit {
+    text-align: center;
+}
+#menu #credit2 {
+    text-align: center;
+    padding: 3px 3px 3px 3px;
+    background-color: #ffffff;
+}
+#menu .searchbox {
+    text-align: center;
+}
+#menu .searchbox form {
+    padding: 3px 3px;
+    margin: 0;
+}
+#menu .searchbox input {
+    font-size: 100%;
+}
+
+#content {
+    padding: 20px 20px 20px 180px;
+    margin: 0;
+    font : small Verdana, Helvetica, sans-serif;
+    font-size : 80%;
+}
+
+#content ul {
+    margin: 0;
+    padding: 0 25px;
+}
+#content li {
+    padding: 0 5px;
+}
+#feedback {
+    color: black;
+    background: #CFDCED;
+    text-align:center;
+    margin-top: 5px;
+}
+#feedback #feedbackto {
+    font-size: 90%;
+    color: black;
+}
+#footer {
+    clear: both;
+    position: relative; /* IE bugfix (http://www.dracos.co.uk/web/css/ie6floatbug/) */
+    width: 100%;
+    background: #CFDCED;
+    border-top: solid 1px #4C6C8F;
+    color: black;
+}
+#footer .copyright {
+    position: relative; /* IE bugfix cont'd */
+    padding: 5px;
+    margin: 0;
+    width: 45%;
+}
+#footer .lastmodified {
+    position: relative; /* IE bugfix cont'd */
+    float: right;
+    width: 45%;
+    padding: 5px;
+    margin: 0;
+    text-align: right;
+}
+#footer a { color: white; }
+
+#footer #logos {
+    text-align: left;
+}
+
+
+/**
+ * Misc Styles
+ */
+
+acronym { cursor: help; }
+.boxed      { background-color: #a5b6c6;}
+.underlined_5     {border-bottom: solid 5px #4C6C8F;}
+.underlined_10     {border-bottom: solid 10px #4C6C8F;}
+/* ==================== snail trail ============================ */
+
+.trail {
+  position: relative; /* IE bugfix cont'd */
+  font-size: 70%;
+  text-align: right;
+  float: right;
+  margin: -10px 5px 0px 5px;
+  padding: 0;
+}
+
+#motd-area {
+    position: relative; /* IE bugfix cont'd */
+    float: right;
+    width: 35%;
+    background-color: #f0f0ff;
+    border-top: solid 1px #4C6C8F;
+    border-bottom: solid 1px #4C6C8F;
+    margin-bottom: 15px;
+    margin-left: 15px;
+    margin-right: 10%;
+    padding-bottom: 5px;
+    padding-top: 5px;
+}
+
+#minitoc-area {
+    border-top: solid 1px #4C6C8F;
+    border-bottom: solid 1px #4C6C8F;
+    margin: 15px 10% 5px 15px;
+   /* margin-bottom: 15px;
+    margin-left: 15px;
+    margin-right: 10%;*/
+    padding-bottom: 7px;
+    padding-top: 5px;
+}
+.minitoc {
+    list-style-image: url('images/current.gif');
+    font-weight: normal;
+}
+
+li p {
+    margin: 0;
+    padding: 0;
+}
+
+.pdflink {
+    position: relative; /* IE bugfix cont'd */
+    float: right;
+    margin: 0px 5px;
+    padding: 0;
+}
+.pdflink br {
+    margin-top: -10px;
+    padding-left: 1px;
+}
+.pdflink a {
+    display: block;
+    font-size: 70%;
+    text-align: center;
+    margin: 0;
+    padding: 0;
+}
+
+.pdflink img {
+    display: block;
+    height: 16px;
+    width: 16px;
+}
+.xmllink {
+    position: relative; /* IE bugfix cont'd */
+    float: right;
+    margin: 0px 5px;
+    padding: 0;
+}
+.xmllink br {
+    margin-top: -10px;
+    padding-left: 1px;
+}
+.xmllink a {
+    display: block;
+    font-size: 70%;
+    text-align: center;
+    margin: 0;
+    padding: 0;
+}
+
+.xmllink img {
+    display: block;
+    height: 16px;
+    width: 16px;
+}
+.podlink {
+    position: relative; /* IE bugfix cont'd */
+    float: right;
+    margin: 0px 5px;
+    padding: 0;
+}
+.podlink br {
+    margin-top: -10px;
+    padding-left: 1px;
+}
+.podlink a {
+    display: block;
+    font-size: 70%;
+    text-align: center;
+    margin: 0;
+    padding: 0;
+}
+
+.podlink img {
+    display: block;
+    height: 16px;
+    width: 16px;
+}
+
+.printlink {
+    position: relative; /* IE bugfix cont'd */
+    float: right;
+}
+.printlink br {
+    margin-top: -10px;
+    padding-left: 1px;
+}
+.printlink a {
+    display: block;
+    font-size: 70%;
+    text-align: center;
+    margin: 0;
+    padding: 0;
+}
+.printlink img {
+    display: block;
+    height: 16px;
+    width: 16px;
+}
+
+p.instruction {
+  display: list-item;
+  list-style-image: url('../images/instruction_arrow.png');
+  list-style-position: outside;
+  margin-left: 2em;
+} 
\ No newline at end of file

Added: lucene/openrelevance/site/publish/skin/skinconf.xsl
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/publish/skin/skinconf.xsl?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/publish/skin/skinconf.xsl (added)
+++ lucene/openrelevance/site/publish/skin/skinconf.xsl Thu Jun 25 14:43:01 2009
@@ -0,0 +1,137 @@
+<?xml version="1.0"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+  <xsl:template match="skinconfig">
+    <xsl:if test="not(colors)">
+      <colors>
+<!-- Lenya -->
+        <color name="header" value="#ffffff"/>
+        <color name="tab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
+        <color name="tab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
+        <color name="subtab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
+        <color name="subtab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
+        <color name="heading" value="#E5E4D9"/>
+        <color name="subheading" value="#E5E4D9"/>
+        <color name="published" value="#4C6C8F" font="#FFFFFF"/>
+        <color name="feedback" value="#4C6C8F" font="#FFFFFF" align="center"/>
+        <color name="navstrip" value="#E5E4D9" font="#000000"/>
+        <color name="toolbox" value="#CFDCED" font="#000000"/>
+        <color name="border" value="#999999"/>
+        <color name="menu" value="#4C6C8F" font="#ffffff" link="#ffffff" vlink="#ffffff" hlink="#ffffff"  />
+        <color name="menuheading" value="#cfdced" font="#000000" />
+        <color name="searchbox" value="#E5E4D9" font="#000000"/>
+        <color name="dialog" value="#E5E4D9" font="#000000"/>
+        <color name="body" value="#ffffff" />
+        <color name="table" value="#ccc"/>
+        <color name="table-cell" value="#ffffff"/>
+        <color name="highlight" value="#ffff00"/>
+        <color name="fixme" value="#cc6600"/>
+        <color name="note" value="#006699"/>
+        <color name="warning" value="#990000"/>
+        <color name="code" value="#003366"/>
+        <color name="footer" value="#E5E4D9"/>
+      </colors>
+    </xsl:if>
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:copy-of select="node()[not(name(.)='colors')]"/>
+      <xsl:apply-templates select="colors"/>
+    </xsl:copy>
+  </xsl:template>
+  <xsl:template match="colors">
+    <xsl:copy>
+      <xsl:copy-of select="@*"/>
+      <xsl:copy-of select="node()[name(.)='color']"/>
+      <xsl:if test="not(color[@name='header'])">
+        <color name="header" value="#FFFFFF"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='tab-selected'])">
+        <color name="tab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='tab-unselected'])">
+        <color name="tab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='subtab-selected'])">
+        <color name="subtab-selected" value="#4C6C8F" link="#ffffff" vlink="#ffffff" hlink="#ffffff"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='subtab-unselected'])">
+        <color name="subtab-unselected" value="#E5E4D9" link="#000000" vlink="#000000" hlink="#000000"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='heading'])">
+        <color name="heading" value="#E5E4D9"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='subheading'])">
+        <color name="subheading" value="#E5E4D9"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='feedback'])">
+        <color name="feedback" value="#4C6C8F" font="#FFFFFF" align="center"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='published'])">
+        <color name="published" value="#4C6C8F" font="#FFFFFF"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='navstrip'])">
+        <color name="navstrip" value="#E5E4D9" font="#000000"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='toolbox'])">
+        <color name="toolbox" value="#CFDCED" font="#000000"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='border'])">
+        <color name="border" value="#999999"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='menu'])">
+        <color name="menu" value="#4C6C8F" font="#ffffff" link="#ffffff" vlink="#ffffff" hlink="#ffffff"  />
+      </xsl:if>
+      <xsl:if test="not(color[@name='menuheading'])">
+        <color name="menuheading" value="#cfdced" font="#000000" />
+      </xsl:if>
+      <xsl:if test="not(color[@name='searchbox'])">
+        <color name="searchbox" value="#E5E4D9" font="#000000"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='dialog'])">
+        <color name="dialog" value="#E5E4D9" font="#000000" link="#000000" vlink="#000000" hlink="#000000"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='body'])">
+        <color name="body" value="#ffffff" />
+      </xsl:if>
+      <xsl:if test="not(color[@name='table'])">
+        <color name="table" value="#ccc"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='table-cell'])">
+        <color name="table-cell" value="#ffffff"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='highlight'])">
+        <color name="highlight" value="#ffff00"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='fixme'])">
+        <color name="fixme" value="#c60"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='note'])">
+        <color name="note" value="#069"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='warning'])">
+        <color name="warning" value="#900"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='code'])">
+        <color name="code" value="#a5b6c6"/>
+      </xsl:if>
+      <xsl:if test="not(color[@name='footer'])">
+        <color name="footer" value="#E5E4D9"/>
+      </xsl:if>
+    </xsl:copy>
+  </xsl:template>
+</xsl:stylesheet>

Added: lucene/openrelevance/site/publish/who.html
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/publish/who.html?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/publish/who.html (added)
+++ lucene/openrelevance/site/publish/who.html Thu Jun 25 14:43:01 2009
@@ -0,0 +1,348 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta content="Apache Forrest" name="Generator">
+<meta name="Forrest-version" content="0.8">
+<meta name="Forrest-skin-name" content="lucene">
+<title>Who We Are</title>
+<link type="text/css" href="skin/basic.css" rel="stylesheet">
+<link media="screen" type="text/css" href="skin/screen.css" rel="stylesheet">
+<link media="print" type="text/css" href="skin/print.css" rel="stylesheet">
+<link type="text/css" href="skin/profile.css" rel="stylesheet">
+<script src="skin/getBlank.js" language="javascript" type="text/javascript"></script><script src="skin/getMenu.js" language="javascript" type="text/javascript"></script><script src="skin/fontsize.js" language="javascript" type="text/javascript"></script>
+<link rel="shortcut icon" href="images/favicon.ico">
+</head>
+<body onload="init()">
+<script type="text/javascript">ndeSetTextSize();</script>
+<div id="top">
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://lucene.apache.org/">Lucene</a><script src="skin/breadcrumbs.js" language="JavaScript" type="text/javascript"></script>
+</div>
+<!--+
+    |header
+    +-->
+<div class="header">
+<!--+
+    |start group logo
+    +-->
+<div class="grouplogo">
+<a href="http://www.apache.org"><img class="logoImage" alt="Apache" src="images/apache_feather.gif" title="Apache Software Foundation"></a>
+</div>
+<!--+
+    |end group logo
+    +-->
+<!--+
+    |start Project Logo
+    +-->
+<div class="projectlogo">
+<a href="http://lucene.apache.org/"><img class="logoImage" alt="Lucene" src="images/lucene_green_300.gif" title="Search Software"></a>
+</div>
+<!--+
+    |end Project Logo
+    +-->
+<!--+
+    |start Search
+    +-->
+<div class="searchbox">
+<form action="http://www.lucidimagination.com/search/p:droids,lucene,lucene_c,lucene_net,lucy,mahout,nutch,pylucene,solr,tika" method="get" class="roundtopsmall">
+<input onFocus="getBlank (this, 'Search the site with Solr');" size="25" name="q" id="query" type="text" value="Search the site with Solr">&nbsp; 
+                    <input name="Search" value="Search" type="submit">
+</form>
+<div style="position: relative; top: -5px; left: -10px">Powered by <a href="http://www.lucidimagination.com" style="color: #033268">Lucid Imagination</a>
+</div>
+</div>
+<!--+
+    |end search
+    +-->
+<!--+
+    |start Tabs
+    +-->
+<ul id="tabs">
+<li class="current">
+<a class="selected" href="index.html">Main</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/java/">Java</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/nutch/">Nutch</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/lucy/">Lucy</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/solr/">Solr</a>
+</li>
+<li>
+<a class="unselected" href="http://incubator.apache.org/lucene.net/">Lucene.Net</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/tika/">Tika</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/mahout/">Mahout</a>
+</li>
+<li>
+<a class="unselected" href="http://lucene.apache.org/pylucene/">PyLucene</a>
+</li>
+<li>
+<a class="unselected" href="http://incubator.apache.org/droids/">Droids</a>
+</li>
+</ul>
+<!--+
+    |end Tabs
+    +-->
+</div>
+</div>
+<div id="main">
+<div id="publishedStrip">
+<!--+
+    |start Subtabs
+    +-->
+<div id="level2tabs"></div>
+<!--+
+    |end Endtabs
+    +-->
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<!--+
+    |breadtrail
+    +-->
+<div class="breadtrail">
+
+             &nbsp;
+           </div>
+<!--+
+    |start Menu, mainarea
+    +-->
+<!--+
+    |start Menu
+    +-->
+<div id="menu">
+<div onclick="SwitchMenu('menu_selected_1.1', 'skin/')" id="menu_selected_1.1Title" class="menutitle" style="background-image: url('skin/images/chapter_open.gif');">About</div>
+<div id="menu_selected_1.1" class="selectedmenuitemgroup" style="display: block;">
+<div class="menuitem">
+<a href="index.html">Welcome</a>
+</div>
+<div class="menupage">
+<div class="menupagetitle">Who We Are</div>
+</div>
+<div class="menuitem">
+<a href="mail.html">Mailing Lists</a>
+</div>
+<div class="menuitem">
+<a href="http://www.cafepress.com/lucene/">Buy Stuff</a>
+</div>
+<div class="menuitem">
+<a href="http://www.apache.org/foundation/sponsorship.html">Sponsor Apache</a>
+</div>
+<div class="menuitem">
+<a href="http://www.apache.org/foundation/thanks.html">Sponsors of Apache</a>
+</div>
+</div>
+<div onclick="SwitchMenu('menu_1.2', 'skin/')" id="menu_1.2Title" class="menutitle">Sub-Projects</div>
+<div id="menu_1.2" class="menuitemgroup">
+<div class="menuitem">
+<a href="http://incubator.apache.org/droids/">Droids</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/java/">Java</a>
+</div>
+<div class="menuitem">
+<a href="http://incubator.apache.org/lucene.net/">Lucene.Net</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/lucy/">Lucy</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/mahout/">Mahout</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/nutch/">Nutch</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/pylucene/">PyLucene</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/solr/">Solr</a>
+</div>
+<div class="menuitem">
+<a href="http://lucene.apache.org/tika/">Tika</a>
+</div>
+</div>
+<div id="credit"></div>
+<div id="roundbottom">
+<img style="display: none" class="corner" height="15" width="15" alt="" src="skin/images/rc-b-l-15-1body-2menu-3menu.png"></div>
+<!--+
+  |alternative credits
+  +-->
+<div id="credit2"></div>
+</div>
+<!--+
+    |end Menu
+    +-->
+<!--+
+    |start content
+    +-->
+<div id="content">
+<div title="Portable Document Format" class="pdflink">
+<a class="dida" href="who.pdf"><img alt="PDF -icon" src="skin/images/pdfdoc.gif" class="skin"><br>
+        PDF</a>
+</div>
+<h1>Who We Are</h1>
+<div id="minitoc-area">
+<ul class="minitoc">
+<li>
+<a href="#Lucene+Project+Management+Committee+%28PMC%29">Lucene Project Management Committee (PMC)</a>
+<ul class="minitoc">
+<li>
+<a href="#PMC+Members">PMC Members</a>
+</li>
+<li>
+<a href="#Emeritus+PMC+Members">Emeritus PMC Members</a>
+</li>
+</ul>
+</li>
+<li>
+<a href="#Lucene+Committers">Lucene Committers</a>
+</li>
+<li>
+<a href="#Lucene+PMC+Guide">Lucene PMC Guide</a>
+</li>
+</ul>
+</div> 
+
+    
+<a name="N1000C"></a><a name="Lucene+Project+Management+Committee+%28PMC%29"></a>
+<h2 class="h3">Lucene Project Management Committee (PMC)</h2>
+<div class="section">
+<p>
+      Like all Apache projects Lucene has a 
+      <a href="http://www.apache.org/foundation/how-it-works.html#pmc">PMC</a> 
+      that is responsible for the oversight and management the 
+      Lucene project.  Lucene consists of several
+      sub-projects, each of which have their own diverse communities
+      and distinct groups of committers.  The PMC relies on the 
+      guidance of the committers from each sub-project, particularly in
+      regards to voting on releases, and in nominating new committers.
+      </p>
+<p>
+      PMC members have 
+      <a href="http://www.apache.org/foundation/glossary.html#Karma">karma</a>
+      for the all Lucene code, but as a general rule avoid
+      making changes to sub-projects unless they have explicitly been
+      made a committer of that sub-project by a vote of the PMC.
+      </p>
+<a name="N10020"></a><a name="PMC+Members"></a>
+<h3 class="h4">PMC Members</h3>
+<p>
+        (in alphabetical order): 
+        </p>
+<ul>
+        
+<li>Andrzej Bialecki &lt;ab&gt; </li>
+        
+<li>Michael Busch &lt;buschmi&gt; </li>
+        
+<li>Doug Cutting &lt;cutting&gt; </li>
+        
+<li>Ted Dunning &lt;tdunning&gt; </li>
+        
+<li>Scott Ganyo &lt;scottganyo&gt; </li>
+        
+<li>Otis Gospodnetic &lt;otis&gt;</li>
+        
+<li>Mark Harwood &lt;mharwood&gt; </li>
+        
+<li>Erik Hatcher &lt;ehatcher&gt; </li>
+        
+<li>Chris Hostetter &lt;hossman&gt; </li>
+        
+<li>Grant Ingersoll &lt;gsingers&gt; </li>
+        
+<li>Mike Klaas &lt;klaas&gt; </li>
+        
+<li>Dennis Kubes &lt;kubes&gt; </li>
+        
+<li>Mike McCandless &lt;mikemccand&gt; </li>
+        
+<li>Ryan McKinley &lt;ryan&gt; </li>
+        
+<li>Daniel Naber &lt;dnaber&gt; </li>
+        
+<li>Sean Owen &lt;srowen&gt; </li>
+        
+<li>Yonik Seeley &lt;yonik&gt; </li>
+        
+<li>Sami Siren &lt;siren&gt; </li>
+        
+<li>Andi Vajda &lt;vajda&gt; </li>
+        
+<li>Jukka Zitting &lt;jukka&gt; </li>
+        
+</ul>
+<a name="N10069"></a><a name="Emeritus+PMC+Members"></a>
+<h3 class="h4">Emeritus PMC Members</h3>
+<ul>
+        
+<li>Christoph Goller</li>
+        
+</ul>
+</div>
+
+    
+<a name="N10077"></a><a name="Lucene+Committers"></a>
+<h2 class="h3">Lucene Committers</h2>
+<div class="section">
+<p>
+      Please see individual sub-projects for lists of their
+      committers.
+      </p>
+</div>
+
+    
+<a name="N10081"></a><a name="Lucene+PMC+Guide"></a>
+<h2 class="h3">Lucene PMC Guide</h2>
+<div class="section">
+<p>Here we document any specific processes or rules that the Lucene PMC has adopted.
+      In general the Lucene PMC defaults to follow Apache's 
+      <a href="http://www.apache.org/dev/pmc.html">Project Management Committee Guide</a>.</p>
+<ul>
+      
+<li>New Lucene committers and PMC members shall require <a href="http://www.apache.org/foundation/glossary.html#MajorityApproval">majority approval</a> among the existing Lucene PMC members.</li>
+      
+</ul>
+</div>
+
+  
+</div>
+<!--+
+    |end content
+    +-->
+<div class="clearboth">&nbsp;</div>
+</div>
+<div id="footer">
+<!--+
+    |start bottomstrip
+    +-->
+<div class="lastmodified">
+<script type="text/javascript"><!--
+document.write("Last Published: " + document.lastModified);
+//  --></script>
+</div>
+<div class="copyright">
+        Copyright &copy;
+         2009 <a href="http://www.apache.org/licenses/">The Apache Software Foundation.</a>
+</div>
+<!--+
+    |end bottomstrip
+    +-->
+</div>
+</body>
+</html>

Added: lucene/openrelevance/site/publish/who.pdf
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/publish/who.pdf?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/publish/who.pdf (added)
+++ lucene/openrelevance/site/publish/who.pdf Thu Jun 25 14:43:01 2009
@@ -0,0 +1,345 @@
+%PDF-1.3
+%ª«¬­
+4 0 obj
+<< /Type /Info
+/Producer (FOP 0.20.5) >>
+endobj
+5 0 obj
+<< /Length 560 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gaua;9omaW&;KZL'm!%Z%0"?/j2b958;NNH&SVb[%b]?KK:7$V>S-oV4)&JSO]hlY9b-^G1U$b9-Z`3UDsns-"<!H...@E>IHnS>8Pm^rNbf&/+6Gh]=k0<UI-XL]9a3(Xu\beB&e0F$b&G(72!&s4^TINS+cW`Et2-NgmriIYlg1,t3^eT&VBp(`n"<0(qXQ?ff9J2Wk`s$F.7fD>Qu;-]sb+"7P,ro'ig>n!^)a%_p)GjaI3@/Yd5ok8bKfB,P:aa`p^<JtQ2LMEXHfY%*B"U)<#:9.4K+S-Y%;TWj]rcb`r%r9TpG`qWlR&B)7.(b<7!DSi:M;UqK>=g-&1WXi_0oWDD!VU6Cg@G@nC`k@/C<eK\PX!N)a?dUi;nG~>
+endstream
+endobj
+6 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 5 0 R
+/Annots 7 0 R
+>>
+endobj
+7 0 obj
+[
+8 0 R
+10 0 R
+12 0 R
+14 0 R
+16 0 R
+]
+endobj
+8 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 559.666 340.64 547.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 9 0 R
+/H /I
+>>
+endobj
+10 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 541.466 197.168 529.466 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 11 0 R
+/H /I
+>>
+endobj
+12 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 108.0 523.266 243.5 511.266 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 13 0 R
+/H /I
+>>
+endobj
+14 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 505.066 204.992 493.066 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 15 0 R
+/H /I
+>>
+endobj
+16 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 102.0 486.866 205.988 474.866 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A 17 0 R
+/H /I
+>>
+endobj
+18 0 obj
+<< /Length 1848 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gat%$D0+Gi%0#[%To[=OWeo7&cF:D4C"'K7g=<q1[UgOoRB[W6Ue=;$]O*nEH6MM+;foQT!_=RX!"T*,=7aOpDe"P*Y34"N-D%Q4&BBDFihRXZU;1u0+$&rJq<NXBQd.*"f(t;c<Q6=Dnn5'GGubj&*Kt<YF"WUC>33:C99.TZ?[TT"^;%=&rc[Gm-ZA.2DZHF7EB@k7pjno&OV8^@Ihed/-!oYGmOT^"9s/7+TgNJqhhFm_)oN3VO(*`XZL-3KYBMO%UPHJ$OlF$SCPElcN4cF`I(=AH1lbi9"V`$UF`POsL`=`:hE%6tKX(.8bSiFoV0_7q?C3=',7ps-+AS3j"jPod`H'4"huuHKH*L;R&;r.2ks9#.PW0`LM<dL0en?uhQRrJ)i*K<nFtfP\aM,(LEDYDort!#Q)K^NDUE7YZ"UCP+jgD$&YI\!<@+61%I<p\3[D7jSm"qA*1/('el\!CbMOSpX7TbO/E#/F8YG<QM09/A5Q5$0Wp^jR7Wci#;cJ$13$P]s.Nq%ZO-LG$\ZB@_G3T4^>gn](8<J`#c)*a,"9!&,Kpn^u>/dWq)-rE('99E4YVRLn?A;NHQ0tftE8nJ!O;@q!9mHt8kUVr-q%j=3.'c`FVapp<]<A#Q'/P,kg-93I?#-iTP]6--[(KTH*%?F-jJZ[@b_IcYD@OT`l2!O(fPSg`\_6[Q2B.&QFV1,b_H1cR8YY+9V-[Eg2PSY(;/Tu!u%g$QT*H,6Bo#72b5cMoZk)c#FJVSEseYm</jGKSg%k\qn>KJHM$HqW2ENXVNs0LI;9U(pY$dL&Q\`>-OmFcRK[,K`!OIl(]RR1)Z(Aj<Xi2jTP>Q[hb1*:*4s$Y<F;W<j!l/i.30j$QQlZdlUm0AL:;W;n;T>J&/,u$U[;E#c$]D'mEA_Z%0/N=FZbTisN>i/ofe2p.FC`L=MO`h[B)YOQQ7m`j\2CkL3b%nQ;s7/ZipI_YAcSiXRVJPeo+::>ao/[5
 4T=R=DiXS!hj2h+uWkamE\u=^q%-+"S)iqm&TdY%CDH);skB0eYQ#rHPRUI&+%EH;`=kgc[F&Xr5.Of3Kjg%_m_XQ%(ogcis=7e>?AZA/]q3K,c.R_a[I_;\G_a'Au,Y@;:4\7l'GYYnO0IJJaI:*U)BWK*+NgPj&W?;"nVG(oea`gEC.to`9c.@qi(e9sRUo>G]L8JmrY],hG;*ZFQb1DVf(^G0DEBNofbP"'3?>H'uGH*(%h&WA.<>7-.%jUWCYuHDl4]QDX_\;u%cp)ZHE3Gn:$?=E&6\/r_,["PEA83!rdXBb'4?6(o[6+l6MoP>;M[`I#37J1Dog?.F(5Q-8"@5t9,Y;\g(m<Tm\BD$`BXNV[Bb%?-=U#Ck_'Il.VGaoLoM#4hB+fjm+CJSD6cW0p?U.L-`?RrXYNSQ(_kb(BmT8WKpoH#XXVaM>"s`qHYNYdBj#@aFT(1_t/[PSu0SI4\a\Nfd_p:Q3`!'ts\Xe\-rHoFbNQ:UR-AJ-KQD5U9-F=eL=rrD`K!DC&Tj]5U?O4O;lu@l:hs"&k%n#j-=AH_jSs/WDbm#'a;]Li\O7`kb`L67b^j)?sYT'bp)R&&Z>`5mSkC1pr9d8SorF\$O*f\oeU-e.E3!_uAV-Xa'!GZGIg7],N(:m(c>2*nmPILYMV>^JYVnNg3HjEH9ID2ip"&g2OBcL"5i[_LVfD=\<]kVtM@NL<,cd;F(g>rS"nr`/J9_sV75kRk2f(*I^Z>EGASTmj3i#YYR+@LEf&r$tbcq0nK:soP8mIn-gckb6<Jr#0"8C[6/,ILm))Spg>Cuh"1.%cnsR^];[93)BG?*p]tgl69W>p,OO>X.bTCL[#[HX.;N~>
+endstream
+endobj
+19 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 18 0 R
+/Annots 20 0 R
+>>
+endobj
+20 0 obj
+[
+21 0 R
+22 0 R
+]
+endobj
+21 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 276.276 629.666 301.62 617.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.apache.org/foundation/how-it-works.html#pmc)
+/S /URI >>
+/H /I
+>>
+endobj
+22 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 190.992 555.666 220.98 543.666 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.apache.org/foundation/glossary.html#Karma)
+/S /URI >>
+/H /I
+>>
+endobj
+23 0 obj
+<< /Length 993 /Filter [ /ASCII85Decode /FlateDecode ]
+ >>
+stream
+Gasao966RV&AI`dFDGoQMI$RK8Z#)6Bfg4mR2jp%#fnnA*Y+7@q=bU0d"6njiu&B>BYX#bC:270gA,t@&`MA2l]'r!X[A2NIfoqXp3E0:_E>3Nd-h@"0@:LLXoIBb'<,5>qmOSOUom^#?)#)IrRL_NG$["+Mg+V,/B4s`H&-YV=-R*M8qik,T?^.]6Qe^TN2ZrnO@u?VQ)_%iXH`iVP/k[[&iX5+(,Sfgqm(HI;-d>nVC8R/-5Co0D!Z5V;[HPDNI/VB-=Q<hU4rU@?#!?F'7!f1^U;(0PJh2jJ&8*c0KS:@o<<^>re)*?,Q+W85^i^ZE=k'rb%p;Lo/DcP]o%tI&m:8jCS[t&_;'TPPt_Tme[r&W,kfHHlp:[b`l5Ym0hCJo]MI.$b<k,pf^`'qQ`qg^-]ce)Cf4@UFTJNk9oFY3YP2J4;]d>&^kb=lmZGDsLSaXM30'gNQQbM'g-\A+MKI5OM%8acS7s'NDUGsYMZU>s1)7Mk4JQVIfkKGU#W@=n=pLsQ).F:BL'#3K_`Z^(;f;&=T#8$j_.gbrLgUE1>`,A%L1VA31_1U%/P)J.[s[0lh_BeO6SO)Ii5A1rP&2V/%/U?Im1pEf[QTU$1_Sq\7f(Yb-l$7-ET\LJhab`gs+`Wd?b6T&&)2TnKmT5eltNc4g4^uciMCj7P&ff[QnL2eIB?90IbN<fPrK?3kW.rQN[S:r=nl6d8c?(seMA8kbhU[k7hE!,%3[/13+%CWX*P0XMSm-qj0*<H4K9#H71TgYB19P*p!QD6mSBF3:.uJ!rok#a^p'#.[m+/&NthDW+-iTHqU:*%L>m4)2.iiZ.m8bB*nA3ASeo;qN)\e//4Dd#>td[K:cH9W-1CC/qC>&/Zn'tO-:A8u->ri\KmbG]!1>/#^%2Bt\_[?)g<9Jt9X_QN9$0&IqMkkk/aBou[FSrG)8f,hCHiN&q@Jt.F&t2D*7d]D@h<8?N%mB]$J;@Vj_HekLW',r/al,
 ;~>
+endstream
+endobj
+24 0 obj
+<< /Type /Page
+/Parent 1 0 R
+/MediaBox [ 0 0 612 792 ]
+/Resources 3 0 R
+/Contents 23 0 R
+/Annots 25 0 R
+>>
+endobj
+25 0 obj
+[
+26 0 R
+27 0 R
+]
+endobj
+26 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 346.776 564.132 535.092 552.132 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.apache.org/dev/pmc.html)
+/S /URI >>
+/H /I
+>>
+endobj
+27 0 obj
+<< /Type /Annot
+/Subtype /Link
+/Rect [ 387.288 546.932 472.944 534.932 ]
+/C [ 0 0 0 ]
+/Border [ 0 0 0 ]
+/A << /URI (http://www.apache.org/foundation/glossary.html#MajorityApproval)
+/S /URI >>
+/H /I
+>>
+endobj
+29 0 obj
+<<
+ /Title (\376\377\0\61\0\40\0\114\0\165\0\143\0\145\0\156\0\145\0\40\0\120\0\162\0\157\0\152\0\145\0\143\0\164\0\40\0\115\0\141\0\156\0\141\0\147\0\145\0\155\0\145\0\156\0\164\0\40\0\103\0\157\0\155\0\155\0\151\0\164\0\164\0\145\0\145\0\40\0\50\0\120\0\115\0\103\0\51)
+ /Parent 28 0 R
+ /First 30 0 R
+ /Last 31 0 R
+ /Next 32 0 R
+ /Count -2
+ /A 9 0 R
+>> endobj
+30 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\61\0\40\0\120\0\115\0\103\0\40\0\115\0\145\0\155\0\142\0\145\0\162\0\163)
+ /Parent 29 0 R
+ /Next 31 0 R
+ /A 11 0 R
+>> endobj
+31 0 obj
+<<
+ /Title (\376\377\0\61\0\56\0\62\0\40\0\105\0\155\0\145\0\162\0\151\0\164\0\165\0\163\0\40\0\120\0\115\0\103\0\40\0\115\0\145\0\155\0\142\0\145\0\162\0\163)
+ /Parent 29 0 R
+ /Prev 30 0 R
+ /A 13 0 R
+>> endobj
+32 0 obj
+<<
+ /Title (\376\377\0\62\0\40\0\114\0\165\0\143\0\145\0\156\0\145\0\40\0\103\0\157\0\155\0\155\0\151\0\164\0\164\0\145\0\162\0\163)
+ /Parent 28 0 R
+ /Prev 29 0 R
+ /Next 33 0 R
+ /A 15 0 R
+>> endobj
+33 0 obj
+<<
+ /Title (\376\377\0\63\0\40\0\114\0\165\0\143\0\145\0\156\0\145\0\40\0\120\0\115\0\103\0\40\0\107\0\165\0\151\0\144\0\145)
+ /Parent 28 0 R
+ /Prev 32 0 R
+ /A 17 0 R
+>> endobj
+34 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F3
+/BaseFont /Helvetica-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+35 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F5
+/BaseFont /Times-Roman
+/Encoding /WinAnsiEncoding >>
+endobj
+36 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F1
+/BaseFont /Helvetica
+/Encoding /WinAnsiEncoding >>
+endobj
+37 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F2
+/BaseFont /Helvetica-Oblique
+/Encoding /WinAnsiEncoding >>
+endobj
+38 0 obj
+<< /Type /Font
+/Subtype /Type1
+/Name /F7
+/BaseFont /Times-Bold
+/Encoding /WinAnsiEncoding >>
+endobj
+1 0 obj
+<< /Type /Pages
+/Count 3
+/Kids [6 0 R 19 0 R 24 0 R ] >>
+endobj
+2 0 obj
+<< /Type /Catalog
+/Pages 1 0 R
+ /Outlines 28 0 R
+ /PageMode /UseOutlines
+ >>
+endobj
+3 0 obj
+<< 
+/Font << /F3 34 0 R /F5 35 0 R /F1 36 0 R /F2 37 0 R /F7 38 0 R >> 
+/ProcSet [ /PDF /ImageC /Text ] >> 
+endobj
+9 0 obj
+<<
+/S /GoTo
+/D [19 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+11 0 obj
+<<
+/S /GoTo
+/D [19 0 R /XYZ 85.0 506.266 null]
+>>
+endobj
+13 0 obj
+<<
+/S /GoTo
+/D [19 0 R /XYZ 85.0 185.013 null]
+>>
+endobj
+15 0 obj
+<<
+/S /GoTo
+/D [24 0 R /XYZ 85.0 659.0 null]
+>>
+endobj
+17 0 obj
+<<
+/S /GoTo
+/D [24 0 R /XYZ 85.0 606.666 null]
+>>
+endobj
+28 0 obj
+<<
+ /First 29 0 R
+ /Last 33 0 R
+>> endobj
+xref
+0 39
+0000000000 65535 f 
+0000007439 00000 n 
+0000007511 00000 n 
+0000007603 00000 n 
+0000000015 00000 n 
+0000000071 00000 n 
+0000000722 00000 n 
+0000000842 00000 n 
+0000000895 00000 n 
+0000007726 00000 n 
+0000001029 00000 n 
+0000007789 00000 n 
+0000001166 00000 n 
+0000007855 00000 n 
+0000001301 00000 n 
+0000007921 00000 n 
+0000001438 00000 n 
+0000007985 00000 n 
+0000001575 00000 n 
+0000003516 00000 n 
+0000003639 00000 n 
+0000003673 00000 n 
+0000003880 00000 n 
+0000004085 00000 n 
+0000005170 00000 n 
+0000005293 00000 n 
+0000005327 00000 n 
+0000005515 00000 n 
+0000008051 00000 n 
+0000005732 00000 n 
+0000006103 00000 n 
+0000006270 00000 n 
+0000006490 00000 n 
+0000006697 00000 n 
+0000006883 00000 n 
+0000006996 00000 n 
+0000007106 00000 n 
+0000007214 00000 n 
+0000007330 00000 n 
+trailer
+<<
+/Size 39
+/Root 2 0 R
+/Info 4 0 R
+>>
+startxref
+8102
+%%EOF

Added: lucene/openrelevance/site/src/documentation/README.txt
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/README.txt?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/README.txt (added)
+++ lucene/openrelevance/site/src/documentation/README.txt Thu Jun 25 14:43:01 2009
@@ -0,0 +1,7 @@
+This is the base documentation directory.
+
+skinconf.xml     # This file customizes Forrest for your project. In it, you
+                 # tell forrest the project name, logo, copyright info, etc
+
+sitemap.xmap     # Optional. This sitemap is consulted before all core sitemaps.
+                 # See http://forrest.apache.org/docs/project-sitemap.html

Added: lucene/openrelevance/site/src/documentation/classes/CatalogManager.properties
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/classes/CatalogManager.properties?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/classes/CatalogManager.properties (added)
+++ lucene/openrelevance/site/src/documentation/classes/CatalogManager.properties Thu Jun 25 14:43:01 2009
@@ -0,0 +1,37 @@
+# Copyright 2002-2004 The Apache Software Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+#=======================================================================
+# CatalogManager.properties
+#
+# This is the default properties file for Apache Forrest.
+# This facilitates local configuration of application-specific catalogs.
+#
+# See the Apache Forrest documentation:
+# http://forrest.apache.org/docs/your-project.html
+# http://forrest.apache.org/docs/validation.html
+
+# verbosity ... level of messages for status/debug
+# See forrest/src/core/context/WEB-INF/cocoon.xconf
+
+# catalogs ... list of additional catalogs to load
+#  (Note that Apache Forrest will automatically load its own default catalog
+#  from src/core/context/resources/schema/catalog.xcat)
+# use full pathnames
+# pathname separator is always semi-colon (;) regardless of operating system
+# directory separator is always slash (/) regardless of operating system
+#
+#catalogs=/home/me/forrest/my-site/src/documentation/resources/schema/catalog.xcat
+catalogs=
+

Added: lucene/openrelevance/site/src/documentation/content/xdocs/index.xml
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/content/xdocs/index.xml?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/content/xdocs/index.xml (added)
+++ lucene/openrelevance/site/src/documentation/content/xdocs/index.xml Thu Jun 25 14:43:01 2009
@@ -0,0 +1,41 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" 
+          "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document> 
+
+  <header> 
+    <title>Welcome to the Open Relevance Project!</title> 
+  </header> 
+
+  <body> 
+
+    <section>
+      <title>What Is the Open Relevance Project?</title>
+	<p>The Open Relevance Project (ORP) is a new Apache Lucene sub-project aimed at making materials for doing relevance testing for Information Retrieval (IR), Machine Learning and Natural Language Processing (NLP) into open source.
+	</p>
+	<p>Our initial focus is on creating collections, judgments, queries and tools for the Lucene ecosystem of projects (Lucene Java, Solr, Nutch, Mahout, etc.) that can be used to judge relevance in a free, repeatable manner.
+	</p>
+    </section>
+
+    <section>
+      <title>News</title>
+		<section>
+			<title>25 June 2009 - Apache Open Relevance Kickoff</title>
+			<p>The Apache Lucene PMC has officially voted to add the Open Relevance Project (ORP) as a Lucene subproject.  ORP's main goal is to build out collections, judgments and queries in an open environment to make it easier for Lucene developers and users to do relevance testing, much like one would get if using <a href="http://trec.nist.gov">TREC</a> or
+			other evaluation conferences.</p>
+		</section>      
+    </section>
+	<section>
+      <title>Project History</title>
+	<p>For background reading on the genesis of ORP, see:
+		<ul>
+			<li><a href="http://wiki.apache.org/lucene-java/OpenRelevance">http://wiki.apache.org/lucene-java/OpenRelevance</a></li>
+			<li><a href="http://mail-archives.apache.org/mod_mbox/lucene-general/200905.mbox/ajax/%3c951F29A3-4461-4B25-A79D-3D1493305089@apache.org%3e">http://mail-archives.apache.org/mod_mbox/lucene-general/200905.mbox/ajax/%3c951F29A3-4461-4B25-A79D-3D1493305089@apache.org%3e</a></li>
+		</ul>
+	</p>
+    </section>
+  </body>
+
+</document>

Added: lucene/openrelevance/site/src/documentation/content/xdocs/mail.xml
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/content/xdocs/mail.xml?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/content/xdocs/mail.xml (added)
+++ lucene/openrelevance/site/src/documentation/content/xdocs/mail.xml Thu Jun 25 14:43:01 2009
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<document>
+	<header>
+        <title>
+	Apache ORP - Mailing Lists
+		</title>
+	</header>
+    <body>
+        <section id="general"><title>ORP Mailing Lists</title>
+			<p/>
+            <p>
+              <b>User discussions:</b>
+            </p>
+            <ul>
+              <li><a href="mailto:openrelevance-user-subscribe@lucene.apache.org">Subscribe</a></li>
+              <li><a href="mailto:openrelevance-user-unsubscribe@lucene.apache.org">Unsubscribe</a></li>
+<!--               <li><a href="http://mail-archives.apache.org/mod_mbox/lucene-general/">Archive</a></li> -->
+
+            </ul>
+            <p>
+              <b>Developer discussions:</b>
+            </p>
+<p>Discussions on this list are for questions related to how to create the ORP content.  It is not for questions related
+	to how to consume ORP content or how to run evaluations, etc.  Please use the user mailing list for those discussions.</p>
+            <ul>
+              <li><a href="mailto:openrelevance-dev-subscribe@lucene.apache.org">Subscribe</a></li>
+              <li><a href="mailto:openrelevance-dev-unsubscribe@lucene.apache.org">Unsubscribe</a></li>
+			<!--               <li><a href="http://mail-archives.apache.org/mod_mbox/lucene-general/">Archive</a></li> -->
+            </ul>
+
+        </section>
+
+    </body>
+</document>

Added: lucene/openrelevance/site/src/documentation/content/xdocs/site.xml
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/content/xdocs/site.xml?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/content/xdocs/site.xml (added)
+++ lucene/openrelevance/site/src/documentation/content/xdocs/site.xml Thu Jun 25 14:43:01 2009
@@ -0,0 +1,56 @@
+<?xml version="1.0"?>
+<!--
+  Copyright 2002-2004 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<site label="Open Relevance" href="" xmlns="http://apache.org/forrest/linkmap/1.0">
+
+  <project label="About">
+    <news        label="Welcome"          href="index.html" />    
+    <who         label="Who We Are"       href="who.html" />    
+    <mail        label="Mailing Lists"    href="mail.html" />    
+    <store       label="Buy Stuff"        href="ext:store" />    
+    <sponsor     label="Sponsor Apache"     href="ext:sponsor" />    
+    <thanks      label="Sponsors of Apache" href="ext:thanks" />    
+  </project>
+
+  <docs label="Related-Projects">    
+	<droids      label="Droids"           href="ext:droids" />
+    <java        label="Java"             href="ext:java" />
+    <lucene.net  label="Lucene.Net"       href="ext:lucene.net" />    
+	<lucy        label="Lucy"             href="ext:lucy" />
+    <mahout      label="Mahout"           href="ext:mahout" />
+	<nutch       label="Nutch"            href="ext:nutch" />    
+    <pylucene    label="PyLucene"         href="ext:pylucene"/>
+    <solr        label="Solr"             href="ext:solr" />
+    <tika        label="Tika"             href="ext:tika" />
+  </docs>
+
+  <external-refs>
+    <java      href="http://lucene.apache.org/java/" />
+    <nutch     href="http://lucene.apache.org/nutch/" />
+    <lucy      href="http://lucene.apache.org/lucy/" />
+    <solr      href="http://lucene.apache.org/solr/" />
+    <lucene.net href="http://incubator.apache.org/lucene.net/" />
+    <tika      href="http://lucene.apache.org/tika/" />
+    <mahout    href="http://lucene.apache.org/mahout/" />
+    <droids    href="http://incubator.apache.org/droids/" />
+    <pylucene    href="http://lucene.apache.org/pylucene/" />
+    <store     href="http://www.cafepress.com/lucene/" />
+    <sponsor   href="http://www.apache.org/foundation/sponsorship.html" />
+    <thanks    href="http://www.apache.org/foundation/thanks.html" />
+  </external-refs>
+ 
+</site>

Added: lucene/openrelevance/site/src/documentation/content/xdocs/tabs.xml
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/content/xdocs/tabs.xml?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/content/xdocs/tabs.xml (added)
+++ lucene/openrelevance/site/src/documentation/content/xdocs/tabs.xml Thu Jun 25 14:43:01 2009
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE tabs PUBLIC "-//APACHE//DTD Cocoon Documentation Tab V1.0//EN" 
+          "tab-cocoon-v10.dtd">
+
+<tabs software="Lucene"
+      title="Lucene"
+      copyright="The Apache Software Foundation"
+      xmlns:xlink="http://www.w3.org/1999/xlink">
+
+  <!-- The rules are:
+    @dir will always have /index.html added.
+    @href is not modified unless it is root-relative and obviously specifies a
+    directory (ends in '/'), in which case /index.html will be added
+  -->
+
+  <tab label="Main" dir=""/>  
+<!--  <tab label="Wiki" href="http://cwiki.apache.org/ORP/"/> -->
+</tabs>

Added: lucene/openrelevance/site/src/documentation/content/xdocs/who.xml
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/content/xdocs/who.xml?rev=788367&view=auto
==============================================================================
--- lucene/openrelevance/site/src/documentation/content/xdocs/who.xml (added)
+++ lucene/openrelevance/site/src/documentation/content/xdocs/who.xml Thu Jun 25 14:43:01 2009
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V2.0//EN" 
+          "http://forrest.apache.org/dtd/document-v20.dtd">
+
+<document> 
+
+  <header> 
+    <title>Who We Are</title> 
+  </header> 
+
+  <body> 
+      <section>
+        <title>ORP Committers</title>
+  
+        <p>
+        (in alphabetical order): 
+        </p>
+  
+        <ul>
+        <li>Andrzej Bialecki &lt;ab&gt; </li>
+        <li>Otis Gospodnetic &lt;otis&gt;</li>
+        <li>Grant Ingersoll &lt;gsingers&gt; </li>
+        <li>Simon Willnauer &lt;simonw&gt; </li>
+        </ul>
+  
+      </section>
+  </body>
+
+</document>

Added: lucene/openrelevance/site/src/documentation/resources/images/apache_feather.gif
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/resources/images/apache_feather.gif?rev=788367&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/openrelevance/site/src/documentation/resources/images/apache_feather.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/openrelevance/site/src/documentation/resources/images/favicon.ico
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/resources/images/favicon.ico?rev=788367&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/openrelevance/site/src/documentation/resources/images/favicon.ico
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: lucene/openrelevance/site/src/documentation/resources/images/lucene_green_100.gif
URL: http://svn.apache.org/viewvc/lucene/openrelevance/site/src/documentation/resources/images/lucene_green_100.gif?rev=788367&view=auto
==============================================================================
Binary file - no diff available.

Propchange: lucene/openrelevance/site/src/documentation/resources/images/lucene_green_100.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream