cziegeler    2003/07/03 08:10:54

  Modified:    site/2.1/skin page.css breadcrumbs-optimized.js
                        breadcrumbs.js
  Removed:     site     index.pdf changes.pdf faq.pdf todo.pdf
  Log:
  Deleting obsolete pdfs
  
  Revision  Changes    Path
  1.4       +63 -61    cocoon-site/site/2.1/skin/page.css
  
  Index: page.css
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/skin/page.css,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- page.css  21 May 2003 15:23:28 -0000      1.3
  +++ page.css  3 Jul 2003 15:10:52 -0000       1.4
  @@ -1,61 +1,63 @@
  -body {  background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Verdana, 
Helvetica, sans-serif;  font-size : 100%;  }
  -
  -a:link { color: #0F3660; }
  -a:visited { color: #009999; }
  -a:active { color: #000066; }
  -a:hover { color: #000066; }
  -
  -.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;  
font-size : 90%;  }
  -.menu a:link { color: #FFFFFF;  text-decoration : none;  }
  -.menu a:visited { color: #FFFFFF; text-decoration : none; }
  -.menu a:hover { color: #FFCC00; text-decoration : none; }
  -.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
  -.menu li  { list-style-image: url('images/label.gif'); font-weight : bold; }
  -.menu ul ul li .sel { list-style-image: url('images/current.gif'); font-weight : 
normal; }
  -.menu ul ul li  { list-style-image: url('images/page.gif'); font-weight : normal; }
  -
  -.tab { font-size : 85%; border: 0 }
  -.tab a:link {   text-decoration : none;  }
  -.tab a:visited { text-decoration : none; color: #2A4A6D }
  -.tab a:hover { color: #000066; }
  -
  -table .title { background-color: #FFFFFF; width:100%; border: 0px; }
  -.dida { font-size: 80%; }
  -
  -.pre { white-space: pre;}
  -
  -.content { padding: 5px 5px 5px 10px; font : small Verdana, Helvetica, sans-serif;  
font-size : 90%; }
  -.content .ForrestTable { width: 100%; background-color: #7099C5; color: #ffffff; 
font-size : 90%;}
  -.content .ForrestTable caption { text-align: left; color: black; font-weight: bold; 
}
  -.content .ForrestTable th { text-align: center; }
  -.content .ForrestTable td { background-color: #f0f0ff; color: black; }
  -
  -.frame { margin: 5px 20px 5px 20px; font-size: 90%; }
  -.frame .content { margin: 0px; }
  -
  -.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
  -.note .label { background-color: #7099C5; color: #ffffff; }
  -
  -.warning { border: solid 1px #D00000; background-color: #fff0f0; }
  -.warning .label { background-color: #D00000; color: #ffffff; }
  -
  -.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
  -.fixme .label { background-color: #C6C600; color: #ffffff; }
  -
  -.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
  -.codefrag {  font-family: "Courier New", Courier, monospace; }
  -
  -.highlight { background-color: yellow; }
  -
  -.minitoc {margin: 5px 5px 5px 40px;}
  -
  -.dtdElement { width: 100%;   font-size: 90%; background-color : #ffffff; }
  -
  -.dtdTag {    color: #990000; text-transform : uppercase;  font-style : normal;  
font-size : 120%;  font-weight : bold; }
  -
  -
  [EMAIL PROTECTED] print {
  -   .menu {
  -     display: none;
  -   }
  -}
  +body {  background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Verdana, 
Helvetica, sans-serif;  font-size : 100%;  }
  +
  +a:link { color: #0F3660; }
  +a:visited { color: #009999; }
  +a:active { color: #000066; }
  +a:hover { color: #000066; }
  +
  +img { border: 0; vertical-align: top }
  +
  +.menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;  
font-size : 90%;  }
  +.menu a:link { color: #FFFFFF;  text-decoration : none;  }
  +.menu a:visited { color: #FFFFFF; text-decoration : none; }
  +.menu a:hover { color: #FFCC00; text-decoration : none; }
  +.menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
  +.menu li  { list-style-image: url('images/label.gif'); font-weight : bold; }
  +.menu ul ul li .sel { list-style-image: url('images/current.gif'); font-weight : 
normal; }
  +.menu ul ul li  { list-style-image: url('images/page.gif'); font-weight : normal; }
  +
  +.tab { font-size : 85%; border: 0 }
  +.tab a:link {   text-decoration : none;  }
  +.tab a:visited { text-decoration : none; color: #2A4A6D }
  +.tab a:hover { color: #000066; }
  +
  +table .title { background-color: #FFFFFF; width:100%; border: 0px; }
  +.dida { font-size: 80%; }
  +
  +.pre { white-space: pre;}
  +
  +.content { padding: 5px 5px 5px 10px; font : small Verdana, Helvetica, sans-serif;  
font-size : 90%; }
  +.content .ForrestTable { width: 100%; background-color: #7099C5; color: #ffffff; 
font-size : 90%;}
  +.content .ForrestTable caption { text-align: left; color: black; font-weight: bold; 
}
  +.content .ForrestTable th { text-align: center; }
  +.content .ForrestTable td { background-color: #f0f0ff; color: black; }
  +
  +.frame { margin: 5px 20px 5px 20px; font-size: 90%; }
  +.frame .content { margin: 0px; }
  +
  +.note { border: solid 1px #7099C5; background-color: #f0f0ff; }
  +.note .label { background-color: #7099C5; color: #ffffff; }
  +
  +.warning { border: solid 1px #D00000; background-color: #fff0f0; }
  +.warning .label { background-color: #D00000; color: #ffffff; }
  +
  +.fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
  +.fixme .label { background-color: #C6C600; color: #ffffff; }
  +
  +.code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
  +.codefrag {  font-family: "Courier New", Courier, monospace; }
  +
  +.highlight { background-color: yellow; }
  +
  +.minitoc {margin: 5px 5px 5px 40px;}
  +
  +.dtdElement { width: 100%;   font-size: 90%; background-color : #ffffff; }
  +
  +.dtdTag {    color: #990000; text-transform : uppercase;  font-style : normal;  
font-size : 120%;  font-weight : bold; }
  +
  +
  [EMAIL PROTECTED] print {
  +   .menu {
  +     display: none;
  +   }
  +}
  
  
  
  1.4       +67 -67    cocoon-site/site/2.1/skin/breadcrumbs-optimized.js
  
  Index: breadcrumbs-optimized.js
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/skin/breadcrumbs-optimized.js,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- breadcrumbs-optimized.js  21 May 2003 15:23:28 -0000      1.3
  +++ breadcrumbs-optimized.js  3 Jul 2003 15:10:53 -0000       1.4
  @@ -1,67 +1,67 @@
  -var PREPREND_CRUMBS=new Array();
  -PREPREND_CRUMBS.push(new Array("Apache","http://www.apache.org/";));
  -PREPREND_CRUMBS.push(new Array("Jakarta","http://jakarta.apache.org/";));
  -var DISPLAY_SEPARATOR=" > ";
  -var DISPLAY_PREPREND="";
  -var DISPLAY_POSTPREND=":";
  -var CSS_CLASS_CRUMB="breadcrumb";
  -var CSS_CLASS_TRAIL="breadcrumbTrail";
  -var CSS_CLASS_SEPARATOR="crumbSeparator";
  -var FILE_EXTENSIONS=new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
  -var PATH_SEPARATOR="/";
  -
  -function sc(s) {
  -     var l=s.toLowerCase();
  -     return l.substr(0,1).toUpperCase()+l.substr(1);
  -}
  -function getdirs() {
  -     var t=document.location.pathname.split(PATH_SEPARATOR);
  -     var lc=t[t.length-1];
  -     for(var i=0;i < FILE_EXTENSIONS.length;i++)
  -     {
  -             if(lc.indexOf(FILE_EXTENSIONS[i]))
  -                     return t.slice(1,t.length-1); }
  -     return t.slice(1,t.length);
  -}
  -function getcrumbs( d )
  -{
  -     var pre = "/";
  -     var post = "/";
  -     var c = new Array();
  -     if( d != null )
  -     {
  -             for(var i=0;i < d.length;i++) {
  -                     pre+=d[i]+postfix;
  -                     c.push(new Array(d[i],pre)); }
  -     }
  -     if(PREPREND_CRUMBS.length > 0 )
  -             return PREPREND_CRUMBS.concat( c );
  -     return c;
  -}
  -function gettrail( c )
  -{
  -     var h=DISPLAY_PREPREND;
  -     for(var i=0;i < c.length;i++)
  -     {
  -             h+='<a href="'+c[i][1]+'" >'+sc(c[i][0])+'</a>';
  -             if(i!=(c.length-1))
  -                     h+=DISPLAY_SEPARATOR; }
  -     return h+DISPLAY_POSTPREND;
  -}
  -
  -function gettrailXHTML( c )
  -{
  -     var h='<span class="'+CSS_CLASS_TRAIL+'">'+DISPLAY_PREPREND;
  -     for(var i=0;i < c.length;i++)
  -     {
  -             h+='<a href="'+c[i][1]+'" 
class="'+CSS_CLASS_CRUMB+'">'+sc(c[i][0])+'</a>';
  -             if(i!=(c.length-1))
  -                     h+='<span 
class="'+CSS_CLASS_SEPARATOR+'">'+DISPLAY_SEPARATOR+'</span>'; }
  -     return h+DISPLAY_POSTPREND+'</span>';
  -}
  -
  -if(document.location.href.toLowerCase().indexOf("http://";)==-1)
  -     document.write(gettrail(getcrumbs()));
  -else
  -     document.write(gettrail(getcrumbs(getdirs())));
  -
  +var PREPREND_CRUMBS=new Array();
  +PREPREND_CRUMBS.push(new Array("Apache","http://www.apache.org/";));
  +PREPREND_CRUMBS.push(new Array("Jakarta","http://jakarta.apache.org/";));
  +var DISPLAY_SEPARATOR=" &gt; ";
  +var DISPLAY_PREPREND="";
  +var DISPLAY_POSTPREND=":";
  +var CSS_CLASS_CRUMB="breadcrumb";
  +var CSS_CLASS_TRAIL="breadcrumbTrail";
  +var CSS_CLASS_SEPARATOR="crumbSeparator";
  +var FILE_EXTENSIONS=new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" );
  +var PATH_SEPARATOR="/";
  +
  +function sc(s) {
  +     var l=s.toLowerCase();
  +     return l.substr(0,1).toUpperCase()+l.substr(1);
  +}
  +function getdirs() {
  +     var t=document.location.pathname.split(PATH_SEPARATOR);
  +     var lc=t[t.length-1];
  +     for(var i=0;i < FILE_EXTENSIONS.length;i++)
  +     {
  +             if(lc.indexOf(FILE_EXTENSIONS[i]))
  +                     return t.slice(1,t.length-1); }
  +     return t.slice(1,t.length);
  +}
  +function getcrumbs( d )
  +{
  +     var pre = "/";
  +     var post = "/";
  +     var c = new Array();
  +     if( d != null )
  +     {
  +             for(var i=0;i < d.length;i++) {
  +                     pre+=d[i]+postfix;
  +                     c.push(new Array(d[i],pre)); }
  +     }
  +     if(PREPREND_CRUMBS.length > 0 )
  +             return PREPREND_CRUMBS.concat( c );
  +     return c;
  +}
  +function gettrail( c )
  +{
  +     var h=DISPLAY_PREPREND;
  +     for(var i=0;i < c.length;i++)
  +     {
  +             h+='<a href="'+c[i][1]+'" >'+sc(c[i][0])+'</a>';
  +             if(i!=(c.length-1))
  +                     h+=DISPLAY_SEPARATOR; }
  +     return h+DISPLAY_POSTPREND;
  +}
  +
  +function gettrailXHTML( c )
  +{
  +     var h='<span class="'+CSS_CLASS_TRAIL+'">'+DISPLAY_PREPREND;
  +     for(var i=0;i < c.length;i++)
  +     {
  +             h+='<a href="'+c[i][1]+'" 
class="'+CSS_CLASS_CRUMB+'">'+sc(c[i][0])+'</a>';
  +             if(i!=(c.length-1))
  +                     h+='<span 
class="'+CSS_CLASS_SEPARATOR+'">'+DISPLAY_SEPARATOR+'</span>'; }
  +     return h+DISPLAY_POSTPREND+'</span>';
  +}
  +
  +if(document.location.href.toLowerCase().indexOf("http://";)==-1)
  +     document.write(gettrail(getcrumbs()));
  +else
  +     document.write(gettrail(getcrumbs(getdirs())));
  +
  
  
  
  1.5       +267 -257  cocoon-site/site/2.1/skin/breadcrumbs.js
  
  Index: breadcrumbs.js
  ===================================================================
  RCS file: /home/cvs/cocoon-site/site/2.1/skin/breadcrumbs.js,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- breadcrumbs.js    21 May 2003 15:23:28 -0000      1.4
  +++ breadcrumbs.js    3 Jul 2003 15:10:53 -0000       1.5
  @@ -1,257 +1,267 @@
  -/*
  -
  - ============================================================================
  -                   The Apache Software License, Version 1.1
  - ============================================================================
  -
  - Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  -
  - Redistribution and use in source and binary forms, with or without modifica-
  - tion, are permitted provided that the following conditions are met:
  -
  - 1. Redistributions of  source code must  retain the above copyright  notice,
  -    this list of conditions and the following disclaimer.
  -
  - 2. Redistributions in binary form must reproduce the above copyright notice,
  -    this list of conditions and the following disclaimer in the documentation
  -    and/or other materials provided with the distribution.
  -
  - 3. The end-user documentation included with the redistribution, if any, must
  -    include  the following  acknowledgment:  "This product includes  software
  -    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  -    Alternately, this  acknowledgment may  appear in the software itself,  if
  -    and wherever such third-party acknowledgments normally appear.
  -
  - 4. The names "Apache Forrest" and "Apache Software Foundation"
  -    must not be used to endorse or promote products derived from this  software
  -    without  prior written permission. For written permission, please contact
  -    [EMAIL PROTECTED]
  -
  - 5. Products  derived from this software may not  be called "Apache", nor may
  -    "Apache" appear  in their name,  without prior written permission  of the
  -    Apache Software Foundation.
  -
  - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  - FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  - APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  - INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  - DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  - OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  - ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  - (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  - THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  -
  - This software  consists of voluntary contributions made  by many individuals
  - on  behalf of the Apache Software  Foundation. For more  information on the
  - Apache Software Foundation, please see <http://www.apache.org/>.
  -
  -*/
  -
  -/**
  - * This script, when included in a html file, builds a neat breadcrumb trail
  - * based on its url. That is, if it doesn't contains bugs (I'm relatively
  - * sure it does).
  - *
  - * Typical usage:
  - * <script type="text/javascript" language="JavaScript" 
src="breadcrumbs.js"></script>
  - *
  - [EMAIL PROTECTED]     <a href="mailto:[EMAIL PROTECTED]">Leo Simons</a> (main 
author)
  - [EMAIL PROTECTED]     <a href="mailto:[EMAIL PROTECTED]">Nicola Ken Barozzi</a> 
(integration in skin)
  - [EMAIL PROTECTED]    July 12, 2002
  - [EMAIL PROTECTED]    1.0
  - */
  -
  -/* ========================================================================
  -     CONSTANTS
  -   ======================================================================== */
  -
  -/**
  - * Two-dimensional array containing extra crumbs to place at the front of
  - * the trail. Specify first the name of the crumb, then the URI that belongs
  - * to it. You'll need to modify this for every domain or subdomain where
  - * you use this script (you can leave it as an empty array if you wish)
  - */
  -var PREPREND_CRUMBS = new Array();
  -   if(!("apache"=="")){
  -     PREPREND_CRUMBS.push( new Array( "apache", "http://www.apache.org/"; ) );
  -   }
  -   if(!("xml"=="")){
  -     PREPREND_CRUMBS.push( new Array( "xml", "http://xml.apache.org/"; ) );
  -   }
  -   if(!("cocoon"=="")){
  -     PREPREND_CRUMBS.push( new Array( "cocoon", "http://cocoon.apache.org/"; ) );
  -   }
  -
  -/**
  - * String to include between crumbs:
  - */
  -var DISPLAY_SEPARATOR = " &gt; ";
  -/**
  - * String to include at the beginning of the trail
  - */
  -var DISPLAY_PREPREND = "";
  -/**
  - * String to include at the end of the trail
  - */
  -var DISPLAY_POSTPREND = "";
  -
  -/**
  - * CSS Class to use for a single crumb:
  - */
  -var CSS_CLASS_CRUMB = "breadcrumb";
  -
  -/**
  - * CSS Class to use for the complete trail:
  - */
  -var CSS_CLASS_TRAIL = "breadcrumbTrail";
  -
  -/**
  - * CSS Class to use for crumb separator:
  - */
  -var CSS_CLASS_SEPARATOR = "crumbSeparator";
  -
  -/**
  - * Array of strings containing common file extensions. We use this to
  - * determine what part of the url to ignore (if it contains one of the
  - * string specified here, we ignore it).
  - */
  -var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" 
);
  -
  -/**
  - * String that separates parts of the breadcrumb trail from each other.
  - * When this is no longer a slash, I'm sure I'll be old and grey.
  - */
  -var PATH_SEPARATOR = "/";
  -
  -/* ========================================================================
  -     UTILITY FUNCTIONS
  -   ======================================================================== */
  -/**
  - * Capitalize first letter of the provided string and return the modified
  - * string.
  - */
  -function sentenceCase( string )
  -{
  -     var lower = string.toLowerCase();
  -     return lower.substr(0,1).toUpperCase() + lower.substr(1);
  -}
  -
  -/**
  - * Returns an array containing the names of all the directories in the
  - * current document URL
  - */
  -function getDirectoriesInURL()
  -{
  -     var trail = document.location.pathname.split( PATH_SEPARATOR );
  -
  -     // check whether last section is a file or a directory
  -     var lastcrumb = trail[trail.length-1];
  -     for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
  -     {
  -             if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
  -             {
  -                     // it is, remove it and send results
  -                     return trail.slice( 1, trail.length-1 );
  -             }
  -     }
  -
  -     // it's not; send the trail unmodified
  -     return trail.slice( 1, trail.length );
  -}
  -
  -/* ========================================================================
  -     BREADCRUMB FUNCTIONALITY
  -   ======================================================================== */
  -/**
  - * Return a two-dimensional array describing the breadcrumbs based on the
  - * array of directories passed in.
  - */
  -function getBreadcrumbs( dirs )
  -{
  -     var prefix = "/";
  -     var postfix = "/";
  -
  -     // the array we will return
  -     var crumbs = new Array();
  -
  -     if( dirs != null )
  -     {
  -             for( var i = 0; i < dirs.length; i++ )
  -             {
  -                     prefix += dirs[i] + postfix;
  -                     crumbs.push( new Array( dirs[i], prefix ) );
  -             }
  -     }
  -
  -     // preprend the PREPREND_CRUMBS
  -     if(PREPREND_CRUMBS.length > 0 )
  -     {
  -             return PREPREND_CRUMBS.concat( crumbs );
  -     }
  -
  -     return crumbs;
  -}
  -
  -/**
  - * Return a string containing a simple text breadcrumb trail based on the
  - * two-dimensional array passed in.
  - */
  -function getCrumbTrail( crumbs )
  -{
  -     var xhtml = DISPLAY_PREPREND;
  -
  -     for( var i = 0; i < crumbs.length; i++ )
  -     {
  -             xhtml += '<a href="' + crumbs[i][1] + '" >';
  -             xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
  -             if( i != (crumbs.length-1) )
  -             {
  -                     xhtml += DISPLAY_SEPARATOR;
  -             }
  -     }
  -
  -     xhtml += DISPLAY_POSTPREND;
  -
  -     return xhtml;
  -}
  -
  -/**
  - * Return a string containing an XHTML breadcrumb trail based on the
  - * two-dimensional array passed in.
  - */
  -function getCrumbTrailXHTML( crumbs )
  -{
  -     var xhtml = '<span class="' + CSS_CLASS_TRAIL  + '">';
  -     xhtml += DISPLAY_PREPREND;
  -
  -     for( var i = 0; i < crumbs.length; i++ )
  -     {
  -             xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + 
'">';
  -             xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
  -             if( i != (crumbs.length-1) )
  -             {
  -                     xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + 
DISPLAY_SEPARATOR + '</span>';
  -             }
  -     }
  -
  -     xhtml += DISPLAY_POSTPREND;
  -     xhtml += '</span>';
  -
  -     return xhtml;
  -}
  -
  -/* ========================================================================
  -     PRINT BREADCRUMB TRAIL
  -   ======================================================================== */
  -
  -// check if we're local; if so, only print the PREPREND_CRUMBS
  -if( document.location.href.toLowerCase().indexOf( "http://"; ) == -1 )
  -{
  -     document.write( getCrumbTrail( getBreadcrumbs() ) );
  -}
  -else
  -{
  -     document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
  -}
  -
  +/*
  +
  + ============================================================================
  +                   The Apache Software License, Version 1.1
  + ============================================================================
  +
  + Copyright (C) 1999-2003 The Apache Software Foundation. All rights reserved.
  +
  + Redistribution and use in source and binary forms, with or without modifica-
  + tion, are permitted provided that the following conditions are met:
  +
  + 1. Redistributions of  source code must  retain the above copyright  notice,
  +    this list of conditions and the following disclaimer.
  +
  + 2. Redistributions in binary form must reproduce the above copyright notice,
  +    this list of conditions and the following disclaimer in the documentation
  +    and/or other materials provided with the distribution.
  +
  + 3. The end-user documentation included with the redistribution, if any, must
  +    include  the following  acknowledgment:  "This product includes  software
  +    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
  +    Alternately, this  acknowledgment may  appear in the software itself,  if
  +    and wherever such third-party acknowledgments normally appear.
  +
  + 4. The names "Apache Forrest" and "Apache Software Foundation"
  +    must not be used to endorse or promote products derived from this  software
  +    without  prior written permission. For written permission, please contact
  +    [EMAIL PROTECTED]
  +
  + 5. Products  derived from this software may not  be called "Apache", nor may
  +    "Apache" appear  in their name,  without prior written permission  of the
  +    Apache Software Foundation.
  +
  + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  + FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
  + APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
  + INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
  + DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
  + OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
  + ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
  + (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
  + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  +
  + This software  consists of voluntary contributions made  by many individuals
  + on  behalf of the Apache Software  Foundation. For more  information on the
  + Apache Software Foundation, please see <http://www.apache.org/>.
  +
  +*/
  +
  +/**
  + * This script, when included in a html file, builds a neat breadcrumb trail
  + * based on its url. That is, if it doesn't contains bugs (I'm relatively
  + * sure it does).
  + *
  + * Typical usage:
  + * <script type="text/javascript" language="JavaScript" 
src="breadcrumbs.js"></script>
  + *
  + [EMAIL PROTECTED]     <a href="mailto:[EMAIL PROTECTED]">Leo Simons</a> (main 
author)
  + [EMAIL PROTECTED]     <a href="mailto:[EMAIL PROTECTED]">Nicola Ken Barozzi</a> 
(integration in skin)
  + [EMAIL PROTECTED]    July 12, 2002
  + [EMAIL PROTECTED]    1.0
  + */
  +
  +/**
  + * IE 5 on Mac doesn't know Array.push.
  + *
  + * Implement it - courtesy to fritz.
  + */
  +var abc      = new Array();
  +if (!abc.push) {
  +  Array.prototype.push       = function(what){this[this.length]=what}
  +}
  +
  +/* ========================================================================
  +     CONSTANTS
  +   ======================================================================== */
  +
  +/**
  + * Two-dimensional array containing extra crumbs to place at the front of
  + * the trail. Specify first the name of the crumb, then the URI that belongs
  + * to it. You'll need to modify this for every domain or subdomain where
  + * you use this script (you can leave it as an empty array if you wish)
  + */
  +var PREPREND_CRUMBS = new Array();
  +   if(!("apache"=="")){
  +     PREPREND_CRUMBS.push( new Array( "apache", "http://www.apache.org/"; ) );
  +   }
  +   if(!("cocoon"=="")){
  +     PREPREND_CRUMBS.push( new Array( "cocoon", "http://cocoon.apache.org/"; ) );
  +   }
  +   if(!(""=="")){
  +     PREPREND_CRUMBS.push( new Array( "", "" ) );
  +   }
  +
  +/**
  + * String to include between crumbs:
  + */
  +var DISPLAY_SEPARATOR = " &gt; ";
  +/**
  + * String to include at the beginning of the trail
  + */
  +var DISPLAY_PREPREND = "";
  +/**
  + * String to include at the end of the trail
  + */
  +var DISPLAY_POSTPREND = "";
  +
  +/**
  + * CSS Class to use for a single crumb:
  + */
  +var CSS_CLASS_CRUMB = "breadcrumb";
  +
  +/**
  + * CSS Class to use for the complete trail:
  + */
  +var CSS_CLASS_TRAIL = "breadcrumbTrail";
  +
  +/**
  + * CSS Class to use for crumb separator:
  + */
  +var CSS_CLASS_SEPARATOR = "crumbSeparator";
  +
  +/**
  + * Array of strings containing common file extensions. We use this to
  + * determine what part of the url to ignore (if it contains one of the
  + * string specified here, we ignore it).
  + */
  +var FILE_EXTENSIONS = new Array( ".html", ".htm", ".jsp", ".php", ".php3", ".php4" 
);
  +
  +/**
  + * String that separates parts of the breadcrumb trail from each other.
  + * When this is no longer a slash, I'm sure I'll be old and grey.
  + */
  +var PATH_SEPARATOR = "/";
  +
  +/* ========================================================================
  +     UTILITY FUNCTIONS
  +   ======================================================================== */
  +/**
  + * Capitalize first letter of the provided string and return the modified
  + * string.
  + */
  +function sentenceCase( string )
  +{        return string;
  +     //var lower = string.toLowerCase();
  +     //return lower.substr(0,1).toUpperCase() + lower.substr(1);
  +}
  +
  +/**
  + * Returns an array containing the names of all the directories in the
  + * current document URL
  + */
  +function getDirectoriesInURL()
  +{
  +     var trail = document.location.pathname.split( PATH_SEPARATOR );
  +
  +     // check whether last section is a file or a directory
  +     var lastcrumb = trail[trail.length-1];
  +     for( var i = 0; i < FILE_EXTENSIONS.length; i++ )
  +     {
  +             if( lastcrumb.indexOf( FILE_EXTENSIONS[i] ) )
  +             {
  +                     // it is, remove it and send results
  +                     return trail.slice( 1, trail.length-1 );
  +             }
  +     }
  +
  +     // it's not; send the trail unmodified
  +     return trail.slice( 1, trail.length );
  +}
  +
  +/* ========================================================================
  +     BREADCRUMB FUNCTIONALITY
  +   ======================================================================== */
  +/**
  + * Return a two-dimensional array describing the breadcrumbs based on the
  + * array of directories passed in.
  + */
  +function getBreadcrumbs( dirs )
  +{
  +     var prefix = "/";
  +     var postfix = "/";
  +
  +     // the array we will return
  +     var crumbs = new Array();
  +
  +     if( dirs != null )
  +     {
  +             for( var i = 0; i < dirs.length; i++ )
  +             {
  +                     prefix += dirs[i] + postfix;
  +                     crumbs.push( new Array( dirs[i], prefix ) );
  +             }
  +     }
  +
  +     // preprend the PREPREND_CRUMBS
  +     if(PREPREND_CRUMBS.length > 0 )
  +     {
  +             return PREPREND_CRUMBS.concat( crumbs );
  +     }
  +
  +     return crumbs;
  +}
  +
  +/**
  + * Return a string containing a simple text breadcrumb trail based on the
  + * two-dimensional array passed in.
  + */
  +function getCrumbTrail( crumbs )
  +{
  +     var xhtml = DISPLAY_PREPREND;
  +
  +     for( var i = 0; i < crumbs.length; i++ )
  +     {
  +             xhtml += '<a href="' + crumbs[i][1] + '" >';
  +             xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
  +             if( i != (crumbs.length-1) )
  +             {
  +                     xhtml += DISPLAY_SEPARATOR;
  +             }
  +     }
  +
  +     xhtml += DISPLAY_POSTPREND;
  +
  +     return xhtml;
  +}
  +
  +/**
  + * Return a string containing an XHTML breadcrumb trail based on the
  + * two-dimensional array passed in.
  + */
  +function getCrumbTrailXHTML( crumbs )
  +{
  +     var xhtml = '<span class="' + CSS_CLASS_TRAIL  + '">';
  +     xhtml += DISPLAY_PREPREND;
  +
  +     for( var i = 0; i < crumbs.length; i++ )
  +     {
  +             xhtml += '<a href="' + crumbs[i][1] + '" class="' + CSS_CLASS_CRUMB + 
'">';
  +             xhtml += sentenceCase( crumbs[i][0] ) + '</a>';
  +             if( i != (crumbs.length-1) )
  +             {
  +                     xhtml += '<span class="' + CSS_CLASS_SEPARATOR + '">' + 
DISPLAY_SEPARATOR + '</span>';
  +             }
  +     }
  +
  +     xhtml += DISPLAY_POSTPREND;
  +     xhtml += '</span>';
  +
  +     return xhtml;
  +}
  +
  +/* ========================================================================
  +     PRINT BREADCRUMB TRAIL
  +   ======================================================================== */
  +
  +// check if we're local; if so, only print the PREPREND_CRUMBS
  +if( document.location.href.toLowerCase().indexOf( "http://"; ) == -1 )
  +{
  +     document.write( getCrumbTrail( getBreadcrumbs() ) );
  +}
  +else
  +{
  +     document.write( getCrumbTrail( getBreadcrumbs( getDirectoriesInURL() ) ) );
  +}
  +
  
  
  

Reply via email to