You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by bu...@apache.org on 2014/07/29 19:51:22 UTC
svn commit: r917838 [5/8] - in /websites/staging/celix/trunk/content: ./
asf/ celix/ celix/images/ celix/js/ celix/subprojects/ celix/support/
community/ community/boardreports/ community/contributing/ css/
documentation/ examples/ images/ js/ js/super...
Added: websites/staging/celix/trunk/content/index.html
==============================================================================
--- websites/staging/celix/trunk/content/index.html (added)
+++ websites/staging/celix/trunk/content/index.html Tue Jul 29 17:51:21 2014
@@ -0,0 +1,197 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<!--
+
+ 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.
+-->
+
+ <link rel="stylesheet" type="text/css"
+ href="/css/reset-fonts-grids.css">
+ <link rel="stylesheet" type="text/css" href="/css/base-min.css">
+ <link rel="stylesheet" type="text/css" href="/css/superfish.css" media="screen">
+ <!-- link rel="stylesheet" type="text/css" href="/css/BreadCrumb.css" media="screen" -->
+ <link rel="stylesheet" type="text/css" href="/css/celix.css">
+ <link rel="stylesheet" type="text/css" href="/css/pygments.css">
+
+
+ <title>Apache Celix - Welcome to Apache Celix (incubating)</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+
+ <script type="text/javascript" src="/js/jquery.min.js"></script>
+ <script type="text/javascript" src="/js/jquery.gradient.js"></script>
+ <script type="text/javascript" src="/js/jquery.dimensions.js"></script>
+ <script type="text/javascript" src="/js/jquery.hoverIntent.js"></script>
+ <script type="text/javascript" src="/js/superfish.js"></script>
+ <script type="text/javascript" src="/js/supersubs.js"></script>
+ <!-- script type="text/javascript" src="/js/jquery.easing.1.3.js"></script>
+ <script type="text/javascript" src="/js/jquery.jBreadCrumb.1.1.js"></script-->
+ <script type="text/javascript"><!--
+ // initialize plugins
+ jQuery(function() {
+ jQuery('#navbar ul:first').addClass('sf-menu');
+ //Nav bar: Supersubs dropdown menus
+ jQuery('#navbar ul:first').supersubs({extraWidth: 1}).superfish({animation:{opacity:0.97,height:'show'}});
+ });
+
+ //jQuery(document).ready(function() {
+ // jQuery("#breadCrumb").jBreadCrumb();
+ // })
+ --></script>
+</head>
+
+<body>
+ <div id="page">
+ <div id="header">
+ <a href="/index.html"><img id="headerimage" src="/images/celix.png" alt="Apache Celix"
+ height="130px"></a>
+ <a href="http://incubator.apache.org/">
+ <img id="incubatorimage" src="/celix/images/apache-incubator-logo.png" alt="Apache Incubator">
+ </a>
+ <div id="navbar">
+ <ul>
+<li><a href="/index.html">Home</a></li>
+<li><a href="/celix.html">About</a><ul>
+<li><a href="/celix.html">Celix</a></li>
+<li><a href="/background.html">Background</a></li>
+</ul>
+</li>
+<li><a href="/subprojects.html">Subprojects</a><ul>
+<li><a href="/subprojects/dependencymanager.html">Dependency Manager</a></li>
+<li><a href="/subprojects/deviceaccess.html">Device Access</a></li>
+<li><a href="/subprojects/examples.html">Examples</a></li>
+<li><a href="/subprojects/framework.html">Framework</a></li>
+<li><a href="/subprojects/hessian.html">Hessian</a></li>
+<li><a href="/subprojects/launcher.html">Launcher</a></li>
+<li><a href="/subprojects/logservice.html">Log Service</a></li>
+<li><a href="/subprojects/logwriter.html">Log Writer</a></li>
+<li><a href="/subprojects/remoteserviceadmin.html">Remote Service Admin</a></li>
+<li><a href="/subprojects/shell.html">Shell</a></li>
+<li><a href="/subprojects/shelltui.html">Shell TUI</a></li>
+<li><a href="/subprojects/utils.html">Utils</a></li>
+</ul>
+</li>
+<li><a href="/documentation.html">Documentation</a><ul>
+<li><a href="/documentation/buildingandrunning.html">Building and Running</a></li>
+<li><a href="/documentation/releasing.html">How To Release</a></li>
+<li><a href="/documentation/design.html">Design</a></li>
+<li><a href="/documentation/mapping.html">Mapping</a></li>
+<li><a href="/documentation/memorypools.html">Memory Pools</a></li>
+<li><a href="/documentation/examples.html">Examples</a><ul>
+<li><a href="/examples/helloworld.html">Hello World Example</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li><a href="/download.cgi">Download</a></li>
+<li><a href="/community/community.html">Community</a><ul>
+<li><a href="/community/contributing/contributing.html">Contributing</a></li>
+<li><a href="/community/boardreports/boardreports.html">Board Reports</a></li>
+</ul>
+</li>
+<li><a href="/support/support.html">Support</a><ul>
+<li><a href="/support/mailinglist.html">Mailing List</a></li>
+<li><a href="/support/issuetracking.html">Issue Tracking</a></li>
+</ul>
+</li>
+<li><a href="/asf/asf.html">ASF</a><ul>
+<li><a href="http://www.apache.org/">ASF Home</a></li>
+<li><a href="http://www.apache.org/foundation/how-it-works.html">How it Works</a></li>
+<li><a href="http://www.apache.org/licenses/">License</a></li>
+<li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
+<li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
+<li><a href="http://www.apache.org/security/">Security</a></li>
+</ul>
+</li>
+</ul>
+ </div>
+ <!-- div id="breadCrumbHolder" class="module">
+ <div id="breadCrumb" class="breadCrumb module">
+ <ul>
+
+ </ul>
+ </div>
+ </div-->
+ </div>
+
+ <div id="center">
+ <div id="main">
+ <div id="homecenter">
+ <div id="homeleft">
+ <h1 class="title">Welcome to Apache Celix (incubating)</h1>
+ <p>Celix is an implementation of the OSGi specification adapted to C. It will follow the API as close as possible,
+but since the OSGi specification is written primarily for Java, there will be differences (Java is OO, C is procedural).
+An important aspect of the implementation is interoperability between Java and C.
+This interoperability is achieved by porting and implementing the Remote Services specification in Celix.</p>
+<p>Celix entered incubation in November 2010 and is just getting started. Short term goals include:</p>
+<ul>
+<li>Working towards a release</li>
+<li>Generate awareness</li>
+<li>Grow a community</li>
+</ul>
+<h2 id="news">News</h2>
+<ul>
+<li>25-feb-2014 - After a successful vote Celix 1.0.0.incubating is released. The release is now available via the <a href="/celix/download.cgi">download</a> section.</li>
+</ul>
+<h2 id="incubation">Incubation</h2>
+<p>Apache Celix is an effort undergoing incubation at The Apache Software Foundation (ASF),
+sponsored by the Apache Incubator PMC. Incubation is required of all newly accepted projects until a further review
+indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent
+with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or
+stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.</p>
+ </div>
+ <div id="homeright">
+
+
+ <div id="download" class="rc">
+ <h2 id="download-celix">Download Celix</h2>
+<ul>
+<li><a href="/celix/download.cgi">Downloads</a></li>
+<li><a href="https://svn.apache.org/repos/asf/celix/trunk/">Celix SVN</a></li>
+</ul>
+<h2 id="mailing-lists">Mailing Lists</h2>
+<ul>
+<li><a href="mailto:dev@celix.apache.org">Developers List</a>
+ (<a href="http://incubator.markmail.org/search/+list:org.apache.incubator.celix-dev">Archives</a>)</li>
+<li>
+<p><a href="mailto:commits@celix.apache.org">Commits List</a>
+ (<a href="http://incubator.markmail.org/search/+list:org.apache.incubator.celix-commits">Archives</a>)</p>
+</li>
+<li>
+<p><a href="http://mail-archives.apache.org/mod_mbox/">Apache Mail Archives</a></p>
+</li>
+</ul>
+ </div>
+
+
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="footer">
+ <div class="copyright">
+ <p>
+ Copyright © 2011 The Apache Software Foundation, Licensed under
+ the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
+ <br>
+ Apache Celix, Celix, Apache, the Apache feather logo and the Apache Celix logo are trademarks of The Apache Software Foundation.
+ </p>
+ </div>
+ </div>
+</body>
+</html>
Added: websites/staging/celix/trunk/content/js/hoverIntent.js
==============================================================================
--- websites/staging/celix/trunk/content/js/hoverIntent.js (added)
+++ websites/staging/celix/trunk/content/js/hoverIntent.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,84 @@
+(function($){
+ /* hoverIntent by Brian Cherne */
+ $.fn.hoverIntent = function(f,g) {
+ // default configuration options
+ var cfg = {
+ sensitivity: 7,
+ interval: 100,
+ timeout: 0
+ };
+ // override configuration options with user supplied object
+ cfg = $.extend(cfg, g ? { over: f, out: g } : f );
+
+ // instantiate variables
+ // cX, cY = current X and Y position of mouse, updated by mousemove event
+ // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+ var cX, cY, pX, pY;
+
+ // A private function for getting mouse position
+ var track = function(ev) {
+ cX = ev.pageX;
+ cY = ev.pageY;
+ };
+
+ // A private function for comparing current and previous mouse position
+ var compare = function(ev,ob) {
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+ // compare mouse positions to see if they've crossed the threshold
+ if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+ $(ob).unbind("mousemove",track);
+ // set hoverIntent state to true (so mouseOut can be called)
+ ob.hoverIntent_s = 1;
+ return cfg.over.apply(ob,[ev]);
+ } else {
+ // set previous coordinates for next time
+ pX = cX; pY = cY;
+ // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+ ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+ }
+ };
+
+ // A private function for delaying the mouseOut function
+ var delay = function(ev,ob) {
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+ ob.hoverIntent_s = 0;
+ return cfg.out.apply(ob,[ev]);
+ };
+
+ // A private function for handling mouse 'hovering'
+ var handleHover = function(e) {
+ // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
+ var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
+ while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
+ if ( p == this ) { return false; }
+
+ // copy objects to be passed into t (required for event object to be passed in IE)
+ var ev = jQuery.extend({},e);
+ var ob = this;
+
+ // cancel hoverIntent timer if it exists
+ if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+ // else e.type == "onmouseover"
+ if (e.type == "mouseover") {
+ // set "previous" X and Y position based on initial entry point
+ pX = ev.pageX; pY = ev.pageY;
+ // update "current" X and Y position based on mousemove
+ $(ob).bind("mousemove",track);
+ // start polling interval (self-calling timeout) to compare mouse coordinates over time
+ if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+ // else e.type == "onmouseout"
+ } else {
+ // unbind expensive mousemove event
+ $(ob).unbind("mousemove",track);
+ // if hoverIntent state is true, then call the mouseOut function after the specified delay
+ if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+ }
+ };
+
+ // bind the function to the two event listeners
+ return this.mouseover(handleHover).mouseout(handleHover);
+ };
+
+})(jQuery);
\ No newline at end of file
Added: websites/staging/celix/trunk/content/js/jquery.bgiframe.min.js
==============================================================================
--- websites/staging/celix/trunk/content/js/jquery.bgiframe.min.js (added)
+++ websites/staging/celix/trunk/content/js/jquery.bgiframe.min.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,10 @@
+/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * $LastChangedDate: 2007-06-19 20:25:28 -0500 (Tue, 19 Jun 2007) $
+ * $Rev: 2111 $
+ *
+ * Version 2.1
+ */
+(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&parseInt($.browser.version)<=6){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var prop=function(n){return n&&n.constructor==Number?n+'px':n;},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':prop(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':prop(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':prop(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':prop(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(doc
ument.createElement(html),this.firstChild);});}return this;};if(!$.browser.version)$.browser.version=navigator.userAgent.toLowerCase().match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)[1];})(jQuery);
\ No newline at end of file
Added: websites/staging/celix/trunk/content/js/jquery.dimensions.js
==============================================================================
--- websites/staging/celix/trunk/content/js/jquery.dimensions.js (added)
+++ websites/staging/celix/trunk/content/js/jquery.dimensions.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,119 @@
+/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * $LastChangedDate: 2007-12-20 08:46:55 -0600 (Thu, 20 Dec 2007) $
+ * $Rev: 4259 $
+ *
+ * Version: 1.2
+ *
+ * Requires: jQuery 1.2+
+ */
+
+(function($){
+
+$.dimensions = {
+ version: '1.2'
+};
+
+// Create innerHeight, innerWidth, outerHeight and outerWidth methods
+$.each( [ 'Height', 'Width' ], function(i, name){
+
+ // innerHeight and innerWidth
+ $.fn[ 'inner' + name ] = function() {
+ if (!this[0]) return;
+
+ var torl = name == 'Height' ? 'Top' : 'Left', // top or left
+ borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
+
+ return this.is(':visible') ? this[0]['client' + name] : num( this, name.toLowerCase() ) + num(this, 'padding' + torl) + num(this, 'padding' + borr);
+ };
+
+ // outerHeight and outerWidth
+ $.fn[ 'outer' + name ] = function(options) {
+ if (!this[0]) return;
+
+ var torl = name == 'Height' ? 'Top' : 'Left', // top or left
+ borr = name == 'Height' ? 'Bottom' : 'Right'; // bottom or right
+
+ options = $.extend({ margin: false }, options || {});
+
+ var val = this.is(':visible') ?
+ this[0]['offset' + name] :
+ num( this, name.toLowerCase() )
+ + num(this, 'border' + torl + 'Width') + num(this, 'border' + borr + 'Width')
+ + num(this, 'padding' + torl) + num(this, 'padding' + borr);
+
+ return val + (options.margin ? (num(this, 'margin' + torl) + num(this, 'margin' + borr)) : 0);
+ };
+});
+
+// Create scrollLeft and scrollTop methods
+$.each( ['Left', 'Top'], function(i, name) {
+ $.fn[ 'scroll' + name ] = function(val) {
+ if (!this[0]) return;
+
+ return val != undefined ?
+
+ // Set the scroll offset
+ this.each(function() {
+ this == window || this == document ?
+ window.scrollTo(
+ name == 'Left' ? val : $(window)[ 'scrollLeft' ](),
+ name == 'Top' ? val : $(window)[ 'scrollTop' ]()
+ ) :
+ this[ 'scroll' + name ] = val;
+ }) :
+
+ // Return the scroll offset
+ this[0] == window || this[0] == document ?
+ self[ (name == 'Left' ? 'pageXOffset' : 'pageYOffset') ] ||
+ $.boxModel && document.documentElement[ 'scroll' + name ] ||
+ document.body[ 'scroll' + name ] :
+ this[0][ 'scroll' + name ];
+ };
+});
+
+$.fn.extend({
+ position: function() {
+ var left = 0, top = 0, elem = this[0], offset, parentOffset, offsetParent, results;
+
+ if (elem) {
+ // Get *real* offsetParent
+ offsetParent = this.offsetParent();
+
+ // Get correct offsets
+ offset = this.offset();
+ parentOffset = offsetParent.offset();
+
+ // Subtract element margins
+ offset.top -= num(elem, 'marginTop');
+ offset.left -= num(elem, 'marginLeft');
+
+ // Add offsetParent borders
+ parentOffset.top += num(offsetParent, 'borderTopWidth');
+ parentOffset.left += num(offsetParent, 'borderLeftWidth');
+
+ // Subtract the two offsets
+ results = {
+ top: offset.top - parentOffset.top,
+ left: offset.left - parentOffset.left
+ };
+ }
+
+ return results;
+ },
+
+ offsetParent: function() {
+ var offsetParent = this[0].offsetParent;
+ while ( offsetParent && (!/^body|html$/i.test(offsetParent.tagName) && $.css(offsetParent, 'position') == 'static') )
+ offsetParent = offsetParent.offsetParent;
+ return $(offsetParent);
+ }
+});
+
+function num(el, prop) {
+ return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
+};
+
+})(jQuery);
\ No newline at end of file
Added: websites/staging/celix/trunk/content/js/jquery.easing.1.3.js
==============================================================================
--- websites/staging/celix/trunk/content/js/jquery.easing.1.3.js (added)
+++ websites/staging/celix/trunk/content/js/jquery.easing.1.3.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,205 @@
+/*
+ * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
+ *
+ * Uses the built in easing capabilities added In jQuery 1.1
+ * to offer multiple easing options
+ *
+ * TERMS OF USE - jQuery Easing
+ *
+ * Open source under the BSD License.
+ *
+ * Copyright © 2008 George McGinley Smith
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ * 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.
+ *
+ * Neither the name of the author nor the names of contributors may be used to endorse
+ * or promote products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS 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
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 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.
+ *
+*/
+
+// t: current time, b: begInnIng value, c: change In value, d: duration
+jQuery.easing['jswing'] = jQuery.easing['swing'];
+
+jQuery.extend( jQuery.easing,
+{
+ def: 'easeOutQuad',
+ swing: function (x, t, b, c, d) {
+ //alert(jQuery.easing.default);
+ return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
+ },
+ easeInQuad: function (x, t, b, c, d) {
+ return c*(t/=d)*t + b;
+ },
+ easeOutQuad: function (x, t, b, c, d) {
+ return -c *(t/=d)*(t-2) + b;
+ },
+ easeInOutQuad: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t + b;
+ return -c/2 * ((--t)*(t-2) - 1) + b;
+ },
+ easeInCubic: function (x, t, b, c, d) {
+ return c*(t/=d)*t*t + b;
+ },
+ easeOutCubic: function (x, t, b, c, d) {
+ return c*((t=t/d-1)*t*t + 1) + b;
+ },
+ easeInOutCubic: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t + b;
+ return c/2*((t-=2)*t*t + 2) + b;
+ },
+ easeInQuart: function (x, t, b, c, d) {
+ return c*(t/=d)*t*t*t + b;
+ },
+ easeOutQuart: function (x, t, b, c, d) {
+ return -c * ((t=t/d-1)*t*t*t - 1) + b;
+ },
+ easeInOutQuart: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
+ return -c/2 * ((t-=2)*t*t*t - 2) + b;
+ },
+ easeInQuint: function (x, t, b, c, d) {
+ return c*(t/=d)*t*t*t*t + b;
+ },
+ easeOutQuint: function (x, t, b, c, d) {
+ return c*((t=t/d-1)*t*t*t*t + 1) + b;
+ },
+ easeInOutQuint: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
+ return c/2*((t-=2)*t*t*t*t + 2) + b;
+ },
+ easeInSine: function (x, t, b, c, d) {
+ return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
+ },
+ easeOutSine: function (x, t, b, c, d) {
+ return c * Math.sin(t/d * (Math.PI/2)) + b;
+ },
+ easeInOutSine: function (x, t, b, c, d) {
+ return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
+ },
+ easeInExpo: function (x, t, b, c, d) {
+ return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
+ },
+ easeOutExpo: function (x, t, b, c, d) {
+ return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
+ },
+ easeInOutExpo: function (x, t, b, c, d) {
+ if (t==0) return b;
+ if (t==d) return b+c;
+ if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
+ return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
+ },
+ easeInCirc: function (x, t, b, c, d) {
+ return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
+ },
+ easeOutCirc: function (x, t, b, c, d) {
+ return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
+ },
+ easeInOutCirc: function (x, t, b, c, d) {
+ if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
+ return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
+ },
+ easeInElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+ },
+ easeOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
+ },
+ easeInOutElastic: function (x, t, b, c, d) {
+ var s=1.70158;var p=0;var a=c;
+ if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5);
+ if (a < Math.abs(c)) { a=c; var s=p/4; }
+ else var s = p/(2*Math.PI) * Math.asin (c/a);
+ if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
+ return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
+ },
+ easeInBack: function (x, t, b, c, d, s) {
+ if (s == undefined) s = 1.70158;
+ return c*(t/=d)*t*((s+1)*t - s) + b;
+ },
+ easeOutBack: function (x, t, b, c, d, s) {
+ if (s == undefined) s = 1.70158;
+ return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
+ },
+ easeInOutBack: function (x, t, b, c, d, s) {
+ if (s == undefined) s = 1.70158;
+ if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
+ return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
+ },
+ easeInBounce: function (x, t, b, c, d) {
+ return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
+ },
+ easeOutBounce: function (x, t, b, c, d) {
+ if ((t/=d) < (1/2.75)) {
+ return c*(7.5625*t*t) + b;
+ } else if (t < (2/2.75)) {
+ return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
+ } else if (t < (2.5/2.75)) {
+ return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
+ } else {
+ return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
+ }
+ },
+ easeInOutBounce: function (x, t, b, c, d) {
+ if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
+ return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
+ }
+});
+
+/*
+ *
+ * TERMS OF USE - EASING EQUATIONS
+ *
+ * Open source under the BSD License.
+ *
+ * Copyright © 2001 Robert Penner
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this list of
+ * conditions and the following disclaimer.
+ * 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.
+ *
+ * Neither the name of the author nor the names of contributors may be used to endorse
+ * or promote products derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS 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
+ * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 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.
+ *
+ */
\ No newline at end of file
Added: websites/staging/celix/trunk/content/js/jquery.gradient.js
==============================================================================
--- websites/staging/celix/trunk/content/js/jquery.gradient.js (added)
+++ websites/staging/celix/trunk/content/js/jquery.gradient.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,96 @@
+/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
+ * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
+ * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
+ *
+ * Color functions from Steve's Cross Browser Gradient Backgrounds v1.0 (steve@slayeroffice.com && http://slayeroffice.com/code/gradient/)
+ *
+ * $LastChangedDate: 2007-06-26 19:52:18 -0500 (Tue, 26 Jun 2007) $
+ * $Rev: 2163 $
+ *
+ * Version 1.0
+ */
+(function($) {
+
+/**
+ * Adds a gradient to the background of an element.
+ *
+ * @example $('div').gradient({ from: '000000', to: 'CCCCCC' });
+ *
+ * @param Map options Settings/options to configure the gradient.
+ * @option String from The hex color code to start the gradient with.
+ * By default the value is "000000".
+ * @option String to The hex color code to end the gradient with.
+ * By default the value is "FFFFFF".
+ * @option String direction This tells the gradient to be horizontal
+ * or vertical. By default the value is "horizontal".
+ * @option Number length This is used to constrain the gradient to a
+ * particular width or height (depending on the direction). By default
+ * the length is set to null, which will use the width or height
+ * (depending on the direction) of the element.
+ * @option String position This tells the gradient to be positioned
+ * at the top, bottom, left and/or right within the element. The
+ * value is just a string that specifices top or bottom and left or right.
+ * By default the value is 'top left'.
+ *
+ * @name gradient
+ * @type jQuery
+ * @cat Plugins/gradient
+ * @author Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
+ */
+$.fn.gradient = function(options) {
+ options = $.extend({ from: '000000', to: 'ffffff', direction: 'horizontal', position: 'top', length: null }, options || {});
+ var createColorPath = function(startColor, endColor, distance) {
+ var colorPath = [],
+ colorPercent = 1.0,
+ distance = (distance < 100) ? distance : 100;
+ do {
+ colorPath[colorPath.length] = setColorHue(longHexToDec(startColor), colorPercent, longHexToDec(endColor));
+ colorPercent -= ((100/distance)*0.01);
+ } while (colorPercent>0);
+ return colorPath;
+ },
+ setColorHue = function(originColor, opacityPercent, maskRGB) {
+ var returnColor = [];
+ for (var i=0; i<originColor.length; i++)
+ returnColor[i] = Math.round(originColor[i]*opacityPercent) + Math.round(maskRGB[i]*(1.0-opacityPercent));
+ return returnColor;
+ },
+ longHexToDec = function(longHex) {
+ return new Array(toDec(longHex.substring(0,2)),toDec(longHex.substring(2,4)),toDec(longHex.substring(4,6)));
+ },
+ toDec = function(hex) {
+ return parseInt(hex,16);
+ };
+ return this.each(function() {
+ var $this = $(this), width = $this.innerWidth(), height = $this.innerHeight(), x = 0, y = 0, w = 1, h = 1, html = [],
+ length = options.length || (options.direction == 'vertical' ? width : height),
+ position = (options.position == 'bottom' ? 'bottom:0;' : 'top:0;') + (options.position == 'right' ? 'right:0;' : 'left:0;'),
+ colorArray = createColorPath(options.from, options.to, length);
+
+ if (options.direction == 'horizontal') {
+ h = Math.round(length/colorArray.length) || 1;
+ w = width;
+ } else {
+ w = Math.round(length/colorArray.length) || 1;
+ h = height;
+ }
+
+ html.push('<div class="gradient" style="position: absolute; ' + position + ' width: ' + (options.direction == 'vertical' ? length+"px" : "100%") +'; height: ' + (options.direction == 'vertical' ? "100%" : length+"px") + '; overflow: hidden; z-index: 0; background-color: #' + (options.position.indexOf('bottom') != -1 ? options.from : options.to) + '">');
+ for(var i=0; i<colorArray.length; i++) {
+ html.push('<div style="position:absolute;z-index:1;top:' + y + 'px;left:' + x + 'px;height:' + (options.direction == 'vertical' ? "100%" : h+"px") + ';width:' + (options.direction == 'vertical' ? w+"px" : "100%") + ';background-color:rgb(' + colorArray[i][0] + ',' + colorArray[i][1] + ',' + colorArray[i][2] + ');"></div>');
+ options.direction == 'vertical' ? x+=w : y+=h;
+
+ if ( y >= height || x >= width) break;
+ }
+ html.push('</div>');
+
+ if ( $this.css('position') == 'static' )
+ $this.css('position', 'relative');
+
+ $this
+ .html('<div style="display:' + $this.css("display") + '; position: relative; z-index: 2;">' + this.innerHTML + '</div>')
+ .prepend(html.join(''));
+ });
+};
+
+})(jQuery);
\ No newline at end of file
Added: websites/staging/celix/trunk/content/js/jquery.hoverIntent.js
==============================================================================
--- websites/staging/celix/trunk/content/js/jquery.hoverIntent.js (added)
+++ websites/staging/celix/trunk/content/js/jquery.hoverIntent.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,84 @@
+(function($){
+ /* hoverIntent by Brian Cherne */
+ $.fn.hoverIntent = function(f,g) {
+ // default configuration options
+ var cfg = {
+ sensitivity: 7,
+ interval: 100,
+ timeout: 0
+ };
+ // override configuration options with user supplied object
+ cfg = $.extend(cfg, g ? { over: f, out: g } : f );
+
+ // instantiate variables
+ // cX, cY = current X and Y position of mouse, updated by mousemove event
+ // pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+ var cX, cY, pX, pY;
+
+ // A private function for getting mouse position
+ var track = function(ev) {
+ cX = ev.pageX;
+ cY = ev.pageY;
+ };
+
+ // A private function for comparing current and previous mouse position
+ var compare = function(ev,ob) {
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+ // compare mouse positions to see if they've crossed the threshold
+ if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+ $(ob).unbind("mousemove",track);
+ // set hoverIntent state to true (so mouseOut can be called)
+ ob.hoverIntent_s = 1;
+ return cfg.over.apply(ob,[ev]);
+ } else {
+ // set previous coordinates for next time
+ pX = cX; pY = cY;
+ // use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+ ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+ }
+ };
+
+ // A private function for delaying the mouseOut function
+ var delay = function(ev,ob) {
+ ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+ ob.hoverIntent_s = 0;
+ return cfg.out.apply(ob,[ev]);
+ };
+
+ // A private function for handling mouse 'hovering'
+ var handleHover = function(e) {
+ // next three lines copied from jQuery.hover, ignore children onMouseOver/onMouseOut
+ var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
+ while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
+ if ( p == this ) { return false; }
+
+ // copy objects to be passed into t (required for event object to be passed in IE)
+ var ev = jQuery.extend({},e);
+ var ob = this;
+
+ // cancel hoverIntent timer if it exists
+ if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+ // else e.type == "onmouseover"
+ if (e.type == "mouseover") {
+ // set "previous" X and Y position based on initial entry point
+ pX = ev.pageX; pY = ev.pageY;
+ // update "current" X and Y position based on mousemove
+ $(ob).bind("mousemove",track);
+ // start polling interval (self-calling timeout) to compare mouse coordinates over time
+ if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+ // else e.type == "onmouseout"
+ } else {
+ // unbind expensive mousemove event
+ $(ob).unbind("mousemove",track);
+ // if hoverIntent state is true, then call the mouseOut function after the specified delay
+ if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+ }
+ };
+
+ // bind the function to the two event listeners
+ return this.mouseover(handleHover).mouseout(handleHover);
+ };
+
+})(jQuery);
\ No newline at end of file
Added: websites/staging/celix/trunk/content/js/jquery.jBreadCrumb.1.1.js
==============================================================================
--- websites/staging/celix/trunk/content/js/jquery.jBreadCrumb.1.1.js (added)
+++ websites/staging/celix/trunk/content/js/jquery.jBreadCrumb.1.1.js Tue Jul 29 17:51:21 2014
@@ -0,0 +1,240 @@
+/**
+ * @author Jason Roy for CompareNetworks Inc.
+ * Thanks to mikejbond for suggested udaptes
+ *
+ * Version 1.1
+ * Copyright (c) 2009 CompareNetworks Inc.
+ *
+ * Licensed under the MIT license:
+ * http://www.opensource.org/licenses/mit-license.php
+ *
+ */
+(function($)
+{
+
+ // Private variables
+
+ var _options = {};
+ var _container = {};
+ var _breadCrumbElements = {};
+ var _autoIntervalArray = [];
+ var _easingEquation;
+
+ // Public functions
+
+ jQuery.fn.jBreadCrumb = function(options)
+ {
+ _options = $.extend({}, $.fn.jBreadCrumb.defaults, options);
+
+ return this.each(function()
+ {
+ _container = $(this);
+ setupBreadCrumb();
+ });
+
+ };
+
+ // Private functions
+
+ function setupBreadCrumb()
+ {
+ //Check if easing plugin exists. If it doesn't, use "swing"
+ if(typeof(jQuery.easing) == 'object')
+ {
+ _easingEquation = 'easeOutQuad'
+ }
+ else
+ {
+ _easingEquation = 'swing'
+ }
+
+ //The reference object containing all of the breadcrumb elements
+ _breadCrumbElements = jQuery(_container).find('li');
+
+ //Keep it from overflowing in ie6 & 7
+ jQuery(_container).find('ul').wrap('<div style="overflow:hidden; position:relative; width: ' + jQuery(_container).css("width") + ';"><div>');
+ //Set an arbitrary width width to avoid float drop on the animation
+ jQuery(_container).find('ul').width(5000);
+
+ //If the breadcrumb contains nothing, don't do anything
+ if (_breadCrumbElements.length > 0)
+ {
+ jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]).addClass('last');
+ jQuery(_breadCrumbElements[0]).addClass('first');
+
+ //If the breadcrumb object length is long enough, compress.
+
+ if (_breadCrumbElements.length > _options.minimumCompressionElements)
+ {
+ compressBreadCrumb();
+ };
+ };
+ };
+
+ function compressBreadCrumb()
+ {
+
+ // Factor to determine if we should compress the element at all
+ var finalElement = jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]);
+
+
+ // If the final element is really long, compress more elements
+ if (jQuery(finalElement).width() > _options.maxFinalElementLength)
+ {
+ if (_options.beginingElementsToLeaveOpen > 0)
+ {
+ _options.beginingElementsToLeaveOpen--;
+
+ }
+ if (_options.endElementsToLeaveOpen > 0)
+ {
+ _options.endElementsToLeaveOpen--;
+ }
+ }
+ // If the final element is within the short and long range, compress to the default end elements and 1 less beginning elements
+ if (jQuery(finalElement).width() < _options.maxFinalElementLength && jQuery(finalElement).width() > _options.minFinalElementLength)
+ {
+ if (_options.beginingElementsToLeaveOpen > 0)
+ {
+ _options.beginingElementsToLeaveOpen--;
+
+ }
+ }
+
+ var itemsToRemove = _breadCrumbElements.length - 1 - _options.endElementsToLeaveOpen;
+
+ // We compress only elements determined by the formula setting below
+
+ //TODO : Make this smarter, it's only checking the final elements length. It could also check the amount of elements.
+ jQuery(_breadCrumbElements[_breadCrumbElements.length - 1]).css(
+ {
+ background: 'none'
+ });
+
+ $(_breadCrumbElements).each(function(i, listElement)
+ {
+ if (i > _options.beginingElementsToLeaveOpen && i < itemsToRemove)
+ {
+
+ jQuery(listElement).find('a').wrap('<span></span>').width(jQuery(listElement).find('a').width() + 10);
+
+ // Add the overlay png.
+ jQuery(listElement).append(jQuery('<div class="' + _options.overlayClass + '"></div>').css(
+ {
+ display: 'block'
+ })).css(
+ {
+ background: 'none'
+ });
+ if (isIE6OrLess())
+ {
+ fixPNG(jQuery(listElement).find('.' + _options.overlayClass).css(
+ {
+ width: '20px',
+ right: "-1px"
+ }));
+ }
+ var options =
+ {
+ id: i,
+ width: jQuery(listElement).width(),
+ listElement: jQuery(listElement).find('span'),
+ isAnimating: false,
+ element: jQuery(listElement).find('span')
+
+ };
+ jQuery(listElement).bind('mouseover', options, expandBreadCrumb).bind('mouseout', options, shrinkBreadCrumb);
+ jQuery(listElement).find('a').unbind('mouseover', expandBreadCrumb).unbind('mouseout', shrinkBreadCrumb);
+ listElement.autoInterval = setInterval(function()
+ {
+ clearInterval(listElement.autoInterval);
+ jQuery(listElement).find('span').animate(
+ {
+ width: _options.previewWidth
+ }, _options.timeInitialCollapse, _options.easing);
+ }, (150 * (i - 2)));
+
+ }
+ });
+
+ };
+
+ function expandBreadCrumb(e)
+ {
+ var elementID = e.data.id;
+ var originalWidth = e.data.width;
+ jQuery(e.data.element).stop();
+ jQuery(e.data.element).animate(
+ {
+ width: originalWidth
+ },
+ {
+ duration: _options.timeExpansionAnimation,
+ easing: _options.easing,
+ queue: false
+ });
+ return false;
+
+ };
+
+ function shrinkBreadCrumb(e)
+ {
+ var elementID = e.data.id;
+ jQuery(e.data.element).stop();
+ jQuery(e.data.element).animate(
+ {
+ width: _options.previewWidth
+ },
+ {
+ duration: _options.timeCompressionAnimation,
+ easing: _options.easing,
+ queue: false
+ });
+ return false;
+ };
+
+ function isIE6OrLess()
+ {
+ var isIE6 = $.browser.msie && /MSIE\s(5\.5|6\.)/.test(navigator.userAgent);
+ return isIE6;
+ };
+ // Fix The Overlay for IE6
+ function fixPNG(element)
+ {
+ var image;
+ if (jQuery(element).is('img'))
+ {
+ image = jQuery(element).attr('src');
+ }
+ else
+ {
+ image = $(element).css('backgroundImage');
+ image.match(/^url\(["']?(.*\.png)["']?\)$/i);
+ image = RegExp.$1;
+ ;
+ }
+ $(element).css(
+ {
+ 'backgroundImage': 'none',
+ 'filter': "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=scale, src='" + image + "')"
+ });
+ };
+
+ // Public global variables
+
+ jQuery.fn.jBreadCrumb.defaults =
+ {
+ maxFinalElementLength: 400,
+ minFinalElementLength: 200,
+ minimumCompressionElements: 4,
+ endElementsToLeaveOpen: 1,
+ beginingElementsToLeaveOpen: 1,
+ timeExpansionAnimation: 800,
+ timeCompressionAnimation: 500,
+ timeInitialCollapse: 600,
+ easing: _easingEquation,
+ overlayClass: 'chevronOverlay',
+ previewWidth: 5
+ };
+
+})(jQuery);