[Testbot] Plone 5.0 - Python 2.7 - Build # 3608 - Still failing! - 0 failure(s)
jenkins at plone.org
jenkins at plone.org
Tue Nov 4 00:22:25 UTC 2014
-------------------------------------------------------------------------------
Plone 5.0 - Python 2.7 - Build # 3608 - Still Failing!
-------------------------------------------------------------------------------
http://jenkins.plone.org/job/plone-5.0-python-2.7/3608/
-------------------------------------------------------------------------------
CHANGES
-------------------------------------------------------------------------------
Repository: plone.app.jquerytools
Branch: refs/heads/master
Date: 2014-11-04T00:43:24+01:00
Author: Johannes Raggam (thet) <raggam-nl at adm.at>
Commit: https://github.com/plone/plone.app.jquerytools/commit/f57dd28211c169d2ca47b3fdb3636ab77b9036a3
Revert "check each tooltip for existence, fixes issue 349". Fixes broken Tooltip.
Files changed:
M CHANGES.rst
M plone/app/jquerytools/browser/jquery.tools.dateinput.js
M plone/app/jquerytools/browser/jquery.tools.js
M plone/app/jquerytools/browser/jquery.tools.min.js
diff --git a/CHANGES.rst b/CHANGES.rst
index b5af63a..2be2bd6 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -4,7 +4,9 @@ Changelog
1.6.2 (unreleased)
------------------
-- Nothing changed yet.
+- Revert "check each tooltip for existence, fixes issue 349". Fixes broken
+ Tooltip.
+ [vincentfretin, thet]
1.6.1 (2014-09-11)
diff --git a/plone/app/jquerytools/browser/jquery.tools.dateinput.js b/plone/app/jquerytools/browser/jquery.tools.dateinput.js
index 91a20b5..a3a0845 100644
--- a/plone/app/jquerytools/browser/jquery.tools.dateinput.js
+++ b/plone/app/jquerytools/browser/jquery.tools.dateinput.js
@@ -1,445 +1,445 @@
/**
- * @license
+ * @license
* jQuery Tools @VERSION Dateinput - <input type="date" /> for humans
- *
+ *
* NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
- *
+ *
* http://flowplayer.org/tools/form/dateinput/
*
* Since: Mar 2010
- * Date: @DATE
+ * Date: @DATE
*/
-(function($, undefined) {
-
- /* TODO:
- preserve today highlighted
- */
-
- $.tools = $.tools || {version: '@VERSION'};
-
- var instances = [],
- formatters = {},
- tool,
-
- // h=72, j=74, k=75, l=76, down=40, left=37, up=38, right=39
- KEYS = [75, 76, 38, 39, 74, 72, 40, 37],
- LABELS = {};
-
- tool = $.tools.dateinput = {
-
- conf: {
- format: 'mm/dd/yy',
- formatter: 'default',
- selectors: false,
- yearRange: [-5, 5],
- lang: 'en',
- offset: [0, 0],
- speed: 0,
- firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
- min: undefined,
- max: undefined,
- trigger: 0,
- toggle: 0,
- editable: 0,
-
- css: {
-
- prefix: 'cal',
- input: 'date',
-
- // ids
- root: 0,
- head: 0,
- title: 0,
- prev: 0,
- next: 0,
- month: 0,
- year: 0,
- days: 0,
-
- body: 0,
- weeks: 0,
- today: 0,
- current: 0,
-
- // classnames
- week: 0,
- off: 0,
- sunday: 0,
- focus: 0,
- disabled: 0,
- trigger: 0
- }
- },
-
- addFormatter: function(name, fn) {
- formatters[name] = fn;
- },
-
- localize: function(language, labels) {
- $.each(labels, function(key, val) {
- labels[key] = val.split(",");
- });
- LABELS[language] = labels;
- }
-
- };
-
- tool.localize("en", {
- months: 'January,February,March,April,May,June,July,August,September,October,November,December',
- shortMonths: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec',
- days: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday',
- shortDays: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'
- });
-
-
+(function($, undefined) {
+
+ /* TODO:
+ preserve today highlighted
+ */
+
+ $.tools = $.tools || {version: '@VERSION'};
+
+ var instances = [],
+ formatters = {},
+ tool,
+
+ // h=72, j=74, k=75, l=76, down=40, left=37, up=38, right=39
+ KEYS = [75, 76, 38, 39, 74, 72, 40, 37],
+ LABELS = {};
+
+ tool = $.tools.dateinput = {
+
+ conf: {
+ format: 'mm/dd/yy',
+ formatter: 'default',
+ selectors: false,
+ yearRange: [-5, 5],
+ lang: 'en',
+ offset: [0, 0],
+ speed: 0,
+ firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
+ min: undefined,
+ max: undefined,
+ trigger: 0,
+ toggle: 0,
+ editable: 0,
+
+ css: {
+
+ prefix: 'cal',
+ input: 'date',
+
+ // ids
+ root: 0,
+ head: 0,
+ title: 0,
+ prev: 0,
+ next: 0,
+ month: 0,
+ year: 0,
+ days: 0,
+
+ body: 0,
+ weeks: 0,
+ today: 0,
+ current: 0,
+
+ // classnames
+ week: 0,
+ off: 0,
+ sunday: 0,
+ focus: 0,
+ disabled: 0,
+ trigger: 0
+ }
+ },
+
+ addFormatter: function(name, fn) {
+ formatters[name] = fn;
+ },
+
+ localize: function(language, labels) {
+ $.each(labels, function(key, val) {
+ labels[key] = val.split(",");
+ });
+ LABELS[language] = labels;
+ }
+
+ };
+
+ tool.localize("en", {
+ months: 'January,February,March,April,May,June,July,August,September,October,November,December',
+ shortMonths: 'Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec',
+ days: 'Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday',
+ shortDays: 'Sun,Mon,Tue,Wed,Thu,Fri,Sat'
+ });
+
+
//{{{ private functions
-
-
- // @return amount of days in certain month
- function dayAm(year, month) {
- return new Date(year, month + 1, 0).getDate();
- }
-
- function zeropad(val, len) {
- val = '' + val;
- len = len || 2;
- while (val.length < len) { val = "0" + val; }
- return val;
- }
-
- // thanks: http://stevenlevithan.com/assets/misc/date.format.js
- var tmpTag = $("<a/>");
-
- function format(formatter, date, text, lang) {
- var d = date.getDate(),
- D = date.getDay(),
- m = date.getMonth(),
- y = date.getFullYear(),
-
- flags = {
- d: d,
- dd: zeropad(d),
- ddd: LABELS[lang].shortDays[D],
- dddd: LABELS[lang].days[D],
- m: m + 1,
- mm: zeropad(m + 1),
- mmm: LABELS[lang].shortMonths[m],
- mmmm: LABELS[lang].months[m],
- yy: String(y).slice(2),
- yyyy: y
- };
-
- var ret = formatters[formatter](text, date, flags, lang);
-
- // a small trick to handle special characters
- return tmpTag.html(ret).html();
-
- }
-
- tool.addFormatter('default', function(text, date, flags, lang) {
- return text.replace(/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g, function ($0) {
- return $0 in flags ? flags[$0] : $0;
- });
- });
-
- tool.addFormatter('prefixed', function(text, date, flags, lang) {
- return text.replace(/%(d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*')/g, function ($0, $1) {
- return $1 in flags ? flags[$1] : $0;
- });
- });
-
- function integer(val) {
- return parseInt(val, 10);
- }
-
- function isSameDay(d1, d2) {
- return d1.getFullYear() === d2.getFullYear() &&
- d1.getMonth() == d2.getMonth() &&
- d1.getDate() == d2.getDate();
- }
-
- function parseDate(val) {
-
- if (val === undefined) { return; }
- if (val.constructor == Date) { return val; }
-
- if (typeof val == 'string') {
-
- // rfc3339?
- var els = val.split("-");
- if (els.length == 3) {
- return new Date(integer(els[0]), integer(els[1]) -1, integer(els[2]));
- }
-
- // invalid offset
- if ( !(/^-?\d+$/).test(val) ) { return; }
-
- // convert to integer
- val = integer(val);
- }
-
- var date = new Date;
- date.setDate(date.getDate() + val);
- return date;
- }
-
+
+
+ // @return amount of days in certain month
+ function dayAm(year, month) {
+ return new Date(year, month + 1, 0).getDate();
+ }
+
+ function zeropad(val, len) {
+ val = '' + val;
+ len = len || 2;
+ while (val.length < len) { val = "0" + val; }
+ return val;
+ }
+
+ // thanks: http://stevenlevithan.com/assets/misc/date.format.js
+ var tmpTag = $("<a/>");
+
+ function format(formatter, date, text, lang) {
+ var d = date.getDate(),
+ D = date.getDay(),
+ m = date.getMonth(),
+ y = date.getFullYear(),
+
+ flags = {
+ d: d,
+ dd: zeropad(d),
+ ddd: LABELS[lang].shortDays[D],
+ dddd: LABELS[lang].days[D],
+ m: m + 1,
+ mm: zeropad(m + 1),
+ mmm: LABELS[lang].shortMonths[m],
+ mmmm: LABELS[lang].months[m],
+ yy: String(y).slice(2),
+ yyyy: y
+ };
+
+ var ret = formatters[formatter](text, date, flags, lang);
+
+ // a small trick to handle special characters
+ return tmpTag.html(ret).html();
+
+ }
+
+ tool.addFormatter('default', function(text, date, flags, lang) {
+ return text.replace(/d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*'/g, function ($0) {
+ return $0 in flags ? flags[$0] : $0;
+ });
+ });
+
+ tool.addFormatter('prefixed', function(text, date, flags, lang) {
+ return text.replace(/%(d{1,4}|m{1,4}|yy(?:yy)?|"[^"]*"|'[^']*')/g, function ($0, $1) {
+ return $1 in flags ? flags[$1] : $0;
+ });
+ });
+
+ function integer(val) {
+ return parseInt(val, 10);
+ }
+
+ function isSameDay(d1, d2) {
+ return d1.getFullYear() === d2.getFullYear() &&
+ d1.getMonth() == d2.getMonth() &&
+ d1.getDate() == d2.getDate();
+ }
+
+ function parseDate(val) {
+
+ if (val === undefined) { return; }
+ if (val.constructor == Date) { return val; }
+
+ if (typeof val == 'string') {
+
+ // rfc3339?
+ var els = val.split("-");
+ if (els.length == 3) {
+ return new Date(integer(els[0]), integer(els[1]) -1, integer(els[2]));
+ }
+
+ // invalid offset
+ if ( !(/^-?\d+$/).test(val) ) { return; }
+
+ // convert to integer
+ val = integer(val);
+ }
+
+ var date = new Date;
+ date.setDate(date.getDate() + val);
+ return date;
+ }
+
//}}}
-
-
- function Dateinput(input, conf) {
-
- // variables
- var self = this,
- now = new Date,
- yearNow = now.getFullYear(),
- css = conf.css,
- labels = LABELS[conf.lang],
- root = $("#" + css.root),
- title = root.find("#" + css.title),
- trigger,
- pm, nm,
- currYear, currMonth, currDay,
- value = input.attr("data-value") || conf.value || input.val(),
- min = input.attr("min") || conf.min,
- max = input.attr("max") || conf.max,
- opened,
- original;
-
- // zero min is not undefined
- if (min === 0) { min = "0"; }
-
- // use sane values for value, min & max
- value = parseDate(value) || now;
-
- min = parseDate(min || new Date(yearNow + conf.yearRange[0], 1, 1));
- max = parseDate(max || new Date( yearNow + conf.yearRange[1]+ 1, 1, -1));
-
-
- // check that language exists
- if (!labels) { throw "Dateinput: invalid language: " + conf.lang; }
-
- // Replace built-in date input: NOTE: input.attr("type", "text") throws exception by the browser
- if (input.attr("type") == 'date') {
- var original = input.clone(),
+
+
+ function Dateinput(input, conf) {
+
+ // variables
+ var self = this,
+ now = new Date,
+ yearNow = now.getFullYear(),
+ css = conf.css,
+ labels = LABELS[conf.lang],
+ root = $("#" + css.root),
+ title = root.find("#" + css.title),
+ trigger,
+ pm, nm,
+ currYear, currMonth, currDay,
+ value = input.attr("data-value") || conf.value || input.val(),
+ min = input.attr("min") || conf.min,
+ max = input.attr("max") || conf.max,
+ opened,
+ original;
+
+ // zero min is not undefined
+ if (min === 0) { min = "0"; }
+
+ // use sane values for value, min & max
+ value = parseDate(value) || now;
+
+ min = parseDate(min || new Date(yearNow + conf.yearRange[0], 1, 1));
+ max = parseDate(max || new Date( yearNow + conf.yearRange[1]+ 1, 1, -1));
+
+
+ // check that language exists
+ if (!labels) { throw "Dateinput: invalid language: " + conf.lang; }
+
+ // Replace built-in date input: NOTE: input.attr("type", "text") throws exception by the browser
+ if (input.attr("type") == 'date') {
+ var original = input.clone(),
def = original.wrap("<div/>").parent().html(),
clone = $(def.replace(/type/i, "type=text data-orig-type"));
-
- if (conf.value) clone.val(conf.value); // jquery 1.6.2 val(undefined) will clear val()
-
- input.replaceWith(clone);
- input = clone;
- }
-
- input.addClass(css.input);
-
- var fire = input.add(self);
-
- // construct layout
- if (!root.length) {
-
- // root
- root = $('<div><div><a/><div/><a/></div><div><div/><div/></div></div>')
- .hide().css({position: 'absolute'}).attr("id", css.root);
-
- // elements
- root.children()
- .eq(0).attr("id", css.head).end()
- .eq(1).attr("id", css.body).children()
- .eq(0).attr("id", css.days).end()
- .eq(1).attr("id", css.weeks).end().end().end()
- .find("a").eq(0).attr("id", css.prev).end().eq(1).attr("id", css.next);
-
- // title
- title = root.find("#" + css.head).find("div").attr("id", css.title);
-
- // year & month selectors
- if (conf.selectors) {
- var monthSelector = $("<select/>").attr("id", css.month),
- yearSelector = $("<select/>").attr("id", css.year);
- title.html(monthSelector.add(yearSelector));
- }
-
- // day titles
- var days = root.find("#" + css.days);
-
- // days of the week
- for (var d = 0; d < 7; d++) {
- days.append($("<span/>").text(labels.shortDays[(d + conf.firstDay) % 7]));
- }
-
- $("body").append(root);
- }
-
-
- // trigger icon
- if (conf.trigger) {
- trigger = $("<a/>").attr("href", "#").addClass(css.trigger).click(function(e) {
- conf.toggle ? self.toggle() : self.show();
- return e.preventDefault();
- }).insertAfter(input);
- }
-
-
- // layout elements
- var weeks = root.find("#" + css.weeks);
- yearSelector = root.find("#" + css.year);
- monthSelector = root.find("#" + css.month);
-
-
+
+ if (conf.value) clone.val(conf.value); // jquery 1.6.2 val(undefined) will clear val()
+
+ input.replaceWith(clone);
+ input = clone;
+ }
+
+ input.addClass(css.input);
+
+ var fire = input.add(self);
+
+ // construct layout
+ if (!root.length) {
+
+ // root
+ root = $('<div><div><a/><div/><a/></div><div><div/><div/></div></div>')
+ .hide().css({position: 'absolute'}).attr("id", css.root);
+
+ // elements
+ root.children()
+ .eq(0).attr("id", css.head).end()
+ .eq(1).attr("id", css.body).children()
+ .eq(0).attr("id", css.days).end()
+ .eq(1).attr("id", css.weeks).end().end().end()
+ .find("a").eq(0).attr("id", css.prev).end().eq(1).attr("id", css.next);
+
+ // title
+ title = root.find("#" + css.head).find("div").attr("id", css.title);
+
+ // year & month selectors
+ if (conf.selectors) {
+ var monthSelector = $("<select/>").attr("id", css.month),
+ yearSelector = $("<select/>").attr("id", css.year);
+ title.html(monthSelector.add(yearSelector));
+ }
+
+ // day titles
+ var days = root.find("#" + css.days);
+
+ // days of the week
+ for (var d = 0; d < 7; d++) {
+ days.append($("<span/>").text(labels.shortDays[(d + conf.firstDay) % 7]));
+ }
+
+ $("body").append(root);
+ }
+
+
+ // trigger icon
+ if (conf.trigger) {
+ trigger = $("<a/>").attr("href", "#").addClass(css.trigger).click(function(e) {
+ conf.toggle ? self.toggle() : self.show();
+ return e.preventDefault();
+ }).insertAfter(input);
+ }
+
+
+ // layout elements
+ var weeks = root.find("#" + css.weeks);
+ yearSelector = root.find("#" + css.year);
+ monthSelector = root.find("#" + css.month);
+
+
//{{{ pick
-
- function select(date, conf, e) {
- // If it is readonly, then we'll just close the calendar
- if (input.attr('readonly')) {
- self.hide(e);
- return;
- }
-
- // current value
- value = date;
- currYear = date.getFullYear();
- currMonth = date.getMonth();
- currDay = date.getDate();
-
- e || (e = $.Event("api"));
-
- // focus the input after selection (doesn't work in IE)
- if (e.type == "click" && !/msie/.test(navigator.userAgent.toLowerCase())) {
- input.focus();
- }
-
- // beforeChange
- e.type = "beforeChange";
-
- fire.trigger(e, [date]);
- if (e.isDefaultPrevented()) { return; }
-
- // formatting
- input.val(format(conf.formatter, date, conf.format, conf.lang));
-
- // change
- e.type = "change";
- e.target = input[0];
- fire.trigger(e);
-
- // store value into input
- input.data("date", date);
-
- self.hide(e);
- }
+
+ function select(date, conf, e) {
+ // If it is readonly, then we'll just close the calendar
+ if (input.attr('readonly')) {
+ self.hide(e);
+ return;
+ }
+
+ // current value
+ value = date;
+ currYear = date.getFullYear();
+ currMonth = date.getMonth();
+ currDay = date.getDate();
+
+ e || (e = $.Event("api"));
+
+ // focus the input after selection (doesn't work in IE)
+ if (e.type == "click" && !/msie/.test(navigator.userAgent.toLowerCase())) {
+ input.focus();
+ }
+
+ // beforeChange
+ e.type = "beforeChange";
+
+ fire.trigger(e, [date]);
+ if (e.isDefaultPrevented()) { return; }
+
+ // formatting
+ input.val(format(conf.formatter, date, conf.format, conf.lang));
+
+ // change
+ e.type = "change";
+ e.target = input[0];
+ fire.trigger(e);
+
+ // store value into input
+ input.data("date", date);
+
+ self.hide(e);
+ }
//}}}
-
-
+
+
//{{{ onShow
- function onShow(ev) {
-
- ev.type = "onShow";
- fire.trigger(ev);
-
- $(document).on("keydown.d", function(e) {
-
- if (e.ctrlKey) { return true; }
- var key = e.keyCode;
-
- // backspace or delete clears the value
- if (key == 8 || key == 46) {
- input.val("");
- return self.hide(e);
- }
-
- // esc or tab key exits
- if (key == 27 || key == 9) { return self.hide(e); }
-
- if ($(KEYS).index(key) >= 0) {
-
- if (!opened) {
- self.show(e);
- return e.preventDefault();
- }
-
- var days = $("#" + css.weeks + " a"),
- el = $("." + css.focus),
- index = days.index(el);
-
- el.removeClass(css.focus);
-
- if (key == 74 || key == 40) { index += 7; }
- else if (key == 75 || key == 38) { index -= 7; }
- else if (key == 76 || key == 39) { index += 1; }
- else if (key == 72 || key == 37) { index -= 1; }
-
-
- if (index > 41) {
- self.addMonth();
- el = $("#" + css.weeks + " a:eq(" + (index-42) + ")");
- } else if (index < 0) {
- self.addMonth(-1);
- el = $("#" + css.weeks + " a:eq(" + (index+42) + ")");
- } else {
- el = days.eq(index);
- }
-
- el.addClass(css.focus);
- return e.preventDefault();
-
- }
-
- // pageUp / pageDown
- if (key == 34) { return self.addMonth(); }
- if (key == 33) { return self.addMonth(-1); }
-
- // home
- if (key == 36) { return self.today(); }
-
- // enter
- if (key == 13) {
- if (!$(e.target).is("select")) {
- $("." + css.focus).click();
- }
- }
-
- return $([16, 17, 18, 9]).index(key) >= 0;
- });
-
-
- // click outside dateinput
- $(document).on("click.d", function(e) {
- var el = e.target;
-
- if (!(el.id == css.root || $(el).parents("#" + css.root).length) && el != input[0] && (!trigger || el != trigger[0])) {
- self.hide(e);
- }
-
- });
- }
+ function onShow(ev) {
+
+ ev.type = "onShow";
+ fire.trigger(ev);
+
+ $(document).on("keydown.d", function(e) {
+
+ if (e.ctrlKey) { return true; }
+ var key = e.keyCode;
+
+ // backspace or delete clears the value
+ if (key == 8 || key == 46) {
+ input.val("");
+ return self.hide(e);
+ }
+
+ // esc or tab key exits
+ if (key == 27 || key == 9) { return self.hide(e); }
+
+ if ($(KEYS).index(key) >= 0) {
+
+ if (!opened) {
+ self.show(e);
+ return e.preventDefault();
+ }
+
+ var days = $("#" + css.weeks + " a"),
+ el = $("." + css.focus),
+ index = days.index(el);
+
+ el.removeClass(css.focus);
+
+ if (key == 74 || key == 40) { index += 7; }
+ else if (key == 75 || key == 38) { index -= 7; }
+ else if (key == 76 || key == 39) { index += 1; }
+ else if (key == 72 || key == 37) { index -= 1; }
+
+
+ if (index > 41) {
+ self.addMonth();
+ el = $("#" + css.weeks + " a:eq(" + (index-42) + ")");
+ } else if (index < 0) {
+ self.addMonth(-1);
+ el = $("#" + css.weeks + " a:eq(" + (index+42) + ")");
+ } else {
+ el = days.eq(index);
+ }
+
+ el.addClass(css.focus);
+ return e.preventDefault();
+
+ }
+
+ // pageUp / pageDown
+ if (key == 34) { return self.addMonth(); }
+ if (key == 33) { return self.addMonth(-1); }
+
+ // home
+ if (key == 36) { return self.today(); }
+
+ // enter
+ if (key == 13) {
+ if (!$(e.target).is("select")) {
+ $("." + css.focus).click();
+ }
+ }
+
+ return $([16, 17, 18, 9]).index(key) >= 0;
+ });
+
+
+ // click outside dateinput
+ $(document).on("click.d", function(e) {
+ var el = e.target;
+
+ if (!(el.id == css.root || $(el).parents("#" + css.root).length) && el != input[0] && (!trigger || el != trigger[0])) {
+ self.hide(e);
+ }
+
+ });
+ }
//}}}
- $.extend(self, {
-
-
- /**
- * @public
- * Show the calendar
- */
- show: function(e) {
-
- if (input.attr("disabled") || opened) { return; }
-
- // onBeforeShow
- e = e || $.Event();
- e.type = "onBeforeShow";
- fire.trigger(e);
- if (e.isDefaultPrevented()) { return; }
-
- $.each(instances, function() {
- this.hide();
- });
-
- opened = true;
-
+ $.extend(self, {
+
+
+ /**
+ * @public
+ * Show the calendar
+ */
+ show: function(e) {
+
+ if (input.attr("disabled") || opened) { return; }
+
+ // onBeforeShow
+ e = e || $.Event();
+ e.type = "onBeforeShow";
+ fire.trigger(e);
+ if (e.isDefaultPrevented()) { return; }
+
+ $.each(instances, function() {
+ this.hide();
+ });
+
+ opened = true;
+
// month selector
monthSelector.off("change").change(function() {
self.setValue(integer(yearSelector.val()), integer($(this).val()));
@@ -449,365 +449,365 @@
yearSelector.off("change").change(function() {
self.setValue(integer($(this).val()), integer(monthSelector.val()));
});
-
- // prev / next month
- pm = root.find("#" + css.prev).off("click").click(function(e) {
- if (!pm.hasClass(css.disabled)) {
- self.addMonth(-1);
- }
- return false;
- });
-
- nm = root.find("#" + css.next).off("click").click(function(e) {
- if (!nm.hasClass(css.disabled)) {
- self.addMonth();
- }
- return false;
- });
-
- // set date
- self.setValue(value);
-
- // show calendar
- var pos = input.offset();
-
- // iPad position fix
- if (/iPad/i.test(navigator.userAgent)) {
- pos.top -= $(window).scrollTop();
- }
-
- root.css({
- top: pos.top + input.outerHeight(true) + conf.offset[0],
- left: pos.left + conf.offset[1]
- });
-
- if (conf.speed) {
- root.show(conf.speed, function() {
- onShow(e);
- });
- } else {
- root.show();
- onShow(e);
- }
-
- return self;
- },
+
+ // prev / next month
+ pm = root.find("#" + css.prev).off("click").click(function(e) {
+ if (!pm.hasClass(css.disabled)) {
+ self.addMonth(-1);
+ }
+ return false;
+ });
+
+ nm = root.find("#" + css.next).off("click").click(function(e) {
+ if (!nm.hasClass(css.disabled)) {
+ self.addMonth();
+ }
+ return false;
+ });
+
+ // set date
+ self.setValue(value);
+
+ // show calendar
+ var pos = input.offset();
+
+ // iPad position fix
+ if (/iPad/i.test(navigator.userAgent)) {
+ pos.top -= $(window).scrollTop();
+ }
+
+ root.css({
+ top: pos.top + input.outerHeight(true) + conf.offset[0],
+ left: pos.left + conf.offset[1]
+ });
+
+ if (conf.speed) {
+ root.show(conf.speed, function() {
+ onShow(e);
+ });
+ } else {
+ root.show();
+ onShow(e);
+ }
+
+ return self;
+ },
/**
* @public
*
* Set the value of the dateinput
*/
- setValue: function(year, month, day) {
-
- var date = integer(month) >= -1 ? new Date(integer(year), integer(month), integer(day == undefined || isNaN(day) ? 1 : day)) :
- year || value;
-
- if (date < min) { date = min; }
- else if (date > max) { date = max; }
-
- // date given as ISO string
- if (typeof year == 'string') { date = parseDate(year); }
-
- year = date.getFullYear();
- month = date.getMonth();
- day = date.getDate();
-
-
- // roll year & month
- if (month == -1) {
- month = 11;
- year--;
- } else if (month == 12) {
- month = 0;
- year++;
- }
-
- if (!opened) {
- select(date, conf);
- return self;
- }
-
- currMonth = month;
- currYear = year;
- currDay = day;
-
- // variables
- var tmp = new Date(year, month, 1 - conf.firstDay), begin = tmp.getDay(),
- days = dayAm(year, month),
- prevDays = dayAm(year, month - 1),
- week;
-
- // selectors
- if (conf.selectors) {
-
- // month selector
- monthSelector.empty();
- $.each(labels.months, function(i, m) {
- if (min < new Date(year, i + 1, 1) && max > new Date(year, i, 0)) {
- monthSelector.append($("<option/>").html(m).attr("value", i));
- }
- });
-
- // year selector
- yearSelector.empty();
- var yearNow = now.getFullYear();
-
- for (var i = yearNow + conf.yearRange[0]; i < yearNow + conf.yearRange[1]; i++) {
- if (min < new Date(i + 1, 0, 1) && max > new Date(i, 0, 0)) {
- yearSelector.append($("<option/>").text(i));
- }
- }
-
- monthSelector.val(month);
- yearSelector.val(year);
-
- // title
- } else {
- title.html(labels.months[month] + " " + year);
- }
-
- // populate weeks
- weeks.empty();
- pm.add(nm).removeClass(css.disabled);
-
- // !begin === "sunday"
- for (var j = !begin ? -7 : 0, a, num; j < (!begin ? 35 : 42); j++) {
-
- a = $("<a/>");
-
- if (j % 7 === 0) {
- week = $("<div/>").addClass(css.week);
- weeks.append(week);
- }
-
- if (j < begin) {
- a.addClass(css.off);
- num = prevDays - begin + j + 1;
- date = new Date(year, month-1, num);
-
- } else if (j >= begin + days) {
- a.addClass(css.off);
- num = j - days - begin + 1;
- date = new Date(year, month+1, num);
-
- } else {
- num = j - begin + 1;
- date = new Date(year, month, num);
-
- // current date
- if (isSameDay(value, date)) {
- a.attr("id", css.current).addClass(css.focus);
-
- // today
- } else if (isSameDay(now, date)) {
- a.attr("id", css.today);
- }
- }
-
- // disabled
- if (min && date < min) {
- a.add(pm).addClass(css.disabled);
- }
-
- if (max && date > max) {
- a.add(nm).addClass(css.disabled);
- }
-
- a.attr("href", "#" + num).text(num).data("date", date);
-
- week.append(a);
- }
-
- // date picking
- weeks.find("a").click(function(e) {
- var el = $(this);
- if (!el.hasClass(css.disabled)) {
- $("#" + css.current).removeAttr("id");
- el.attr("id", css.current);
- select(el.data("date"), conf, e);
- }
- return false;
- });
-
- // sunday
- if (css.sunday) {
- weeks.find("." + css.week).each(function() {
- var beg = conf.firstDay ? 7 - conf.firstDay : 0;
- $(this).children().slice(beg, beg + 1).addClass(css.sunday);
- });
- }
-
- return self;
- },
- //}}}
-
- setMin: function(val, fit) {
- min = parseDate(val);
- if (fit && value < min) { self.setValue(min); }
- return self;
- },
-
- setMax: function(val, fit) {
- max = parseDate(val);
- if (fit && value > max) { self.setValue(max); }
- return self;
- },
-
- today: function() {
- return self.setValue(now);
- },
-
- addDay: function(amount) {
- return this.setValue(currYear, currMonth, currDay + (amount || 1));
- },
-
- addMonth: function(amount) {
- var targetMonth = currMonth + (amount || 1),
+ setValue: function(year, month, day) {
+
+ var date = integer(month) >= -1 ? new Date(integer(year), integer(month), integer(day == undefined || isNaN(day) ? 1 : day)) :
+ year || value;
+
+ if (date < min) { date = min; }
+ else if (date > max) { date = max; }
+
+ // date given as ISO string
+ if (typeof year == 'string') { date = parseDate(year); }
+
+ year = date.getFullYear();
+ month = date.getMonth();
+ day = date.getDate();
+
+
+ // roll year & month
+ if (month == -1) {
+ month = 11;
+ year--;
+ } else if (month == 12) {
+ month = 0;
+ year++;
+ }
+
+ if (!opened) {
+ select(date, conf);
+ return self;
+ }
+
+ currMonth = month;
+ currYear = year;
+ currDay = day;
+
+ // variables
+ var tmp = new Date(year, month, 1 - conf.firstDay), begin = tmp.getDay(),
+ days = dayAm(year, month),
+ prevDays = dayAm(year, month - 1),
+ week;
+
+ // selectors
+ if (conf.selectors) {
+
+ // month selector
+ monthSelector.empty();
+ $.each(labels.months, function(i, m) {
+ if (min < new Date(year, i + 1, 1) && max > new Date(year, i, 0)) {
+ monthSelector.append($("<option/>").html(m).attr("value", i));
+ }
+ });
+
+ // year selector
+ yearSelector.empty();
+ var yearNow = now.getFullYear();
+
+ for (var i = yearNow + conf.yearRange[0]; i < yearNow + conf.yearRange[1]; i++) {
+ if (min < new Date(i + 1, 0, 1) && max > new Date(i, 0, 0)) {
+ yearSelector.append($("<option/>").text(i));
+ }
+ }
+
+ monthSelector.val(month);
+ yearSelector.val(year);
+
+ // title
+ } else {
+ title.html(labels.months[month] + " " + year);
+ }
+
+ // populate weeks
+ weeks.empty();
+ pm.add(nm).removeClass(css.disabled);
+
+ // !begin === "sunday"
+ for (var j = !begin ? -7 : 0, a, num; j < (!begin ? 35 : 42); j++) {
+
+ a = $("<a/>");
+
+ if (j % 7 === 0) {
+ week = $("<div/>").addClass(css.week);
+ weeks.append(week);
+ }
+
+ if (j < begin) {
+ a.addClass(css.off);
+ num = prevDays - begin + j + 1;
+ date = new Date(year, month-1, num);
+
+ } else if (j >= begin + days) {
+ a.addClass(css.off);
+ num = j - days - begin + 1;
+ date = new Date(year, month+1, num);
+
+ } else {
+ num = j - begin + 1;
+ date = new Date(year, month, num);
+
+ // current date
+ if (isSameDay(value, date)) {
+ a.attr("id", css.current).addClass(css.focus);
+
+ // today
+ } else if (isSameDay(now, date)) {
+ a.attr("id", css.today);
+ }
+ }
+
+ // disabled
+ if (min && date < min) {
+ a.add(pm).addClass(css.disabled);
+ }
+
+ if (max && date > max) {
+ a.add(nm).addClass(css.disabled);
+ }
+
+ a.attr("href", "#" + num).text(num).data("date", date);
+
+ week.append(a);
+ }
+
+ // date picking
+ weeks.find("a").click(function(e) {
+ var el = $(this);
+ if (!el.hasClass(css.disabled)) {
+ $("#" + css.current).removeAttr("id");
+ el.attr("id", css.current);
+ select(el.data("date"), conf, e);
+ }
+ return false;
+ });
+
+ // sunday
+ if (css.sunday) {
+ weeks.find("." + css.week).each(function() {
+ var beg = conf.firstDay ? 7 - conf.firstDay : 0;
+ $(this).children().slice(beg, beg + 1).addClass(css.sunday);
+ });
+ }
+
+ return self;
+ },
+ //}}}
+
+ setMin: function(val, fit) {
+ min = parseDate(val);
+ if (fit && value < min) { self.setValue(min); }
+ return self;
+ },
+
+ setMax: function(val, fit) {
+ max = parseDate(val);
+ if (fit && value > max) { self.setValue(max); }
+ return self;
+ },
+
+ today: function() {
+ return self.setValue(now);
+ },
+
+ addDay: function(amount) {
+ return this.setValue(currYear, currMonth, currDay + (amount || 1));
+ },
+
+ addMonth: function(amount) {
+ var targetMonth = currMonth + (amount || 1),
daysInTargetMonth = dayAm(currYear, targetMonth),
targetDay = currDay <= daysInTargetMonth ? currDay : daysInTargetMonth;
-
+
return this.setValue(currYear, targetMonth, targetDay);
- },
-
- addYear: function(amount) {
- return this.setValue(currYear + (amount || 1), currMonth, currDay);
- },
-
- destroy: function() {
- input.add(document).off("click.d keydown.d");
- root.add(trigger).remove();
- input.removeData("dateinput").removeClass(css.input);
- if (original) { input.replaceWith(original); }
- },
-
- hide: function(e) {
-
- if (opened) {
-
- // onHide
- e = $.Event();
- e.type = "onHide";
- fire.trigger(e);
-
- // cancelled ?
- if (e.isDefaultPrevented()) { return; }
-
- $(document).off("click.d keydown.d");
-
- // do the hide
- root.hide();
- opened = false;
- }
-
- return self;
- },
-
- toggle: function(){
- return self.isOpen() ? self.hide() : self.show();
- },
-
- getConf: function() {
- return conf;
- },
-
- getInput: function() {
- return input;
- },
-
- getCalendar: function() {
- return root;
- },
-
- getValue: function(dateFormat) {
- return dateFormat ? format(conf.formatter, value, dateFormat, conf.lang) : value;
- },
-
- isOpen: function() {
- return opened;
- }
-
- });
-
- // callbacks
- $.each(['onBeforeShow','onShow','change','onHide'], function(i, name) {
-
- // configuration
- if ($.isFunction(conf[name])) {
- $(self).on(name, conf[name]);
- }
-
- // API methods
- self[name] = function(fn) {
- if (fn) { $(self).on(name, fn); }
- return self;
- };
- });
-
- if (!conf.editable) {
-
- // show dateinput & assign keyboard shortcuts
- input.on("focus.d click.d", self.show).keydown(function(e) {
-
- var key = e.keyCode;
-
- // open dateinput with navigation keyw
- if (!opened && $(KEYS).index(key) >= 0) {
- self.show(e);
- return e.preventDefault();
-
- // clear value on backspace or delete
- } else if (key == 8 || key == 46) {
- input.val("");
- }
-
- // allow tab
- return e.shiftKey || e.ctrlKey || e.altKey || key == 9 ? true : e.preventDefault();
-
- });
- }
-
- // initial value
- if (parseDate(input.val())) {
- select(value, conf);
- }
-
- }
-
- $.expr[':'].date = function(el) {
- var type = el.getAttribute("type");
- return type && type == 'date' || !!$(el).data("dateinput");
- };
-
-
- $.fn.dateinput = function(conf) {
-
- // already instantiated
- if (this.data("dateinput")) { return this; }
-
- // configuration
- conf = $.extend(true, {}, tool.conf, conf);
-
- // CSS prefix
- $.each(conf.css, function(key, val) {
- if (!val && key != 'prefix') {
- conf.css[key] = (conf.css.prefix || '') + (val || key);
- }
- });
-
- var els;
-
- this.each(function() {
- var el = new Dateinput($(this), conf);
- instances.push(el);
- var input = el.getInput().data("dateinput", el);
- els = els ? els.add(input) : input;
- });
-
- return els ? els : this;
- };
-
-
+ },
+
+ addYear: function(amount) {
+ return this.setValue(currYear + (amount || 1), currMonth, currDay);
+ },
+
+ destroy: function() {
+ input.add(document).off("click.d keydown.d");
+ root.add(trigger).remove();
+ input.removeData("dateinput").removeClass(css.input);
+ if (original) { input.replaceWith(original); }
+ },
+
+ hide: function(e) {
+
+ if (opened) {
+
+ // onHide
+ e = $.Event();
+ e.type = "onHide";
+ fire.trigger(e);
+
+ // cancelled ?
+ if (e.isDefaultPrevented()) { return; }
+
+ $(document).off("click.d keydown.d");
+
+ // do the hide
+ root.hide();
+ opened = false;
+ }
+
+ return self;
+ },
+
+ toggle: function(){
+ return self.isOpen() ? self.hide() : self.show();
+ },
+
+ getConf: function() {
+ return conf;
+ },
+
+ getInput: function() {
+ return input;
+ },
+
+ getCalendar: function() {
+ return root;
+ },
+
+ getValue: function(dateFormat) {
+ return dateFormat ? format(conf.formatter, value, dateFormat, conf.lang) : value;
+ },
+
+ isOpen: function() {
+ return opened;
+ }
+
+ });
+
+ // callbacks
+ $.each(['onBeforeShow','onShow','change','onHide'], function(i, name) {
+
+ // configuration
+ if ($.isFunction(conf[name])) {
+ $(self).on(name, conf[name]);
+ }
+
+ // API methods
+ self[name] = function(fn) {
+ if (fn) { $(self).on(name, fn); }
+ return self;
+ };
+ });
+
+ if (!conf.editable) {
+
+ // show dateinput & assign keyboard shortcuts
+ input.on("focus.d click.d", self.show).keydown(function(e) {
+
+ var key = e.keyCode;
+
+ // open dateinput with navigation keyw
+ if (!opened && $(KEYS).index(key) >= 0) {
+ self.show(e);
+ return e.preventDefault();
+
+ // clear value on backspace or delete
+ } else if (key == 8 || key == 46) {
+ input.val("");
+ }
+
+ // allow tab
+ return e.shiftKey || e.ctrlKey || e.altKey || key == 9 ? true : e.preventDefault();
+
+ });
+ }
+
+ // initial value
+ if (parseDate(input.val())) {
+ select(value, conf);
+ }
+
+ }
+
+ $.expr[':'].date = function(el) {
+ var type = el.getAttribute("type");
+ return type && type == 'date' || !!$(el).data("dateinput");
+ };
+
+
+ $.fn.dateinput = function(conf) {
+
+ // already instantiated
+ if (this.data("dateinput")) { return this; }
+
+ // configuration
+ conf = $.extend(true, {}, tool.conf, conf);
+
+ // CSS prefix
+ $.each(conf.css, function(key, val) {
+ if (!val && key != 'prefix') {
+ conf.css[key] = (conf.css.prefix || '') + (val || key);
+ }
+ });
+
+ var els;
+
+ this.each(function() {
+ var el = new Dateinput($(this), conf);
+ instances.push(el);
+ var input = el.getInput().data("dateinput", el);
+ els = els ? els.add(input) : input;
+ });
+
+ return els ? els : this;
+ };
+
+
}) (jQuery);
-
-
+
+
diff --git a/plone/app/jquerytools/browser/jquery.tools.js b/plone/app/jquerytools/browser/jquery.tools.js
index 13f30b2..89dce6a 100644
--- a/plone/app/jquerytools/browser/jquery.tools.js
+++ b/plone/app/jquerytools/browser/jquery.tools.js
@@ -1659,6 +1659,10 @@
// jQuery plugin implementation
$.fn.tooltip = function(conf) {
+
+ // return existing instance
+ var api = this.data("tooltip");
+ if (api) { return api; }
conf = $.extend(true, {}, $.tools.tooltip.conf, conf);
@@ -1668,12 +1672,9 @@
}
// install tooltip for each entry in jQuery object
- // that is not an existing instance
this.each(function() {
- if ( $(this).data("tooltip")===null){
- api = new Tooltip($(this), conf);
- $(this).data("tooltip", api);
- };
+ api = new Tooltip($(this), conf);
+ $(this).data("tooltip", api);
});
return conf.api ? api: this;
diff --git a/plone/app/jquerytools/browser/jquery.tools.min.js b/plone/app/jquerytools/browser/jquery.tools.min.js
index 442d8b8..4d2e5c5 100644
--- a/plone/app/jquerytools/browser/jquery.tools.min.js
+++ b/plone/app/jquerytools/browser/jquery.tools.min.js
@@ -1 +1 @@
-!function($){function Overlay(trigger,conf){var closers,overlay,opened,self=this,fire=trigger.add(self),w=$(window),maskConf=$.tools.expose&&(conf.mask||conf.expose),uid=Math.random().toString().slice(10);maskConf&&("string"==typeof maskConf&&(maskConf={color:maskConf}),maskConf.closeOnClick=maskConf.closeOnEsc=!1);var jq=conf.target||trigger.attr("rel");if(overlay=jq?$(jq):null||trigger,!overlay.length)throw"Could not find Overlay: "+jq;trigger&&-1==trigger.index(overlay)&&trigger.click(function(e){return self.load(e),e.preventDefault()}),$.extend(self,{load:function(e){if(self.isOpened())return self;var eff=effects[conf.effect];if(!eff)throw'Overlay: cannot find effect : "'+conf.effect+'"';if(conf.oneInstance&&$.each(instances,function(){this.close(e)}),e=e||$.Event(),e.type="onBeforeLoad",fire.trigger(e),e.isDefaultPrevented())return self;opened=!0,maskConf&&$(overlay).expose(maskConf);var top=conf.top,left=conf.left,oWidth=overlay.outerWidth(!0),oHeight=overlay.outerHeight(!0);return"string"==typeof top&&(top="center"==top?Math.max((w.height()-oHeight)/2,0):parseInt(top,10)/100*w.height()),"center"==left&&(left=Math.max((w.width()-oWidth)/2,0)),eff[0].call(self,{top:top,left:left},function(){opened&&(e.type="onLoad",fire.trigger(e))}),maskConf&&conf.closeOnClick&&$.mask.getMask().one("click",self.close),conf.closeOnClick&&$(document).on("click."+uid,function(e){$(e.target).parents(overlay).length||self.close(e)}),conf.closeOnEsc&&$(document).on("keydown."+uid,function(e){27==e.keyCode&&self.close(e)}),self},close:function(e){return self.isOpened()?(e=e||$.Event(),e.type="onBeforeClose",fire.trigger(e),e.isDefaultPrevented()?void 0:(opened=!1,effects[conf.effect][1].call(self,function(){e.type="onClose",fire.trigger(e)}),$(document).off("click."+uid+" keydown."+uid),maskConf&&$.mask.close(),self)):self},getOverlay:function(){return overlay},getTrigger:function(){return trigger},getClosers:function(){return closers},isOpened:function(){return opened},getConf:function(){return conf}}),$.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}}),closers=overlay.find(conf.close||".close"),closers.length||conf.close||(closers=$('<a class="close"></a>'),overlay.prepend(closers)),closers.click(function(e){self.close(e)}),conf.load&&self.load()}$.tools=$.tools||{version:"@VERSION"},$.tools.overlay={addEffect:function(name,loadFn,closeFn){effects[name]=[loadFn,closeFn]},conf:{close:null,closeOnClick:!0,closeOnEsc:!0,closeSpeed:"fast",effect:"default",fixed:!/msie/.test(navigator.userAgent.toLowerCase())||navigator.appVersion>6,left:"center",load:!1,mask:null,oneInstance:!0,speed:"normal",target:null,top:"10%"}};var instances=[],effects={};$.tools.overlay.addEffect("default",function(pos,onLoad){var conf=this.getConf(),w=$(window);conf.fixed||(pos.top+=w.scrollTop(),pos.left+=w.scrollLeft()),pos.position=conf.fixed?"fixed":"absolute",this.getOverlay().css(pos).fadeIn(conf.speed,onLoad)},function(onClose){this.getOverlay().fadeOut(this.getConf().closeSpeed,onClose)}),$.fn.overlay=function(conf){var el=this.data("overlay");return el?el:($.isFunction(conf)&&(conf={onBeforeLoad:conf}),conf=$.extend(!0,{},$.tools.overlay.conf,conf),this.each(function(){el=new Overlay($(this),conf),instances.push(el),$(this).data("overlay",el)}),conf.api?el:this)}}(jQuery),function($){function find(root,query){var el=$(query);return el.length<2?el:root.parent().find(query)}function Scrollable(root,conf){var self=this,fire=root.add(self),itemWrap=root.children(),index=0,vertical=conf.vertical;if(current||(current=self),itemWrap.length>1&&(itemWrap=$(conf.items,root)),conf.size>1&&(conf.circular=!1),$.extend(self,{getConf:function(){return conf},getIndex:function(){return index},getSize:function(){return self.getItems().size()},getNaviButtons:function(){return prev.add(next)},getRoot:function(){return root},getItemWrap:function(){return itemWrap},getItems:function(){return itemWrap.find(conf.item).not("."+conf.clonedClass)},move:function(offset,time){return self.seekTo(index+offset,time)},next:function(time){return self.move(conf.size,time)},prev:function(time){return self.move(-conf.size,time)},begin:function(time){return self.seekTo(0,time)},end:function(time){return self.seekTo(self.getSize()-1,time)},focus:function(){return current=self,self},addItem:function(item){return item=$(item),conf.circular?(itemWrap.children().last().before(item),itemWrap.children().first().replaceWith(item.clone().addClass(conf.clonedClass))):(itemWrap.append(item),next.removeClass("disabled")),fire.trigger("onAddItem",[item]),self},seekTo:function(i,time,fn){if(i.jquery||(i*=1),conf.circular&&0===i&&-1==index&&0!==time)return self;if(!conf.circular&&0>i||i>self.getSize()||-1>i)return self;var item=i;i.jquery?i=self.getItems().index(i):item=self.getItems().eq(i);var e=$.Event("onBeforeSeek");if(!fn&&(fire.trigger(e,[i,time]),e.isDefaultPrevented()||!item.length))return self;var props=vertical?{top:-item.position().top}:{left:-item.position().left};return index=i,current=self,void 0===time&&(time=conf.speed),itemWrap.animate(props,time,conf.easing,fn||function(){fire.trigger("onSeek",[i])}),self}}),$.each(["onBeforeSeek","onSeek","onAddItem"],function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}}),conf.circular){var cloned1=self.getItems().slice(-1).clone().prependTo(itemWrap),cloned2=self.getItems().eq(1).clone().appendTo(itemWrap);cloned1.add(cloned2).addClass(conf.clonedClass),self.onBeforeSeek(function(e,i,time){return e.isDefaultPrevented()?void 0:-1==i?(self.seekTo(cloned1,time,function(){self.end(0)}),e.preventDefault()):void(i==self.getSize()&&self.seekTo(cloned2,time,function(){self.begin(0)}))});var hidden_parents=root.parents().add(root).filter(function(){return"none"===$(this).css("display")?!0:void 0});hidden_parents.length?(hidden_parents.show(),self.seekTo(0,0,function(){}),hidden_parents.hide()):self.seekTo(0,0,function(){})}var prev=find(root,conf.prev).click(function(e){e.stopPropagation(),self.prev()}),next=find(root,conf.next).click(function(e){e.stopPropagation(),self.next()});if(conf.circular||(self.onBeforeSeek(function(e,i){setTimeout(function(){e.isDefaultPrevented()||(prev.toggleClass(conf.disabledClass,0>=i),next.toggleClass(conf.disabledClass,i>=self.getSize()-1))},1)}),conf.initialIndex||prev.addClass(conf.disabledClass)),self.getSize()<2&&prev.add(next).addClass(conf.disabledClass),conf.mousewheel&&$.fn.mousewheel&&root.mousewheel(function(e,delta){return conf.mousewheel?(self.move(0>delta?1:-1,conf.wheelSpeed||50),!1):void 0}),conf.touch){var touch={};itemWrap[0].ontouchstart=function(e){var t=e.touches[0];touch.x=t.clientX,touch.y=t.clientY},itemWrap[0].ontouchmove=function(e){if(1==e.touches.length&&!itemWrap.is(":animated")){var t=e.touches[0],deltaX=touch.x-t.clientX,deltaY=touch.y-t.clientY;self[vertical&&deltaY>0||!vertical&&deltaX>0?"next":"prev"](),e.preventDefault()}}}conf.keyboard&&$(document).on("keydown.scrollable",function(evt){if(!(!conf.keyboard||evt.altKey||evt.ctrlKey||evt.metaKey||$(evt.target).is(":input")||"static"!=conf.keyboard&¤t!=self)){var key=evt.keyCode;return!vertical||38!=key&&40!=key?vertical||37!=key&&39!=key?void 0:(self.move(37==key?-1:1),evt.preventDefault()):(self.move(38==key?-1:1),evt.preventDefault())}}),conf.initialIndex&&self.seekTo(conf.initialIndex,0,function(){})}$.tools=$.tools||{version:"@VERSION"},$.tools.scrollable={conf:{activeClass:"active",circular:!1,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:"> *",items:".items",keyboard:!0,mousewheel:!1,next:".next",prev:".prev",size:1,speed:400,vertical:!1,touch:!0,wheelSpeed:0}};var current;$.fn.scrollable=function(conf){var el=this.data("scrollable");return el?el:(conf=$.extend({},$.tools.scrollable.conf,conf),this.each(function(){el=new Scrollable($(this),conf),$(this).data("scrollable",el)}),conf.api?el:this)}}(jQuery),function($){function Tabs(root,paneSelector,conf){var current,self=this,trigger=root.add(this),tabs=root.find(conf.tabs),panes=paneSelector.jquery?paneSelector:root.children(paneSelector);tabs.length||(tabs=root.children()),panes.length||(panes=root.parent().find(paneSelector)),panes.length||(panes=$(paneSelector)),$.extend(this,{click:function(i,e){var tab=tabs.eq(i),firstRender=!root.data("tabs");if("string"==typeof i&&i.replace("#","")&&(tab=tabs.filter('[href*="'+i.replace("#","")+'"]'),i=Math.max(tabs.index(tab),0)),conf.rotate){var last=tabs.length-1;if(0>i)return self.click(last,e);if(i>last)return self.click(0,e)}if(!tab.length){if(current>=0)return self;i=conf.initialIndex,tab=tabs.eq(i)}if(i===current)return self;if(e=e||$.Event(),e.type="onBeforeClick",trigger.trigger(e,[i]),!e.isDefaultPrevented()){var effect=firstRender?conf.initialEffect&&conf.effect||"default":conf.effect;return effects[effect].call(self,i,function(){current=i,e.type="onClick",trigger.trigger(e,[i])}),tabs.removeClass(conf.current),tab.addClass(conf.current),self}},getConf:function(){return conf},getTabs:function(){return tabs},getPanes:function(){return panes},getCurrentPane:function(){return panes.eq(current)},getCurrentTab:function(){return tabs.eq(current)},getIndex:function(){return current},next:function(){return self.click(current+1)},prev:function(){return self.click(current-1)},destroy:function(){return tabs.off(conf.event).removeClass(conf.current),panes.find('a[href^="#"]').off("click.T"),self}}),$.each("onBeforeClick,onClick".split(","),function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}}),conf.history&&$.fn.history&&($.tools.history.init(tabs),conf.event="history"),tabs.each(function(i){$(this).on(conf.event,function(e){return self.click(i,e),e.preventDefault()})}),panes.find('a[href^="#"]').on("click.T",function(e){self.click($(this).attr("href"),e)}),location.hash&&"a"==conf.tabs&&root.find('[href="'+location.hash+'"]').length?self.click(location.hash):(0===conf.initialIndex||conf.initialIndex>0)&&self.click(conf.initialIndex)}$.tools=$.tools||{version:"@VERSION"},$.tools.tabs={conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialEffect:!1,initialIndex:0,event:"click",rotate:!1,slideUpSpeed:400,slideDownSpeed:400,history:!1},addEffect:function(name,fn){effects[name]=fn}};var animating,w,effects={"default":function(i,done){this.getPanes().hide().eq(i).show(),done.call()},fade:function(i,done){var conf=this.getConf(),speed=conf.fadeOutSpeed,panes=this.getPanes();speed?panes.fadeOut(speed):panes.hide(),panes.eq(i).fadeIn(conf.fadeInSpeed,done)},slide:function(i,done){var conf=this.getConf();this.getPanes().slideUp(conf.slideUpSpeed),this.getPanes().eq(i).slideDown(conf.slideDownSpeed,done)},ajax:function(i,done){this.getPanes().eq(0).load(this.getTabs().eq(i).attr("href"),done)}};$.tools.tabs.addEffect("horizontal",function(i,done){if(!animating){var nextPane=this.getPanes().eq(i),currentPane=this.getCurrentPane();w||(w=this.getPanes().eq(0).width()),animating=!0,nextPane.show(),currentPane.animate({width:0},{step:function(now){nextPane.css("width",w-now)},complete:function(){$(this).hide(),done.call(),animating=!1}}),currentPane.length||(done.call(),animating=!1)}}),$.fn.tabs=function(paneSelector,conf){var el=this.data("tabs");return el&&(el.destroy(),this.removeData("tabs")),$.isFunction(conf)&&(conf={onBeforeClick:conf}),conf=$.extend({},$.tools.tabs.conf,conf),this.each(function(){el=new Tabs($(this),paneSelector,conf),$(this).data("tabs",el)}),conf.api?el:this}}(jQuery),function($){function setIframeLocation(h){if(h){var doc=iframe.contentWindow.document;doc.open().close(),doc.location.hash=h}}var hash,iframe,links,inited;$.tools=$.tools||{version:"@VERSION"},$.tools.history={init:function(els){inited||($.browser.msie&&$.browser.version<"8"?iframe||(iframe=$("<iframe/>").attr("src","javascript:false;").hide().get(0),$("body").append(iframe),setInterval(function(){var idoc=iframe.contentWindow.document,h=idoc.location.hash;hash!==h&&$(window).trigger("hash",h)},100),setIframeLocation(location.hash||"#")):setInterval(function(){var h=location.hash;h!==hash&&$(window).trigger("hash",h)},100),links=links?links.add(els):els,els.click(function(e){var href=$(this).attr("href");return iframe&&setIframeLocation(href),"#"!=href.slice(0,1)?(location.href="#"+href,e.preventDefault()):void 0}),inited=!0)}},$(window).on("hash",function(e,h){h?links.filter(function(){var href=$(this).attr("href");return href==h||href==h.replace("#","")}).trigger("history",[h]):links.eq(0).trigger("history",[h]),hash=h}),$.fn.history=function(fn){return $.tools.history.init(this),this.on("history",fn)}}(jQuery),function($){function viewport(){if(/msie/.test(navigator.userAgent.toLowerCase())){var d=$(document).height(),w=$(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,20>d-w?w:d]}return[$(document).width(),$(document).height()]}function call(fn){return fn?fn.call($.mask):void 0}$.tools=$.tools||{version:"@VERSION"};var tool;tool=$.tools.expose={conf:{maskId:"exposeMask",loadSpeed:"slow",closeSpeed:"fast",closeOnClick:!0,closeOnEsc:!0,zIndex:9998,opacity:.8,startOpacity:0,color:"#fff",onLoad:null,onClose:null}};var mask,exposed,loaded,config,overlayIndex;$.mask={load:function(conf,els){if(loaded)return this;"string"==typeof conf&&(conf={color:conf}),conf=conf||config,config=conf=$.extend($.extend({},tool.conf),conf),mask=$("#"+conf.maskId),mask.length||(mask=$("<div/>").attr("id",conf.maskId),$("body").append(mask));var size=viewport();return mask.css({position:"absolute",top:0,left:0,width:size[0],height:size[1],display:"none",opacity:conf.startOpacity,zIndex:conf.zIndex}),conf.color&&mask.css("backgroundColor",conf.color),call(conf.onBeforeLoad)===!1?this:(conf.closeOnEsc&&$(document).on("keydown.mask",function(e){27==e.keyCode&&$.mask.close(e)}),conf.closeOnClick&&mask.on("click.mask",function(e){$.mask.close(e)}),$(window).on("resize.mask",function(){$.mask.fit()}),els&&els.length&&(overlayIndex=els.eq(0).css("zIndex"),$.each(els,function(){var el=$(this);/relative|absolute|fixed/i.test(el.css("position"))||el.css("position","relative")}),exposed=els.css({zIndex:Math.max(conf.zIndex+1,"auto"==overlayIndex?0:overlayIndex)})),mask.css({display:"block"}).fadeTo(conf.loadSpeed,conf.opacity,function(){$.mask.fit(),call(conf.onLoad),loaded="full"}),loaded=!0,this)},close:function(){if(loaded){if(call(config.onBeforeClose)===!1)return this;mask.fadeOut(config.closeSpeed,function(){exposed&&exposed.css({zIndex:overlayIndex}),loaded=!1,call(config.onClose)}),$(document).off("keydown.mask"),mask.off("click.mask"),$(window).off("resize.mask")}return this},fit:function(){if(loaded){var size=viewport();mask.css({width:size[0],height:size[1]})}},getMask:function(){return mask},isLoaded:function(fully){return fully?"full"==loaded:loaded},getConf:function(){return config},getExposed:function(){return exposed}},$.fn.mask=function(conf){return $.mask.load(conf),this},$.fn.expose=function(conf){return $.mask.load(conf,this),this}}(jQuery),function($){function getPosition(trigger,tip,conf){var top=conf.relative?trigger.position().top:trigger.offset().top,left=conf.relative?trigger.position().left:trigger.offset().left,pos=conf.position[0];top-=tip.outerHeight()-conf.offset[0],left+=trigger.outerWidth()+conf.offset[1],/iPad/i.test(navigator.userAgent)&&(top-=$(window).scrollTop());var height=tip.outerHeight()+trigger.outerHeight();"center"==pos&&(top+=height/2),"bottom"==pos&&(top+=height),pos=conf.position[1];var width=tip.outerWidth()+trigger.outerWidth();return"center"==pos&&(left-=width/2),"left"==pos&&(left-=width),{top:top,left:left}}function Tooltip(trigger,conf){var tip,shown,self=this,fire=trigger.add(self),timer=0,pretimer=0,title=trigger.attr("title"),tipAttr=trigger.attr("data-tooltip"),effect=effects[conf.effect],isInput=trigger.is(":input"),isWidget=isInput&&trigger.is(":checkbox, :radio, select, :button, :submit"),type=trigger.attr("type"),evt=conf.events[type]||conf.events[isInput?isWidget?"widget":"input":"def"];if(!effect)throw'Nonexistent effect "'+conf.effect+'"';if(evt=evt.split(/,\s*/),2!=evt.length)throw"Tooltip: bad events configuration for "+type;trigger.on(evt[0],function(e){clearTimeout(timer),conf.predelay?pretimer=setTimeout(function(){self.show(e)},conf.predelay):self.show(e)}).on(evt[1],function(e){clearTimeout(pretimer),conf.delay?timer=setTimeout(function(){self.hide(e)},conf.delay):self.hide(e)}),title&&conf.cancelDefault&&(trigger.removeAttr("title"),trigger.data("title",title)),$.extend(self,{show:function(e){if(!tip&&(tipAttr?tip=$(tipAttr):conf.tip?tip=$(conf.tip).eq(0):title?tip=$(conf.layout).addClass(conf.tipClass).appendTo(document.body).hide().append(title):(tip=trigger.find("."+conf.tipClass),tip.length||(tip=trigger.next()),tip.length||(tip=trigger.parent().next())),!tip.length))throw"Cannot find tooltip for "+trigger;if(self.isShown())return self;tip.stop(!0,!0);var pos=getPosition(trigger,tip,conf);if(conf.tip&&tip.html(trigger.data("title")),e=$.Event(),e.type="onBeforeShow",fire.trigger(e,[pos]),e.isDefaultPrevented())return self;pos=getPosition(trigger,tip,conf),tip.css({position:"absolute",top:pos.top,left:pos.left}),shown=!0,effect[0].call(self,function(){e.type="onShow",shown="full",fire.trigger(e)});var event=conf.events.tooltip.split(/,\s*/);return tip.data("__set")||(tip.off(event[0]).on(event[0],function(){clearTimeout(timer),clearTimeout(pretimer)}),event[1]&&!trigger.is("input:not(:checkbox, :radio), textarea")&&tip.off(event[1]).on(event[1],function(e){e.relatedTarget!=trigger[0]&&trigger.trigger(evt[1].split(" ")[0])}),conf.tip||tip.data("__set",!0)),self},hide:function(e){return tip&&self.isShown()?(e=$.Event(),e.type="onBeforeHide",fire.trigger(e),e.isDefaultPrevented()?void 0:(shown=!1,effects[conf.effect][1].call(self,function(){e.type="onHide",fire.trigger(e)}),self)):self},isShown:function(fully){return fully?"full"==shown:shown},getConf:function(){return conf},getTip:function(){return tip},getTrigger:function(){return trigger}}),$.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}})}$.tools=$.tools||{version:"@VERSION"},$.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,fadeIE:!1,position:["top","center"],offset:[0,0],relative:!1,cancelDefault:!0,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(name,loadFn,hideFn){effects[name]=[loadFn,hideFn]}};var effects={toggle:[function(done){var conf=this.getConf(),tip=this.getTip(),o=conf.opacity;1>o&&tip.css({opacity:o}),tip.show(),done.call()},function(done){this.getTip().hide(),done.call()}],fade:[function(done){var conf=this.getConf();!/msie/.test(navigator.userAgent.toLowerCase())||conf.fadeIE?this.getTip().fadeTo(conf.fadeInSpeed,conf.opacity,done):(this.getTip().show(),done())},function(done){var conf=this.getConf();!/msie/.test(navigator.userAgent.toLowerCase())||conf.fadeIE?this.getTip().fadeOut(conf.fadeOutSpeed,done):(this.getTip().hide(),done())}]};$.fn.tooltip=function(conf){return conf=$.extend(!0,{},$.tools.tooltip.conf,conf),"string"==typeof conf.position&&(conf.position=conf.position.split(/,?\s/)),this.each(function(){null===$(this).data("tooltip")&&(api=new Tooltip($(this),conf),$(this).data("tooltip",api))}),conf.api?api:this}}(jQuery);
\ No newline at end of file
+!function($){function Overlay(trigger,conf){var closers,overlay,opened,self=this,fire=trigger.add(self),w=$(window),maskConf=$.tools.expose&&(conf.mask||conf.expose),uid=Math.random().toString().slice(10);maskConf&&("string"==typeof maskConf&&(maskConf={color:maskConf}),maskConf.closeOnClick=maskConf.closeOnEsc=!1);var jq=conf.target||trigger.attr("rel");if(overlay=jq?$(jq):null||trigger,!overlay.length)throw"Could not find Overlay: "+jq;trigger&&-1==trigger.index(overlay)&&trigger.click(function(e){return self.load(e),e.preventDefault()}),$.extend(self,{load:function(e){if(self.isOpened())return self;var eff=effects[conf.effect];if(!eff)throw'Overlay: cannot find effect : "'+conf.effect+'"';if(conf.oneInstance&&$.each(instances,function(){this.close(e)}),e=e||$.Event(),e.type="onBeforeLoad",fire.trigger(e),e.isDefaultPrevented())return self;opened=!0,maskConf&&$(overlay).expose(maskConf);var top=conf.top,left=conf.left,oWidth=overlay.outerWidth(!0),oHeight=overlay.outerHeight(!0);return"string"==typeof top&&(top="center"==top?Math.max((w.height()-oHeight)/2,0):parseInt(top,10)/100*w.height()),"center"==left&&(left=Math.max((w.width()-oWidth)/2,0)),eff[0].call(self,{top:top,left:left},function(){opened&&(e.type="onLoad",fire.trigger(e))}),maskConf&&conf.closeOnClick&&$.mask.getMask().one("click",self.close),conf.closeOnClick&&$(document).on("click."+uid,function(e){$(e.target).parents(overlay).length||self.close(e)}),conf.closeOnEsc&&$(document).on("keydown."+uid,function(e){27==e.keyCode&&self.close(e)}),self},close:function(e){return self.isOpened()?(e=e||$.Event(),e.type="onBeforeClose",fire.trigger(e),e.isDefaultPrevented()?void 0:(opened=!1,effects[conf.effect][1].call(self,function(){e.type="onClose",fire.trigger(e)}),$(document).off("click."+uid+" keydown."+uid),maskConf&&$.mask.close(),self)):self},getOverlay:function(){return overlay},getTrigger:function(){return trigger},getClosers:function(){return closers},isOpened:function(){return opened},getConf:function(){return conf}}),$.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}}),closers=overlay.find(conf.close||".close"),closers.length||conf.close||(closers=$('<a class="close"></a>'),overlay.prepend(closers)),closers.click(function(e){self.close(e)}),conf.load&&self.load()}$.tools=$.tools||{version:"@VERSION"},$.tools.overlay={addEffect:function(name,loadFn,closeFn){effects[name]=[loadFn,closeFn]},conf:{close:null,closeOnClick:!0,closeOnEsc:!0,closeSpeed:"fast",effect:"default",fixed:!/msie/.test(navigator.userAgent.toLowerCase())||navigator.appVersion>6,left:"center",load:!1,mask:null,oneInstance:!0,speed:"normal",target:null,top:"10%"}};var instances=[],effects={};$.tools.overlay.addEffect("default",function(pos,onLoad){var conf=this.getConf(),w=$(window);conf.fixed||(pos.top+=w.scrollTop(),pos.left+=w.scrollLeft()),pos.position=conf.fixed?"fixed":"absolute",this.getOverlay().css(pos).fadeIn(conf.speed,onLoad)},function(onClose){this.getOverlay().fadeOut(this.getConf().closeSpeed,onClose)}),$.fn.overlay=function(conf){var el=this.data("overlay");return el?el:($.isFunction(conf)&&(conf={onBeforeLoad:conf}),conf=$.extend(!0,{},$.tools.overlay.conf,conf),this.each(function(){el=new Overlay($(this),conf),instances.push(el),$(this).data("overlay",el)}),conf.api?el:this)}}(jQuery),function($){function find(root,query){var el=$(query);return el.length<2?el:root.parent().find(query)}function Scrollable(root,conf){var self=this,fire=root.add(self),itemWrap=root.children(),index=0,vertical=conf.vertical;if(current||(current=self),itemWrap.length>1&&(itemWrap=$(conf.items,root)),conf.size>1&&(conf.circular=!1),$.extend(self,{getConf:function(){return conf},getIndex:function(){return index},getSize:function(){return self.getItems().size()},getNaviButtons:function(){return prev.add(next)},getRoot:function(){return root},getItemWrap:function(){return itemWrap},getItems:function(){return itemWrap.find(conf.item).not("."+conf.clonedClass)},move:function(offset,time){return self.seekTo(index+offset,time)},next:function(time){return self.move(conf.size,time)},prev:function(time){return self.move(-conf.size,time)},begin:function(time){return self.seekTo(0,time)},end:function(time){return self.seekTo(self.getSize()-1,time)},focus:function(){return current=self,self},addItem:function(item){return item=$(item),conf.circular?(itemWrap.children().last().before(item),itemWrap.children().first().replaceWith(item.clone().addClass(conf.clonedClass))):(itemWrap.append(item),next.removeClass("disabled")),fire.trigger("onAddItem",[item]),self},seekTo:function(i,time,fn){if(i.jquery||(i*=1),conf.circular&&0===i&&-1==index&&0!==time)return self;if(!conf.circular&&0>i||i>self.getSize()||-1>i)return self;var item=i;i.jquery?i=self.getItems().index(i):item=self.getItems().eq(i);var e=$.Event("onBeforeSeek");if(!fn&&(fire.trigger(e,[i,time]),e.isDefaultPrevented()||!item.length))return self;var props=vertical?{top:-item.position().top}:{left:-item.position().left};return index=i,current=self,void 0===time&&(time=conf.speed),itemWrap.animate(props,time,conf.easing,fn||function(){fire.trigger("onSeek",[i])}),self}}),$.each(["onBeforeSeek","onSeek","onAddItem"],function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}}),conf.circular){var cloned1=self.getItems().slice(-1).clone().prependTo(itemWrap),cloned2=self.getItems().eq(1).clone().appendTo(itemWrap);cloned1.add(cloned2).addClass(conf.clonedClass),self.onBeforeSeek(function(e,i,time){return e.isDefaultPrevented()?void 0:-1==i?(self.seekTo(cloned1,time,function(){self.end(0)}),e.preventDefault()):void(i==self.getSize()&&self.seekTo(cloned2,time,function(){self.begin(0)}))});var hidden_parents=root.parents().add(root).filter(function(){return"none"===$(this).css("display")?!0:void 0});hidden_parents.length?(hidden_parents.show(),self.seekTo(0,0,function(){}),hidden_parents.hide()):self.seekTo(0,0,function(){})}var prev=find(root,conf.prev).click(function(e){e.stopPropagation(),self.prev()}),next=find(root,conf.next).click(function(e){e.stopPropagation(),self.next()});if(conf.circular||(self.onBeforeSeek(function(e,i){setTimeout(function(){e.isDefaultPrevented()||(prev.toggleClass(conf.disabledClass,0>=i),next.toggleClass(conf.disabledClass,i>=self.getSize()-1))},1)}),conf.initialIndex||prev.addClass(conf.disabledClass)),self.getSize()<2&&prev.add(next).addClass(conf.disabledClass),conf.mousewheel&&$.fn.mousewheel&&root.mousewheel(function(e,delta){return conf.mousewheel?(self.move(0>delta?1:-1,conf.wheelSpeed||50),!1):void 0}),conf.touch){var touch={};itemWrap[0].ontouchstart=function(e){var t=e.touches[0];touch.x=t.clientX,touch.y=t.clientY},itemWrap[0].ontouchmove=function(e){if(1==e.touches.length&&!itemWrap.is(":animated")){var t=e.touches[0],deltaX=touch.x-t.clientX,deltaY=touch.y-t.clientY;self[vertical&&deltaY>0||!vertical&&deltaX>0?"next":"prev"](),e.preventDefault()}}}conf.keyboard&&$(document).on("keydown.scrollable",function(evt){if(!(!conf.keyboard||evt.altKey||evt.ctrlKey||evt.metaKey||$(evt.target).is(":input")||"static"!=conf.keyboard&¤t!=self)){var key=evt.keyCode;return!vertical||38!=key&&40!=key?vertical||37!=key&&39!=key?void 0:(self.move(37==key?-1:1),evt.preventDefault()):(self.move(38==key?-1:1),evt.preventDefault())}}),conf.initialIndex&&self.seekTo(conf.initialIndex,0,function(){})}$.tools=$.tools||{version:"@VERSION"},$.tools.scrollable={conf:{activeClass:"active",circular:!1,clonedClass:"cloned",disabledClass:"disabled",easing:"swing",initialIndex:0,item:"> *",items:".items",keyboard:!0,mousewheel:!1,next:".next",prev:".prev",size:1,speed:400,vertical:!1,touch:!0,wheelSpeed:0}};var current;$.fn.scrollable=function(conf){var el=this.data("scrollable");return el?el:(conf=$.extend({},$.tools.scrollable.conf,conf),this.each(function(){el=new Scrollable($(this),conf),$(this).data("scrollable",el)}),conf.api?el:this)}}(jQuery),function($){function Tabs(root,paneSelector,conf){var current,self=this,trigger=root.add(this),tabs=root.find(conf.tabs),panes=paneSelector.jquery?paneSelector:root.children(paneSelector);tabs.length||(tabs=root.children()),panes.length||(panes=root.parent().find(paneSelector)),panes.length||(panes=$(paneSelector)),$.extend(this,{click:function(i,e){var tab=tabs.eq(i),firstRender=!root.data("tabs");if("string"==typeof i&&i.replace("#","")&&(tab=tabs.filter('[href*="'+i.replace("#","")+'"]'),i=Math.max(tabs.index(tab),0)),conf.rotate){var last=tabs.length-1;if(0>i)return self.click(last,e);if(i>last)return self.click(0,e)}if(!tab.length){if(current>=0)return self;i=conf.initialIndex,tab=tabs.eq(i)}if(i===current)return self;if(e=e||$.Event(),e.type="onBeforeClick",trigger.trigger(e,[i]),!e.isDefaultPrevented()){var effect=firstRender?conf.initialEffect&&conf.effect||"default":conf.effect;return effects[effect].call(self,i,function(){current=i,e.type="onClick",trigger.trigger(e,[i])}),tabs.removeClass(conf.current),tab.addClass(conf.current),self}},getConf:function(){return conf},getTabs:function(){return tabs},getPanes:function(){return panes},getCurrentPane:function(){return panes.eq(current)},getCurrentTab:function(){return tabs.eq(current)},getIndex:function(){return current},next:function(){return self.click(current+1)},prev:function(){return self.click(current-1)},destroy:function(){return tabs.off(conf.event).removeClass(conf.current),panes.find('a[href^="#"]').off("click.T"),self}}),$.each("onBeforeClick,onClick".split(","),function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}}),conf.history&&$.fn.history&&($.tools.history.init(tabs),conf.event="history"),tabs.each(function(i){$(this).on(conf.event,function(e){return self.click(i,e),e.preventDefault()})}),panes.find('a[href^="#"]').on("click.T",function(e){self.click($(this).attr("href"),e)}),location.hash&&"a"==conf.tabs&&root.find('[href="'+location.hash+'"]').length?self.click(location.hash):(0===conf.initialIndex||conf.initialIndex>0)&&self.click(conf.initialIndex)}$.tools=$.tools||{version:"@VERSION"},$.tools.tabs={conf:{tabs:"a",current:"current",onBeforeClick:null,onClick:null,effect:"default",initialEffect:!1,initialIndex:0,event:"click",rotate:!1,slideUpSpeed:400,slideDownSpeed:400,history:!1},addEffect:function(name,fn){effects[name]=fn}};var animating,w,effects={"default":function(i,done){this.getPanes().hide().eq(i).show(),done.call()},fade:function(i,done){var conf=this.getConf(),speed=conf.fadeOutSpeed,panes=this.getPanes();speed?panes.fadeOut(speed):panes.hide(),panes.eq(i).fadeIn(conf.fadeInSpeed,done)},slide:function(i,done){var conf=this.getConf();this.getPanes().slideUp(conf.slideUpSpeed),this.getPanes().eq(i).slideDown(conf.slideDownSpeed,done)},ajax:function(i,done){this.getPanes().eq(0).load(this.getTabs().eq(i).attr("href"),done)}};$.tools.tabs.addEffect("horizontal",function(i,done){if(!animating){var nextPane=this.getPanes().eq(i),currentPane=this.getCurrentPane();w||(w=this.getPanes().eq(0).width()),animating=!0,nextPane.show(),currentPane.animate({width:0},{step:function(now){nextPane.css("width",w-now)},complete:function(){$(this).hide(),done.call(),animating=!1}}),currentPane.length||(done.call(),animating=!1)}}),$.fn.tabs=function(paneSelector,conf){var el=this.data("tabs");return el&&(el.destroy(),this.removeData("tabs")),$.isFunction(conf)&&(conf={onBeforeClick:conf}),conf=$.extend({},$.tools.tabs.conf,conf),this.each(function(){el=new Tabs($(this),paneSelector,conf),$(this).data("tabs",el)}),conf.api?el:this}}(jQuery),function($){function setIframeLocation(h){if(h){var doc=iframe.contentWindow.document;doc.open().close(),doc.location.hash=h}}var hash,iframe,links,inited;$.tools=$.tools||{version:"@VERSION"},$.tools.history={init:function(els){inited||($.browser.msie&&$.browser.version<"8"?iframe||(iframe=$("<iframe/>").attr("src","javascript:false;").hide().get(0),$("body").append(iframe),setInterval(function(){var idoc=iframe.contentWindow.document,h=idoc.location.hash;hash!==h&&$(window).trigger("hash",h)},100),setIframeLocation(location.hash||"#")):setInterval(function(){var h=location.hash;h!==hash&&$(window).trigger("hash",h)},100),links=links?links.add(els):els,els.click(function(e){var href=$(this).attr("href");return iframe&&setIframeLocation(href),"#"!=href.slice(0,1)?(location.href="#"+href,e.preventDefault()):void 0}),inited=!0)}},$(window).on("hash",function(e,h){h?links.filter(function(){var href=$(this).attr("href");return href==h||href==h.replace("#","")}).trigger("history",[h]):links.eq(0).trigger("history",[h]),hash=h}),$.fn.history=function(fn){return $.tools.history.init(this),this.on("history",fn)}}(jQuery),function($){function viewport(){if(/msie/.test(navigator.userAgent.toLowerCase())){var d=$(document).height(),w=$(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,20>d-w?w:d]}return[$(document).width(),$(document).height()]}function call(fn){return fn?fn.call($.mask):void 0}$.tools=$.tools||{version:"@VERSION"};var tool;tool=$.tools.expose={conf:{maskId:"exposeMask",loadSpeed:"slow",closeSpeed:"fast",closeOnClick:!0,closeOnEsc:!0,zIndex:9998,opacity:.8,startOpacity:0,color:"#fff",onLoad:null,onClose:null}};var mask,exposed,loaded,config,overlayIndex;$.mask={load:function(conf,els){if(loaded)return this;"string"==typeof conf&&(conf={color:conf}),conf=conf||config,config=conf=$.extend($.extend({},tool.conf),conf),mask=$("#"+conf.maskId),mask.length||(mask=$("<div/>").attr("id",conf.maskId),$("body").append(mask));var size=viewport();return mask.css({position:"absolute",top:0,left:0,width:size[0],height:size[1],display:"none",opacity:conf.startOpacity,zIndex:conf.zIndex}),conf.color&&mask.css("backgroundColor",conf.color),call(conf.onBeforeLoad)===!1?this:(conf.closeOnEsc&&$(document).on("keydown.mask",function(e){27==e.keyCode&&$.mask.close(e)}),conf.closeOnClick&&mask.on("click.mask",function(e){$.mask.close(e)}),$(window).on("resize.mask",function(){$.mask.fit()}),els&&els.length&&(overlayIndex=els.eq(0).css("zIndex"),$.each(els,function(){var el=$(this);/relative|absolute|fixed/i.test(el.css("position"))||el.css("position","relative")}),exposed=els.css({zIndex:Math.max(conf.zIndex+1,"auto"==overlayIndex?0:overlayIndex)})),mask.css({display:"block"}).fadeTo(conf.loadSpeed,conf.opacity,function(){$.mask.fit(),call(conf.onLoad),loaded="full"}),loaded=!0,this)},close:function(){if(loaded){if(call(config.onBeforeClose)===!1)return this;mask.fadeOut(config.closeSpeed,function(){exposed&&exposed.css({zIndex:overlayIndex}),loaded=!1,call(config.onClose)}),$(document).off("keydown.mask"),mask.off("click.mask"),$(window).off("resize.mask")}return this},fit:function(){if(loaded){var size=viewport();mask.css({width:size[0],height:size[1]})}},getMask:function(){return mask},isLoaded:function(fully){return fully?"full"==loaded:loaded},getConf:function(){return config},getExposed:function(){return exposed}},$.fn.mask=function(conf){return $.mask.load(conf),this},$.fn.expose=function(conf){return $.mask.load(conf,this),this}}(jQuery),function($){function getPosition(trigger,tip,conf){var top=conf.relative?trigger.position().top:trigger.offset().top,left=conf.relative?trigger.position().left:trigger.offset().left,pos=conf.position[0];top-=tip.outerHeight()-conf.offset[0],left+=trigger.outerWidth()+conf.offset[1],/iPad/i.test(navigator.userAgent)&&(top-=$(window).scrollTop());var height=tip.outerHeight()+trigger.outerHeight();"center"==pos&&(top+=height/2),"bottom"==pos&&(top+=height),pos=conf.position[1];var width=tip.outerWidth()+trigger.outerWidth();return"center"==pos&&(left-=width/2),"left"==pos&&(left-=width),{top:top,left:left}}function Tooltip(trigger,conf){var tip,shown,self=this,fire=trigger.add(self),timer=0,pretimer=0,title=trigger.attr("title"),tipAttr=trigger.attr("data-tooltip"),effect=effects[conf.effect],isInput=trigger.is(":input"),isWidget=isInput&&trigger.is(":checkbox, :radio, select, :button, :submit"),type=trigger.attr("type"),evt=conf.events[type]||conf.events[isInput?isWidget?"widget":"input":"def"];if(!effect)throw'Nonexistent effect "'+conf.effect+'"';if(evt=evt.split(/,\s*/),2!=evt.length)throw"Tooltip: bad events configuration for "+type;trigger.on(evt[0],function(e){clearTimeout(timer),conf.predelay?pretimer=setTimeout(function(){self.show(e)},conf.predelay):self.show(e)}).on(evt[1],function(e){clearTimeout(pretimer),conf.delay?timer=setTimeout(function(){self.hide(e)},conf.delay):self.hide(e)}),title&&conf.cancelDefault&&(trigger.removeAttr("title"),trigger.data("title",title)),$.extend(self,{show:function(e){if(!tip&&(tipAttr?tip=$(tipAttr):conf.tip?tip=$(conf.tip).eq(0):title?tip=$(conf.layout).addClass(conf.tipClass).appendTo(document.body).hide().append(title):(tip=trigger.find("."+conf.tipClass),tip.length||(tip=trigger.next()),tip.length||(tip=trigger.parent().next())),!tip.length))throw"Cannot find tooltip for "+trigger;if(self.isShown())return self;tip.stop(!0,!0);var pos=getPosition(trigger,tip,conf);if(conf.tip&&tip.html(trigger.data("title")),e=$.Event(),e.type="onBeforeShow",fire.trigger(e,[pos]),e.isDefaultPrevented())return self;pos=getPosition(trigger,tip,conf),tip.css({position:"absolute",top:pos.top,left:pos.left}),shown=!0,effect[0].call(self,function(){e.type="onShow",shown="full",fire.trigger(e)});var event=conf.events.tooltip.split(/,\s*/);return tip.data("__set")||(tip.off(event[0]).on(event[0],function(){clearTimeout(timer),clearTimeout(pretimer)}),event[1]&&!trigger.is("input:not(:checkbox, :radio), textarea")&&tip.off(event[1]).on(event[1],function(e){e.relatedTarget!=trigger[0]&&trigger.trigger(evt[1].split(" ")[0])}),conf.tip||tip.data("__set",!0)),self},hide:function(e){return tip&&self.isShown()?(e=$.Event(),e.type="onBeforeHide",fire.trigger(e),e.isDefaultPrevented()?void 0:(shown=!1,effects[conf.effect][1].call(self,function(){e.type="onHide",fire.trigger(e)}),self)):self},isShown:function(fully){return fully?"full"==shown:shown},getConf:function(){return conf},getTip:function(){return tip},getTrigger:function(){return trigger}}),$.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(i,name){$.isFunction(conf[name])&&$(self).on(name,conf[name]),self[name]=function(fn){return fn&&$(self).on(name,fn),self}})}$.tools=$.tools||{version:"@VERSION"},$.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,fadeIE:!1,position:["top","center"],offset:[0,0],relative:!1,cancelDefault:!0,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(name,loadFn,hideFn){effects[name]=[loadFn,hideFn]}};var effects={toggle:[function(done){var conf=this.getConf(),tip=this.getTip(),o=conf.opacity;1>o&&tip.css({opacity:o}),tip.show(),done.call()},function(done){this.getTip().hide(),done.call()}],fade:[function(done){var conf=this.getConf();!/msie/.test(navigator.userAgent.toLowerCase())||conf.fadeIE?this.getTip().fadeTo(conf.fadeInSpeed,conf.opacity,done):(this.getTip().show(),done())},function(done){var conf=this.getConf();!/msie/.test(navigator.userAgent.toLowerCase())||conf.fadeIE?this.getTip().fadeOut(conf.fadeOutSpeed,done):(this.getTip().hide(),done())}]};$.fn.tooltip=function(conf){var api=this.data("tooltip");return api?api:(conf=$.extend(!0,{},$.tools.tooltip.conf,conf),"string"==typeof conf.position&&(conf.position=conf.position.split(/,?\s/)),this.each(function(){api=new Tooltip($(this),conf),$(this).data("tooltip",api)}),conf.api?api:this)}}(jQuery);
\ No newline at end of file
-------------------------------------------------------------------------------
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CHANGES.log
Type: application/octet-stream
Size: 85352 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20141104/be78cba4/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: build.log
Type: application/octet-stream
Size: 94648 bytes
Desc: not available
URL: <http://lists.plone.org/pipermail/plone-testbot/attachments/20141104/be78cba4/attachment-0003.obj>
More information about the Testbot
mailing list