diff --git a/htroot/yacy/ui/js/jquery.query-1.2.3.js b/htroot/yacy/ui/js/jquery.query-1.2.3.js new file mode 100644 index 000000000..213f57acf --- /dev/null +++ b/htroot/yacy/ui/js/jquery.query-1.2.3.js @@ -0,0 +1,162 @@ +/** + * jQuery.query - Query String Modification and Creation for jQuery + * Written in 2007 by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com) + * Licensed under the WTFPL (http://sam.zoy.org/wtfpl/). + * Date: 2008/02/08 + * + * @author Blair Mitchelmore + * @version 1.2.3 + * + **/ +new function(settings) { + // Various Settings + var $separator = settings.separator || '&'; + var $spaces = settings.spaces === false ? false : true; + var $suffix = settings.suffix === false ? '' : '[]'; + var $hash = settings.hash === true ? true : false; + var $prefix = settings.prefix === false ? false : true; + + jQuery.query = new function() { + var queryObject = function(a) { + var self = this; + self.keys = {}; + + if (a.queryObject) { + jQuery.each(a.keys, function(key, val) { + self.destructiveSet(key, val); + }); + } else { + jQuery.each(arguments, function() { + var q = "" + this; + q = q.replace(/^[?#]/,''); // remove any leading ? || # + q = q.replace(/[;&]$/,''); // remove any trailing & || ; + if ($spaces) q = q.replace(/[+]/g,' '); // replace +'s with spaces + + jQuery.each(q.split(/[&;]/), function(){ + var key = this.split('=')[0]; + var val = this.split('=')[1]; + var temp, hashKey = null, type = null; + + if (!key) return; + + if (/^-?[0-9]+\.[0-9]+$/.test(val)) // simple float regex + val = parseFloat(val); + else if (/^-?[0-9]+$/.test(val)) // simple int regex + val = parseInt(val, 10); + + if (/\[([^\] ]+)\]$/.test(key)) // hash syntax + type = Object, hashkey = key.replace(/^.+\[([^\] ]+)\]$/,"$1"), key = key.replace(/\[([^\] ]+)\]$/,""); + else if (/\[\]$/.test(key)) // array syntax + type = Array, key = key.replace(/\[\]$/,""); + + val = (!val && val !== 0) ? true : val; + + if (!type && self.has(key)) + type = Array, self.destructiveSet(key, self.has(key, Array) ? self.keys[key] : [self.keys[key]]); + + if (val !== false && val !== true) + val = decodeURIComponent(val); + + if (!type) + self.destructiveSet(key, val); + else + if (type == Object) + temp = self.keys[key] || {}, temp[hashkey] = val, self.destructiveSet(key, temp); + else if (type == Array) + temp = self.keys[key] || [], temp.push(val), self.destructiveSet(key, temp); + }); + }); + } + return self; + }; + + queryObject.prototype = { + queryObject: true, + has: function(key, type) { + var keys = this.keys; + return !!type ? keys[key] != undefined && keys[key] !== null && keys[key].constructor == type : keys[key] != undefined && keys[key] !== null; + }, + get: function(key) { + var value = (key == undefined) ? this.keys : this.keys[key]; + if (!value) + return ''; + else if (value.constructor == Array) + return value.slice(0); + else if (value.constructor == Object) + return jQuery.extend({}, value); + else + return value; + }, + destructiveSet: function(key, val) { + if (val == undefined || val === null) + this.destructiveRemove(key); + else + this.keys[key] = val; + return this; + }, + set: function(key, val) { + return this.copy().destructiveSet(key, val); + }, + destructiveRemove: function(key) { + if (typeof this.keys[key] != 'undefined') + delete this.keys[key]; + return this; + }, + remove: function(key) { + return this.copy().destructiveRemove(key); + }, + destructiveEmpty: function() { + var self = this; + jQuery.each(self.keys, function(key, value) { + delete self.keys[key]; + }); + return self; + }, + empty: function(destructive) { + return this.copy().destructiveEmpty(); + }, + copy: function() { + return new queryObject(this); + }, + toString: function() { + var i = 0, queryString = [], self = this, addFields = function(o, key, value) { + o.push(key); + if (value !== true) { + o.push("="); + o.push(encodeURIComponent(value)); + } + }; + jQuery.each(this.keys, function(key, value) { + var o = []; + if (value !== false) { + if (i++ == 0) + o.push($prefix ? $hash ? "#" : "?" : ""); + if (self.has(key, Object)) { + var _o = [] + jQuery.each(value, function(_key, _value) { + var __o = []; + addFields(__o, key + "[" + _key + "]", _value); + _o.push(__o.join("")); + }); + o.push(_o.join($separator)); + } else if (self.has(key, Array)) { + var _o = [] + jQuery.each(value, function(_key, _value) { + var __o = []; + addFields(__o, key + $suffix, _value); + _o.push(__o.join("")); + }); + o.push(_o.join($separator)); + } else { + addFields(o,key,value); + } + } + queryString.push(o.join("")); + }); + return queryString.join($separator); + } + }; + + return new queryObject(location.search, location.hash); + }; +}(jQuery.query || {}); // Pass in jQuery.query as settings object diff --git a/htroot/yacy/ui/js/jquery.scrollTo-min.js b/htroot/yacy/ui/js/jquery.scrollTo-min.js new file mode 100644 index 000000000..d95759d14 --- /dev/null +++ b/htroot/yacy/ui/js/jquery.scrollTo-min.js @@ -0,0 +1,11 @@ +/** + * jQuery.ScrollTo - Easy element scrolling using jQuery. + * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 2/19/2008 + * @author Ariel Flesler + * @version 1.3.3 + * + * http://flesler.blogspot.com/2007/10/jqueryscrollto.html + */ +;(function($){var o=$.scrollTo=function(a,b,c){o.window().scrollTo(a,b,c)};o.defaults={axis:'y',duration:1};o.window=function(){return $($.browser.safari?'body':'html')};$.fn.scrollTo=function(l,m,n){if(typeof m=='object'){n=m;m=0}n=$.extend({},o.defaults,n);m=m||n.speed||n.duration;n.queue=n.queue&&n.axis.length>1;if(n.queue)m/=2;n.offset=j(n.offset);n.over=j(n.over);return this.each(function(){var a=this,b=$(a),t=l,c,d={},w=b.is('html,body');switch(typeof t){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(t)){t=j(t);break}t=$(t,this);case'object':if(t.is||t.style)c=(t=$(t)).offset()}$.each(n.axis.split(''),function(i,f){var P=f=='x'?'Left':'Top',p=P.toLowerCase(),k='scroll'+P,e=a[k],D=f=='x'?'Width':'Height';if(c){d[k]=c[p]+(w?0:e-b.offset()[p]);if(n.margin){d[k]-=parseInt(t.css('margin'+P))||0;d[k]-=parseInt(t.css('border'+P+'Width'))||0}d[k]+=n.offset[p]||0;if(n.over[p])d[k]+=t[D.toLowerCase()]()*n.over[p]}else d[k]=t[p];if(/^\d+$/.test(d[k]))d[k]=d[k]<=0?0:Math.min(d[k],h(D));if(!i&&n.queue){if(e!=d[k])g(n.onAfterFirst);delete d[k]}});g(n.onAfter);function g(a){b.animate(d,m,n.easing,a&&function(){a.call(this,l)})};function h(D){var b=w?$.browser.opera?document.body:document.documentElement:a;return b['scroll'+D]-b['client'+D]}})};function j(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery); \ No newline at end of file diff --git a/htroot/yacy/ui/js/jquery.serialScroll-min.js b/htroot/yacy/ui/js/jquery.serialScroll-min.js new file mode 100644 index 000000000..1c76359fc --- /dev/null +++ b/htroot/yacy/ui/js/jquery.serialScroll-min.js @@ -0,0 +1,11 @@ +/** + * jQuery[a] - Animated scrolling of series + * Copyright (c) 2007-2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com + * Dual licensed under MIT and GPL. + * Date: 3/20/2008 + * @author Ariel Flesler + * @version 1.2.1 + * + * http://flesler.blogspot.com/2008/02/jqueryserialscroll.html + */ +;(function($){var a='serialScroll',b='.'+a,c='bind',C=$[a]=function(b){$.scrollTo.window()[a](b)};C.defaults={duration:1e3,axis:'x',event:'click',start:0,step:1,lock:1,cycle:1,constant:1};$.fn[a]=function(y){y=$.extend({},C.defaults,y);var z=y.event,A=y.step,B=y.lazy;return this.each(function(){var j=y.target?this:document,k=$(y.target||this,j),l=k[0],m=y.items,o=y.start,p=y.interval,q=y.navigation,r;if(!B)m=w();if(y.force)t({},o);$(y.prev||[],j)[c](z,-A,s);$(y.next||[],j)[c](z,A,s);if(!l.ssbound)k[c]('prev'+b,-A,s)[c]('next'+b,A,s)[c]('goto'+b,t);if(p)k[c]('start'+b,function(e){if(!p){v();p=1;u()}})[c]('stop'+b,function(){v();p=0});k[c]('notify'+b,function(e,a){var i=x(a);if(i>-1)o=i});l.ssbound=1;if(y.jump)(B?k:w())[c](z,function(e){t(e,x(e.target))});if(q)q=$(q,j)[c](z,function(e){e.data=Math.round(w().length/q.length)*q.index(this);t(e,this)});function s(e){e.data+=o;t(e,this)};function t(e,a){if(!isNaN(a)){e.data=a;a=l}var c=e.data,n,d=e.type,f=y.exclude?w().slice(0,-y.exclude):w(),g=f.length,h=f[c],i=y.duration;if(d)e.preventDefault();if(p){v();r=setTimeout(u,y.interval)}if(!h){n=c<0?0:n=g-1;if(o!=n)c=n;else if(!y.cycle)return;else c=g-n-1;h=f[c]}if(!h||d&&o==c||y.lock&&k.is(':animated')||d&&y.onBefore&&y.onBefore.call(a,e,h,k,w(),c)===!1)return;if(y.stop)k.queue('fx',[]).stop();if(y.constant)i=Math.abs(i/A*(o-c));k.scrollTo(h,i,y).trigger('notify'+b,[c])};function u(){k.trigger('next'+b)};function v(){clearTimeout(r)};function w(){return $(m,l)};function x(a){if(!isNaN(a))return a;var b=w(),i;while((i=b.index(a))==-1&&a!=l)a=a.parentNode;return i}})}})(jQuery); \ No newline at end of file diff --git a/htroot/yacy/ui/ywidget.html b/htroot/yacy/ui/ywidget.html new file mode 100644 index 000000000..c488c5693 --- /dev/null +++ b/htroot/yacy/ui/ywidget.html @@ -0,0 +1,123 @@ + + + + + +YaCy Widget + + + + + + + + + + +
+
+
+ +