Ditty News Ticker - Version 2.1.2

Version Description

  • Updated qtip scripts
  • Updated paths to enqueued files
Download this release

Release Info

Developer metaphorcreations
Plugin Icon 128x128 Ditty News Ticker
Version 2.1.2
Comparing to
See all releases

Code changes from version 2.1.1 to 2.1.2

assets/js/min/script-admin-min.js ADDED
@@ -0,0 +1 @@
 
1
+ jQuery(document).ready(function($){function t(t,e){$("#mtphr-dnt-"+e+"-metaboxes > div").stop(!0,!0).hide();for(var i=t.attr("metabox").split(" "),n=0;n<i.length;n++)$("#"+i[n]).show();t.siblings("a").removeClass("button-primary"),t.addClass("button-primary"),t.siblings("input").val(t.attr("href").substring(1))}function e(t){var e=t.find("input").is(":checked");e?t.next().fadeOut():t.next().fadeIn()}var i=$("#mtphr-dnt-settings-select"),n=$("#wpadminbar");i.mtphr_dnt_affix({offset:{top:function(){return $(window).width()<601?this.top=i.offset().top+5:this.top=i.offset().top-n.height()+5}}}),$(".mtphr-dnt-metabox-group-toggle").click(function(t){t.preventDefault();var e=$(this).attr("href");$(".mtphr-dnt-metabox-group-toggle").removeClass("active"),$(".mtphr-dnt-metabox-group").removeClass("active"),$(this).addClass("active"),$(e).addClass("active"),$('input[name="_mtphr_dnt_admin_tab"]').val(e)}),$(".mtphr-dnt-codemirror-css").each(function(){var t=$(this).children("textarea");CodeMirror.fromTextArea(t[0],{mode:"css",lineNumbers:!0,lineWrapping:!0,viewportMargin:1/0})}),$(".mtphr-dnt-codemirror-js").each(function(){var t=$(this).children("textarea"),e=CodeMirror.fromTextArea(t[0],{mode:"htmlmixed",lineNumbers:!0,lineWrapping:!0});e.setSize(!1,140)}),$(".mtphr-dnt-code-select").click(function(t){t.preventDefault();var e=$(this).siblings("pre"),i,n,r=e[0];$.browser.msie?(i=document.body.createTextRange(),i.moveToElementText(r),i.select()):$.browser.mozilla||$.browser.opera?(n=window.getSelection(),i=document.createRange(),i.selectNodeContents(r),n.removeAllRanges(),n.addRange(i)):($.browser.safari||$.browser.chrome)&&(n=window.getSelection(),n.setBaseAndExtent(r,0,r,1))}),$('input[name="_mtphr_dnt_admin_javascript"]').length&&$('input[name="_mtphr_dnt_admin_javascript"]').val("ok"),$(".mtphr-dnt-type-toggle.button-primary").length&&t($(".mtphr-dnt-type-toggle.button-primary"),"type"),$(".mtphr-dnt-mode-toggle.button-primary").length&&t($(".mtphr-dnt-mode-toggle.button-primary"),"mode"),$(".mtphr-dnt-type-toggle").click(function(e){e.preventDefault(),$(this).hasClass("button-primary")||t($(this),"type")}),$(".mtphr-dnt-mode-toggle").click(function(e){e.preventDefault(),$(this).hasClass("button-primary")||t($(this),"mode")}),$(".mtphr-dnt-sort").length>0&&($(".mtphr-dnt-sort").sortable({handle:".mtphr-dnt-sort-heading",items:".mtphr-dnt-sort-item",axis:"y",opacity:.7,placeholder:{element:function(t){var e=$(t).innerHeight();return $('<div class="mtphr-dnt-sort-placeholder" style="height:'+e+'px;"></div>')[0]},update:function(){}},helper:function(t,e){var i=e.children(),n=e.clone();return n.children().each(function(t){$(this).width(i.eq(t).width()),$(this).height(i.eq(t).height())}),n}}),$(".mtphr-dnt-sort-heading.optional").live("click",function(t){t.preventDefault();var e=$(this).parents(".mtphr-dnt-sort-item"),i=$(this).next(".mtphr-dnt-sort-item-fields"),n=$(this).children("input");e.hasClass("active")?(e.removeClass("active"),n.val("off"),i.length&&i.stop(!0,!0).slideUp(1e3,"easeOutQuint")):(e.addClass("active"),n.val("on"),i.length&&i.stop(!0,!0).slideDown(1e3,"easeOutQuint"))})),$(".mtphr-dnt-list").mtphr_dnt_list(),$(".mtphr-dnt-single-image").find(".mtphr-dnt-delete").live("click",function(t){t.preventDefault();var e=$(this).parent(),i=e.siblings(".mtphr-dnt-single-image-upload"),n=e.siblings("input");n.val(""),e.remove(),i.show()}),$(".mtphr-dnt-single-image-upload").live("click",function(t){t.preventDefault();var e=$(this),i=e.parent(),n=i.children("input"),r;return r?void r.open():(r=wp.media({title:ditty_news_ticker_vars.img_title,button:{text:ditty_news_ticker_vars.img_button,size:"small"},multiple:!1,library:{type:"image"}}),r.on("select",function(){var t=r.state().get("selection").toJSON();if(t.length>0){n.val(t[0].id);var a={action:"mtphr_dnt_single_image_ajax",attachment:t[0],security:ditty_news_ticker_vars.security};jQuery.post(ajaxurl,a,function(t){e.hide(),i.append(t)})}}),r.open(),!1)});var r={content:{attr:"data-tooltip"},style:{classes:"qtip-light qtip-rounded qtip-shadow"}};$('.mtphr-dnt-help[data-tooltip!=""]').qtip(r),$('.mtphr-dnt-help[data-tooltip!=""]').click(function(t){t.preventDefault()}),$(".mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all").find("input").live("click",function(){e($(this).parents(".mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all"))}),$(".mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all").each(function(){e($(this))})}),function($){var t={init:function(t){return this.each(function(){function e(){a.find(".mtphr-dnt-list-item").length>1?(a.find(".mtphr-dnt-list-handle").show(),a.find(".mtphr-dnt-list-delete").show()):(a.find(".mtphr-dnt-list-handle").hide(),a.find(".mtphr-dnt-list-delete").hide())}function i(){a.find(".mtphr-dnt-list-item").each(function(t){$(this).find("textarea, input, select").each(function(){var e,i;if($(this).hasClass("wp-editor-area")){var n=$(this).parents(".mtphr-dnt-field-type-wysiwyg");e=n.attr("data-name"),i=n.attr("data-key")}else e=$(this).attr("data-name"),i=$(this).attr("data-key");e&&i&&$(this).attr("name",e+"["+t+"]["+i+"]")})}),e()}function n(t,e){var n=t.clone();n.find("textarea, input, select").each(function(){"checkbox"===$(this).attr("type")||"radio"===$(this).attr("type")?$(this).removeAttr("checked"):$(this).val("")}),n.find("textarea").each(function(){if($(this).hasClass("wp-editor-area")){var t=$(this).parents(".mtphr-dnt-field-type-wysiwyg"),e=t.attr("data-name");t.children(".wp-core-ui").remove();var n={action:"mtphr_dnt_wysiwyg_ajax",name:e,security:ditty_news_ticker_vars.security};jQuery.post(ajaxurl,n,function(e){var n=$(e),r=n.find("textarea").attr("id");t.append(e),"object"==typeof tinyMCE&&"function"==typeof tinyMCE.execCommand&&tinyMCE.execCommand("mceAddEditor",!1,r),i()})}}),n.hide(),t.after(n),n.fadeIn().addClass(e),n.find('.mtphr-dnt-help[data-tooltip!=""]').qtip(s),i(),a.trigger("mtphr_dnt_list_item_added",[n,e])}var r={};t&&$.extend(r,t);var a=$(this),s={content:{attr:"data-tooltip"},style:{classes:"qtip-light qtip-rounded qtip-shadow"}};a.sortable({handle:".mtphr-dnt-list-heading",items:".mtphr-dnt-list-item",axis:"y",opacity:.7,placeholder:{element:function(t){var e=$(t).innerHeight();return $('<div class="mtphr-dnt-sort-placeholder" style="height:'+e+'px;"></div>')[0]},update:function(){}},helper:function(t,e){var i=e.children(),n=e.clone();return n.children().each(function(t){$(this).width(i.eq(t).width()),$(this).height(i.eq(t).height())}),n}}),a.find(".mtphr-dnt-list-delete").live("click",function(t){t.preventDefault(),$(this).parents(".mtphr-dnt-list-item").fadeOut(function(){$(this).remove(),i()})}),a.find(".mtphr-dnt-list-add").live("click",function(t){t.preventDefault(),n($(this).parents(".mtphr-dnt-list-item"))}),a.on("mtphr_dnt_list_add_item",function(t,e,i){n(e,i)}),i()})}};$.fn.mtphr_dnt_list=function(e){return t[e]?t[e].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof e&&e?void $.error("Method "+e+" does not exist in mtphr_dnt_list"):t.init.apply(this,arguments)}}(jQuery);
assets/js/script-admin.js CHANGED
@@ -1,6 +1,12 @@
 
 
 
 
 
 
1
  jQuery( document ).ready( function($) {
2
 
3
- var $settings_select = $('#mtphr-dnt-settings-select')
4
  $admin_bar = $('#wpadminbar');
5
 
6
 
@@ -12,9 +18,9 @@ jQuery( document ).ready( function($) {
12
  offset: {
13
  top: function () {
14
  if( $(window).width() < 601 ) {
15
- return (this.top = $settings_select.offset().top + 5)
16
  } else {
17
- return (this.top = $settings_select.offset().top - $admin_bar.height() + 5)
18
  }
19
  }
20
  }
@@ -45,10 +51,10 @@ jQuery( document ).ready( function($) {
45
  /* !Initiate the CodeMirror fields - 1.4.0 */
46
  /* --------------------------------------------------------- */
47
 
48
- $('.mtphr-dnt-codemirror-css').each( function(i) {
49
 
50
  var $textarea = $(this).children('textarea');
51
- var myCodeMirror = CodeMirror.fromTextArea($textarea[0], {
52
  'mode' : 'css',
53
  'lineNumbers' : true,
54
  'lineWrapping' : true,
@@ -57,7 +63,7 @@ jQuery( document ).ready( function($) {
57
  //myCodeMirror.setSize( false, false );
58
  });
59
 
60
- $('.mtphr-dnt-codemirror-js').each( function(i) {
61
 
62
  var $textarea = $(this).children('textarea');
63
  var myCodeMirror = CodeMirror.fromTextArea($textarea[0], {
@@ -77,20 +83,23 @@ jQuery( document ).ready( function($) {
77
  $('.mtphr-dnt-code-select').click( function(e) {
78
  e.preventDefault();
79
 
80
- var $pre = $(this).siblings('pre');
 
 
 
81
  var refNode = $pre[0];
82
  if ( $.browser.msie ) {
83
- var range = document.body.createTextRange();
84
  range.moveToElementText( refNode );
85
  range.select();
86
  } else if ( $.browser.mozilla || $.browser.opera ) {
87
- var selection = window.getSelection();
88
- var range = document.createRange();
89
  range.selectNodeContents( refNode );
90
  selection.removeAllRanges();
91
  selection.addRange( range );
92
  } else if ( $.browser.safari || $.browser.chrome ) {
93
- var selection = window.getSelection();
94
  selection.setBaseAndExtent( refNode, 0, refNode, 1 );
95
  }
96
  });
@@ -170,7 +179,7 @@ jQuery( document ).ready( function($) {
170
  var height = $(currentItem).innerHeight();
171
  return $('<div class="mtphr-dnt-sort-placeholder" style="height:'+height+'px;"></div>')[0];
172
  },
173
- update: function(container, p) {
174
  return;
175
  }
176
  },
@@ -261,7 +270,7 @@ jQuery( document ).ready( function($) {
261
 
262
  uploader.on( 'select', function() {
263
 
264
- attachments = uploader.state().get('selection').toJSON();
265
  if( attachments.length > 0 ) {
266
 
267
  $input.val(attachments[0].id);
@@ -294,8 +303,10 @@ jQuery( document ).ready( function($) {
294
  content: {
295
  attr: 'data-tooltip' // Tell qTip2 to look inside this attr for its content
296
  },
297
- style: 'qtip-light qtip-rounded qtip-shadow'
298
- }
 
 
299
  $('.mtphr-dnt-help[data-tooltip!=""]').qtip( qtipConfig );
300
  $('.mtphr-dnt-help[data-tooltip!=""]').click( function(e) {
301
  e.preventDefault();
@@ -317,11 +328,11 @@ jQuery( document ).ready( function($) {
317
  }
318
  }
319
 
320
- $('.mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all').find('input').live( 'click', function(e) {
321
  mtphr_dnt_mixed_ticks_all( $(this).parents('.mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all') );
322
  });
323
 
324
- $('.mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all').each( function(index) {
325
  mtphr_dnt_mixed_ticks_all( $(this) );
326
  });
327
 
@@ -355,8 +366,10 @@ jQuery( document ).ready( function($) {
355
  content: {
356
  attr: 'data-tooltip' // Tell qTip2 to look inside this attr for its content
357
  },
358
- style: 'qtip-light qtip-rounded qtip-shadow'
359
- }
 
 
360
 
361
  $table.sortable( {
362
  handle: '.mtphr-dnt-list-heading',
@@ -368,7 +381,7 @@ jQuery( document ).ready( function($) {
368
  var height = $(currentItem).innerHeight();
369
  return $('<div class="mtphr-dnt-sort-placeholder" style="height:'+height+'px;"></div>')[0];
370
  },
371
- update: function(container, p) {
372
  return;
373
  }
374
  },
@@ -399,16 +412,18 @@ jQuery( document ).ready( function($) {
399
  $table.find('.mtphr-dnt-list-item').each( function(index) {
400
  $(this).find('textarea, input, select').each( function() {
401
 
 
 
402
  if( $(this).hasClass('wp-editor-area') ) {
403
 
404
- var $parent = $(this).parents('.mtphr-dnt-field-type-wysiwyg'),
405
- name = $parent.attr('data-name'),
406
- key = $parent.attr('data-key');
407
 
408
  } else {
409
 
410
- var name = $(this).attr('data-name'),
411
- key = $(this).attr('data-key');
412
  }
413
 
414
  if( name && key ) {
@@ -427,7 +442,7 @@ jQuery( document ).ready( function($) {
427
 
428
  // Reset the duplicate
429
  $dup.find('textarea, input, select').each( function() {
430
- if( $(this).attr('type') == 'checkbox' || $(this).attr('type') == 'radio' ) {
431
  $(this).removeAttr('checked');
432
  } else {
433
  $(this).val('');
@@ -456,7 +471,7 @@ jQuery( document ).ready( function($) {
456
 
457
  $parent.append( response );
458
 
459
- if( typeof(tinyMCE) == 'object' && typeof(tinyMCE.execCommand) == 'function' ) {
460
  tinyMCE.execCommand("mceAddEditor", false, id);
461
  }
462
 
1
+ /* global CodeMirror:true */
2
+ /* global wp:true */
3
+ /* global ditty_news_ticker_vars:true */
4
+ /* global ajaxurl:true */
5
+ /* global tinyMCE:true */
6
+
7
  jQuery( document ).ready( function($) {
8
 
9
+ var $settings_select = $('#mtphr-dnt-settings-select'),
10
  $admin_bar = $('#wpadminbar');
11
 
12
 
18
  offset: {
19
  top: function () {
20
  if( $(window).width() < 601 ) {
21
+ return (this.top = $settings_select.offset().top + 5);
22
  } else {
23
+ return (this.top = $settings_select.offset().top - $admin_bar.height() + 5);
24
  }
25
  }
26
  }
51
  /* !Initiate the CodeMirror fields - 1.4.0 */
52
  /* --------------------------------------------------------- */
53
 
54
+ $('.mtphr-dnt-codemirror-css').each( function() {
55
 
56
  var $textarea = $(this).children('textarea');
57
+ CodeMirror.fromTextArea($textarea[0], {
58
  'mode' : 'css',
59
  'lineNumbers' : true,
60
  'lineWrapping' : true,
63
  //myCodeMirror.setSize( false, false );
64
  });
65
 
66
+ $('.mtphr-dnt-codemirror-js').each( function() {
67
 
68
  var $textarea = $(this).children('textarea');
69
  var myCodeMirror = CodeMirror.fromTextArea($textarea[0], {
83
  $('.mtphr-dnt-code-select').click( function(e) {
84
  e.preventDefault();
85
 
86
+ var $pre = $(this).siblings('pre'),
87
+ range,
88
+ selection;
89
+
90
  var refNode = $pre[0];
91
  if ( $.browser.msie ) {
92
+ range = document.body.createTextRange();
93
  range.moveToElementText( refNode );
94
  range.select();
95
  } else if ( $.browser.mozilla || $.browser.opera ) {
96
+ selection = window.getSelection();
97
+ range = document.createRange();
98
  range.selectNodeContents( refNode );
99
  selection.removeAllRanges();
100
  selection.addRange( range );
101
  } else if ( $.browser.safari || $.browser.chrome ) {
102
+ selection = window.getSelection();
103
  selection.setBaseAndExtent( refNode, 0, refNode, 1 );
104
  }
105
  });
179
  var height = $(currentItem).innerHeight();
180
  return $('<div class="mtphr-dnt-sort-placeholder" style="height:'+height+'px;"></div>')[0];
181
  },
182
+ update: function() {
183
  return;
184
  }
185
  },
270
 
271
  uploader.on( 'select', function() {
272
 
273
+ var attachments = uploader.state().get('selection').toJSON();
274
  if( attachments.length > 0 ) {
275
 
276
  $input.val(attachments[0].id);
303
  content: {
304
  attr: 'data-tooltip' // Tell qTip2 to look inside this attr for its content
305
  },
306
+ style: {
307
+ classes: 'qtip-light qtip-rounded qtip-shadow'
308
+ }
309
+ };
310
  $('.mtphr-dnt-help[data-tooltip!=""]').qtip( qtipConfig );
311
  $('.mtphr-dnt-help[data-tooltip!=""]').click( function(e) {
312
  e.preventDefault();
328
  }
329
  }
330
 
331
+ $('.mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all').find('input').live( 'click', function() {
332
  mtphr_dnt_mixed_ticks_all( $(this).parents('.mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all') );
333
  });
334
 
335
+ $('.mtphr-dnt-list-field-mtphr_dnt_mixed_ticks_all').each( function() {
336
  mtphr_dnt_mixed_ticks_all( $(this) );
337
  });
338
 
366
  content: {
367
  attr: 'data-tooltip' // Tell qTip2 to look inside this attr for its content
368
  },
369
+ style: {
370
+ classes: 'qtip-light qtip-rounded qtip-shadow'
371
+ }
372
+ };
373
 
374
  $table.sortable( {
375
  handle: '.mtphr-dnt-list-heading',
381
  var height = $(currentItem).innerHeight();
382
  return $('<div class="mtphr-dnt-sort-placeholder" style="height:'+height+'px;"></div>')[0];
383
  },
384
+ update: function() {
385
  return;
386
  }
387
  },
412
  $table.find('.mtphr-dnt-list-item').each( function(index) {
413
  $(this).find('textarea, input, select').each( function() {
414
 
415
+ var name, key;
416
+
417
  if( $(this).hasClass('wp-editor-area') ) {
418
 
419
+ var $parent = $(this).parents('.mtphr-dnt-field-type-wysiwyg');
420
+ name = $parent.attr('data-name');
421
+ key = $parent.attr('data-key');
422
 
423
  } else {
424
 
425
+ name = $(this).attr('data-name');
426
+ key = $(this).attr('data-key');
427
  }
428
 
429
  if( name && key ) {
442
 
443
  // Reset the duplicate
444
  $dup.find('textarea, input, select').each( function() {
445
+ if( $(this).attr('type') === 'checkbox' || $(this).attr('type') === 'radio' ) {
446
  $(this).removeAttr('checked');
447
  } else {
448
  $(this).val('');
471
 
472
  $parent.append( response );
473
 
474
+ if( typeof(tinyMCE) === 'object' && typeof(tinyMCE.execCommand) === 'function' ) {
475
  tinyMCE.execCommand("mceAddEditor", false, id);
476
  }
477
 
assets/qtip/jquery.qtip.css ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * qTip2 - Pretty powerful tooltips - v3.0.3
3
+ * http://qtip2.com
4
+ *
5
+ * Copyright (c) 2016
6
+ * Released under the MIT licenses
7
+ * http://jquery.org/license
8
+ *
9
+ * Date: Wed May 11 2016 06:50 EDT-0400
10
+ * Plugins: None
11
+ * Styles: core
12
+ */
13
+ .qtip{
14
+ position: absolute;
15
+ left: -28000px;
16
+ top: -28000px;
17
+ display: none;
18
+
19
+ max-width: 280px;
20
+ min-width: 50px;
21
+
22
+ font-size: 10.5px;
23
+ line-height: 12px;
24
+
25
+ direction: ltr;
26
+
27
+ box-shadow: none;
28
+ padding: 0;
29
+ }
30
+
31
+ .qtip-content{
32
+ position: relative;
33
+ padding: 5px 9px;
34
+ overflow: hidden;
35
+
36
+ text-align: left;
37
+ word-wrap: break-word;
38
+ }
39
+
40
+ .qtip-titlebar{
41
+ position: relative;
42
+ padding: 5px 35px 5px 10px;
43
+ overflow: hidden;
44
+
45
+ border-width: 0 0 1px;
46
+ font-weight: bold;
47
+ }
48
+
49
+ .qtip-titlebar + .qtip-content{ border-top-width: 0 !important; }
50
+
51
+ /* Default close button class */
52
+ .qtip-close{
53
+ position: absolute;
54
+ right: -9px; top: -9px;
55
+ z-index: 11; /* Overlap .qtip-tip */
56
+
57
+ cursor: pointer;
58
+ outline: medium none;
59
+
60
+ border: 1px solid transparent;
61
+ }
62
+
63
+ .qtip-titlebar .qtip-close{
64
+ right: 4px; top: 50%;
65
+ margin-top: -9px;
66
+ }
67
+
68
+ * html .qtip-titlebar .qtip-close{ top: 16px; } /* IE fix */
69
+
70
+ .qtip-titlebar .ui-icon,
71
+ .qtip-icon .ui-icon{
72
+ display: block;
73
+ text-indent: -1000em;
74
+ direction: ltr;
75
+ }
76
+
77
+ .qtip-icon, .qtip-icon .ui-icon{
78
+ -moz-border-radius: 3px;
79
+ -webkit-border-radius: 3px;
80
+ border-radius: 3px;
81
+ text-decoration: none;
82
+ }
83
+
84
+ .qtip-icon .ui-icon{
85
+ width: 18px;
86
+ height: 14px;
87
+
88
+ line-height: 14px;
89
+ text-align: center;
90
+ text-indent: 0;
91
+ font: normal bold 10px/13px Tahoma,sans-serif;
92
+
93
+ color: inherit;
94
+ background: transparent none no-repeat -100em -100em;
95
+ }
96
+
97
+ /* Applied to 'focused' tooltips e.g. most recently displayed/interacted with */
98
+ .qtip-focus{}
99
+
100
+ /* Applied on hover of tooltips i.e. added/removed on mouseenter/mouseleave respectively */
101
+ .qtip-hover{}
102
+
103
+ /* Default tooltip style */
104
+ .qtip-default{
105
+ border: 1px solid #F1D031;
106
+
107
+ background-color: #FFFFA3;
108
+ color: #555;
109
+ }
110
+
111
+ .qtip-default .qtip-titlebar{
112
+ background-color: #FFEF93;
113
+ }
114
+
115
+ .qtip-default .qtip-icon{
116
+ border-color: #CCC;
117
+ background: #F1F1F1;
118
+ color: #777;
119
+ }
120
+
121
+ .qtip-default .qtip-titlebar .qtip-close{
122
+ border-color: #AAA;
123
+ color: #111;
124
+ }
assets/qtip/jquery.qtip.js ADDED
@@ -0,0 +1,2016 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ * qTip2 - Pretty powerful tooltips - v3.0.3
3
+ * http://qtip2.com
4
+ *
5
+ * Copyright (c) 2016
6
+ * Released under the MIT licenses
7
+ * http://jquery.org/license
8
+ *
9
+ * Date: Wed May 11 2016 06:50 EDT-0400
10
+ * Plugins: None
11
+ * Styles: core
12
+ */
13
+ /*global window: false, jQuery: false, console: false, define: false */
14
+
15
+ /* Cache window, document, undefined */
16
+ (function( window, document, undefined ) {
17
+
18
+ // Uses AMD or browser globals to create a jQuery plugin.
19
+ (function( factory ) {
20
+ "use strict";
21
+ if(typeof define === 'function' && define.amd) {
22
+ define(['jquery'], factory);
23
+ }
24
+ else if(jQuery && !jQuery.fn.qtip) {
25
+ factory(jQuery);
26
+ }
27
+ }
28
+ (function($) {
29
+ "use strict"; // Enable ECMAScript "strict" operation for this function. See more: http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/
30
+ ;// Munge the primitives - Paul Irish tip
31
+ var TRUE = true,
32
+ FALSE = false,
33
+ NULL = null,
34
+
35
+ // Common variables
36
+ X = 'x', Y = 'y',
37
+ WIDTH = 'width',
38
+ HEIGHT = 'height',
39
+
40
+ // Positioning sides
41
+ TOP = 'top',
42
+ LEFT = 'left',
43
+ BOTTOM = 'bottom',
44
+ RIGHT = 'right',
45
+ CENTER = 'center',
46
+
47
+ // Position adjustment types
48
+ FLIP = 'flip',
49
+ FLIPINVERT = 'flipinvert',
50
+ SHIFT = 'shift',
51
+
52
+ // Shortcut vars
53
+ QTIP, PROTOTYPE, CORNER, CHECKS,
54
+ PLUGINS = {},
55
+ NAMESPACE = 'qtip',
56
+ ATTR_HAS = 'data-hasqtip',
57
+ ATTR_ID = 'data-qtip-id',
58
+ WIDGET = ['ui-widget', 'ui-tooltip'],
59
+ SELECTOR = '.'+NAMESPACE,
60
+ INACTIVE_EVENTS = 'click dblclick mousedown mouseup mousemove mouseleave mouseenter'.split(' '),
61
+
62
+ CLASS_FIXED = NAMESPACE+'-fixed',
63
+ CLASS_DEFAULT = NAMESPACE + '-default',
64
+ CLASS_FOCUS = NAMESPACE + '-focus',
65
+ CLASS_HOVER = NAMESPACE + '-hover',
66
+ CLASS_DISABLED = NAMESPACE+'-disabled',
67
+
68
+ replaceSuffix = '_replacedByqTip',
69
+ oldtitle = 'oldtitle',
70
+ trackingBound,
71
+
72
+ // Browser detection
73
+ BROWSER = {
74
+ /*
75
+ * IE version detection
76
+ *
77
+ * Adapted from: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment
78
+ * Credit to James Padolsey for the original implemntation!
79
+ */
80
+ ie: (function() {
81
+ /* eslint-disable no-empty */
82
+ var v, i;
83
+ for (
84
+ v = 4, i = document.createElement('div');
85
+ (i.innerHTML = '<!--[if gt IE ' + v + ']><i></i><![endif]-->') && i.getElementsByTagName('i')[0];
86
+ v+=1
87
+ ) {}
88
+ return v > 4 ? v : NaN;
89
+ /* eslint-enable no-empty */
90
+ })(),
91
+
92
+ /*
93
+ * iOS version detection
94
+ */
95
+ iOS: parseFloat(
96
+ ('' + (/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent) || [0,''])[1])
97
+ .replace('undefined', '3_2').replace('_', '.').replace('_', '')
98
+ ) || FALSE
99
+ };
100
+ ;function QTip(target, options, id, attr) {
101
+ // Elements and ID
102
+ this.id = id;
103
+ this.target = target;
104
+ this.tooltip = NULL;
105
+ this.elements = { target: target };
106
+
107
+ // Internal constructs
108
+ this._id = NAMESPACE + '-' + id;
109
+ this.timers = { img: {} };
110
+ this.options = options;
111
+ this.plugins = {};
112
+
113
+ // Cache object
114
+ this.cache = {
115
+ event: {},
116
+ target: $(),
117
+ disabled: FALSE,
118
+ attr: attr,
119
+ onTooltip: FALSE,
120
+ lastClass: ''
121
+ };
122
+
123
+ // Set the initial flags
124
+ this.rendered = this.destroyed = this.disabled = this.waiting =
125
+ this.hiddenDuringWait = this.positioning = this.triggering = FALSE;
126
+ }
127
+ PROTOTYPE = QTip.prototype;
128
+
129
+ PROTOTYPE._when = function(deferreds) {
130
+ return $.when.apply($, deferreds);
131
+ };
132
+
133
+ PROTOTYPE.render = function(show) {
134
+ if(this.rendered || this.destroyed) { return this; } // If tooltip has already been rendered, exit
135
+
136
+ var self = this,
137
+ options = this.options,
138
+ cache = this.cache,
139
+ elements = this.elements,
140
+ text = options.content.text,
141
+ title = options.content.title,
142
+ button = options.content.button,
143
+ posOptions = options.position,
144
+ deferreds = [];
145
+
146
+ // Add ARIA attributes to target
147
+ $.attr(this.target[0], 'aria-describedby', this._id);
148
+
149
+ // Create public position object that tracks current position corners
150
+ cache.posClass = this._createPosClass(
151
+ (this.position = { my: posOptions.my, at: posOptions.at }).my
152
+ );
153
+
154
+ // Create tooltip element
155
+ this.tooltip = elements.tooltip = $('<div/>', {
156
+ 'id': this._id,
157
+ 'class': [ NAMESPACE, CLASS_DEFAULT, options.style.classes, cache.posClass ].join(' '),
158
+ 'width': options.style.width || '',
159
+ 'height': options.style.height || '',
160
+ 'tracking': posOptions.target === 'mouse' && posOptions.adjust.mouse,
161
+
162
+ /* ARIA specific attributes */
163
+ 'role': 'alert',
164
+ 'aria-live': 'polite',
165
+ 'aria-atomic': FALSE,
166
+ 'aria-describedby': this._id + '-content',
167
+ 'aria-hidden': TRUE
168
+ })
169
+ .toggleClass(CLASS_DISABLED, this.disabled)
170
+ .attr(ATTR_ID, this.id)
171
+ .data(NAMESPACE, this)
172
+ .appendTo(posOptions.container)
173
+ .append(
174
+ // Create content element
175
+ elements.content = $('<div />', {
176
+ 'class': NAMESPACE + '-content',
177
+ 'id': this._id + '-content',
178
+ 'aria-atomic': TRUE
179
+ })
180
+ );
181
+
182
+ // Set rendered flag and prevent redundant reposition calls for now
183
+ this.rendered = -1;
184
+ this.positioning = TRUE;
185
+
186
+ // Create title...
187
+ if(title) {
188
+ this._createTitle();
189
+
190
+ // Update title only if its not a callback (called in toggle if so)
191
+ if(!$.isFunction(title)) {
192
+ deferreds.push( this._updateTitle(title, FALSE) );
193
+ }
194
+ }
195
+
196
+ // Create button
197
+ if(button) { this._createButton(); }
198
+
199
+ // Set proper rendered flag and update content if not a callback function (called in toggle)
200
+ if(!$.isFunction(text)) {
201
+ deferreds.push( this._updateContent(text, FALSE) );
202
+ }
203
+ this.rendered = TRUE;
204
+
205
+ // Setup widget classes
206
+ this._setWidget();
207
+
208
+ // Initialize 'render' plugins
209
+ $.each(PLUGINS, function(name) {
210
+ var instance;
211
+ if(this.initialize === 'render' && (instance = this(self))) {
212
+ self.plugins[name] = instance;
213
+ }
214
+ });
215
+
216
+ // Unassign initial events and assign proper events
217
+ this._unassignEvents();
218
+ this._assignEvents();
219
+
220
+ // When deferreds have completed
221
+ this._when(deferreds).then(function() {
222
+ // tooltiprender event
223
+ self._trigger('render');
224
+
225
+ // Reset flags
226
+ self.positioning = FALSE;
227
+
228
+ // Show tooltip if not hidden during wait period
229
+ if(!self.hiddenDuringWait && (options.show.ready || show)) {
230
+ self.toggle(TRUE, cache.event, FALSE);
231
+ }
232
+ self.hiddenDuringWait = FALSE;
233
+ });
234
+
235
+ // Expose API
236
+ QTIP.api[this.id] = this;
237
+
238
+ return this;
239
+ };
240
+
241
+ PROTOTYPE.destroy = function(immediate) {
242
+ // Set flag the signify destroy is taking place to plugins
243
+ // and ensure it only gets destroyed once!
244
+ if(this.destroyed) { return this.target; }
245
+
246
+ function process() {
247
+ if(this.destroyed) { return; }
248
+ this.destroyed = TRUE;
249
+
250
+ var target = this.target,
251
+ title = target.attr(oldtitle),
252
+ timer;
253
+
254
+ // Destroy tooltip if rendered
255
+ if(this.rendered) {
256
+ this.tooltip.stop(1,0).find('*').remove().end().remove();
257
+ }
258
+
259
+ // Destroy all plugins
260
+ $.each(this.plugins, function() {
261
+ this.destroy && this.destroy();
262
+ });
263
+
264
+ // Clear timers
265
+ for (timer in this.timers) {
266
+ if (this.timers.hasOwnProperty(timer)) {
267
+ clearTimeout(this.timers[timer]);
268
+ }
269
+ }
270
+
271
+ // Remove api object and ARIA attributes
272
+ target.removeData(NAMESPACE)
273
+ .removeAttr(ATTR_ID)
274
+ .removeAttr(ATTR_HAS)
275
+ .removeAttr('aria-describedby');
276
+
277
+ // Reset old title attribute if removed
278
+ if(this.options.suppress && title) {
279
+ target.attr('title', title).removeAttr(oldtitle);
280
+ }
281
+
282
+ // Remove qTip events associated with this API
283
+ this._unassignEvents();
284
+
285
+ // Remove ID from used id objects, and delete object references
286
+ // for better garbage collection and leak protection
287
+ this.options = this.elements = this.cache = this.timers =
288
+ this.plugins = this.mouse = NULL;
289
+
290
+ // Delete epoxsed API object
291
+ delete QTIP.api[this.id];
292
+ }
293
+
294
+ // If an immediate destroy is needed
295
+ if((immediate !== TRUE || this.triggering === 'hide') && this.rendered) {
296
+ this.tooltip.one('tooltiphidden', $.proxy(process, this));
297
+ !this.triggering && this.hide();
298
+ }
299
+
300
+ // If we're not in the process of hiding... process
301
+ else { process.call(this); }
302
+
303
+ return this.target;
304
+ };
305
+ ;function invalidOpt(a) {
306
+ return a === NULL || $.type(a) !== 'object';
307
+ }
308
+
309
+ function invalidContent(c) {
310
+ return !($.isFunction(c) ||
311
+ c && c.attr ||
312
+ c.length ||
313
+ $.type(c) === 'object' && (c.jquery || c.then));
314
+ }
315
+
316
+ // Option object sanitizer
317
+ function sanitizeOptions(opts) {
318
+ var content, text, ajax, once;
319
+
320
+ if(invalidOpt(opts)) { return FALSE; }
321
+
322
+ if(invalidOpt(opts.metadata)) {
323
+ opts.metadata = { type: opts.metadata };
324
+ }
325
+
326
+ if('content' in opts) {
327
+ content = opts.content;
328
+
329
+ if(invalidOpt(content) || content.jquery || content.done) {
330
+ text = invalidContent(content) ? FALSE : content;
331
+ content = opts.content = {
332
+ text: text
333
+ };
334
+ }
335
+ else { text = content.text; }
336
+
337
+ // DEPRECATED - Old content.ajax plugin functionality
338
+ // Converts it into the proper Deferred syntax
339
+ if('ajax' in content) {
340
+ ajax = content.ajax;
341
+ once = ajax && ajax.once !== FALSE;
342
+ delete content.ajax;
343
+
344
+ content.text = function(event, api) {
345
+ var loading = text || $(this).attr(api.options.content.attr) || 'Loading...',
346
+
347
+ deferred = $.ajax(
348
+ $.extend({}, ajax, { context: api })
349
+ )
350
+ .then(ajax.success, NULL, ajax.error)
351
+ .then(function(newContent) {
352
+ if(newContent && once) { api.set('content.text', newContent); }
353
+ return newContent;
354
+ },
355
+ function(xhr, status, error) {
356
+ if(api.destroyed || xhr.status === 0) { return; }
357
+ api.set('content.text', status + ': ' + error);
358
+ });
359
+
360
+ return !once ? (api.set('content.text', loading), deferred) : loading;
361
+ };
362
+ }
363
+
364
+ if('title' in content) {
365
+ if($.isPlainObject(content.title)) {
366
+ content.button = content.title.button;
367
+ content.title = content.title.text;
368
+ }
369
+
370
+ if(invalidContent(content.title || FALSE)) {
371
+ content.title = FALSE;
372
+ }
373
+ }
374
+ }
375
+
376
+ if('position' in opts && invalidOpt(opts.position)) {
377
+ opts.position = { my: opts.position, at: opts.position };
378
+ }
379
+
380
+ if('show' in opts && invalidOpt(opts.show)) {
381
+ opts.show = opts.show.jquery ? { target: opts.show } :
382
+ opts.show === TRUE ? { ready: TRUE } : { event: opts.show };
383
+ }
384
+
385
+ if('hide' in opts && invalidOpt(opts.hide)) {
386
+ opts.hide = opts.hide.jquery ? { target: opts.hide } : { event: opts.hide };
387
+ }
388
+
389
+ if('style' in opts && invalidOpt(opts.style)) {
390
+ opts.style = { classes: opts.style };
391
+ }
392
+
393
+ // Sanitize plugin options
394
+ $.each(PLUGINS, function() {
395
+ this.sanitize && this.sanitize(opts);
396
+ });
397
+
398
+ return opts;
399
+ }
400
+
401
+ // Setup builtin .set() option checks
402
+ CHECKS = PROTOTYPE.checks = {
403
+ builtin: {
404
+ // Core checks
405
+ '^id$': function(obj, o, v, prev) {
406
+ var id = v === TRUE ? QTIP.nextid : v,
407
+ newId = NAMESPACE + '-' + id;
408
+
409
+ if(id !== FALSE && id.length > 0 && !$('#'+newId).length) {
410
+ this._id = newId;
411
+
412
+ if(this.rendered) {
413
+ this.tooltip[0].id = this._id;
414
+ this.elements.content[0].id = this._id + '-content';
415
+ this.elements.title[0].id = this._id + '-title';
416
+ }
417
+ }
418
+ else { obj[o] = prev; }
419
+ },
420
+ '^prerender': function(obj, o, v) {
421
+ v && !this.rendered && this.render(this.options.show.ready);
422
+ },
423
+
424
+ // Content checks
425
+ '^content.text$': function(obj, o, v) {
426
+ this._updateContent(v);
427
+ },
428
+ '^content.attr$': function(obj, o, v, prev) {
429
+ if(this.options.content.text === this.target.attr(prev)) {
430
+ this._updateContent( this.target.attr(v) );
431
+ }
432
+ },
433
+ '^content.title$': function(obj, o, v) {
434
+ // Remove title if content is null
435
+ if(!v) { return this._removeTitle(); }
436
+
437
+ // If title isn't already created, create it now and update
438
+ v && !this.elements.title && this._createTitle();
439
+ this._updateTitle(v);
440
+ },
441
+ '^content.button$': function(obj, o, v) {
442
+ this._updateButton(v);
443
+ },
444
+ '^content.title.(text|button)$': function(obj, o, v) {
445
+ this.set('content.'+o, v); // Backwards title.text/button compat
446
+ },
447
+
448
+ // Position checks
449
+ '^position.(my|at)$': function(obj, o, v){
450
+ if('string' === typeof v) {
451
+ this.position[o] = obj[o] = new CORNER(v, o === 'at');
452
+ }
453
+ },
454
+ '^position.container$': function(obj, o, v){
455
+ this.rendered && this.tooltip.appendTo(v);
456
+ },
457
+
458
+ // Show checks
459
+ '^show.ready$': function(obj, o, v) {
460
+ v && (!this.rendered && this.render(TRUE) || this.toggle(TRUE));
461
+ },
462
+
463
+ // Style checks
464
+ '^style.classes$': function(obj, o, v, p) {
465
+ this.rendered && this.tooltip.removeClass(p).addClass(v);
466
+ },
467
+ '^style.(width|height)': function(obj, o, v) {
468
+ this.rendered && this.tooltip.css(o, v);
469
+ },
470
+ '^style.widget|content.title': function() {
471
+ this.rendered && this._setWidget();
472
+ },
473
+ '^style.def': function(obj, o, v) {
474
+ this.rendered && this.tooltip.toggleClass(CLASS_DEFAULT, !!v);
475
+ },
476
+
477
+ // Events check
478
+ '^events.(render|show|move|hide|focus|blur)$': function(obj, o, v) {
479
+ this.rendered && this.tooltip[($.isFunction(v) ? '' : 'un') + 'bind']('tooltip'+o, v);
480
+ },
481
+
482
+ // Properties which require event reassignment
483
+ '^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)': function() {
484
+ if(!this.rendered) { return; }
485
+
486
+ // Set tracking flag
487
+ var posOptions = this.options.position;
488
+ this.tooltip.attr('tracking', posOptions.target === 'mouse' && posOptions.adjust.mouse);
489
+
490
+ // Reassign events
491
+ this._unassignEvents();
492
+ this._assignEvents();
493
+ }
494
+ }
495
+ };
496
+
497
+ // Dot notation converter
498
+ function convertNotation(options, notation) {
499
+ var i = 0, obj, option = options,
500
+
501
+ // Split notation into array
502
+ levels = notation.split('.');
503
+
504
+ // Loop through
505
+ while(option = option[ levels[i++] ]) {
506
+ if(i < levels.length) { obj = option; }
507
+ }
508
+
509
+ return [obj || options, levels.pop()];
510
+ }
511
+
512
+ PROTOTYPE.get = function(notation) {
513
+ if(this.destroyed) { return this; }
514
+
515
+ var o = convertNotation(this.options, notation.toLowerCase()),
516
+ result = o[0][ o[1] ];
517
+
518
+ return result.precedance ? result.string() : result;
519
+ };
520
+
521
+ function setCallback(notation, args) {
522
+ var category, rule, match;
523
+
524
+ for(category in this.checks) {
525
+ if (!this.checks.hasOwnProperty(category)) { continue; }
526
+
527
+ for(rule in this.checks[category]) {
528
+ if (!this.checks[category].hasOwnProperty(rule)) { continue; }
529
+
530
+ if(match = (new RegExp(rule, 'i')).exec(notation)) {
531
+ args.push(match);
532
+
533
+ if(category === 'builtin' || this.plugins[category]) {
534
+ this.checks[category][rule].apply(
535
+ this.plugins[category] || this, args
536
+ );
537
+ }
538
+ }
539
+ }
540
+ }
541
+ }
542
+
543
+ var rmove = /^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,
544
+ rrender = /^prerender|show\.ready/i;
545
+
546
+ PROTOTYPE.set = function(option, value) {
547
+ if(this.destroyed) { return this; }
548
+
549
+ var rendered = this.rendered,
550
+ reposition = FALSE,
551
+ options = this.options,
552
+ name;
553
+
554
+ // Convert singular option/value pair into object form
555
+ if('string' === typeof option) {
556
+ name = option; option = {}; option[name] = value;
557
+ }
558
+ else { option = $.extend({}, option); }
559
+
560
+ // Set all of the defined options to their new values
561
+ $.each(option, function(notation, val) {
562
+ if(rendered && rrender.test(notation)) {
563
+ delete option[notation]; return;
564
+ }
565
+
566
+ // Set new obj value
567
+ var obj = convertNotation(options, notation.toLowerCase()), previous;
568
+ previous = obj[0][ obj[1] ];
569
+ obj[0][ obj[1] ] = val && val.nodeType ? $(val) : val;
570
+
571
+ // Also check if we need to reposition
572
+ reposition = rmove.test(notation) || reposition;
573
+
574
+ // Set the new params for the callback
575
+ option[notation] = [obj[0], obj[1], val, previous];
576
+ });
577
+
578
+ // Re-sanitize options
579
+ sanitizeOptions(options);
580
+
581
+ /*
582
+ * Execute any valid callbacks for the set options
583
+ * Also set positioning flag so we don't get loads of redundant repositioning calls.
584
+ */
585
+ this.positioning = TRUE;
586
+ $.each(option, $.proxy(setCallback, this));
587
+ this.positioning = FALSE;
588
+
589
+ // Update position if needed
590
+ if(this.rendered && this.tooltip[0].offsetWidth > 0 && reposition) {
591
+ this.reposition( options.position.target === 'mouse' ? NULL : this.cache.event );
592
+ }
593
+
594
+ return this;
595
+ };
596
+ ;PROTOTYPE._update = function(content, element) {
597
+ var self = this,
598
+ cache = this.cache;
599
+
600
+ // Make sure tooltip is rendered and content is defined. If not return
601
+ if(!this.rendered || !content) { return FALSE; }
602
+
603
+ // Use function to parse content
604
+ if($.isFunction(content)) {
605
+ content = content.call(this.elements.target, cache.event, this) || '';
606
+ }
607
+
608
+ // Handle deferred content
609
+ if($.isFunction(content.then)) {
610
+ cache.waiting = TRUE;
611
+ return content.then(function(c) {
612
+ cache.waiting = FALSE;
613
+ return self._update(c, element);
614
+ }, NULL, function(e) {
615
+ return self._update(e, element);
616
+ });
617
+ }
618
+
619
+ // If content is null... return false
620
+ if(content === FALSE || !content && content !== '') { return FALSE; }
621
+
622
+ // Append new content if its a DOM array and show it if hidden
623
+ if(content.jquery && content.length > 0) {
624
+ element.empty().append(
625
+ content.css({ display: 'block', visibility: 'visible' })
626
+ );
627
+ }
628
+
629
+ // Content is a regular string, insert the new content
630
+ else { element.html(content); }
631
+
632
+ // Wait for content to be loaded, and reposition
633
+ return this._waitForContent(element).then(function(images) {
634
+ if(self.rendered && self.tooltip[0].offsetWidth > 0) {
635
+ self.reposition(cache.event, !images.length);
636
+ }
637
+ });
638
+ };
639
+
640
+ PROTOTYPE._waitForContent = function(element) {
641
+ var cache = this.cache;
642
+
643
+ // Set flag
644
+ cache.waiting = TRUE;
645
+
646
+ // If imagesLoaded is included, ensure images have loaded and return promise
647
+ return ( $.fn.imagesLoaded ? element.imagesLoaded() : new $.Deferred().resolve([]) )
648
+ .done(function() { cache.waiting = FALSE; })
649
+ .promise();
650
+ };
651
+
652
+ PROTOTYPE._updateContent = function(content, reposition) {
653
+ this._update(content, this.elements.content, reposition);
654
+ };
655
+
656
+ PROTOTYPE._updateTitle = function(content, reposition) {
657
+ if(this._update(content, this.elements.title, reposition) === FALSE) {
658
+ this._removeTitle(FALSE);
659
+ }
660
+ };
661
+
662
+ PROTOTYPE._createTitle = function()
663
+ {
664
+ var elements = this.elements,
665
+ id = this._id+'-title';
666
+
667
+ // Destroy previous title element, if present
668
+ if(elements.titlebar) { this._removeTitle(); }
669
+
670
+ // Create title bar and title elements
671
+ elements.titlebar = $('<div />', {
672
+ 'class': NAMESPACE + '-titlebar ' + (this.options.style.widget ? createWidgetClass('header') : '')
673
+ })
674
+ .append(
675
+ elements.title = $('<div />', {
676
+ 'id': id,
677
+ 'class': NAMESPACE + '-title',
678
+ 'aria-atomic': TRUE
679
+ })
680
+ )
681
+ .insertBefore(elements.content)
682
+
683
+ // Button-specific events
684
+ .delegate('.qtip-close', 'mousedown keydown mouseup keyup mouseout', function(event) {
685
+ $(this).toggleClass('ui-state-active ui-state-focus', event.type.substr(-4) === 'down');
686
+ })
687
+ .delegate('.qtip-close', 'mouseover mouseout', function(event){
688
+ $(this).toggleClass('ui-state-hover', event.type === 'mouseover');
689
+ });
690
+
691
+ // Create button if enabled
692
+ if(this.options.content.button) { this._createButton(); }
693
+ };
694
+
695
+ PROTOTYPE._removeTitle = function(reposition)
696
+ {
697
+ var elements = this.elements;
698
+
699
+ if(elements.title) {
700
+ elements.titlebar.remove();
701
+ elements.titlebar = elements.title = elements.button = NULL;
702
+
703
+ // Reposition if enabled
704
+ if(reposition !== FALSE) { this.reposition(); }
705
+ }
706
+ };
707
+ ;PROTOTYPE._createPosClass = function(my) {
708
+ return NAMESPACE + '-pos-' + (my || this.options.position.my).abbrev();
709
+ };
710
+
711
+ PROTOTYPE.reposition = function(event, effect) {
712
+ if(!this.rendered || this.positioning || this.destroyed) { return this; }
713
+
714
+ // Set positioning flag
715
+ this.positioning = TRUE;
716
+
717
+ var cache = this.cache,
718
+ tooltip = this.tooltip,
719
+ posOptions = this.options.position,
720
+ target = posOptions.target,
721
+ my = posOptions.my,
722
+ at = posOptions.at,
723
+ viewport = posOptions.viewport,
724
+ container = posOptions.container,
725
+ adjust = posOptions.adjust,
726
+ method = adjust.method.split(' '),
727
+ tooltipWidth = tooltip.outerWidth(FALSE),
728
+ tooltipHeight = tooltip.outerHeight(FALSE),
729
+ targetWidth = 0,
730
+ targetHeight = 0,
731
+ type = tooltip.css('position'),
732
+ position = { left: 0, top: 0 },
733
+ visible = tooltip[0].offsetWidth > 0,
734
+ isScroll = event && event.type === 'scroll',
735
+ win = $(window),
736
+ doc = container[0].ownerDocument,
737
+ mouse = this.mouse,
738
+ pluginCalculations, offset, adjusted, newClass;
739
+
740
+ // Check if absolute position was passed
741
+ if($.isArray(target) && target.length === 2) {
742
+ // Force left top and set position
743
+ at = { x: LEFT, y: TOP };
744
+ position = { left: target[0], top: target[1] };
745
+ }
746
+
747
+ // Check if mouse was the target
748
+ else if(target === 'mouse') {
749
+ // Force left top to allow flipping
750
+ at = { x: LEFT, y: TOP };
751
+
752
+ // Use the mouse origin that caused the show event, if distance hiding is enabled
753
+ if((!adjust.mouse || this.options.hide.distance) && cache.origin && cache.origin.pageX) {
754
+ event = cache.origin;
755
+ }
756
+
757
+ // Use cached event for resize/scroll events
758
+ else if(!event || event && (event.type === 'resize' || event.type === 'scroll')) {
759
+ event = cache.event;
760
+ }
761
+
762
+ // Otherwise, use the cached mouse coordinates if available
763
+ else if(mouse && mouse.pageX) {
764
+ event = mouse;
765
+ }
766
+
767
+ // Calculate body and container offset and take them into account below
768
+ if(type !== 'static') { position = container.offset(); }
769
+ if(doc.body.offsetWidth !== (window.innerWidth || doc.documentElement.clientWidth)) {
770
+ offset = $(document.body).offset();
771
+ }
772
+
773
+ // Use event coordinates for position
774
+ position = {
775
+ left: event.pageX - position.left + (offset && offset.left || 0),
776
+ top: event.pageY - position.top + (offset && offset.top || 0)
777
+ };
778
+
779
+ // Scroll events are a pain, some browsers
780
+ if(adjust.mouse && isScroll && mouse) {
781
+ position.left -= (mouse.scrollX || 0) - win.scrollLeft();
782
+ position.top -= (mouse.scrollY || 0) - win.scrollTop();
783
+ }
784
+ }
785
+
786
+ // Target wasn't mouse or absolute...
787
+ else {
788
+ // Check if event targetting is being used
789
+ if(target === 'event') {
790
+ if(event && event.target && event.type !== 'scroll' && event.type !== 'resize') {
791
+ cache.target = $(event.target);
792
+ }
793
+ else if(!event.target) {
794
+ cache.target = this.elements.target;
795
+ }
796
+ }
797
+ else if(target !== 'event'){
798
+ cache.target = $(target.jquery ? target : this.elements.target);
799
+ }
800
+ target = cache.target;
801
+
802
+ // Parse the target into a jQuery object and make sure there's an element present
803
+ target = $(target).eq(0);
804
+ if(target.length === 0) { return this; }
805
+
806
+ // Check if window or document is the target
807
+ else if(target[0] === document || target[0] === window) {
808
+ targetWidth = BROWSER.iOS ? window.innerWidth : target.width();
809
+ targetHeight = BROWSER.iOS ? window.innerHeight : target.height();
810
+
811
+ if(target[0] === window) {
812
+ position = {
813
+ top: (viewport || target).scrollTop(),
814
+ left: (viewport || target).scrollLeft()
815
+ };
816
+ }
817
+ }
818
+
819
+ // Check if the target is an <AREA> element
820
+ else if(PLUGINS.imagemap && target.is('area')) {
821
+ pluginCalculations = PLUGINS.imagemap(this, target, at, PLUGINS.viewport ? method : FALSE);
822
+ }
823
+
824
+ // Check if the target is an SVG element
825
+ else if(PLUGINS.svg && target && target[0].ownerSVGElement) {
826
+ pluginCalculations = PLUGINS.svg(this, target, at, PLUGINS.viewport ? method : FALSE);
827
+ }
828
+
829
+ // Otherwise use regular jQuery methods
830
+ else {
831
+ targetWidth = target.outerWidth(FALSE);
832
+ targetHeight = target.outerHeight(FALSE);
833
+ position = target.offset();
834
+ }
835
+
836
+ // Parse returned plugin values into proper variables
837
+ if(pluginCalculations) {
838
+ targetWidth = pluginCalculations.width;
839
+ targetHeight = pluginCalculations.height;
840
+ offset = pluginCalculations.offset;
841
+ position = pluginCalculations.position;
842
+ }
843
+
844
+ // Adjust position to take into account offset parents
845
+ position = this.reposition.offset(target, position, container);
846
+
847
+ // Adjust for position.fixed tooltips (and also iOS scroll bug in v3.2-4.0 & v4.3-4.3.2)
848
+ if(BROWSER.iOS > 3.1 && BROWSER.iOS < 4.1 ||
849
+ BROWSER.iOS >= 4.3 && BROWSER.iOS < 4.33 ||
850
+ !BROWSER.iOS && type === 'fixed'
851
+ ){
852
+ position.left -= win.scrollLeft();
853
+ position.top -= win.scrollTop();
854
+ }
855
+
856
+ // Adjust position relative to target
857
+ if(!pluginCalculations || pluginCalculations && pluginCalculations.adjustable !== FALSE) {
858
+ position.left += at.x === RIGHT ? targetWidth : at.x === CENTER ? targetWidth / 2 : 0;
859
+ position.top += at.y === BOTTOM ? targetHeight : at.y === CENTER ? targetHeight / 2 : 0;
860
+ }
861
+ }
862
+
863
+ // Adjust position relative to tooltip
864
+ position.left += adjust.x + (my.x === RIGHT ? -tooltipWidth : my.x === CENTER ? -tooltipWidth / 2 : 0);
865
+ position.top += adjust.y + (my.y === BOTTOM ? -tooltipHeight : my.y === CENTER ? -tooltipHeight / 2 : 0);
866
+
867
+ // Use viewport adjustment plugin if enabled
868
+ if(PLUGINS.viewport) {
869
+ adjusted = position.adjusted = PLUGINS.viewport(
870
+ this, position, posOptions, targetWidth, targetHeight, tooltipWidth, tooltipHeight
871
+ );
872
+
873
+ // Apply offsets supplied by positioning plugin (if used)
874
+ if(offset && adjusted.left) { position.left += offset.left; }
875
+ if(offset && adjusted.top) { position.top += offset.top; }
876
+
877
+ // Apply any new 'my' position
878
+ if(adjusted.my) { this.position.my = adjusted.my; }
879
+ }
880
+
881
+ // Viewport adjustment is disabled, set values to zero
882
+ else { position.adjusted = { left: 0, top: 0 }; }
883
+
884
+ // Set tooltip position class if it's changed
885
+ if(cache.posClass !== (newClass = this._createPosClass(this.position.my))) {
886
+ cache.posClass = newClass;
887
+ tooltip.removeClass(cache.posClass).addClass(newClass);
888
+ }
889
+
890
+ // tooltipmove event
891
+ if(!this._trigger('move', [position, viewport.elem || viewport], event)) { return this; }
892
+ delete position.adjusted;
893
+
894
+ // If effect is disabled, target it mouse, no animation is defined or positioning gives NaN out, set CSS directly
895
+ if(effect === FALSE || !visible || isNaN(position.left) || isNaN(position.top) || target === 'mouse' || !$.isFunction(posOptions.effect)) {
896
+ tooltip.css(position);
897
+ }
898
+
899
+ // Use custom function if provided
900
+ else if($.isFunction(posOptions.effect)) {
901
+ posOptions.effect.call(tooltip, this, $.extend({}, position));
902
+ tooltip.queue(function(next) {
903
+ // Reset attributes to avoid cross-browser rendering bugs
904
+ $(this).css({ opacity: '', height: '' });
905
+ if(BROWSER.ie) { this.style.removeAttribute('filter'); }
906
+
907
+ next();
908
+ });
909
+ }
910
+
911
+ // Set positioning flag
912
+ this.positioning = FALSE;
913
+
914
+ return this;
915
+ };
916
+
917
+ // Custom (more correct for qTip!) offset calculator
918
+ PROTOTYPE.reposition.offset = function(elem, pos, container) {
919
+ if(!container[0]) { return pos; }
920
+
921
+ var ownerDocument = $(elem[0].ownerDocument),
922
+ quirks = !!BROWSER.ie && document.compatMode !== 'CSS1Compat',
923
+ parent = container[0],
924
+ scrolled, position, parentOffset, overflow;
925
+
926
+ function scroll(e, i) {
927
+ pos.left += i * e.scrollLeft();
928
+ pos.top += i * e.scrollTop();
929
+ }
930
+
931
+ // Compensate for non-static containers offset
932
+ do {
933
+ if((position = $.css(parent, 'position')) !== 'static') {
934
+ if(position === 'fixed') {
935
+ parentOffset = parent.getBoundingClientRect();
936
+ scroll(ownerDocument, -1);
937
+ }
938
+ else {
939
+ parentOffset = $(parent).position();
940
+ parentOffset.left += parseFloat($.css(parent, 'borderLeftWidth')) || 0;
941
+ parentOffset.top += parseFloat($.css(parent, 'borderTopWidth')) || 0;
942
+ }
943
+
944
+ pos.left -= parentOffset.left + (parseFloat($.css(parent, 'marginLeft')) || 0);
945
+ pos.top -= parentOffset.top + (parseFloat($.css(parent, 'marginTop')) || 0);
946
+
947
+ // If this is the first parent element with an overflow of "scroll" or "auto", store it
948
+ if(!scrolled && (overflow = $.css(parent, 'overflow')) !== 'hidden' && overflow !== 'visible') { scrolled = $(parent); }
949
+ }
950
+ }
951
+ while(parent = parent.offsetParent);
952
+
953
+ // Compensate for containers scroll if it also has an offsetParent (or in IE quirks mode)
954
+ if(scrolled && (scrolled[0] !== ownerDocument[0] || quirks)) {
955
+ scroll(scrolled, 1);
956
+ }
957
+
958
+ return pos;
959
+ };
960
+
961
+ // Corner class
962
+ var C = (CORNER = PROTOTYPE.reposition.Corner = function(corner, forceY) {
963
+ corner = ('' + corner).replace(/([A-Z])/, ' $1').replace(/middle/gi, CENTER).toLowerCase();
964
+ this.x = (corner.match(/left|right/i) || corner.match(/center/) || ['inherit'])[0].toLowerCase();
965
+ this.y = (corner.match(/top|bottom|center/i) || ['inherit'])[0].toLowerCase();
966
+ this.forceY = !!forceY;
967
+
968
+ var f = corner.charAt(0);
969
+ this.precedance = f === 't' || f === 'b' ? Y : X;
970
+ }).prototype;
971
+
972
+ C.invert = function(z, center) {
973
+ this[z] = this[z] === LEFT ? RIGHT : this[z] === RIGHT ? LEFT : center || this[z];
974
+ };
975
+
976
+ C.string = function(join) {
977
+ var x = this.x, y = this.y;
978
+
979
+ var result = x !== y ?
980
+ x === 'center' || y !== 'center' && (this.precedance === Y || this.forceY) ?
981
+ [y,x] :
982
+ [x,y] :
983
+ [x];
984
+
985
+ return join !== false ? result.join(' ') : result;
986
+ };
987
+
988
+ C.abbrev = function() {
989
+ var result = this.string(false);
990
+ return result[0].charAt(0) + (result[1] && result[1].charAt(0) || '');
991
+ };
992
+
993
+ C.clone = function() {
994
+ return new CORNER( this.string(), this.forceY );
995
+ };
996
+
997
+ ;
998
+ PROTOTYPE.toggle = function(state, event) {
999
+ var cache = this.cache,
1000
+ options = this.options,
1001
+ tooltip = this.tooltip;
1002
+
1003
+ // Try to prevent flickering when tooltip overlaps show element
1004
+ if(event) {
1005
+ if((/over|enter/).test(event.type) && cache.event && (/out|leave/).test(cache.event.type) &&
1006
+ options.show.target.add(event.target).length === options.show.target.length &&
1007
+ tooltip.has(event.relatedTarget).length) {
1008
+ return this;
1009
+ }
1010
+
1011
+ // Cache event
1012
+ cache.event = $.event.fix(event);
1013
+ }
1014
+
1015
+ // If we're currently waiting and we've just hidden... stop it
1016
+ this.waiting && !state && (this.hiddenDuringWait = TRUE);
1017
+
1018
+ // Render the tooltip if showing and it isn't already
1019
+ if(!this.rendered) { return state ? this.render(1) : this; }
1020
+ else if(this.destroyed || this.disabled) { return this; }
1021
+
1022
+ var type = state ? 'show' : 'hide',
1023
+ opts = this.options[type],
1024
+ posOptions = this.options.position,
1025
+ contentOptions = this.options.content,
1026
+ width = this.tooltip.css('width'),
1027
+ visible = this.tooltip.is(':visible'),
1028
+ animate = state || opts.target.length === 1,
1029
+ sameTarget = !event || opts.target.length < 2 || cache.target[0] === event.target,
1030
+ identicalState, allow, after;
1031
+
1032
+ // Detect state if valid one isn't provided
1033
+ if((typeof state).search('boolean|number')) { state = !visible; }
1034
+
1035
+ // Check if the tooltip is in an identical state to the new would-be state
1036
+ identicalState = !tooltip.is(':animated') && visible === state && sameTarget;
1037
+
1038
+ // Fire tooltip(show/hide) event and check if destroyed
1039
+ allow = !identicalState ? !!this._trigger(type, [90]) : NULL;
1040
+
1041
+ // Check to make sure the tooltip wasn't destroyed in the callback
1042
+ if(this.destroyed) { return this; }
1043
+
1044
+ // If the user didn't stop the method prematurely and we're showing the tooltip, focus it
1045
+ if(allow !== FALSE && state) { this.focus(event); }
1046
+
1047
+ // If the state hasn't changed or the user stopped it, return early
1048
+ if(!allow || identicalState) { return this; }
1049
+
1050
+ // Set ARIA hidden attribute
1051
+ $.attr(tooltip[0], 'aria-hidden', !!!state);
1052
+
1053
+ // Execute state specific properties
1054
+ if(state) {
1055
+ // Store show origin coordinates
1056
+ this.mouse && (cache.origin = $.event.fix(this.mouse));
1057
+
1058
+ // Update tooltip content & title if it's a dynamic function
1059
+ if($.isFunction(contentOptions.text)) { this._updateContent(contentOptions.text, FALSE); }
1060
+ if($.isFunction(contentOptions.title)) { this._updateTitle(contentOptions.title, FALSE); }
1061
+
1062
+ // Cache mousemove events for positioning purposes (if not already tracking)
1063
+ if(!trackingBound && posOptions.target === 'mouse' && posOptions.adjust.mouse) {
1064
+ $(document).bind('mousemove.'+NAMESPACE, this._storeMouse);
1065
+ trackingBound = TRUE;
1066
+ }
1067
+
1068
+ // Update the tooltip position (set width first to prevent viewport/max-width issues)
1069
+ if(!width) { tooltip.css('width', tooltip.outerWidth(FALSE)); }
1070
+ this.reposition(event, arguments[2]);
1071
+ if(!width) { tooltip.css('width', ''); }
1072
+
1073
+ // Hide other tooltips if tooltip is solo
1074
+ if(!!opts.solo) {
1075
+ (typeof opts.solo === 'string' ? $(opts.solo) : $(SELECTOR, opts.solo))
1076
+ .not(tooltip).not(opts.target).qtip('hide', new $.Event('tooltipsolo'));
1077
+ }
1078
+ }
1079
+ else {
1080
+ // Clear show timer if we're hiding
1081
+ clearTimeout(this.timers.show);
1082
+
1083
+ // Remove cached origin on hide
1084
+ delete cache.origin;
1085
+
1086
+ // Remove mouse tracking event if not needed (all tracking qTips are hidden)
1087
+ if(trackingBound && !$(SELECTOR+'[tracking="true"]:visible', opts.solo).not(tooltip).length) {
1088
+ $(document).unbind('mousemove.'+NAMESPACE);
1089
+ trackingBound = FALSE;
1090
+ }
1091
+
1092
+ // Blur the tooltip
1093
+ this.blur(event);
1094
+ }
1095
+
1096
+ // Define post-animation, state specific properties
1097
+ after = $.proxy(function() {
1098
+ if(state) {
1099
+ // Prevent antialias from disappearing in IE by removing filter
1100
+ if(BROWSER.ie) { tooltip[0].style.removeAttribute('filter'); }
1101
+
1102
+ // Remove overflow setting to prevent tip bugs
1103
+ tooltip.css('overflow', '');
1104
+
1105
+ // Autofocus elements if enabled
1106
+ if('string' === typeof opts.autofocus) {
1107
+ $(this.options.show.autofocus, tooltip).focus();
1108
+ }
1109
+
1110
+ // If set, hide tooltip when inactive for delay period
1111
+ this.options.show.target.trigger('qtip-'+this.id+'-inactive');
1112
+ }
1113
+ else {
1114
+ // Reset CSS states
1115
+ tooltip.css({
1116
+ display: '',
1117
+ visibility: '',
1118
+ opacity: '',
1119
+ left: '',
1120
+ top: ''
1121
+ });
1122
+ }
1123
+
1124
+ // tooltipvisible/tooltiphidden events
1125
+ this._trigger(state ? 'visible' : 'hidden');
1126
+ }, this);
1127
+
1128
+ // If no effect type is supplied, use a simple toggle
1129
+ if(opts.effect === FALSE || animate === FALSE) {
1130
+ tooltip[ type ]();
1131
+ after();
1132
+ }
1133
+
1134
+ // Use custom function if provided
1135
+ else if($.isFunction(opts.effect)) {
1136
+ tooltip.stop(1, 1);
1137
+ opts.effect.call(tooltip, this);
1138
+ tooltip.queue('fx', function(n) {
1139
+ after(); n();
1140
+ });
1141
+ }
1142
+
1143
+ // Use basic fade function by default
1144
+ else { tooltip.fadeTo(90, state ? 1 : 0, after); }
1145
+
1146
+ // If inactive hide method is set, active it
1147
+ if(state) { opts.target.trigger('qtip-'+this.id+'-inactive'); }
1148
+
1149
+ return this;
1150
+ };
1151
+
1152
+ PROTOTYPE.show = function(event) { return this.toggle(TRUE, event); };
1153
+
1154
+ PROTOTYPE.hide = function(event) { return this.toggle(FALSE, event); };
1155
+ ;PROTOTYPE.focus = function(event) {
1156
+ if(!this.rendered || this.destroyed) { return this; }
1157
+
1158
+ var qtips = $(SELECTOR),
1159
+ tooltip = this.tooltip,
1160
+ curIndex = parseInt(tooltip[0].style.zIndex, 10),
1161
+ newIndex = QTIP.zindex + qtips.length;
1162
+
1163
+ // Only update the z-index if it has changed and tooltip is not already focused
1164
+ if(!tooltip.hasClass(CLASS_FOCUS)) {
1165
+ // tooltipfocus event
1166
+ if(this._trigger('focus', [newIndex], event)) {
1167
+ // Only update z-index's if they've changed
1168
+ if(curIndex !== newIndex) {
1169
+ // Reduce our z-index's and keep them properly ordered
1170
+ qtips.each(function() {
1171
+ if(this.style.zIndex > curIndex) {
1172
+ this.style.zIndex = this.style.zIndex - 1;
1173
+ }
1174
+ });
1175
+
1176
+ // Fire blur event for focused tooltip
1177
+ qtips.filter('.' + CLASS_FOCUS).qtip('blur', event);
1178
+ }
1179
+
1180
+ // Set the new z-index
1181
+ tooltip.addClass(CLASS_FOCUS)[0].style.zIndex = newIndex;
1182
+ }
1183
+ }
1184
+
1185
+ return this;
1186
+ };
1187
+
1188
+ PROTOTYPE.blur = function(event) {
1189
+ if(!this.rendered || this.destroyed) { return this; }
1190
+
1191
+ // Set focused status to FALSE
1192
+ this.tooltip.removeClass(CLASS_FOCUS);
1193
+
1194
+ // tooltipblur event
1195
+ this._trigger('blur', [ this.tooltip.css('zIndex') ], event);
1196
+
1197
+ return this;
1198
+ };
1199
+ ;PROTOTYPE.disable = function(state) {
1200
+ if(this.destroyed) { return this; }
1201
+
1202
+ // If 'toggle' is passed, toggle the current state
1203
+ if(state === 'toggle') {
1204
+ state = !(this.rendered ? this.tooltip.hasClass(CLASS_DISABLED) : this.disabled);
1205
+ }
1206
+
1207
+ // Disable if no state passed
1208
+ else if('boolean' !== typeof state) {
1209
+ state = TRUE;
1210
+ }
1211
+
1212
+ if(this.rendered) {
1213
+ this.tooltip.toggleClass(CLASS_DISABLED, state)
1214
+ .attr('aria-disabled', state);
1215
+ }
1216
+
1217
+ this.disabled = !!state;
1218
+
1219
+ return this;
1220
+ };
1221
+
1222
+ PROTOTYPE.enable = function() { return this.disable(FALSE); };
1223
+ ;PROTOTYPE._createButton = function()
1224
+ {
1225
+ var self = this,
1226
+ elements = this.elements,
1227
+ tooltip = elements.tooltip,
1228
+ button = this.options.content.button,
1229
+ isString = typeof button === 'string',
1230
+ close = isString ? button : 'Close tooltip';
1231
+
1232
+ if(elements.button) { elements.button.remove(); }
1233
+
1234
+ // Use custom button if one was supplied by user, else use default
1235
+ if(button.jquery) {
1236
+ elements.button = button;
1237
+ }
1238
+ else {
1239
+ elements.button = $('<a />', {
1240
+ 'class': 'qtip-close ' + (this.options.style.widget ? '' : NAMESPACE+'-icon'),
1241
+ 'title': close,
1242
+ 'aria-label': close
1243
+ })
1244
+ .prepend(
1245
+ $('<span />', {
1246
+ 'class': 'ui-icon ui-icon-close',
1247
+ 'html': '&times;'
1248
+ })
1249
+ );
1250
+ }
1251
+
1252
+ // Create button and setup attributes
1253
+ elements.button.appendTo(elements.titlebar || tooltip)
1254
+ .attr('role', 'button')
1255
+ .click(function(event) {
1256
+ if(!tooltip.hasClass(CLASS_DISABLED)) { self.hide(event); }
1257
+ return FALSE;
1258
+ });
1259
+ };
1260
+
1261
+ PROTOTYPE._updateButton = function(button)
1262
+ {
1263
+ // Make sure tooltip is rendered and if not, return
1264
+ if(!this.rendered) { return FALSE; }
1265
+
1266
+ var elem = this.elements.button;
1267
+ if(button) { this._createButton(); }
1268
+ else { elem.remove(); }
1269
+ };
1270
+ ;// Widget class creator
1271
+ function createWidgetClass(cls) {
1272
+ return WIDGET.concat('').join(cls ? '-'+cls+' ' : ' ');
1273
+ }
1274
+
1275
+ // Widget class setter method
1276
+ PROTOTYPE._setWidget = function()
1277
+ {
1278
+ var on = this.options.style.widget,
1279
+ elements = this.elements,
1280
+ tooltip = elements.tooltip,
1281
+ disabled = tooltip.hasClass(CLASS_DISABLED);
1282
+
1283
+ tooltip.removeClass(CLASS_DISABLED);
1284
+ CLASS_DISABLED = on ? 'ui-state-disabled' : 'qtip-disabled';
1285
+ tooltip.toggleClass(CLASS_DISABLED, disabled);
1286
+
1287
+ tooltip.toggleClass('ui-helper-reset '+createWidgetClass(), on).toggleClass(CLASS_DEFAULT, this.options.style.def && !on);
1288
+
1289
+ if(elements.content) {
1290
+ elements.content.toggleClass( createWidgetClass('content'), on);
1291
+ }
1292
+ if(elements.titlebar) {
1293
+ elements.titlebar.toggleClass( createWidgetClass('header'), on);
1294
+ }
1295
+ if(elements.button) {
1296
+ elements.button.toggleClass(NAMESPACE+'-icon', !on);
1297
+ }
1298
+ };
1299
+ ;function delay(callback, duration) {
1300
+ // If tooltip has displayed, start hide timer
1301
+ if(duration > 0) {
1302
+ return setTimeout(
1303
+ $.proxy(callback, this), duration
1304
+ );
1305
+ }
1306
+ else{ callback.call(this); }
1307
+ }
1308
+
1309
+ function showMethod(event) {
1310
+ if(this.tooltip.hasClass(CLASS_DISABLED)) { return; }
1311
+
1312
+ // Clear hide timers
1313
+ clearTimeout(this.timers.show);
1314
+ clearTimeout(this.timers.hide);
1315
+
1316
+ // Start show timer
1317
+ this.timers.show = delay.call(this,
1318
+ function() { this.toggle(TRUE, event); },
1319
+ this.options.show.delay
1320
+ );
1321
+ }
1322
+
1323
+ function hideMethod(event) {
1324
+ if(this.tooltip.hasClass(CLASS_DISABLED) || this.destroyed) { return; }
1325
+
1326
+ // Check if new target was actually the tooltip element
1327
+ var relatedTarget = $(event.relatedTarget),
1328
+ ontoTooltip = relatedTarget.closest(SELECTOR)[0] === this.tooltip[0],
1329
+ ontoTarget = relatedTarget[0] === this.options.show.target[0];
1330
+
1331
+ // Clear timers and stop animation queue
1332
+ clearTimeout(this.timers.show);
1333
+ clearTimeout(this.timers.hide);
1334
+
1335
+ // Prevent hiding if tooltip is fixed and event target is the tooltip.
1336
+ // Or if mouse positioning is enabled and cursor momentarily overlaps
1337
+ if(this !== relatedTarget[0] &&
1338
+ (this.options.position.target === 'mouse' && ontoTooltip) ||
1339
+ this.options.hide.fixed && (
1340
+ (/mouse(out|leave|move)/).test(event.type) && (ontoTooltip || ontoTarget))
1341
+ )
1342
+ {
1343
+ /* eslint-disable no-empty */
1344
+ try {
1345
+ event.preventDefault();
1346
+ event.stopImmediatePropagation();
1347
+ } catch(e) {}
1348
+ /* eslint-enable no-empty */
1349
+
1350
+ return;
1351
+ }
1352
+
1353
+ // If tooltip has displayed, start hide timer
1354
+ this.timers.hide = delay.call(this,
1355
+ function() { this.toggle(FALSE, event); },
1356
+ this.options.hide.delay,
1357
+ this
1358
+ );
1359
+ }
1360
+
1361
+ function inactiveMethod(event) {
1362
+ if(this.tooltip.hasClass(CLASS_DISABLED) || !this.options.hide.inactive) { return; }
1363
+
1364
+ // Clear timer
1365
+ clearTimeout(this.timers.inactive);
1366
+
1367
+ this.timers.inactive = delay.call(this,
1368
+ function(){ this.hide(event); },
1369
+ this.options.hide.inactive
1370
+ );
1371
+ }
1372
+
1373
+ function repositionMethod(event) {
1374
+ if(this.rendered && this.tooltip[0].offsetWidth > 0) { this.reposition(event); }
1375
+ }
1376
+
1377
+ // Store mouse coordinates
1378
+ PROTOTYPE._storeMouse = function(event) {
1379
+ (this.mouse = $.event.fix(event)).type = 'mousemove';
1380
+ return this;
1381
+ };
1382
+
1383
+ // Bind events
1384
+ PROTOTYPE._bind = function(targets, events, method, suffix, context) {
1385
+ if(!targets || !method || !events.length) { return; }
1386
+ var ns = '.' + this._id + (suffix ? '-'+suffix : '');
1387
+ $(targets).bind(
1388
+ (events.split ? events : events.join(ns + ' ')) + ns,
1389
+ $.proxy(method, context || this)
1390
+ );
1391
+ return this;
1392
+ };
1393
+ PROTOTYPE._unbind = function(targets, suffix) {
1394
+ targets && $(targets).unbind('.' + this._id + (suffix ? '-'+suffix : ''));
1395
+ return this;
1396
+ };
1397
+
1398
+ // Global delegation helper
1399
+ function delegate(selector, events, method) {
1400
+ $(document.body).delegate(selector,
1401
+ (events.split ? events : events.join('.'+NAMESPACE + ' ')) + '.'+NAMESPACE,
1402
+ function() {
1403
+ var api = QTIP.api[ $.attr(this, ATTR_ID) ];
1404
+ api && !api.disabled && method.apply(api, arguments);
1405
+ }
1406
+ );
1407
+ }
1408
+ // Event trigger
1409
+ PROTOTYPE._trigger = function(type, args, event) {
1410
+ var callback = new $.Event('tooltip'+type);
1411
+ callback.originalEvent = event && $.extend({}, event) || this.cache.event || NULL;
1412
+
1413
+ this.triggering = type;
1414
+ this.tooltip.trigger(callback, [this].concat(args || []));
1415
+ this.triggering = FALSE;
1416
+
1417
+ return !callback.isDefaultPrevented();
1418
+ };
1419
+
1420
+ PROTOTYPE._bindEvents = function(showEvents, hideEvents, showTargets, hideTargets, showCallback, hideCallback) {
1421
+ // Get tasrgets that lye within both
1422
+ var similarTargets = showTargets.filter( hideTargets ).add( hideTargets.filter(showTargets) ),
1423
+ toggleEvents = [];
1424
+
1425
+ // If hide and show targets are the same...
1426
+ if(similarTargets.length) {
1427
+
1428
+ // Filter identical show/hide events
1429
+ $.each(hideEvents, function(i, type) {
1430
+ var showIndex = $.inArray(type, showEvents);
1431
+
1432
+ // Both events are identical, remove from both hide and show events
1433
+ // and append to toggleEvents
1434
+ showIndex > -1 && toggleEvents.push( showEvents.splice( showIndex, 1 )[0] );
1435
+ });
1436
+
1437
+ // Toggle events are special case of identical show/hide events, which happen in sequence
1438
+ if(toggleEvents.length) {
1439
+ // Bind toggle events to the similar targets
1440
+ this._bind(similarTargets, toggleEvents, function(event) {
1441
+ var state = this.rendered ? this.tooltip[0].offsetWidth > 0 : false;
1442
+ (state ? hideCallback : showCallback).call(this, event);
1443
+ });
1444
+
1445
+ // Remove the similar targets from the regular show/hide bindings
1446
+ showTargets = showTargets.not(similarTargets);
1447
+ hideTargets = hideTargets.not(similarTargets);
1448
+ }
1449
+ }
1450
+
1451
+ // Apply show/hide/toggle events
1452
+ this._bind(showTargets, showEvents, showCallback);
1453
+ this._bind(hideTargets, hideEvents, hideCallback);
1454
+ };
1455
+
1456
+ PROTOTYPE._assignInitialEvents = function(event) {
1457
+ var options = this.options,
1458
+ showTarget = options.show.target,
1459
+ hideTarget = options.hide.target,
1460
+ showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],
1461
+ hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];
1462
+
1463
+ // Catch remove/removeqtip events on target element to destroy redundant tooltips
1464
+ this._bind(this.elements.target, ['remove', 'removeqtip'], function() {
1465
+ this.destroy(true);
1466
+ }, 'destroy');
1467
+
1468
+ /*
1469
+ * Make sure hoverIntent functions properly by using mouseleave as a hide event if
1470
+ * mouseenter/mouseout is used for show.event, even if it isn't in the users options.
1471
+ */
1472
+ if(/mouse(over|enter)/i.test(options.show.event) && !/mouse(out|leave)/i.test(options.hide.event)) {
1473
+ hideEvents.push('mouseleave');
1474
+ }
1475
+
1476
+ /*
1477
+ * Also make sure initial mouse targetting works correctly by caching mousemove coords
1478
+ * on show targets before the tooltip has rendered. Also set onTarget when triggered to
1479
+ * keep mouse tracking working.
1480
+ */
1481
+ this._bind(showTarget, 'mousemove', function(moveEvent) {
1482
+ this._storeMouse(moveEvent);
1483
+ this.cache.onTarget = TRUE;
1484
+ });
1485
+
1486
+ // Define hoverIntent function
1487
+ function hoverIntent(hoverEvent) {
1488
+ // Only continue if tooltip isn't disabled
1489
+ if(this.disabled || this.destroyed) { return FALSE; }
1490
+
1491
+ // Cache the event data
1492
+ this.cache.event = hoverEvent && $.event.fix(hoverEvent);
1493
+ this.cache.target = hoverEvent && $(hoverEvent.target);
1494
+
1495
+ // Start the event sequence
1496
+ clearTimeout(this.timers.show);
1497
+ this.timers.show = delay.call(this,
1498
+ function() { this.render(typeof hoverEvent === 'object' || options.show.ready); },
1499
+ options.prerender ? 0 : options.show.delay
1500
+ );
1501
+ }
1502
+
1503
+ // Filter and bind events
1504
+ this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, hoverIntent, function() {
1505
+ if(!this.timers) { return FALSE; }
1506
+ clearTimeout(this.timers.show);
1507
+ });
1508
+
1509
+ // Prerendering is enabled, create tooltip now
1510
+ if(options.show.ready || options.prerender) { hoverIntent.call(this, event); }
1511
+ };
1512
+
1513
+ // Event assignment method
1514
+ PROTOTYPE._assignEvents = function() {
1515
+ var self = this,
1516
+ options = this.options,
1517
+ posOptions = options.position,
1518
+
1519
+ tooltip = this.tooltip,
1520
+ showTarget = options.show.target,
1521
+ hideTarget = options.hide.target,
1522
+ containerTarget = posOptions.container,
1523
+ viewportTarget = posOptions.viewport,
1524
+ documentTarget = $(document),
1525
+ windowTarget = $(window),
1526
+
1527
+ showEvents = options.show.event ? $.trim('' + options.show.event).split(' ') : [],
1528
+ hideEvents = options.hide.event ? $.trim('' + options.hide.event).split(' ') : [];
1529
+
1530
+
1531
+ // Assign passed event callbacks
1532
+ $.each(options.events, function(name, callback) {
1533
+ self._bind(tooltip, name === 'toggle' ? ['tooltipshow','tooltiphide'] : ['tooltip'+name], callback, null, tooltip);
1534
+ });
1535
+
1536
+ // Hide tooltips when leaving current window/frame (but not select/option elements)
1537
+ if(/mouse(out|leave)/i.test(options.hide.event) && options.hide.leave === 'window') {
1538
+ this._bind(documentTarget, ['mouseout', 'blur'], function(event) {
1539
+ if(!/select|option/.test(event.target.nodeName) && !event.relatedTarget) {
1540
+ this.hide(event);
1541
+ }
1542
+ });
1543
+ }
1544
+
1545
+ // Enable hide.fixed by adding appropriate class
1546
+ if(options.hide.fixed) {
1547
+ hideTarget = hideTarget.add( tooltip.addClass(CLASS_FIXED) );
1548
+ }
1549
+
1550
+ /*
1551
+ * Make sure hoverIntent functions properly by using mouseleave to clear show timer if
1552
+ * mouseenter/mouseout is used for show.event, even if it isn't in the users options.
1553
+ */
1554
+ else if(/mouse(over|enter)/i.test(options.show.event)) {
1555
+ this._bind(hideTarget, 'mouseleave', function() {
1556
+ clearTimeout(this.timers.show);
1557
+ });
1558
+ }
1559
+
1560
+ // Hide tooltip on document mousedown if unfocus events are enabled
1561
+ if(('' + options.hide.event).indexOf('unfocus') > -1) {
1562
+ this._bind(containerTarget.closest('html'), ['mousedown', 'touchstart'], function(event) {
1563
+ var elem = $(event.target),
1564
+ enabled = this.rendered && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0,
1565
+ isAncestor = elem.parents(SELECTOR).filter(this.tooltip[0]).length > 0;
1566
+
1567
+ if(elem[0] !== this.target[0] && elem[0] !== this.tooltip[0] && !isAncestor &&
1568
+ !this.target.has(elem[0]).length && enabled
1569
+ ) {
1570
+ this.hide(event);
1571
+ }
1572
+ });
1573
+ }
1574
+
1575
+ // Check if the tooltip hides when inactive
1576
+ if('number' === typeof options.hide.inactive) {
1577
+ // Bind inactive method to show target(s) as a custom event
1578
+ this._bind(showTarget, 'qtip-'+this.id+'-inactive', inactiveMethod, 'inactive');
1579
+
1580
+ // Define events which reset the 'inactive' event handler
1581
+ this._bind(hideTarget.add(tooltip), QTIP.inactiveEvents, inactiveMethod);
1582
+ }
1583
+
1584
+ // Filter and bind events
1585
+ this._bindEvents(showEvents, hideEvents, showTarget, hideTarget, showMethod, hideMethod);
1586
+
1587
+ // Mouse movement bindings
1588
+ this._bind(showTarget.add(tooltip), 'mousemove', function(event) {
1589
+ // Check if the tooltip hides when mouse is moved a certain distance
1590
+ if('number' === typeof options.hide.distance) {
1591
+ var origin = this.cache.origin || {},
1592
+ limit = this.options.hide.distance,
1593
+ abs = Math.abs;
1594
+
1595
+ // Check if the movement has gone beyond the limit, and hide it if so
1596
+ if(abs(event.pageX - origin.pageX) >= limit || abs(event.pageY - origin.pageY) >= limit) {
1597
+ this.hide(event);
1598
+ }
1599
+ }
1600
+
1601
+ // Cache mousemove coords on show targets
1602
+ this._storeMouse(event);
1603
+ });
1604
+
1605
+ // Mouse positioning events
1606
+ if(posOptions.target === 'mouse') {
1607
+ // If mouse adjustment is on...
1608
+ if(posOptions.adjust.mouse) {
1609
+ // Apply a mouseleave event so we don't get problems with overlapping
1610
+ if(options.hide.event) {
1611
+ // Track if we're on the target or not
1612
+ this._bind(showTarget, ['mouseenter', 'mouseleave'], function(event) {
1613
+ if(!this.cache) {return FALSE; }
1614
+ this.cache.onTarget = event.type === 'mouseenter';
1615
+ });
1616
+ }
1617
+
1618
+ // Update tooltip position on mousemove
1619
+ this._bind(documentTarget, 'mousemove', function(event) {
1620
+ // Update the tooltip position only if the tooltip is visible and adjustment is enabled
1621
+ if(this.rendered && this.cache.onTarget && !this.tooltip.hasClass(CLASS_DISABLED) && this.tooltip[0].offsetWidth > 0) {
1622
+ this.reposition(event);
1623
+ }
1624
+ });
1625
+ }
1626
+ }
1627
+
1628
+ // Adjust positions of the tooltip on window resize if enabled
1629
+ if(posOptions.adjust.resize || viewportTarget.length) {
1630
+ this._bind( $.event.special.resize ? viewportTarget : windowTarget, 'resize', repositionMethod );
1631
+ }
1632
+
1633
+ // Adjust tooltip position on scroll of the window or viewport element if present
1634
+ if(posOptions.adjust.scroll) {
1635
+ this._bind( windowTarget.add(posOptions.container), 'scroll', repositionMethod );
1636
+ }
1637
+ };
1638
+
1639
+ // Un-assignment method
1640
+ PROTOTYPE._unassignEvents = function() {
1641
+ var options = this.options,
1642
+ showTargets = options.show.target,
1643
+ hideTargets = options.hide.target,
1644
+ targets = $.grep([
1645
+ this.elements.target[0],
1646
+ this.rendered && this.tooltip[0],
1647
+ options.position.container[0],
1648
+ options.position.viewport[0],
1649
+ options.position.container.closest('html')[0], // unfocus
1650
+ window,
1651
+ document
1652
+ ], function(i) {
1653
+ return typeof i === 'object';
1654
+ });
1655
+
1656
+ // Add show and hide targets if they're valid
1657
+ if(showTargets && showTargets.toArray) {
1658
+ targets = targets.concat(showTargets.toArray());
1659
+ }
1660
+ if(hideTargets && hideTargets.toArray) {
1661
+ targets = targets.concat(hideTargets.toArray());
1662
+ }
1663
+
1664
+ // Unbind the events
1665
+ this._unbind(targets)
1666
+ ._unbind(targets, 'destroy')
1667
+ ._unbind(targets, 'inactive');
1668
+ };
1669
+
1670
+ // Apply common event handlers using delegate (avoids excessive .bind calls!)
1671
+ $(function() {
1672
+ delegate(SELECTOR, ['mouseenter', 'mouseleave'], function(event) {
1673
+ var state = event.type === 'mouseenter',
1674
+ tooltip = $(event.currentTarget),
1675
+ target = $(event.relatedTarget || event.target),
1676
+ options = this.options;
1677
+
1678
+ // On mouseenter...
1679
+ if(state) {
1680
+ // Focus the tooltip on mouseenter (z-index stacking)
1681
+ this.focus(event);
1682
+
1683
+ // Clear hide timer on tooltip hover to prevent it from closing
1684
+ tooltip.hasClass(CLASS_FIXED) && !tooltip.hasClass(CLASS_DISABLED) && clearTimeout(this.timers.hide);
1685
+ }
1686
+
1687
+ // On mouseleave...
1688
+ else {
1689
+ // When mouse tracking is enabled, hide when we leave the tooltip and not onto the show target (if a hide event is set)
1690
+ if(options.position.target === 'mouse' && options.position.adjust.mouse &&
1691
+ options.hide.event && options.show.target && !target.closest(options.show.target[0]).length) {
1692
+ this.hide(event);
1693
+ }
1694
+ }
1695
+
1696
+ // Add hover class
1697
+ tooltip.toggleClass(CLASS_HOVER, state);
1698
+ });
1699
+
1700
+ // Define events which reset the 'inactive' event handler
1701
+ delegate('['+ATTR_ID+']', INACTIVE_EVENTS, inactiveMethod);
1702
+ });
1703
+ ;// Initialization method
1704
+ function init(elem, id, opts) {
1705
+ var obj, posOptions, attr, config, title,
1706
+
1707
+ // Setup element references
1708
+ docBody = $(document.body),
1709
+
1710
+ // Use document body instead of document element if needed
1711
+ newTarget = elem[0] === document ? docBody : elem,
1712
+
1713
+ // Grab metadata from element if plugin is present
1714
+ metadata = elem.metadata ? elem.metadata(opts.metadata) : NULL,
1715
+
1716
+ // If metadata type if HTML5, grab 'name' from the object instead, or use the regular data object otherwise
1717
+ metadata5 = opts.metadata.type === 'html5' && metadata ? metadata[opts.metadata.name] : NULL,
1718
+
1719
+ // Grab data from metadata.name (or data-qtipopts as fallback) using .data() method,
1720
+ html5 = elem.data(opts.metadata.name || 'qtipopts');
1721
+
1722
+ // If we don't get an object returned attempt to parse it manualyl without parseJSON
1723
+ /* eslint-disable no-empty */
1724
+ try { html5 = typeof html5 === 'string' ? $.parseJSON(html5) : html5; }
1725
+ catch(e) {}
1726
+ /* eslint-enable no-empty */
1727
+
1728
+ // Merge in and sanitize metadata
1729
+ config = $.extend(TRUE, {}, QTIP.defaults, opts,
1730
+ typeof html5 === 'object' ? sanitizeOptions(html5) : NULL,
1731
+ sanitizeOptions(metadata5 || metadata));
1732
+
1733
+ // Re-grab our positioning options now we've merged our metadata and set id to passed value
1734
+ posOptions = config.position;
1735
+ config.id = id;
1736
+
1737
+ // Setup missing content if none is detected
1738
+ if('boolean' === typeof config.content.text) {
1739
+ attr = elem.attr(config.content.attr);
1740
+
1741
+ // Grab from supplied attribute if available
1742
+ if(config.content.attr !== FALSE && attr) { config.content.text = attr; }
1743
+
1744
+ // No valid content was found, abort render
1745
+ else { return FALSE; }
1746
+ }
1747
+
1748
+ // Setup target options
1749
+ if(!posOptions.container.length) { posOptions.container = docBody; }
1750
+ if(posOptions.target === FALSE) { posOptions.target = newTarget; }
1751
+ if(config.show.target === FALSE) { config.show.target = newTarget; }
1752
+ if(config.show.solo === TRUE) { config.show.solo = posOptions.container.closest('body'); }
1753
+ if(config.hide.target === FALSE) { config.hide.target = newTarget; }
1754
+ if(config.position.viewport === TRUE) { config.position.viewport = posOptions.container; }
1755
+
1756
+ // Ensure we only use a single container
1757
+ posOptions.container = posOptions.container.eq(0);
1758
+
1759
+ // Convert position corner values into x and y strings
1760
+ posOptions.at = new CORNER(posOptions.at, TRUE);
1761
+ posOptions.my = new CORNER(posOptions.my);
1762
+
1763
+ // Destroy previous tooltip if overwrite is enabled, or skip element if not
1764
+ if(elem.data(NAMESPACE)) {
1765
+ if(config.overwrite) {
1766
+ elem.qtip('destroy', true);
1767
+ }
1768
+ else if(config.overwrite === FALSE) {
1769
+ return FALSE;
1770
+ }
1771
+ }
1772
+
1773
+ // Add has-qtip attribute
1774
+ elem.attr(ATTR_HAS, id);
1775
+
1776
+ // Remove title attribute and store it if present
1777
+ if(config.suppress && (title = elem.attr('title'))) {
1778
+ // Final attr call fixes event delegation and IE default tooltip showing problem
1779
+ elem.removeAttr('title').attr(oldtitle, title).attr('title', '');
1780
+ }
1781
+
1782
+ // Initialize the tooltip and add API reference
1783
+ obj = new QTip(elem, config, id, !!attr);
1784
+ elem.data(NAMESPACE, obj);
1785
+
1786
+ return obj;
1787
+ }
1788
+
1789
+ // jQuery $.fn extension method
1790
+ QTIP = $.fn.qtip = function(options, notation, newValue)
1791
+ {
1792
+ var command = ('' + options).toLowerCase(), // Parse command
1793
+ returned = NULL,
1794
+ args = $.makeArray(arguments).slice(1),
1795
+ event = args[args.length - 1],
1796
+ opts = this[0] ? $.data(this[0], NAMESPACE) : NULL;
1797
+
1798
+ // Check for API request
1799
+ if(!arguments.length && opts || command === 'api') {
1800
+ return opts;
1801
+ }
1802
+
1803
+ // Execute API command if present
1804
+ else if('string' === typeof options) {
1805
+ this.each(function() {
1806
+ var api = $.data(this, NAMESPACE);
1807
+ if(!api) { return TRUE; }
1808
+
1809
+ // Cache the event if possible
1810
+ if(event && event.timeStamp) { api.cache.event = event; }
1811
+
1812
+ // Check for specific API commands
1813
+ if(notation && (command === 'option' || command === 'options')) {
1814
+ if(newValue !== undefined || $.isPlainObject(notation)) {
1815
+ api.set(notation, newValue);
1816
+ }
1817
+ else {
1818
+ returned = api.get(notation);
1819
+ return FALSE;
1820
+ }
1821
+ }
1822
+
1823
+ // Execute API command
1824
+ else if(api[command]) {
1825
+ api[command].apply(api, args);
1826
+ }
1827
+ });
1828
+
1829
+ return returned !== NULL ? returned : this;
1830
+ }
1831
+
1832
+ // No API commands. validate provided options and setup qTips
1833
+ else if('object' === typeof options || !arguments.length) {
1834
+ // Sanitize options first
1835
+ opts = sanitizeOptions($.extend(TRUE, {}, options));
1836
+
1837
+ return this.each(function(i) {
1838
+ var api, id;
1839
+
1840
+ // Find next available ID, or use custom ID if provided
1841
+ id = $.isArray(opts.id) ? opts.id[i] : opts.id;
1842
+ id = !id || id === FALSE || id.length < 1 || QTIP.api[id] ? QTIP.nextid++ : id;
1843
+
1844
+ // Initialize the qTip and re-grab newly sanitized options
1845
+ api = init($(this), id, opts);
1846
+ if(api === FALSE) { return TRUE; }
1847
+ else { QTIP.api[id] = api; }
1848
+
1849
+ // Initialize plugins
1850
+ $.each(PLUGINS, function() {
1851
+ if(this.initialize === 'initialize') { this(api); }
1852
+ });
1853
+
1854
+ // Assign initial pre-render events
1855
+ api._assignInitialEvents(event);
1856
+ });
1857
+ }
1858
+ };
1859
+
1860
+ // Expose class
1861
+ $.qtip = QTip;
1862
+
1863
+ // Populated in render method
1864
+ QTIP.api = {};
1865
+ ;$.each({
1866
+ /* Allow other plugins to successfully retrieve the title of an element with a qTip applied */
1867
+ attr: function(attr, val) {
1868
+ if(this.length) {
1869
+ var self = this[0],
1870
+ title = 'title',
1871
+ api = $.data(self, 'qtip');
1872
+
1873
+ if(attr === title && api && api.options && 'object' === typeof api && 'object' === typeof api.options && api.options.suppress) {
1874
+ if(arguments.length < 2) {
1875
+ return $.attr(self, oldtitle);
1876
+ }
1877
+
1878
+ // If qTip is rendered and title was originally used as content, update it
1879
+ if(api && api.options.content.attr === title && api.cache.attr) {
1880
+ api.set('content.text', val);
1881
+ }
1882
+
1883
+ // Use the regular attr method to set, then cache the result
1884
+ return this.attr(oldtitle, val);
1885
+ }
1886
+ }
1887
+
1888
+ return $.fn['attr'+replaceSuffix].apply(this, arguments);
1889
+ },
1890
+
1891
+ /* Allow clone to correctly retrieve cached title attributes */
1892
+ clone: function(keepData) {
1893
+ // Clone our element using the real clone method
1894
+ var elems = $.fn['clone'+replaceSuffix].apply(this, arguments);
1895
+
1896
+ // Grab all elements with an oldtitle set, and change it to regular title attribute, if keepData is false
1897
+ if(!keepData) {
1898
+ elems.filter('['+oldtitle+']').attr('title', function() {
1899
+ return $.attr(this, oldtitle);
1900
+ })
1901
+ .removeAttr(oldtitle);
1902
+ }
1903
+
1904
+ return elems;
1905
+ }
1906
+ }, function(name, func) {
1907
+ if(!func || $.fn[name+replaceSuffix]) { return TRUE; }
1908
+
1909
+ var old = $.fn[name+replaceSuffix] = $.fn[name];
1910
+ $.fn[name] = function() {
1911
+ return func.apply(this, arguments) || old.apply(this, arguments);
1912
+ };
1913
+ });
1914
+
1915
+ /* Fire off 'removeqtip' handler in $.cleanData if jQuery UI not present (it already does similar).
1916
+ * This snippet is taken directly from jQuery UI source code found here:
1917
+ * http://code.jquery.com/ui/jquery-ui-git.js
1918
+ */
1919
+ if(!$.ui) {
1920
+ $['cleanData'+replaceSuffix] = $.cleanData;
1921
+ $.cleanData = function( elems ) {
1922
+ for(var i = 0, elem; (elem = $( elems[i] )).length; i++) {
1923
+ if(elem.attr(ATTR_HAS)) {
1924
+ /* eslint-disable no-empty */
1925
+ try { elem.triggerHandler('removeqtip'); }
1926
+ catch( e ) {}
1927
+ /* eslint-enable no-empty */
1928
+ }
1929
+ }
1930
+ $['cleanData'+replaceSuffix].apply(this, arguments);
1931
+ };
1932
+ }
1933
+ ;// qTip version
1934
+ QTIP.version = '3.0.3';
1935
+
1936
+ // Base ID for all qTips
1937
+ QTIP.nextid = 0;
1938
+
1939
+ // Inactive events array
1940
+ QTIP.inactiveEvents = INACTIVE_EVENTS;
1941
+
1942
+ // Base z-index for all qTips
1943
+ QTIP.zindex = 15000;
1944
+
1945
+ // Define configuration defaults
1946
+ QTIP.defaults = {
1947
+ prerender: FALSE,
1948
+ id: FALSE,
1949
+ overwrite: TRUE,
1950
+ suppress: TRUE,
1951
+ content: {
1952
+ text: TRUE,
1953
+ attr: 'title',
1954
+ title: FALSE,
1955
+ button: FALSE
1956
+ },
1957
+ position: {
1958
+ my: 'top left',
1959
+ at: 'bottom right',
1960
+ target: FALSE,
1961
+ container: FALSE,
1962
+ viewport: FALSE,
1963
+ adjust: {
1964
+ x: 0, y: 0,
1965
+ mouse: TRUE,
1966
+ scroll: TRUE,
1967
+ resize: TRUE,
1968
+ method: 'flipinvert flipinvert'
1969
+ },
1970
+ effect: function(api, pos) {
1971
+ $(this).animate(pos, {
1972
+ duration: 200,
1973
+ queue: FALSE
1974
+ });
1975
+ }
1976
+ },
1977
+ show: {
1978
+ target: FALSE,
1979
+ event: 'mouseenter',
1980
+ effect: TRUE,
1981
+ delay: 90,
1982
+ solo: FALSE,
1983
+ ready: FALSE,
1984
+ autofocus: FALSE
1985
+ },
1986
+ hide: {
1987
+ target: FALSE,
1988
+ event: 'mouseleave',
1989
+ effect: TRUE,
1990
+ delay: 0,
1991
+ fixed: FALSE,
1992
+ inactive: FALSE,
1993
+ leave: 'window',
1994
+ distance: FALSE
1995
+ },
1996
+ style: {
1997
+ classes: '',
1998
+ widget: FALSE,
1999
+ width: FALSE,
2000
+ height: FALSE,
2001
+ def: TRUE
2002
+ },
2003
+ events: {
2004
+ render: NULL,
2005
+ move: NULL,
2006
+ show: NULL,
2007
+ hide: NULL,
2008
+ toggle: NULL,
2009
+ visible: NULL,
2010
+ hidden: NULL,
2011
+ focus: NULL,
2012
+ blur: NULL
2013
+ }
2014
+ };
2015
+ ;}));
2016
+ }( window, document ));
assets/qtip/jquery.qtip.min.css CHANGED
@@ -1,3 +1 @@
1
- /* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sat Sep 06 2014 23:12:07 */
2
-
3
- .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content{position:relative;padding:5px 9px;overflow:hidden;text-align:left;word-wrap:break-word}.qtip-titlebar{position:relative;padding:5px 35px 5px 10px;overflow:hidden;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:400 bold 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}.qtip-light{background-color:#fff;border-color:#E2E2E2;color:#454545}.qtip-light .qtip-titlebar{background-color:#f1f1f1}.qtip-dark{background-color:#505050;border-color:#303030;color:#f3f3f3}.qtip-dark .qtip-titlebar{background-color:#404040}.qtip-dark .qtip-icon{border-color:#444}.qtip-dark .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-cream{background-color:#FBF7AA;border-color:#F9E98E;color:#A27D35}.qtip-cream .qtip-titlebar{background-color:#F0DE7D}.qtip-cream .qtip-close .qtip-icon{background-position:-82px 0}.qtip-red{background-color:#F78B83;border-color:#D95252;color:#912323}.qtip-red .qtip-titlebar{background-color:#F06D65}.qtip-red .qtip-close .qtip-icon{background-position:-102px 0}.qtip-red .qtip-icon,.qtip-red .qtip-titlebar .ui-state-hover{border-color:#D95252}.qtip-green{background-color:#CAED9E;border-color:#90D93F;color:#3F6219}.qtip-green .qtip-titlebar{background-color:#B0DE78}.qtip-green .qtip-close .qtip-icon{background-position:-42px 0}.qtip-blue{background-color:#E5F6FE;border-color:#ADD9ED;color:#5E99BD}.qtip-blue .qtip-titlebar{background-color:#D0E9F5}.qtip-blue .qtip-close .qtip-icon{background-position:-2px 0}.qtip-shadow{-webkit-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);-moz-box-shadow:1px 1px 3px 1px rgba(0,0,0,.15);box-shadow:1px 1px 3px 1px rgba(0,0,0,.15)}.qtip-bootstrap,.qtip-rounded,.qtip-tipsy{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.qtip-rounded .qtip-titlebar{-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.qtip-youtube{-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 3px #333;-moz-box-shadow:0 0 3px #333;box-shadow:0 0 3px #333;color:#fff;border:0 solid transparent;background:#4A4A4A;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4A4A4A),color-stop(100%,#000));background-image:-webkit-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-moz-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-ms-linear-gradient(top,#4A4A4A 0,#000 100%);background-image:-o-linear-gradient(top,#4A4A4A 0,#000 100%)}.qtip-youtube .qtip-titlebar{background-color:transparent}.qtip-youtube .qtip-content{padding:.75em;font:12px arial,sans-serif;filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=0, StartColorStr=#4a4a4a, EndColorStr=#000000);-ms-filter:"progid:DXImageTransform.Microsoft.Gradient(GradientType=0,StartColorStr=#4a4a4a,EndColorStr=#000000);"}.qtip-youtube .qtip-icon{border-color:#222}.qtip-youtube .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-jtools{background:#232323;background:rgba(0,0,0,.7);background-image:-webkit-gradient(linear,left top,left bottom,from(#717171),to(#232323));background-image:-moz-linear-gradient(top,#717171,#232323);background-image:-webkit-linear-gradient(top,#717171,#232323);background-image:-ms-linear-gradient(top,#717171,#232323);background-image:-o-linear-gradient(top,#717171,#232323);border:2px solid #ddd;border:2px solid rgba(241,241,241,1);-moz-border-radius:2px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 0 12px #333;-moz-box-shadow:0 0 12px #333;box-shadow:0 0 12px #333}.qtip-jtools .qtip-titlebar{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171, endColorstr=#4A4A4A);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#717171,endColorstr=#4A4A4A)"}.qtip-jtools .qtip-content{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A, endColorstr=#232323);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#4A4A4A,endColorstr=#232323)"}.qtip-jtools .qtip-content,.qtip-jtools .qtip-titlebar{background:0 0;color:#fff;border:0 dashed transparent}.qtip-jtools .qtip-icon{border-color:#555}.qtip-jtools .qtip-titlebar .ui-state-hover{border-color:#333}.qtip-cluetip{-webkit-box-shadow:4px 4px 5px rgba(0,0,0,.4);-moz-box-shadow:4px 4px 5px rgba(0,0,0,.4);box-shadow:4px 4px 5px rgba(0,0,0,.4);background-color:#D9D9C2;color:#111;border:0 dashed transparent}.qtip-cluetip .qtip-titlebar{background-color:#87876A;color:#fff;border:0 dashed transparent}.qtip-cluetip .qtip-icon{border-color:#808064}.qtip-cluetip .qtip-titlebar .ui-state-hover{border-color:#696952;color:#696952}.qtip-tipsy{background:#000;background:rgba(0,0,0,.87);color:#fff;border:0 solid transparent;font-size:11px;font-family:'Lucida Grande',sans-serif;font-weight:700;line-height:16px;text-shadow:0 1px #000}.qtip-tipsy .qtip-titlebar{padding:6px 35px 0 10px;background-color:transparent}.qtip-tipsy .qtip-content{padding:6px 10px}.qtip-tipsy .qtip-icon{border-color:#222;text-shadow:none}.qtip-tipsy .qtip-titlebar .ui-state-hover{border-color:#303030}.qtip-tipped{border:3px solid #959FA9;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#F9F9F9;color:#454545;font-weight:400;font-family:serif}.qtip-tipped .qtip-titlebar{border-bottom-width:0;color:#fff;background:#3A79B8;background-image:-webkit-gradient(linear,left top,left bottom,from(#3A79B8),to(#2E629D));background-image:-webkit-linear-gradient(top,#3A79B8,#2E629D);background-image:-moz-linear-gradient(top,#3A79B8,#2E629D);background-image:-ms-linear-gradient(top,#3A79B8,#2E629D);background-image:-o-linear-gradient(top,#3A79B8,#2E629D);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8, endColorstr=#2E629D);-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#3A79B8,endColorstr=#2E629D)"}.qtip-tipped .qtip-icon{border:2px solid #285589;background:#285589}.qtip-tipped .qtip-icon .ui-icon{background-color:#FBFBFB;color:#555}.qtip-bootstrap{font-size:14px;line-height:20px;color:#333;padding:1px;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box}.qtip-bootstrap .qtip-titlebar{padding:8px 14px;margin:0;font-size:14px;font-weight:400;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0}.qtip-bootstrap .qtip-titlebar .qtip-close{right:11px;top:45%;border-style:none}.qtip-bootstrap .qtip-content{padding:9px 14px}.qtip-bootstrap .qtip-icon{background:0 0}.qtip-bootstrap .qtip-icon .ui-icon{width:auto;height:auto;float:right;font-size:20px;font-weight:700;line-height:18px;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.qtip-bootstrap .qtip-icon .ui-icon:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;filter:alpha(opacity=40)}.qtip:not(.ie9haxors) div.qtip-content,.qtip:not(.ie9haxors) div.qtip-titlebar{filter:none;-ms-filter:none}.qtip .qtip-tip{margin:0 auto;overflow:hidden;z-index:10}.qtip .qtip-tip,x:-o-prefocus{visibility:hidden}.qtip .qtip-tip,.qtip .qtip-tip .qtip-vml,.qtip .qtip-tip canvas{position:absolute;color:#123456;background:0 0;border:0 dashed transparent}.qtip .qtip-tip canvas{top:0;left:0}.qtip .qtip-tip .qtip-vml{behavior:url(#default#VML);display:inline-block;visibility:visible}#qtip-overlay{position:fixed;left:0;top:0;width:100%;height:100%}#qtip-overlay.blurs{cursor:pointer}#qtip-overlay div{position:absolute;left:0;top:0;width:100%;height:100%;background-color:#000;opacity:.7;filter:alpha(opacity=70);-ms-filter:"alpha(Opacity=70)"}.qtipmodal-ie6fix{position:absolute!important}
1
+ .qtip{position:absolute;left:-28000px;top:-28000px;display:none;max-width:280px;min-width:50px;font-size:10.5px;line-height:12px;direction:ltr;box-shadow:none;padding:0}.qtip-content,.qtip-titlebar{position:relative;overflow:hidden}.qtip-content{padding:5px 9px;text-align:left;word-wrap:break-word}.qtip-titlebar{padding:5px 35px 5px 10px;border-width:0 0 1px;font-weight:700}.qtip-titlebar+.qtip-content{border-top-width:0!important}.qtip-close{position:absolute;right:-9px;top:-9px;z-index:11;cursor:pointer;outline:0;border:1px solid transparent}.qtip-titlebar .qtip-close{right:4px;top:50%;margin-top:-9px}* html .qtip-titlebar .qtip-close{top:16px}.qtip-icon .ui-icon,.qtip-titlebar .ui-icon{display:block;text-indent:-1000em;direction:ltr}.qtip-icon,.qtip-icon .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;text-decoration:none}.qtip-icon .ui-icon{width:18px;height:14px;line-height:14px;text-align:center;text-indent:0;font:normal 700 10px/13px Tahoma,sans-serif;color:inherit;background:-100em -100em no-repeat}.qtip-default{border:1px solid #F1D031;background-color:#FFFFA3;color:#555}.qtip-default .qtip-titlebar{background-color:#FFEF93}.qtip-default .qtip-icon{border-color:#CCC;background:#F1F1F1;color:#777}.qtip-default .qtip-titlebar .qtip-close{border-color:#AAA;color:#111}
 
 
assets/qtip/jquery.qtip.min.js CHANGED
@@ -1,5 +1,4 @@
1
- /* qTip2 v2.2.1 | Plugins: tips modal viewport svg imagemap ie6 | Styles: core basic css3 | qtip2.com | Licensed MIT | Sat Sep 06 2014 23:12:07 */
2
 
3
- !function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=F,this.elements={target:a},this._id=S+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:E,attr:e,onTooltip:E,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=E}function f(a){return a===F||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?E:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?b=a.content={text:c=g(b)?E:b}:c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==E,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,F,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(d.isPlainObject(b.title)&&(b.button=b.title.button,b.title=b.title.text),g(b.title||E)&&(b.title=E))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===D?{ready:D}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(R,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d<f.length&&(c=e);return[c||a,f.pop()]}function j(a,b){var c,d,e;for(c in this.checks)for(d in this.checks[c])(e=new RegExp(d,"i").exec(a))&&(b.push(e),("builtin"===c||this.plugins[c])&&this.checks[c][d].apply(this.plugins[c]||this,b))}function k(a){return V.concat("").join(a?"-"+a+" ":" ")}function l(a,b){return b>0?setTimeout(d.proxy(a,this),b):void a.call(this)}function m(a){this.tooltip.hasClass(ab)||(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=l.call(this,function(){this.toggle(D,a)},this.options.show.delay))}function n(a){if(!this.tooltip.hasClass(ab)&&!this.destroyed){var b=d(a.relatedTarget),c=b.closest(W)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=l.call(this,function(){this.toggle(E,a)},this.options.hide.delay,this)}}function o(a){!this.tooltip.hasClass(ab)&&this.options.hide.inactive&&(clearTimeout(this.timers.inactive),this.timers.inactive=l.call(this,function(){this.hide(a)},this.options.hide.inactive))}function p(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function q(a,c,e){d(b.body).delegate(a,(c.split?c:c.join("."+S+" "))+"."+S,function(){var a=y.api[d.attr(this,U)];a&&!a.disabled&&e.apply(a,arguments)})}function r(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):F,p="html5"===f.metadata.type&&o?o[f.metadata.name]:F,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(D,{},y.defaults,f,"object"==typeof q?h(q):F,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===E||!j)return E;k.content.text=j}if(i.container.length||(i.container=m),i.target===E&&(i.target=n),k.show.target===E&&(k.show.target=n),k.show.solo===D&&(k.show.solo=i.container.closest("body")),k.hide.target===E&&(k.hide.target=n),k.position.viewport===D&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new A(i.at,D),i.my=new A(i.my),a.data(S))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===E)return E;return a.attr(T,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(cb,l).attr("title",""),g=new e(a,k,c,!!j),a.data(S,g),g}function s(a){return a.charAt(0).toUpperCase()+a.slice(1)}function t(a,b){var d,e,f=b.charAt(0).toUpperCase()+b.slice(1),g=(b+" "+rb.join(f+" ")+f).split(" "),h=0;if(qb[b])return a.css(qb[b]);for(;d=g[h++];)if((e=a.css(d))!==c)return qb[b]=d,e}function u(a,b){return Math.ceil(parseFloat(t(a,b)))}function v(a,b){this._ns="tip",this.options=b,this.offset=b.offset,this.size=[b.width,b.height],this.init(this.qtip=a)}function w(a,b){this.options=b,this._ns="-modal",this.init(this.qtip=a)}function x(a){this._ns="ie6",this.init(this.qtip=a)}var y,z,A,B,C,D=!0,E=!1,F=null,G="x",H="y",I="width",J="height",K="top",L="left",M="bottom",N="right",O="center",P="flipinvert",Q="shift",R={},S="qtip",T="data-hasqtip",U="data-qtip-id",V=["ui-widget","ui-tooltip"],W="."+S,X="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),Y=S+"-fixed",Z=S+"-default",$=S+"-focus",_=S+"-hover",ab=S+"-disabled",bb="_replacedByqTip",cb="oldtitle",db={ie:function(){for(var a=4,c=b.createElement("div");(c.innerHTML="<!--[if gt IE "+a+"]><i></i><![endif]-->")&&c.getElementsByTagName("i")[0];a+=1);return a>4?a:0/0}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||E};z=e.prototype,z._when=function(a){return d.when.apply(d,a)},z.render=function(a){if(this.rendered||this.destroyed)return this;var b,c=this,e=this.options,f=this.cache,g=this.elements,h=e.content.text,i=e.content.title,j=e.content.button,k=e.position,l=("."+this._id+" ",[]);return d.attr(this.target[0],"aria-describedby",this._id),f.posClass=this._createPosClass((this.position={my:k.my,at:k.at}).my),this.tooltip=g.tooltip=b=d("<div/>",{id:this._id,"class":[S,Z,e.style.classes,f.posClass].join(" "),width:e.style.width||"",height:e.style.height||"",tracking:"mouse"===k.target&&k.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":E,"aria-describedby":this._id+"-content","aria-hidden":D}).toggleClass(ab,this.disabled).attr(U,this.id).data(S,this).appendTo(k.container).append(g.content=d("<div />",{"class":S+"-content",id:this._id+"-content","aria-atomic":D})),this.rendered=-1,this.positioning=D,i&&(this._createTitle(),d.isFunction(i)||l.push(this._updateTitle(i,E))),j&&this._createButton(),d.isFunction(h)||l.push(this._updateContent(h,E)),this.rendered=D,this._setWidget(),d.each(R,function(a){var b;"render"===this.initialize&&(b=this(c))&&(c.plugins[a]=b)}),this._unassignEvents(),this._assignEvents(),this._when(l).then(function(){c._trigger("render"),c.positioning=E,c.hiddenDuringWait||!e.show.ready&&!a||c.toggle(D,f.event,E),c.hiddenDuringWait=E}),y.api[this.id]=this,this},z.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=D;var a,b=this.target,c=b.attr(cb);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()});for(a in this.timers)clearTimeout(this.timers[a]);b.removeData(S).removeAttr(U).removeAttr(T).removeAttr("aria-describedby"),this.options.suppress&&c&&b.attr("title",c).removeAttr(cb),this._unassignEvents(),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=F,delete y.api[this.id]}}return this.destroyed?this.target:(a===D&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},B=z.checks={builtin:{"^id$":function(a,b,c,e){var f=c===D?y.nextid:c,g=S+"-"+f;f!==E&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),void this._updateTitle(c)):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(this.position[b]=a[b]=new A(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(D)||this.toggle(D))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(Z,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},z.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var eb=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,fb=/^prerender|show\.ready/i;z.set=function(a,b){if(this.destroyed)return this;{var c,e=this.rendered,f=E,g=this.options;this.checks}return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&fb.test(b))return void delete a[b];var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=eb.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=D,d.each(a,d.proxy(j,this)),this.positioning=E,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?F:this.cache.event),this},z._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=D,a.then(function(a){return e.waiting=E,c._update(a,b)},F,function(a){return c._update(a,b)})):a===E||!a&&""!==a?E:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):E},z._waitForContent=function(a){var b=this.cache;return b.waiting=D,(d.fn.imagesLoaded?a.imagesLoaded():d.Deferred().resolve([])).done(function(){b.waiting=E}).promise()},z._updateContent=function(a,b){this._update(a,this.elements.content,b)},z._updateTitle=function(a,b){this._update(a,this.elements.title,b)===E&&this._removeTitle(E)},z._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("<div />",{"class":S+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("<div />",{id:b,"class":S+"-title","aria-atomic":D})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},z._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=F,a!==E&&this.reposition())},z._createPosClass=function(a){return S+"-pos-"+(a||this.options.position.my).abbrev()},z.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=D;var f,g,h,i,j=this.cache,k=this.tooltip,l=this.options.position,m=l.target,n=l.my,o=l.at,p=l.viewport,q=l.container,r=l.adjust,s=r.method.split(" "),t=k.outerWidth(E),u=k.outerHeight(E),v=0,w=0,x=k.css("position"),y={left:0,top:0},z=k[0].offsetWidth>0,A=c&&"scroll"===c.type,B=d(a),C=q[0].ownerDocument,F=this.mouse;if(d.isArray(m)&&2===m.length)o={x:L,y:K},y={left:m[0],top:m[1]};else if("mouse"===m)o={x:L,y:K},(!r.mouse||this.options.hide.distance)&&j.origin&&j.origin.pageX?c=j.origin:!c||c&&("resize"===c.type||"scroll"===c.type)?c=j.event:F&&F.pageX&&(c=F),"static"!==x&&(y=q.offset()),C.body.offsetWidth!==(a.innerWidth||C.documentElement.clientWidth)&&(g=d(b.body).offset()),y={left:c.pageX-y.left+(g&&g.left||0),top:c.pageY-y.top+(g&&g.top||0)},r.mouse&&A&&F&&(y.left-=(F.scrollX||0)-B.scrollLeft(),y.top-=(F.scrollY||0)-B.scrollTop());else{if("event"===m?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?j.target=d(c.target):c.target||(j.target=this.elements.target):"event"!==m&&(j.target=d(m.jquery?m:this.elements.target)),m=j.target,m=d(m).eq(0),0===m.length)return this;m[0]===b||m[0]===a?(v=db.iOS?a.innerWidth:m.width(),w=db.iOS?a.innerHeight:m.height(),m[0]===a&&(y={top:(p||m).scrollTop(),left:(p||m).scrollLeft()})):R.imagemap&&m.is("area")?f=R.imagemap(this,m,o,R.viewport?s:E):R.svg&&m&&m[0].ownerSVGElement?f=R.svg(this,m,o,R.viewport?s:E):(v=m.outerWidth(E),w=m.outerHeight(E),y=m.offset()),f&&(v=f.width,w=f.height,g=f.offset,y=f.position),y=this.reposition.offset(m,y,q),(db.iOS>3.1&&db.iOS<4.1||db.iOS>=4.3&&db.iOS<4.33||!db.iOS&&"fixed"===x)&&(y.left-=B.scrollLeft(),y.top-=B.scrollTop()),(!f||f&&f.adjustable!==E)&&(y.left+=o.x===N?v:o.x===O?v/2:0,y.top+=o.y===M?w:o.y===O?w/2:0)}return y.left+=r.x+(n.x===N?-t:n.x===O?-t/2:0),y.top+=r.y+(n.y===M?-u:n.y===O?-u/2:0),R.viewport?(h=y.adjusted=R.viewport(this,y,l,v,w,t,u),g&&h.left&&(y.left+=g.left),g&&h.top&&(y.top+=g.top),h.my&&(this.position.my=h.my)):y.adjusted={left:0,top:0},j.posClass!==(i=this._createPosClass(this.position.my))&&k.removeClass(j.posClass).addClass(j.posClass=i),this._trigger("move",[y,p.elem||p],c)?(delete y.adjusted,e===E||!z||isNaN(y.left)||isNaN(y.top)||"mouse"===m||!d.isFunction(l.effect)?k.css(y):d.isFunction(l.effect)&&(l.effect.call(k,this,d.extend({},y)),k.queue(function(a){d(this).css({opacity:"",height:""}),db.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=E,this):this},z.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!db.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var gb=(A=z.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,O).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?H:G}).prototype;gb.invert=function(a,b){this[a]=this[a]===L?N:this[a]===N?L:b||this[a]},gb.string=function(a){var b=this.x,c=this.y,d=b!==c?"center"===b||"center"!==c&&(this.precedance===H||this.forceY)?[c,b]:[b,c]:[b];return a!==!1?d.join(" "):d},gb.abbrev=function(){var a=this.string(!1);return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},gb.clone=function(){return new A(this.string(),this.forceY)},z.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&e.event&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=d.event.fix(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=D),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",l=this.options[k],m=(this.options[a?"hide":"show"],this.options.position),n=this.options.content,o=this.tooltip.css("width"),p=this.tooltip.is(":visible"),q=a||1===l.target.length,r=!c||l.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!p),h=!g.is(":animated")&&p===a&&r,i=h?F:!!this._trigger(k,[90]),this.destroyed?this:(i!==E&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(this.mouse&&(e.origin=d.event.fix(this.mouse)),d.isFunction(n.text)&&this._updateContent(n.text,E),d.isFunction(n.title)&&this._updateTitle(n.title,E),!C&&"mouse"===m.target&&m.adjust.mouse&&(d(b).bind("mousemove."+S,this._storeMouse),C=D),o||g.css("width",g.outerWidth(E)),this.reposition(c,arguments[2]),o||g.css("width",""),l.solo&&("string"==typeof l.solo?d(l.solo):d(W,l.solo)).not(g).not(l.target).qtip("hide",d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,C&&!d(W+'[tracking="true"]:visible',l.solo).not(g).length&&(d(b).unbind("mousemove."+S),C=E),this.blur(c)),j=d.proxy(function(){a?(db.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof l.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),l.effect===E||q===E?(g[k](),j()):d.isFunction(l.effect)?(g.stop(1,1),l.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&l.target.trigger("qtip-"+this.id+"-inactive"),this))},z.show=function(a){return this.toggle(D,a)},z.hide=function(a){return this.toggle(E,a)},z.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(W),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=y.zindex+b.length;return c.hasClass($)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+$).qtip("blur",a)),c.addClass($)[0].style.zIndex=f),this},z.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass($),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},z.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass(ab):this.disabled):"boolean"!=typeof a&&(a=D),this.rendered&&this.tooltip.toggleClass(ab,a).attr("aria-disabled",a),this.disabled=!!a,this)},z.enable=function(){return this.disable(E)},z._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),b.button=e.jquery?e:d("<a />",{"class":"qtip-close "+(this.options.style.widget?"":S+"-icon"),title:g,"aria-label":g}).prepend(d("<span />",{"class":"ui-icon ui-icon-close",html:"&times;"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass(ab)||a.hide(b),E})},z._updateButton=function(a){if(!this.rendered)return E;var b=this.elements.button;a?this._createButton():b.remove()},z._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass(ab);c.removeClass(ab),ab=a?"ui-state-disabled":"qtip-disabled",c.toggleClass(ab,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(Z,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(S+"-icon",!a)},z._storeMouse=function(a){return(this.mouse=d.event.fix(a)).type="mousemove",this},z._bind=function(a,b,c,e,f){if(a&&c&&b.length){var g="."+this._id+(e?"-"+e:"");return d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this)),this}},z._unbind=function(a,b){return a&&d(a).unbind("."+this._id+(b?"-"+b:"")),this},z._trigger=function(a,b,c){var e=d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||F,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=E,!e.isDefaultPrevented()},z._bindEvents=function(a,b,c,e,f,g){var h=c.filter(e).add(e.filter(c)),i=[];h.length&&(d.each(b,function(b,c){var e=d.inArray(c,a);e>-1&&i.push(a.splice(e,1)[0])}),i.length&&(this._bind(h,i,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)}),c=c.not(h),e=e.not(h))),this._bind(c,a,f),this._bind(e,b,g)},z._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?E:(this.cache.event=a&&d.event.fix(a),this.cache.target=a&&d(a.target),clearTimeout(this.timers.show),void(this.timers.show=l.call(this,function(){this.render("object"==typeof a||c.show.ready)},c.prerender?0:c.show.delay)))}var c=this.options,e=c.show.target,f=c.hide.target,g=c.show.event?d.trim(""+c.show.event).split(" "):[],h=c.hide.event?d.trim(""+c.hide.event).split(" "):[];this._bind(this.elements.target,["remove","removeqtip"],function(){this.destroy(!0)},"destroy"),/mouse(over|enter)/i.test(c.show.event)&&!/mouse(out|leave)/i.test(c.hide.event)&&h.push("mouseleave"),this._bind(e,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=D}),this._bindEvents(g,h,e,f,b,function(){return this.timers?void clearTimeout(this.timers.show):E}),(c.show.ready||c.prerender)&&b.call(this,a)},z._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),q=(d(b.body),d(a)),r=e.show.event?d.trim(""+e.show.event).split(" "):[],s=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(Y)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0,e=b.parents(W).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",o,"inactive"),this._bind(i.add(g),y.inactiveEvents,o)),this._bindEvents(r,s,h,i,m,n),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){return this.cache?void(this.cache.onTarget="mouseenter"===a.type):E}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(ab)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:q,"resize",p),f.adjust.scroll&&this._bind(q.add(f.container),"scroll",p)},z._unassignEvents=function(){var c=this.options,e=c.show.target,f=c.hide.target,g=d.grep([this.elements.target[0],this.rendered&&this.tooltip[0],c.position.container[0],c.position.viewport[0],c.position.container.closest("html")[0],a,b],function(a){return"object"==typeof a});e&&e.toArray&&(g=g.concat(e.toArray())),f&&f.toArray&&(g=g.concat(f.toArray())),this._unbind(g)._unbind(g,"destroy")._unbind(g,"inactive")},d(function(){q(W,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(Y)&&!c.hasClass(ab)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.position.adjust.mouse&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(_,b)}),q("["+U+"]",X,o)}),y=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=F,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],S):F;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,S);if(!a)return D;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),E;a.set(b,e)}}),g!==F?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(D,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===E||c.length<1||y.api[c]?y.nextid++:c,b=r(d(this),c,k),b===E?D:(y.api[c]=b,d.each(R,function(){"initialize"===this.initialize&&this(b)}),void b._assignInitialEvents(j))}))},d.qtip=e,y.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?d.attr(c,cb):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(cb,b))}return d.fn["attr"+bb].apply(this,arguments)},clone:function(a){var b=(d([]),d.fn["clone"+bb].apply(this,arguments));return a||b.filter("["+cb+"]").attr("title",function(){return d.attr(this,cb)}).removeAttr(cb),b}},function(a,b){if(!b||d.fn[a+bb])return D;var c=d.fn[a+bb]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+bb]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(T))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+bb].apply(this,arguments)}),y.version="2.2.1",y.nextid=0,y.inactiveEvents=X,y.zindex=15e3,y.defaults={prerender:E,id:E,overwrite:D,suppress:D,content:{text:D,attr:"title",title:E,button:E},position:{my:"top left",at:"bottom right",target:E,container:E,viewport:E,adjust:{x:0,y:0,mouse:D,scroll:D,resize:D,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:E})}},show:{target:E,event:"mouseenter",effect:D,delay:90,solo:E,ready:E,autofocus:E},hide:{target:E,event:"mouseleave",effect:D,delay:0,fixed:E,inactive:E,leave:"window",distance:E},style:{classes:"",widget:E,width:E,height:E,def:D},events:{render:F,move:F,show:F,hide:F,toggle:F,visible:F,hidden:F,focus:F,blur:F}};var hb,ib="margin",jb="border",kb="color",lb="background-color",mb="transparent",nb=" !important",ob=!!b.createElement("canvas").getContext,pb=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,qb={},rb=["Webkit","O","Moz","ms"];if(ob)var sb=a.devicePixelRatio||1,tb=function(){var a=b.createElement("canvas").getContext("2d");return a.backingStorePixelRatio||a.webkitBackingStorePixelRatio||a.mozBackingStorePixelRatio||a.msBackingStorePixelRatio||a.oBackingStorePixelRatio||1}(),ub=sb/tb;else var vb=function(a,b,c){return"<qtipvml:"+a+' xmlns="urn:schemas-microsoft.com:vml" class="qtip-vml" '+(b||"")+' style="behavior: url(#default#VML); '+(c||"")+'" />'};d.extend(v.prototype,{init:function(a){var b,c;c=this.element=a.elements.tip=d("<div />",{"class":S+"-tip"}).prependTo(a.tooltip),ob?(b=d("<canvas />").appendTo(this.element)[0].getContext("2d"),b.lineJoin="miter",b.miterLimit=1e5,b.save()):(b=vb("shape",'coordorigin="0,0"',"position:absolute;"),this.element.html(b+b),a._bind(d("*",c).add(c),["click","mousedown"],function(a){a.stopPropagation()},this._ns)),a._bind(a.tooltip,"tooltipmove",this.reposition,this._ns,this),this.create()},_swapDimensions:function(){this.size[0]=this.options.height,this.size[1]=this.options.width},_resetDimensions:function(){this.size[0]=this.options.width,this.size[1]=this.options.height},_useTitle:function(a){var b=this.qtip.elements.titlebar;return b&&(a.y===K||a.y===O&&this.element.position().top+this.size[1]/2+this.options.offset<b.outerHeight(D))},_parseCorner:function(a){var b=this.qtip.options.position.my;return a===E||b===E?a=E:a===D?a=new A(b.string()):a.string||(a=new A(a),a.fixed=D),a},_parseWidth:function(a,b,c){var d=this.qtip.elements,e=jb+s(b)+"Width";return(c?u(c,e):u(d.content,e)||u(this._useTitle(a)&&d.titlebar||d.content,e)||u(d.tooltip,e))||0},_parseRadius:function(a){var b=this.qtip.elements,c=jb+s(a.y)+s(a.x)+"Radius";return db.ie<9?0:u(this._useTitle(a)&&b.titlebar||b.content,c)||u(b.tooltip,c)||0},_invalidColour:function(a,b,c){var d=a.css(b);return!d||c&&d===a.css(c)||pb.test(d)?E:d},_parseColours:function(a){var b=this.qtip.elements,c=this.element.css("cssText",""),e=jb+s(a[a.precedance])+s(kb),f=this._useTitle(a)&&b.titlebar||b.content,g=this._invalidColour,h=[];return h[0]=g(c,lb)||g(f,lb)||g(b.content,lb)||g(b.tooltip,lb)||c.css(lb),h[1]=g(c,e,kb)||g(f,e,kb)||g(b.content,e,kb)||g(b.tooltip,e,kb)||b.tooltip.css(e),d("*",c).add(c).css("cssText",lb+":"+mb+nb+";"+jb+":0"+nb+";"),h},_calculateSize:function(a){var b,c,d,e=a.precedance===H,f=this.options.width,g=this.options.height,h="c"===a.abbrev(),i=(e?f:g)*(h?.5:1),j=Math.pow,k=Math.round,l=Math.sqrt(j(i,2)+j(g,2)),m=[this.border/i*l,this.border/g*l];return m[2]=Math.sqrt(j(m[0],2)-j(this.border,2)),m[3]=Math.sqrt(j(m[1],2)-j(this.border,2)),b=l+m[2]+m[3]+(h?0:m[0]),c=b/l,d=[k(c*f),k(c*g)],e?d:d.reverse()},_calculateTip:function(a,b,c){c=c||1,b=b||this.size;var d=b[0]*c,e=b[1]*c,f=Math.ceil(d/2),g=Math.ceil(e/2),h={br:[0,0,d,e,d,0],bl:[0,0,d,0,0,e],tr:[0,e,d,0,d,e],tl:[0,0,0,e,d,e],tc:[0,e,f,0,d,e],bc:[0,0,d,0,f,e],rc:[0,0,d,g,0,e],lc:[d,0,d,e,0,g]};return h.lt=h.br,h.rt=h.bl,h.lb=h.tr,h.rb=h.tl,h[a.abbrev()]},_drawCoords:function(a,b){a.beginPath(),a.moveTo(b[0],b[1]),a.lineTo(b[2],b[3]),a.lineTo(b[4],b[5]),a.closePath()},create:function(){var a=this.corner=(ob||db.ie)&&this._parseCorner(this.options.corner);return(this.enabled=!!this.corner&&"c"!==this.corner.abbrev())&&(this.qtip.cache.corner=a.clone(),this.update()),this.element.toggle(this.enabled),this.corner},update:function(b,c){if(!this.enabled)return this;var e,f,g,h,i,j,k,l,m=this.qtip.elements,n=this.element,o=n.children(),p=this.options,q=this.size,r=p.mimic,s=Math.round;b||(b=this.qtip.cache.corner||this.corner),r===E?r=b:(r=new A(r),r.precedance=b.precedance,"inherit"===r.x?r.x=b.x:"inherit"===r.y?r.y=b.y:r.x===r.y&&(r[b.precedance]=b[b.precedance])),f=r.precedance,b.precedance===G?this._swapDimensions():this._resetDimensions(),e=this.color=this._parseColours(b),e[1]!==mb?(l=this.border=this._parseWidth(b,b[b.precedance]),p.border&&1>l&&!pb.test(e[1])&&(e[0]=e[1]),this.border=l=p.border!==D?p.border:l):this.border=l=0,k=this.size=this._calculateSize(b),n.css({width:k[0],height:k[1],lineHeight:k[1]+"px"}),j=b.precedance===H?[s(r.x===L?l:r.x===N?k[0]-q[0]-l:(k[0]-q[0])/2),s(r.y===K?k[1]-q[1]:0)]:[s(r.x===L?k[0]-q[0]:0),s(r.y===K?l:r.y===M?k[1]-q[1]-l:(k[1]-q[1])/2)],ob?(g=o[0].getContext("2d"),g.restore(),g.save(),g.clearRect(0,0,6e3,6e3),h=this._calculateTip(r,q,ub),i=this._calculateTip(r,this.size,ub),o.attr(I,k[0]*ub).attr(J,k[1]*ub),o.css(I,k[0]).css(J,k[1]),this._drawCoords(g,i),g.fillStyle=e[1],g.fill(),g.translate(j[0]*ub,j[1]*ub),this._drawCoords(g,h),g.fillStyle=e[0],g.fill()):(h=this._calculateTip(r),h="m"+h[0]+","+h[1]+" l"+h[2]+","+h[3]+" "+h[4]+","+h[5]+" xe",j[2]=l&&/^(r|b)/i.test(b.string())?8===db.ie?2:1:0,o.css({coordsize:k[0]+l+" "+(k[1]+l),antialias:""+(r.string().indexOf(O)>-1),left:j[0]-j[2]*Number(f===G),top:j[1]-j[2]*Number(f===H),width:k[0]+l,height:k[1]+l}).each(function(a){var b=d(this);b[b.prop?"prop":"attr"]({coordsize:k[0]+l+" "+(k[1]+l),path:h,fillcolor:e[0],filled:!!a,stroked:!a}).toggle(!(!l&&!a)),!a&&b.html(vb("stroke",'weight="'+2*l+'px" color="'+e[1]+'" miterlimit="1000" joinstyle="miter"'))})),a.opera&&setTimeout(function(){m.tip.css({display:"inline-block",visibility:"visible"})},1),c!==E&&this.calculate(b,k)},calculate:function(a,b){if(!this.enabled)return E;var c,e,f=this,g=this.qtip.elements,h=this.element,i=this.options.offset,j=(g.tooltip.hasClass("ui-widget"),{});return a=a||this.corner,c=a.precedance,b=b||this._calculateSize(a),e=[a.x,a.y],c===G&&e.reverse(),d.each(e,function(d,e){var h,k,l;
4
- e===O?(h=c===H?L:K,j[h]="50%",j[ib+"-"+h]=-Math.round(b[c===H?0:1]/2)+i):(h=f._parseWidth(a,e,g.tooltip),k=f._parseWidth(a,e,g.content),l=f._parseRadius(a),j[e]=Math.max(-f.border,d?k:i+(l>h?l:-h)))}),j[a[c]]-=b[c===G?0:1],h.css({margin:"",top:"",bottom:"",left:"",right:""}).css(j),j},reposition:function(a,b,d){function e(a,b,c,d,e){a===Q&&j.precedance===b&&k[d]&&j[c]!==O?j.precedance=j.precedance===G?H:G:a!==Q&&k[d]&&(j[b]=j[b]===O?k[d]>0?d:e:j[b]===d?e:d)}function f(a,b,e){j[a]===O?p[ib+"-"+b]=o[a]=g[ib+"-"+b]-k[b]:(h=g[e]!==c?[k[b],-g[b]]:[-k[b],g[b]],(o[a]=Math.max(h[0],h[1]))>h[0]&&(d[b]-=k[b],o[b]=E),p[g[e]!==c?e:b]=o[a])}if(this.enabled){var g,h,i=b.cache,j=this.corner.clone(),k=d.adjusted,l=b.options.position.adjust.method.split(" "),m=l[0],n=l[1]||l[0],o={left:E,top:E,x:0,y:0},p={};this.corner.fixed!==D&&(e(m,G,H,L,N),e(n,H,G,K,M),(j.string()!==i.corner.string()||i.cornerTop!==k.top||i.cornerLeft!==k.left)&&this.update(j,E)),g=this.calculate(j),g.right!==c&&(g.left=-g.right),g.bottom!==c&&(g.top=-g.bottom),g.user=this.offset,(o.left=m===Q&&!!k.left)&&f(G,L,N),(o.top=n===Q&&!!k.top)&&f(H,K,M),this.element.css(p).toggle(!(o.x&&o.y||j.x===O&&o.y||j.y===O&&o.x)),d.left-=g.left.charAt?g.user:m!==Q||o.top||!o.left&&!o.top?g.left+this.border:0,d.top-=g.top.charAt?g.user:n!==Q||o.left||!o.left&&!o.top?g.top+this.border:0,i.cornerLeft=k.left,i.cornerTop=k.top,i.corner=j.clone()}},destroy:function(){this.qtip._unbind(this.qtip.tooltip,this._ns),this.qtip.elements.tip&&this.qtip.elements.tip.find("*").remove().end().remove()}}),hb=R.tip=function(a){return new v(a,a.options.style.tip)},hb.initialize="render",hb.sanitize=function(a){if(a.style&&"tip"in a.style){var b=a.style.tip;"object"!=typeof b&&(b=a.style.tip={corner:b}),/string|boolean/i.test(typeof b.corner)||(b.corner=D)}},B.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){this.create(),this.qtip.reposition()},"^style.tip.(height|width)$":function(a){this.size=[a.width,a.height],this.update(),this.qtip.reposition()},"^content.title|style.(classes|widget)$":function(){this.update()}},d.extend(D,y.defaults,{style:{tip:{corner:D,mimic:E,width:6,height:6,border:D,offset:0}}});var wb,xb,yb="qtip-modal",zb="."+yb;xb=function(){function a(a){if(d.expr[":"].focusable)return d.expr[":"].focusable;var b,c,e,f=!isNaN(d.attr(a,"tabindex")),g=a.nodeName&&a.nodeName.toLowerCase();return"area"===g?(b=a.parentNode,c=b.name,a.href&&c&&"map"===b.nodeName.toLowerCase()?(e=d("img[usemap=#"+c+"]")[0],!!e&&e.is(":visible")):!1):/input|select|textarea|button|object/.test(g)?!a.disabled:"a"===g?a.href||f:f}function c(a){k.length<1&&a.length?a.not("body").blur():k.first().focus()}function e(a){if(i.is(":visible")){var b,e=d(a.target),h=f.tooltip,j=e.closest(W);b=j.length<1?E:parseInt(j[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),b||e.closest(W)[0]===h[0]||c(e),g=a.target===k[k.length-1]}}var f,g,h,i,j=this,k={};d.extend(j,{init:function(){return i=j.elem=d("<div />",{id:"qtip-overlay",html:"<div></div>",mousedown:function(){return E}}).hide(),d(b.body).bind("focusin"+zb,e),d(b).bind("keydown"+zb,function(a){f&&f.options.show.modal.escape&&27===a.keyCode&&f.hide(a)}),i.bind("click"+zb,function(a){f&&f.options.show.modal.blur&&f.hide(a)}),j},update:function(b){f=b,k=b.options.show.modal.stealfocus!==E?b.tooltip.find("*").filter(function(){return a(this)}):[]},toggle:function(a,e,g){var k=(d(b.body),a.tooltip),l=a.options.show.modal,m=l.effect,n=e?"show":"hide",o=i.is(":visible"),p=d(zb).filter(":visible:not(:animated)").not(k);return j.update(a),e&&l.stealfocus!==E&&c(d(":focus")),i.toggleClass("blurs",l.blur),e&&i.appendTo(b.body),i.is(":animated")&&o===e&&h!==E||!e&&p.length?j:(i.stop(D,E),d.isFunction(m)?m.call(i,e):m===E?i[n]():i.fadeTo(parseInt(g,10)||90,e?1:0,function(){e||i.hide()}),e||i.queue(function(a){i.css({left:"",top:""}),d(zb).length||i.detach(),a()}),h=e,f.destroyed&&(f=F),j)}}),j.init()},xb=new xb,d.extend(w.prototype,{init:function(a){var b=a.tooltip;return this.options.on?(a.elements.overlay=xb.elem,b.addClass(yb).css("z-index",y.modal_zindex+d(zb).length),a._bind(b,["tooltipshow","tooltiphide"],function(a,c,e){var f=a.originalEvent;if(a.target===b[0])if(f&&"tooltiphide"===a.type&&/mouse(leave|enter)/.test(f.type)&&d(f.relatedTarget).closest(xb.elem[0]).length)try{a.preventDefault()}catch(g){}else(!f||f&&"tooltipsolo"!==f.type)&&this.toggle(a,"tooltipshow"===a.type,e)},this._ns,this),a._bind(b,"tooltipfocus",function(a,c){if(!a.isDefaultPrevented()&&a.target===b[0]){var e=d(zb),f=y.modal_zindex+e.length,g=parseInt(b[0].style.zIndex,10);xb.elem[0].style.zIndex=f-1,e.each(function(){this.style.zIndex>g&&(this.style.zIndex-=1)}),e.filter("."+$).qtip("blur",a.originalEvent),b.addClass($)[0].style.zIndex=f,xb.update(c);try{a.preventDefault()}catch(h){}}},this._ns,this),void a._bind(b,"tooltiphide",function(a){a.target===b[0]&&d(zb).filter(":visible").not(b).last().qtip("focus",a)},this._ns,this)):this},toggle:function(a,b,c){return a&&a.isDefaultPrevented()?this:void xb.toggle(this.qtip,!!b,c)},destroy:function(){this.qtip.tooltip.removeClass(yb),this.qtip._unbind(this.qtip.tooltip,this._ns),xb.toggle(this.qtip,E),delete this.qtip.elements.overlay}}),wb=R.modal=function(a){return new w(a,a.options.show.modal)},wb.sanitize=function(a){a.show&&("object"!=typeof a.show.modal?a.show.modal={on:!!a.show.modal}:"undefined"==typeof a.show.modal.on&&(a.show.modal.on=D))},y.modal_zindex=y.zindex-200,wb.initialize="render",B.modal={"^show.modal.(on|blur)$":function(){this.destroy(),this.init(),this.qtip.elems.overlay.toggle(this.qtip.tooltip[0].offsetWidth>0)}},d.extend(D,y.defaults,{show:{modal:{on:E,effect:D,blur:D,stealfocus:D,escape:D}}}),R.viewport=function(c,d,e,f,g,h,i){function j(a,b,c,e,f,g,h,i,j){var k=d[f],s=u[a],t=v[a],w=c===Q,x=s===f?j:s===g?-j:-j/2,y=t===f?i:t===g?-i:-i/2,z=q[f]+r[f]-(n?0:m[f]),A=z-k,B=k+j-(h===I?o:p)-z,C=x-(u.precedance===a||s===u[b]?y:0)-(t===O?i/2:0);return w?(C=(s===f?1:-1)*x,d[f]+=A>0?A:B>0?-B:0,d[f]=Math.max(-m[f]+r[f],k-C,Math.min(Math.max(-m[f]+r[f]+(h===I?o:p),k+C),d[f],"center"===s?k-x:1e9))):(e*=c===P?2:0,A>0&&(s!==f||B>0)?(d[f]-=C+e,l.invert(a,f)):B>0&&(s!==g||A>0)&&(d[f]-=(s===O?-C:C)+e,l.invert(a,g)),d[f]<q&&-d[f]>B&&(d[f]=k,l=u.clone())),d[f]-k}var k,l,m,n,o,p,q,r,s=e.target,t=c.elements.tooltip,u=e.my,v=e.at,w=e.adjust,x=w.method.split(" "),y=x[0],z=x[1]||x[0],A=e.viewport,B=e.container,C=(c.cache,{left:0,top:0});return A.jquery&&s[0]!==a&&s[0]!==b.body&&"none"!==w.method?(m=B.offset()||C,n="static"===B.css("position"),k="fixed"===t.css("position"),o=A[0]===a?A.width():A.outerWidth(E),p=A[0]===a?A.height():A.outerHeight(E),q={left:k?0:A.scrollLeft(),top:k?0:A.scrollTop()},r=A.offset()||C,("shift"!==y||"shift"!==z)&&(l=u.clone()),C={left:"none"!==y?j(G,H,y,w.x,L,N,I,f,h):0,top:"none"!==z?j(H,G,z,w.y,K,M,J,g,i):0,my:l}):C},R.polys={polygon:function(a,b){var c,d,e,f={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10},adjustable:E},g=0,h=[],i=1,j=1,k=0,l=0;for(g=a.length;g--;)c=[parseInt(a[--g],10),parseInt(a[g+1],10)],c[0]>f.position.right&&(f.position.right=c[0]),c[0]<f.position.left&&(f.position.left=c[0]),c[1]>f.position.bottom&&(f.position.bottom=c[1]),c[1]<f.position.top&&(f.position.top=c[1]),h.push(c);if(d=f.width=Math.abs(f.position.right-f.position.left),e=f.height=Math.abs(f.position.bottom-f.position.top),"c"===b.abbrev())f.position={left:f.position.left+f.width/2,top:f.position.top+f.height/2};else{for(;d>0&&e>0&&i>0&&j>0;)for(d=Math.floor(d/2),e=Math.floor(e/2),b.x===L?i=d:b.x===N?i=f.width-d:i+=Math.floor(d/2),b.y===K?j=e:b.y===M?j=f.height-e:j+=Math.floor(e/2),g=h.length;g--&&!(h.length<2);)k=h[g][0]-f.position.left,l=h[g][1]-f.position.top,(b.x===L&&k>=i||b.x===N&&i>=k||b.x===O&&(i>k||k>f.width-i)||b.y===K&&l>=j||b.y===M&&j>=l||b.y===O&&(j>l||l>f.height-j))&&h.splice(g,1);f.position={left:h[0][0],top:h[0][1]}}return f},rect:function(a,b,c,d){return{width:Math.abs(c-a),height:Math.abs(d-b),position:{left:Math.min(a,c),top:Math.min(b,d)}}},_angles:{tc:1.5,tr:7/4,tl:5/4,bc:.5,br:.25,bl:.75,rc:2,lc:1,c:0},ellipse:function(a,b,c,d,e){var f=R.polys._angles[e.abbrev()],g=0===f?0:c*Math.cos(f*Math.PI),h=d*Math.sin(f*Math.PI);return{width:2*c-Math.abs(g),height:2*d-Math.abs(h),position:{left:a+g,top:b+h},adjustable:E}},circle:function(a,b,c,d){return R.polys.ellipse(a,b,c,c,d)}},R.svg=function(a,c,e){for(var f,g,h,i,j,k,l,m,n,o=(d(b),c[0]),p=d(o.ownerSVGElement),q=o.ownerDocument,r=(parseInt(c.css("stroke-width"),10)||0)/2;!o.getBBox;)o=o.parentNode;if(!o.getBBox||!o.parentNode)return E;switch(o.nodeName){case"ellipse":case"circle":m=R.polys.ellipse(o.cx.baseVal.value,o.cy.baseVal.value,(o.rx||o.r).baseVal.value+r,(o.ry||o.r).baseVal.value+r,e);break;case"line":case"polygon":case"polyline":for(l=o.points||[{x:o.x1.baseVal.value,y:o.y1.baseVal.value},{x:o.x2.baseVal.value,y:o.y2.baseVal.value}],m=[],k=-1,i=l.numberOfItems||l.length;++k<i;)j=l.getItem?l.getItem(k):l[k],m.push.apply(m,[j.x,j.y]);m=R.polys.polygon(m,e);break;default:m=o.getBBox(),m={width:m.width,height:m.height,position:{left:m.x,top:m.y}}}return n=m.position,p=p[0],p.createSVGPoint&&(g=o.getScreenCTM(),l=p.createSVGPoint(),l.x=n.left,l.y=n.top,h=l.matrixTransform(g),n.left=h.x,n.top=h.y),q!==b&&"mouse"!==a.position.target&&(f=d((q.defaultView||q.parentWindow).frameElement).offset(),f&&(n.left+=f.left,n.top+=f.top)),q=d(q),n.left+=q.scrollLeft(),n.top+=q.scrollTop(),m},R.imagemap=function(a,b,c){b.jquery||(b=d(b));var e,f,g,h,i,j=(b.attr("shape")||"rect").toLowerCase().replace("poly","polygon"),k=d('img[usemap="#'+b.parent("map").attr("name")+'"]'),l=d.trim(b.attr("coords")),m=l.replace(/,$/,"").split(",");if(!k.length)return E;if("polygon"===j)h=R.polys.polygon(m,c);else{if(!R.polys[j])return E;for(g=-1,i=m.length,f=[];++g<i;)f.push(parseInt(m[g],10));h=R.polys[j].apply(this,f.concat(c))}return e=k.offset(),e.left+=Math.ceil((k.outerWidth(E)-k.width())/2),e.top+=Math.ceil((k.outerHeight(E)-k.height())/2),h.position.left+=e.left,h.position.top+=e.top,h};var Ab,Bb='<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:\'\';" style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=0); -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";"></iframe>';d.extend(x.prototype,{_scroll:function(){var b=this.qtip.elements.overlay;b&&(b[0].style.top=d(a).scrollTop()+"px")},init:function(c){var e=c.tooltip;d("select, object").length<1&&(this.bgiframe=c.elements.bgiframe=d(Bb).appendTo(e),c._bind(e,"tooltipmove",this.adjustBGIFrame,this._ns,this)),this.redrawContainer=d("<div/>",{id:S+"-rcontainer"}).appendTo(b.body),c.elements.overlay&&c.elements.overlay.addClass("qtipmodal-ie6fix")&&(c._bind(a,["scroll","resize"],this._scroll,this._ns,this),c._bind(e,["tooltipshow"],this._scroll,this._ns,this)),this.redraw()},adjustBGIFrame:function(){var a,b,c=this.qtip.tooltip,d={height:c.outerHeight(E),width:c.outerWidth(E)},e=this.qtip.plugins.tip,f=this.qtip.elements.tip;b=parseInt(c.css("borderLeftWidth"),10)||0,b={left:-b,top:-b},e&&f&&(a="x"===e.corner.precedance?[I,L]:[J,K],b[a[1]]-=f[a[0]]()),this.bgiframe.css(b).css(d)},redraw:function(){if(this.qtip.rendered<1||this.drawing)return this;var a,b,c,d,e=this.qtip.tooltip,f=this.qtip.options.style,g=this.qtip.options.position.container;return this.qtip.drawing=1,f.height&&e.css(J,f.height),f.width?e.css(I,f.width):(e.css(I,"").appendTo(this.redrawContainer),b=e.width(),1>b%2&&(b+=1),c=e.css("maxWidth")||"",d=e.css("minWidth")||"",a=(c+d).indexOf("%")>-1?g.width()/100:0,c=(c.indexOf("%")>-1?a:1)*parseInt(c,10)||b,d=(d.indexOf("%")>-1?a:1)*parseInt(d,10)||0,b=c+d?Math.min(Math.max(b,d),c):b,e.css(I,Math.round(b)).appendTo(g)),this.drawing=0,this},destroy:function(){this.bgiframe&&this.bgiframe.remove(),this.qtip._unbind([a,this.qtip.tooltip],this._ns)}}),Ab=R.ie6=function(a){return 6===db.ie?new x(a):E},Ab.initialize="render",B.ie6={"^content|style$":function(){this.redraw()}}})}(window,document);
5
- //# sourceMappingURL=jquery.qtip.min.js.map
1
+ /* qtip2 v3.0.3 | Plugins: None | Styles: core | qtip2.com | Licensed MIT | Wed May 11 2016 18:50:12 */
2
 
3
+ !function(a,b,c){!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)}(function(d){"use strict";function e(a,b,c,e){this.id=c,this.target=a,this.tooltip=z,this.elements={target:a},this._id=I+"-"+c,this.timers={img:{}},this.options=b,this.plugins={},this.cache={event:{},target:d(),disabled:y,attr:e,onTooltip:y,lastClass:""},this.rendered=this.destroyed=this.disabled=this.waiting=this.hiddenDuringWait=this.positioning=this.triggering=y}function f(a){return a===z||"object"!==d.type(a)}function g(a){return!(d.isFunction(a)||a&&a.attr||a.length||"object"===d.type(a)&&(a.jquery||a.then))}function h(a){var b,c,e,h;return f(a)?y:(f(a.metadata)&&(a.metadata={type:a.metadata}),"content"in a&&(b=a.content,f(b)||b.jquery||b.done?(c=g(b)?y:b,b=a.content={text:c}):c=b.text,"ajax"in b&&(e=b.ajax,h=e&&e.once!==y,delete b.ajax,b.text=function(a,b){var f=c||d(this).attr(b.options.content.attr)||"Loading...",g=d.ajax(d.extend({},e,{context:b})).then(e.success,z,e.error).then(function(a){return a&&h&&b.set("content.text",a),a},function(a,c,d){b.destroyed||0===a.status||b.set("content.text",c+": "+d)});return h?f:(b.set("content.text",f),g)}),"title"in b&&(d.isPlainObject(b.title)&&(b.button=b.title.button,b.title=b.title.text),g(b.title||y)&&(b.title=y))),"position"in a&&f(a.position)&&(a.position={my:a.position,at:a.position}),"show"in a&&f(a.show)&&(a.show=a.show.jquery?{target:a.show}:a.show===x?{ready:x}:{event:a.show}),"hide"in a&&f(a.hide)&&(a.hide=a.hide.jquery?{target:a.hide}:{event:a.hide}),"style"in a&&f(a.style)&&(a.style={classes:a.style}),d.each(H,function(){this.sanitize&&this.sanitize(a)}),a)}function i(a,b){for(var c,d=0,e=a,f=b.split(".");e=e[f[d++]];)d<f.length&&(c=e);return[c||a,f.pop()]}function j(a,b){var c,d,e;for(c in this.checks)if(this.checks.hasOwnProperty(c))for(d in this.checks[c])this.checks[c].hasOwnProperty(d)&&(e=new RegExp(d,"i").exec(a))&&(b.push(e),("builtin"===c||this.plugins[c])&&this.checks[c][d].apply(this.plugins[c]||this,b))}function k(a){return L.concat("").join(a?"-"+a+" ":" ")}function l(a,b){return b>0?setTimeout(d.proxy(a,this),b):void a.call(this)}function m(a){this.tooltip.hasClass(S)||(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this.timers.show=l.call(this,function(){this.toggle(x,a)},this.options.show.delay))}function n(a){if(!this.tooltip.hasClass(S)&&!this.destroyed){var b=d(a.relatedTarget),c=b.closest(M)[0]===this.tooltip[0],e=b[0]===this.options.show.target[0];if(clearTimeout(this.timers.show),clearTimeout(this.timers.hide),this!==b[0]&&"mouse"===this.options.position.target&&c||this.options.hide.fixed&&/mouse(out|leave|move)/.test(a.type)&&(c||e))try{a.preventDefault(),a.stopImmediatePropagation()}catch(f){}else this.timers.hide=l.call(this,function(){this.toggle(y,a)},this.options.hide.delay,this)}}function o(a){!this.tooltip.hasClass(S)&&this.options.hide.inactive&&(clearTimeout(this.timers.inactive),this.timers.inactive=l.call(this,function(){this.hide(a)},this.options.hide.inactive))}function p(a){this.rendered&&this.tooltip[0].offsetWidth>0&&this.reposition(a)}function q(a,c,e){d(b.body).delegate(a,(c.split?c:c.join("."+I+" "))+"."+I,function(){var a=s.api[d.attr(this,K)];a&&!a.disabled&&e.apply(a,arguments)})}function r(a,c,f){var g,i,j,k,l,m=d(b.body),n=a[0]===b?m:a,o=a.metadata?a.metadata(f.metadata):z,p="html5"===f.metadata.type&&o?o[f.metadata.name]:z,q=a.data(f.metadata.name||"qtipopts");try{q="string"==typeof q?d.parseJSON(q):q}catch(r){}if(k=d.extend(x,{},s.defaults,f,"object"==typeof q?h(q):z,h(p||o)),i=k.position,k.id=c,"boolean"==typeof k.content.text){if(j=a.attr(k.content.attr),k.content.attr===y||!j)return y;k.content.text=j}if(i.container.length||(i.container=m),i.target===y&&(i.target=n),k.show.target===y&&(k.show.target=n),k.show.solo===x&&(k.show.solo=i.container.closest("body")),k.hide.target===y&&(k.hide.target=n),k.position.viewport===x&&(k.position.viewport=i.container),i.container=i.container.eq(0),i.at=new u(i.at,x),i.my=new u(i.my),a.data(I))if(k.overwrite)a.qtip("destroy",!0);else if(k.overwrite===y)return y;return a.attr(J,c),k.suppress&&(l=a.attr("title"))&&a.removeAttr("title").attr(U,l).attr("title",""),g=new e(a,k,c,!!j),a.data(I,g),g}var s,t,u,v,w,x=!0,y=!1,z=null,A="x",B="y",C="top",D="left",E="bottom",F="right",G="center",H={},I="qtip",J="data-hasqtip",K="data-qtip-id",L=["ui-widget","ui-tooltip"],M="."+I,N="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),O=I+"-fixed",P=I+"-default",Q=I+"-focus",R=I+"-hover",S=I+"-disabled",T="_replacedByqTip",U="oldtitle",V={ie:function(){var a,c;for(a=4,c=b.createElement("div");(c.innerHTML="<!--[if gt IE "+a+"]><i></i><![endif]-->")&&c.getElementsByTagName("i")[0];a+=1);return a>4?a:NaN}(),iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||y};t=e.prototype,t._when=function(a){return d.when.apply(d,a)},t.render=function(a){if(this.rendered||this.destroyed)return this;var b=this,c=this.options,e=this.cache,f=this.elements,g=c.content.text,h=c.content.title,i=c.content.button,j=c.position,k=[];return d.attr(this.target[0],"aria-describedby",this._id),e.posClass=this._createPosClass((this.position={my:j.my,at:j.at}).my),this.tooltip=f.tooltip=d("<div/>",{id:this._id,"class":[I,P,c.style.classes,e.posClass].join(" "),width:c.style.width||"",height:c.style.height||"",tracking:"mouse"===j.target&&j.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":y,"aria-describedby":this._id+"-content","aria-hidden":x}).toggleClass(S,this.disabled).attr(K,this.id).data(I,this).appendTo(j.container).append(f.content=d("<div />",{"class":I+"-content",id:this._id+"-content","aria-atomic":x})),this.rendered=-1,this.positioning=x,h&&(this._createTitle(),d.isFunction(h)||k.push(this._updateTitle(h,y))),i&&this._createButton(),d.isFunction(g)||k.push(this._updateContent(g,y)),this.rendered=x,this._setWidget(),d.each(H,function(a){var c;"render"===this.initialize&&(c=this(b))&&(b.plugins[a]=c)}),this._unassignEvents(),this._assignEvents(),this._when(k).then(function(){b._trigger("render"),b.positioning=y,b.hiddenDuringWait||!c.show.ready&&!a||b.toggle(x,e.event,y),b.hiddenDuringWait=y}),s.api[this.id]=this,this},t.destroy=function(a){function b(){if(!this.destroyed){this.destroyed=x;var a,b=this.target,c=b.attr(U);this.rendered&&this.tooltip.stop(1,0).find("*").remove().end().remove(),d.each(this.plugins,function(){this.destroy&&this.destroy()});for(a in this.timers)this.timers.hasOwnProperty(a)&&clearTimeout(this.timers[a]);b.removeData(I).removeAttr(K).removeAttr(J).removeAttr("aria-describedby"),this.options.suppress&&c&&b.attr("title",c).removeAttr(U),this._unassignEvents(),this.options=this.elements=this.cache=this.timers=this.plugins=this.mouse=z,delete s.api[this.id]}}return this.destroyed?this.target:(a===x&&"hide"!==this.triggering||!this.rendered?b.call(this):(this.tooltip.one("tooltiphidden",d.proxy(b,this)),!this.triggering&&this.hide()),this.target)},v=t.checks={builtin:{"^id$":function(a,b,c,e){var f=c===x?s.nextid:c,g=I+"-"+f;f!==y&&f.length>0&&!d("#"+g).length?(this._id=g,this.rendered&&(this.tooltip[0].id=this._id,this.elements.content[0].id=this._id+"-content",this.elements.title[0].id=this._id+"-title")):a[b]=e},"^prerender":function(a,b,c){c&&!this.rendered&&this.render(this.options.show.ready)},"^content.text$":function(a,b,c){this._updateContent(c)},"^content.attr$":function(a,b,c,d){this.options.content.text===this.target.attr(d)&&this._updateContent(this.target.attr(c))},"^content.title$":function(a,b,c){return c?(c&&!this.elements.title&&this._createTitle(),void this._updateTitle(c)):this._removeTitle()},"^content.button$":function(a,b,c){this._updateButton(c)},"^content.title.(text|button)$":function(a,b,c){this.set("content."+b,c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(this.position[b]=a[b]=new u(c,"at"===b))},"^position.container$":function(a,b,c){this.rendered&&this.tooltip.appendTo(c)},"^show.ready$":function(a,b,c){c&&(!this.rendered&&this.render(x)||this.toggle(x))},"^style.classes$":function(a,b,c,d){this.rendered&&this.tooltip.removeClass(d).addClass(c)},"^style.(width|height)":function(a,b,c){this.rendered&&this.tooltip.css(b,c)},"^style.widget|content.title":function(){this.rendered&&this._setWidget()},"^style.def":function(a,b,c){this.rendered&&this.tooltip.toggleClass(P,!!c)},"^events.(render|show|move|hide|focus|blur)$":function(a,b,c){this.rendered&&this.tooltip[(d.isFunction(c)?"":"un")+"bind"]("tooltip"+b,c)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){if(this.rendered){var a=this.options.position;this.tooltip.attr("tracking","mouse"===a.target&&a.adjust.mouse),this._unassignEvents(),this._assignEvents()}}}},t.get=function(a){if(this.destroyed)return this;var b=i(this.options,a.toLowerCase()),c=b[0][b[1]];return c.precedance?c.string():c};var W=/^position\.(my|at|adjust|target|container|viewport)|style|content|show\.ready/i,X=/^prerender|show\.ready/i;t.set=function(a,b){if(this.destroyed)return this;var c,e=this.rendered,f=y,g=this.options;return"string"==typeof a?(c=a,a={},a[c]=b):a=d.extend({},a),d.each(a,function(b,c){if(e&&X.test(b))return void delete a[b];var h,j=i(g,b.toLowerCase());h=j[0][j[1]],j[0][j[1]]=c&&c.nodeType?d(c):c,f=W.test(b)||f,a[b]=[j[0],j[1],c,h]}),h(g),this.positioning=x,d.each(a,d.proxy(j,this)),this.positioning=y,this.rendered&&this.tooltip[0].offsetWidth>0&&f&&this.reposition("mouse"===g.position.target?z:this.cache.event),this},t._update=function(a,b){var c=this,e=this.cache;return this.rendered&&a?(d.isFunction(a)&&(a=a.call(this.elements.target,e.event,this)||""),d.isFunction(a.then)?(e.waiting=x,a.then(function(a){return e.waiting=y,c._update(a,b)},z,function(a){return c._update(a,b)})):a===y||!a&&""!==a?y:(a.jquery&&a.length>0?b.empty().append(a.css({display:"block",visibility:"visible"})):b.html(a),this._waitForContent(b).then(function(a){c.rendered&&c.tooltip[0].offsetWidth>0&&c.reposition(e.event,!a.length)}))):y},t._waitForContent=function(a){var b=this.cache;return b.waiting=x,(d.fn.imagesLoaded?a.imagesLoaded():(new d.Deferred).resolve([])).done(function(){b.waiting=y}).promise()},t._updateContent=function(a,b){this._update(a,this.elements.content,b)},t._updateTitle=function(a,b){this._update(a,this.elements.title,b)===y&&this._removeTitle(y)},t._createTitle=function(){var a=this.elements,b=this._id+"-title";a.titlebar&&this._removeTitle(),a.titlebar=d("<div />",{"class":I+"-titlebar "+(this.options.style.widget?k("header"):"")}).append(a.title=d("<div />",{id:b,"class":I+"-title","aria-atomic":x})).insertBefore(a.content).delegate(".qtip-close","mousedown keydown mouseup keyup mouseout",function(a){d(this).toggleClass("ui-state-active ui-state-focus","down"===a.type.substr(-4))}).delegate(".qtip-close","mouseover mouseout",function(a){d(this).toggleClass("ui-state-hover","mouseover"===a.type)}),this.options.content.button&&this._createButton()},t._removeTitle=function(a){var b=this.elements;b.title&&(b.titlebar.remove(),b.titlebar=b.title=b.button=z,a!==y&&this.reposition())},t._createPosClass=function(a){return I+"-pos-"+(a||this.options.position.my).abbrev()},t.reposition=function(c,e){if(!this.rendered||this.positioning||this.destroyed)return this;this.positioning=x;var f,g,h,i,j=this.cache,k=this.tooltip,l=this.options.position,m=l.target,n=l.my,o=l.at,p=l.viewport,q=l.container,r=l.adjust,s=r.method.split(" "),t=k.outerWidth(y),u=k.outerHeight(y),v=0,w=0,z=k.css("position"),A={left:0,top:0},B=k[0].offsetWidth>0,I=c&&"scroll"===c.type,J=d(a),K=q[0].ownerDocument,L=this.mouse;if(d.isArray(m)&&2===m.length)o={x:D,y:C},A={left:m[0],top:m[1]};else if("mouse"===m)o={x:D,y:C},(!r.mouse||this.options.hide.distance)&&j.origin&&j.origin.pageX?c=j.origin:!c||c&&("resize"===c.type||"scroll"===c.type)?c=j.event:L&&L.pageX&&(c=L),"static"!==z&&(A=q.offset()),K.body.offsetWidth!==(a.innerWidth||K.documentElement.clientWidth)&&(g=d(b.body).offset()),A={left:c.pageX-A.left+(g&&g.left||0),top:c.pageY-A.top+(g&&g.top||0)},r.mouse&&I&&L&&(A.left-=(L.scrollX||0)-J.scrollLeft(),A.top-=(L.scrollY||0)-J.scrollTop());else{if("event"===m?c&&c.target&&"scroll"!==c.type&&"resize"!==c.type?j.target=d(c.target):c.target||(j.target=this.elements.target):"event"!==m&&(j.target=d(m.jquery?m:this.elements.target)),m=j.target,m=d(m).eq(0),0===m.length)return this;m[0]===b||m[0]===a?(v=V.iOS?a.innerWidth:m.width(),w=V.iOS?a.innerHeight:m.height(),m[0]===a&&(A={top:(p||m).scrollTop(),left:(p||m).scrollLeft()})):H.imagemap&&m.is("area")?f=H.imagemap(this,m,o,H.viewport?s:y):H.svg&&m&&m[0].ownerSVGElement?f=H.svg(this,m,o,H.viewport?s:y):(v=m.outerWidth(y),w=m.outerHeight(y),A=m.offset()),f&&(v=f.width,w=f.height,g=f.offset,A=f.position),A=this.reposition.offset(m,A,q),(V.iOS>3.1&&V.iOS<4.1||V.iOS>=4.3&&V.iOS<4.33||!V.iOS&&"fixed"===z)&&(A.left-=J.scrollLeft(),A.top-=J.scrollTop()),(!f||f&&f.adjustable!==y)&&(A.left+=o.x===F?v:o.x===G?v/2:0,A.top+=o.y===E?w:o.y===G?w/2:0)}return A.left+=r.x+(n.x===F?-t:n.x===G?-t/2:0),A.top+=r.y+(n.y===E?-u:n.y===G?-u/2:0),H.viewport?(h=A.adjusted=H.viewport(this,A,l,v,w,t,u),g&&h.left&&(A.left+=g.left),g&&h.top&&(A.top+=g.top),h.my&&(this.position.my=h.my)):A.adjusted={left:0,top:0},j.posClass!==(i=this._createPosClass(this.position.my))&&(j.posClass=i,k.removeClass(j.posClass).addClass(i)),this._trigger("move",[A,p.elem||p],c)?(delete A.adjusted,e===y||!B||isNaN(A.left)||isNaN(A.top)||"mouse"===m||!d.isFunction(l.effect)?k.css(A):d.isFunction(l.effect)&&(l.effect.call(k,this,d.extend({},A)),k.queue(function(a){d(this).css({opacity:"",height:""}),V.ie&&this.style.removeAttribute("filter"),a()})),this.positioning=y,this):this},t.reposition.offset=function(a,c,e){function f(a,b){c.left+=b*a.scrollLeft(),c.top+=b*a.scrollTop()}if(!e[0])return c;var g,h,i,j,k=d(a[0].ownerDocument),l=!!V.ie&&"CSS1Compat"!==b.compatMode,m=e[0];do"static"!==(h=d.css(m,"position"))&&("fixed"===h?(i=m.getBoundingClientRect(),f(k,-1)):(i=d(m).position(),i.left+=parseFloat(d.css(m,"borderLeftWidth"))||0,i.top+=parseFloat(d.css(m,"borderTopWidth"))||0),c.left-=i.left+(parseFloat(d.css(m,"marginLeft"))||0),c.top-=i.top+(parseFloat(d.css(m,"marginTop"))||0),g||"hidden"===(j=d.css(m,"overflow"))||"visible"===j||(g=d(m)));while(m=m.offsetParent);return g&&(g[0]!==k[0]||l)&&f(g,1),c};var Y=(u=t.reposition.Corner=function(a,b){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,G).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase(),this.forceY=!!b;var c=a.charAt(0);this.precedance="t"===c||"b"===c?B:A}).prototype;Y.invert=function(a,b){this[a]=this[a]===D?F:this[a]===F?D:b||this[a]},Y.string=function(a){var b=this.x,c=this.y,d=b!==c?"center"===b||"center"!==c&&(this.precedance===B||this.forceY)?[c,b]:[b,c]:[b];return a!==!1?d.join(" "):d},Y.abbrev=function(){var a=this.string(!1);return a[0].charAt(0)+(a[1]&&a[1].charAt(0)||"")},Y.clone=function(){return new u(this.string(),this.forceY)},t.toggle=function(a,c){var e=this.cache,f=this.options,g=this.tooltip;if(c){if(/over|enter/.test(c.type)&&e.event&&/out|leave/.test(e.event.type)&&f.show.target.add(c.target).length===f.show.target.length&&g.has(c.relatedTarget).length)return this;e.event=d.event.fix(c)}if(this.waiting&&!a&&(this.hiddenDuringWait=x),!this.rendered)return a?this.render(1):this;if(this.destroyed||this.disabled)return this;var h,i,j,k=a?"show":"hide",l=this.options[k],m=this.options.position,n=this.options.content,o=this.tooltip.css("width"),p=this.tooltip.is(":visible"),q=a||1===l.target.length,r=!c||l.target.length<2||e.target[0]===c.target;return(typeof a).search("boolean|number")&&(a=!p),h=!g.is(":animated")&&p===a&&r,i=h?z:!!this._trigger(k,[90]),this.destroyed?this:(i!==y&&a&&this.focus(c),!i||h?this:(d.attr(g[0],"aria-hidden",!a),a?(this.mouse&&(e.origin=d.event.fix(this.mouse)),d.isFunction(n.text)&&this._updateContent(n.text,y),d.isFunction(n.title)&&this._updateTitle(n.title,y),!w&&"mouse"===m.target&&m.adjust.mouse&&(d(b).bind("mousemove."+I,this._storeMouse),w=x),o||g.css("width",g.outerWidth(y)),this.reposition(c,arguments[2]),o||g.css("width",""),l.solo&&("string"==typeof l.solo?d(l.solo):d(M,l.solo)).not(g).not(l.target).qtip("hide",new d.Event("tooltipsolo"))):(clearTimeout(this.timers.show),delete e.origin,w&&!d(M+'[tracking="true"]:visible',l.solo).not(g).length&&(d(b).unbind("mousemove."+I),w=y),this.blur(c)),j=d.proxy(function(){a?(V.ie&&g[0].style.removeAttribute("filter"),g.css("overflow",""),"string"==typeof l.autofocus&&d(this.options.show.autofocus,g).focus(),this.options.show.target.trigger("qtip-"+this.id+"-inactive")):g.css({display:"",visibility:"",opacity:"",left:"",top:""}),this._trigger(a?"visible":"hidden")},this),l.effect===y||q===y?(g[k](),j()):d.isFunction(l.effect)?(g.stop(1,1),l.effect.call(g,this),g.queue("fx",function(a){j(),a()})):g.fadeTo(90,a?1:0,j),a&&l.target.trigger("qtip-"+this.id+"-inactive"),this))},t.show=function(a){return this.toggle(x,a)},t.hide=function(a){return this.toggle(y,a)},t.focus=function(a){if(!this.rendered||this.destroyed)return this;var b=d(M),c=this.tooltip,e=parseInt(c[0].style.zIndex,10),f=s.zindex+b.length;return c.hasClass(Q)||this._trigger("focus",[f],a)&&(e!==f&&(b.each(function(){this.style.zIndex>e&&(this.style.zIndex=this.style.zIndex-1)}),b.filter("."+Q).qtip("blur",a)),c.addClass(Q)[0].style.zIndex=f),this},t.blur=function(a){return!this.rendered||this.destroyed?this:(this.tooltip.removeClass(Q),this._trigger("blur",[this.tooltip.css("zIndex")],a),this)},t.disable=function(a){return this.destroyed?this:("toggle"===a?a=!(this.rendered?this.tooltip.hasClass(S):this.disabled):"boolean"!=typeof a&&(a=x),this.rendered&&this.tooltip.toggleClass(S,a).attr("aria-disabled",a),this.disabled=!!a,this)},t.enable=function(){return this.disable(y)},t._createButton=function(){var a=this,b=this.elements,c=b.tooltip,e=this.options.content.button,f="string"==typeof e,g=f?e:"Close tooltip";b.button&&b.button.remove(),e.jquery?b.button=e:b.button=d("<a />",{"class":"qtip-close "+(this.options.style.widget?"":I+"-icon"),title:g,"aria-label":g}).prepend(d("<span />",{"class":"ui-icon ui-icon-close",html:"&times;"})),b.button.appendTo(b.titlebar||c).attr("role","button").click(function(b){return c.hasClass(S)||a.hide(b),y})},t._updateButton=function(a){if(!this.rendered)return y;var b=this.elements.button;a?this._createButton():b.remove()},t._setWidget=function(){var a=this.options.style.widget,b=this.elements,c=b.tooltip,d=c.hasClass(S);c.removeClass(S),S=a?"ui-state-disabled":"qtip-disabled",c.toggleClass(S,d),c.toggleClass("ui-helper-reset "+k(),a).toggleClass(P,this.options.style.def&&!a),b.content&&b.content.toggleClass(k("content"),a),b.titlebar&&b.titlebar.toggleClass(k("header"),a),b.button&&b.button.toggleClass(I+"-icon",!a)},t._storeMouse=function(a){return(this.mouse=d.event.fix(a)).type="mousemove",this},t._bind=function(a,b,c,e,f){if(a&&c&&b.length){var g="."+this._id+(e?"-"+e:"");return d(a).bind((b.split?b:b.join(g+" "))+g,d.proxy(c,f||this)),this}},t._unbind=function(a,b){return a&&d(a).unbind("."+this._id+(b?"-"+b:"")),this},t._trigger=function(a,b,c){var e=new d.Event("tooltip"+a);return e.originalEvent=c&&d.extend({},c)||this.cache.event||z,this.triggering=a,this.tooltip.trigger(e,[this].concat(b||[])),this.triggering=y,!e.isDefaultPrevented()},t._bindEvents=function(a,b,c,e,f,g){var h=c.filter(e).add(e.filter(c)),i=[];h.length&&(d.each(b,function(b,c){var e=d.inArray(c,a);e>-1&&i.push(a.splice(e,1)[0])}),i.length&&(this._bind(h,i,function(a){var b=this.rendered?this.tooltip[0].offsetWidth>0:!1;(b?g:f).call(this,a)}),c=c.not(h),e=e.not(h))),this._bind(c,a,f),this._bind(e,b,g)},t._assignInitialEvents=function(a){function b(a){return this.disabled||this.destroyed?y:(this.cache.event=a&&d.event.fix(a),this.cache.target=a&&d(a.target),clearTimeout(this.timers.show),void(this.timers.show=l.call(this,function(){this.render("object"==typeof a||c.show.ready)},c.prerender?0:c.show.delay)))}var c=this.options,e=c.show.target,f=c.hide.target,g=c.show.event?d.trim(""+c.show.event).split(" "):[],h=c.hide.event?d.trim(""+c.hide.event).split(" "):[];this._bind(this.elements.target,["remove","removeqtip"],function(){this.destroy(!0)},"destroy"),/mouse(over|enter)/i.test(c.show.event)&&!/mouse(out|leave)/i.test(c.hide.event)&&h.push("mouseleave"),this._bind(e,"mousemove",function(a){this._storeMouse(a),this.cache.onTarget=x}),this._bindEvents(g,h,e,f,b,function(){return this.timers?void clearTimeout(this.timers.show):y}),(c.show.ready||c.prerender)&&b.call(this,a)},t._assignEvents=function(){var c=this,e=this.options,f=e.position,g=this.tooltip,h=e.show.target,i=e.hide.target,j=f.container,k=f.viewport,l=d(b),q=d(a),r=e.show.event?d.trim(""+e.show.event).split(" "):[],t=e.hide.event?d.trim(""+e.hide.event).split(" "):[];d.each(e.events,function(a,b){c._bind(g,"toggle"===a?["tooltipshow","tooltiphide"]:["tooltip"+a],b,null,g)}),/mouse(out|leave)/i.test(e.hide.event)&&"window"===e.hide.leave&&this._bind(l,["mouseout","blur"],function(a){/select|option/.test(a.target.nodeName)||a.relatedTarget||this.hide(a)}),e.hide.fixed?i=i.add(g.addClass(O)):/mouse(over|enter)/i.test(e.show.event)&&this._bind(i,"mouseleave",function(){clearTimeout(this.timers.show)}),(""+e.hide.event).indexOf("unfocus")>-1&&this._bind(j.closest("html"),["mousedown","touchstart"],function(a){var b=d(a.target),c=this.rendered&&!this.tooltip.hasClass(S)&&this.tooltip[0].offsetWidth>0,e=b.parents(M).filter(this.tooltip[0]).length>0;b[0]===this.target[0]||b[0]===this.tooltip[0]||e||this.target.has(b[0]).length||!c||this.hide(a)}),"number"==typeof e.hide.inactive&&(this._bind(h,"qtip-"+this.id+"-inactive",o,"inactive"),this._bind(i.add(g),s.inactiveEvents,o)),this._bindEvents(r,t,h,i,m,n),this._bind(h.add(g),"mousemove",function(a){if("number"==typeof e.hide.distance){var b=this.cache.origin||{},c=this.options.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&this.hide(a)}this._storeMouse(a)}),"mouse"===f.target&&f.adjust.mouse&&(e.hide.event&&this._bind(h,["mouseenter","mouseleave"],function(a){return this.cache?void(this.cache.onTarget="mouseenter"===a.type):y}),this._bind(l,"mousemove",function(a){this.rendered&&this.cache.onTarget&&!this.tooltip.hasClass(S)&&this.tooltip[0].offsetWidth>0&&this.reposition(a)})),(f.adjust.resize||k.length)&&this._bind(d.event.special.resize?k:q,"resize",p),f.adjust.scroll&&this._bind(q.add(f.container),"scroll",p)},t._unassignEvents=function(){var c=this.options,e=c.show.target,f=c.hide.target,g=d.grep([this.elements.target[0],this.rendered&&this.tooltip[0],c.position.container[0],c.position.viewport[0],c.position.container.closest("html")[0],a,b],function(a){return"object"==typeof a});e&&e.toArray&&(g=g.concat(e.toArray())),f&&f.toArray&&(g=g.concat(f.toArray())),this._unbind(g)._unbind(g,"destroy")._unbind(g,"inactive")},d(function(){q(M,["mouseenter","mouseleave"],function(a){var b="mouseenter"===a.type,c=d(a.currentTarget),e=d(a.relatedTarget||a.target),f=this.options;b?(this.focus(a),c.hasClass(O)&&!c.hasClass(S)&&clearTimeout(this.timers.hide)):"mouse"===f.position.target&&f.position.adjust.mouse&&f.hide.event&&f.show.target&&!e.closest(f.show.target[0]).length&&this.hide(a),c.toggleClass(R,b)}),q("["+K+"]",N,o)}),s=d.fn.qtip=function(a,b,e){var f=(""+a).toLowerCase(),g=z,i=d.makeArray(arguments).slice(1),j=i[i.length-1],k=this[0]?d.data(this[0],I):z;return!arguments.length&&k||"api"===f?k:"string"==typeof a?(this.each(function(){var a=d.data(this,I);if(!a)return x;if(j&&j.timeStamp&&(a.cache.event=j),!b||"option"!==f&&"options"!==f)a[f]&&a[f].apply(a,i);else{if(e===c&&!d.isPlainObject(b))return g=a.get(b),y;a.set(b,e)}}),g!==z?g:this):"object"!=typeof a&&arguments.length?void 0:(k=h(d.extend(x,{},a)),this.each(function(a){var b,c;return c=d.isArray(k.id)?k.id[a]:k.id,c=!c||c===y||c.length<1||s.api[c]?s.nextid++:c,b=r(d(this),c,k),b===y?x:(s.api[c]=b,d.each(H,function(){"initialize"===this.initialize&&this(b)}),void b._assignInitialEvents(j))}))},d.qtip=e,s.api={},d.each({attr:function(a,b){if(this.length){var c=this[0],e="title",f=d.data(c,"qtip");if(a===e&&f&&f.options&&"object"==typeof f&&"object"==typeof f.options&&f.options.suppress)return arguments.length<2?d.attr(c,U):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",b),this.attr(U,b))}return d.fn["attr"+T].apply(this,arguments)},clone:function(a){var b=d.fn["clone"+T].apply(this,arguments);return a||b.filter("["+U+"]").attr("title",function(){return d.attr(this,U)}).removeAttr(U),b}},function(a,b){if(!b||d.fn[a+T])return x;var c=d.fn[a+T]=d.fn[a];d.fn[a]=function(){return b.apply(this,arguments)||c.apply(this,arguments)}}),d.ui||(d["cleanData"+T]=d.cleanData,d.cleanData=function(a){for(var b,c=0;(b=d(a[c])).length;c++)if(b.attr(J))try{b.triggerHandler("removeqtip")}catch(e){}d["cleanData"+T].apply(this,arguments)}),s.version="3.0.3",s.nextid=0,s.inactiveEvents=N,s.zindex=15e3,s.defaults={prerender:y,id:y,overwrite:x,suppress:x,content:{text:x,attr:"title",title:y,button:y},position:{my:"top left",at:"bottom right",target:y,container:y,viewport:y,adjust:{x:0,y:0,mouse:x,scroll:x,resize:x,method:"flipinvert flipinvert"},effect:function(a,b){d(this).animate(b,{duration:200,queue:y})}},show:{target:y,event:"mouseenter",effect:x,delay:90,solo:y,ready:y,autofocus:y},hide:{target:y,event:"mouseleave",effect:x,delay:0,fixed:y,inactive:y,leave:"window",distance:y},style:{classes:"",widget:y,width:y,height:y,def:x},events:{render:z,move:z,show:z,hide:z,toggle:z,visible:z,hidden:z,focus:z,blur:z}}})}(window,document);
4
+ //# sourceMappingURL=jquery.qtip.min.map
 
assets/qtip/jquery.qtip.min.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["jquery.qtip.js"],"names":["window","document","undefined","factory","define","amd","jQuery","fn","qtip","$","QTip","target","options","id","attr","this","tooltip","NULL","elements","_id","NAMESPACE","timers","img","plugins","cache","event","disabled","FALSE","onTooltip","lastClass","rendered","destroyed","waiting","hiddenDuringWait","positioning","triggering","invalidOpt","a","type","invalidContent","c","isFunction","length","jquery","then","sanitizeOptions","opts","content","text","ajax","once","metadata","done","api","loading","deferred","extend","context","success","error","newContent","set","xhr","status","isPlainObject","title","button","position","my","at","show","TRUE","ready","hide","style","classes","each","PLUGINS","sanitize","convertNotation","notation","obj","i","option","levels","split","pop","setCallback","args","category","rule","match","checks","hasOwnProperty","RegExp","exec","push","apply","createWidgetClass","cls","WIDGET","concat","join","delay","callback","duration","setTimeout","proxy","call","showMethod","hasClass","CLASS_DISABLED","clearTimeout","toggle","hideMethod","relatedTarget","ontoTooltip","closest","SELECTOR","ontoTarget","fixed","test","preventDefault","stopImmediatePropagation","e","inactiveMethod","inactive","repositionMethod","offsetWidth","reposition","delegate","selector","events","method","body","QTIP","ATTR_ID","arguments","init","elem","posOptions","config","docBody","newTarget","metadata5","name","html5","data","parseJSON","defaults","container","solo","viewport","eq","CORNER","overwrite","ATTR_HAS","suppress","removeAttr","oldtitle","PROTOTYPE","CHECKS","trackingBound","X","Y","TOP","LEFT","BOTTOM","RIGHT","CENTER","INACTIVE_EVENTS","CLASS_FIXED","CLASS_DEFAULT","CLASS_FOCUS","CLASS_HOVER","replaceSuffix","BROWSER","ie","v","createElement","innerHTML","getElementsByTagName","NaN","iOS","parseFloat","navigator","userAgent","replace","prototype","_when","deferreds","when","render","self","posClass","_createPosClass","class","width","height","tracking","adjust","mouse","role","aria-live","aria-atomic","aria-describedby","aria-hidden","toggleClass","appendTo","append","_createTitle","_updateTitle","_createButton","_updateContent","_setWidget","instance","initialize","_unassignEvents","_assignEvents","_trigger","destroy","immediate","process","timer","stop","find","remove","end","removeData","one","builtin","^id$","o","prev","nextid","newId","^prerender","^content.text$","^content.attr$","^content.title$","_removeTitle","^content.button$","_updateButton","^content.title.(text|button)$","^position.(my|at)$","^position.container$","^show.ready$","^style.classes$","p","removeClass","addClass","^style.(width|height)","css","^style.widget|content.title","^style.def","^events.(render|show|move|hide|focus|blur)$","^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)","get","toLowerCase","result","precedance","string","rmove","rrender","value","val","previous","nodeType","_update","element","empty","display","visibility","html","_waitForContent","images","imagesLoaded","Deferred","resolve","promise","titlebar","widget","insertBefore","substr","abbrev","effect","pluginCalculations","offset","adjusted","newClass","tooltipWidth","outerWidth","tooltipHeight","outerHeight","targetWidth","targetHeight","left","top","visible","isScroll","win","doc","ownerDocument","isArray","x","y","distance","origin","pageX","innerWidth","documentElement","clientWidth","pageY","scrollX","scrollLeft","scrollY","scrollTop","innerHeight","imagemap","is","svg","ownerSVGElement","adjustable","isNaN","queue","next","opacity","removeAttribute","pos","scroll","scrolled","parentOffset","overflow","quirks","compatMode","parent","getBoundingClientRect","offsetParent","C","Corner","corner","forceY","f","charAt","invert","z","center","clone","state","add","has","fix","identicalState","allow","after","contentOptions","animate","sameTarget","search","focus","bind","_storeMouse","not","Event","unbind","blur","autofocus","trigger","n","fadeTo","qtips","curIndex","parseInt","zIndex","newIndex","zindex","filter","disable","enable","isString","close","aria-label","prepend","click","on","def","_bind","targets","suffix","ns","_unbind","originalEvent","isDefaultPrevented","_bindEvents","showEvents","hideEvents","showTargets","hideTargets","showCallback","hideCallback","similarTargets","toggleEvents","showIndex","inArray","splice","_assignInitialEvents","hoverIntent","hoverEvent","prerender","showTarget","hideTarget","trim","moveEvent","onTarget","containerTarget","viewportTarget","documentTarget","windowTarget","leave","nodeName","indexOf","enabled","isAncestor","parents","inactiveEvents","limit","abs","Math","resize","special","grep","toArray","currentTarget","newValue","command","returned","makeArray","slice","timeStamp","keepData","elems","func","old","ui","cleanData","triggerHandler","version","move","hidden"],"mappings":"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","file":"jquery.qtip.min.js"}
config.codekit3 CHANGED
@@ -165,6 +165,15 @@
165
  "sC": 1,
166
  "tS": 0
167
  },
 
 
 
 
 
 
 
 
 
168
  "\/assets\/js\/mtphr-dnt-affix.js": {
169
  "ft": 64,
170
  "mi": 1,
@@ -183,6 +192,25 @@
183
  "sC": 1,
184
  "tS": 0
185
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
186
  "\/assets\/qtip\/jquery.qtip.min.css": {
187
  "aP": 0,
188
  "bl": 0,
@@ -202,6 +230,12 @@
202
  "sC": 1,
203
  "tS": 0
204
  },
 
 
 
 
 
 
205
  "\/assets\/sass\/style-admin.scss": {
206
  "aP": 0,
207
  "bl": 0,
165
  "sC": 1,
166
  "tS": 0
167
  },
168
+ "\/assets\/js\/min\/script-admin-min.js": {
169
+ "ft": 64,
170
+ "mi": 1,
171
+ "oA": 0,
172
+ "oAP": "\/assets\/js\/min\/min\/script-admin-min-min.js",
173
+ "oF": 0,
174
+ "sC": 1,
175
+ "tS": 0
176
+ },
177
  "\/assets\/js\/mtphr-dnt-affix.js": {
178
  "ft": 64,
179
  "mi": 1,
192
  "sC": 1,
193
  "tS": 0
194
  },
195
+ "\/assets\/qtip\/jquery.qtip.css": {
196
+ "aP": 0,
197
+ "bl": 0,
198
+ "ft": 16,
199
+ "ma": 0,
200
+ "oA": 2,
201
+ "oAP": "\/assets\/qtip\/jquery.qtip-min.css",
202
+ "oF": 0,
203
+ "oS": 0
204
+ },
205
+ "\/assets\/qtip\/jquery.qtip.js": {
206
+ "ft": 64,
207
+ "mi": 1,
208
+ "oA": 0,
209
+ "oAP": "\/assets\/qtip\/min\/jquery.qtip-min.js",
210
+ "oF": 0,
211
+ "sC": 1,
212
+ "tS": 0
213
+ },
214
  "\/assets\/qtip\/jquery.qtip.min.css": {
215
  "aP": 0,
216
  "bl": 0,
230
  "sC": 1,
231
  "tS": 0
232
  },
233
+ "\/assets\/qtip\/jquery.qtip.min.map": {
234
+ "ft": 8192,
235
+ "oA": 2,
236
+ "oAP": "\/assets\/qtip\/jquery.qtip.min.map",
237
+ "oF": 0
238
+ },
239
  "\/assets\/sass\/style-admin.scss": {
240
  "aP": 0,
241
  "bl": 0,
ditty-news-ticker.php CHANGED
@@ -5,7 +5,7 @@ Plugin URI: http://dittynewsticker.com/
5
  Description: Ditty News Ticker is a multi-functional data display plugin
6
  Text Domain: ditty-news-ticker
7
  Domain Path: languages
8
- Version: 2.1.1
9
  Author: Metaphor Creations
10
  Author URI: http://www.metaphorcreations.com
11
  Contributors: metaphorcreations
@@ -31,10 +31,8 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
31
 
32
 
33
 
34
- define ( 'MTPHR_DNT_VERSION', '2.1.1' );
35
  define ( 'MTPHR_DNT_DIR', trailingslashit(plugin_dir_path(__FILE__)) );
36
- define ( 'MTPHR_DNT_URL', trailingslashit(plugins_url()).'ditty-news-ticker/' );
37
-
38
 
39
 
40
  /* --------------------------------------------------------- */
@@ -115,7 +113,7 @@ add_action( 'plugins_loaded', 'mtphr_dnt_localization' );
115
  /* --------------------------------------------------------- */
116
 
117
  function mtphr_dnt_unyson_extension( $locations ) {
118
- $locations[ MTPHR_DNT_DIR.'unyson' ] = MTPHR_DNT_URL.'unyson';
119
  return $locations;
120
  }
121
  add_filter( 'fw_extensions_locations', 'mtphr_dnt_unyson_extension' );
5
  Description: Ditty News Ticker is a multi-functional data display plugin
6
  Text Domain: ditty-news-ticker
7
  Domain Path: languages
8
+ Version: 2.1.2
9
  Author: Metaphor Creations
10
  Author URI: http://www.metaphorcreations.com
11
  Contributors: metaphorcreations
31
 
32
 
33
 
34
+ define ( 'MTPHR_DNT_VERSION', '2.1.2' );
35
  define ( 'MTPHR_DNT_DIR', trailingslashit(plugin_dir_path(__FILE__)) );
 
 
36
 
37
 
38
  /* --------------------------------------------------------- */
113
  /* --------------------------------------------------------- */
114
 
115
  function mtphr_dnt_unyson_extension( $locations ) {
116
+ $locations[ MTPHR_DNT_DIR.'unyson' ] = plugins_url('ditty-news-ticker/unyson');
117
  return $locations;
118
  }
119
  add_filter( 'fw_extensions_locations', 'mtphr_dnt_unyson_extension' );
includes/admin/scripts.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
 
3
  /* --------------------------------------------------------- */
4
- /* !Load the admin scrips - 2.0.2 */
5
  /* --------------------------------------------------------- */
6
 
7
  function mtphr_dnt_admin_scripts( $hook ) {
@@ -20,27 +20,27 @@ function mtphr_dnt_admin_scripts( $hook ) {
20
  }
21
 
22
  // Load the CodeMirror plugin
23
- wp_register_style( 'codemirror', MTPHR_DNT_URL.'assets/css/codemirror.css', false, MTPHR_DNT_VERSION );
24
  wp_enqueue_style( 'codemirror' );
25
- wp_register_script( 'codemirror', MTPHR_DNT_URL.'assets/js/codemirror.js', array('jquery'), MTPHR_DNT_VERSION, true );
26
  wp_enqueue_script( 'codemirror' );
27
- wp_register_script( 'codemirror-css', MTPHR_DNT_URL.'assets/js/codemirror/css.js', array('jquery'), MTPHR_DNT_VERSION, true );
28
  wp_enqueue_script( 'codemirror-css' );
29
 
30
  // Register the jQuery easing
31
- wp_register_script( 'jquery-easing', MTPHR_DNT_URL.'assets/js/jquery.easing.1.3.js', array('jquery'), MTPHR_DNT_VERSION, true );
32
 
33
  // Register Bootstrap
34
- wp_register_script( 'mtphr-dnt-affix', MTPHR_DNT_URL.'assets/js/mtphr-dnt-affix.js', array('jquery'), MTPHR_DNT_VERSION, true );
35
 
36
  // Load qTip
37
- wp_register_style( 'qtip', MTPHR_DNT_URL.'assets/qtip/jquery.qtip.min.css', false, MTPHR_DNT_VERSION );
38
  wp_enqueue_style( 'qtip' );
39
- wp_register_script( 'qtip', MTPHR_DNT_URL.'assets/qtip/jquery.qtip.min.js', array( 'jquery' ), MTPHR_DNT_VERSION, true );
40
  wp_enqueue_script( 'qtip' );
41
 
42
  // Load the news ticker scripts
43
- wp_register_script( 'ditty-news-ticker', MTPHR_DNT_URL.'assets/js/script-admin.js', array( 'jquery','jquery-ui-core','jquery-ui-sortable', 'jquery-easing', 'qtip', 'mtphr-dnt-affix' ), MTPHR_DNT_VERSION, true );
44
  wp_enqueue_script( 'ditty-news-ticker' );
45
  wp_localize_script( 'ditty-news-ticker', 'ditty_news_ticker_vars', array(
46
  'security' => wp_create_nonce( 'ditty-news-ticker' ),
@@ -51,11 +51,11 @@ function mtphr_dnt_admin_scripts( $hook ) {
51
  }
52
 
53
  // Load the icon font css
54
- wp_register_style( 'ditty-news-ticker-font', MTPHR_DNT_URL.'assets/fontastic/styles.css', false, MTPHR_DNT_VERSION );
55
  wp_enqueue_style( 'ditty-news-ticker-font' );
56
 
57
  // Load the plugin css
58
- wp_register_style( 'ditty-news-ticker', MTPHR_DNT_URL.'assets/css/style-admin.css', array('dashicons'), MTPHR_DNT_VERSION );
59
  wp_enqueue_style( 'ditty-news-ticker' );
60
  }
61
  add_action( 'admin_enqueue_scripts', 'mtphr_dnt_admin_scripts', 9 );
1
  <?php
2
 
3
  /* --------------------------------------------------------- */
4
+ /* !Load the admin scrips - 2.1.2 */
5
  /* --------------------------------------------------------- */
6
 
7
  function mtphr_dnt_admin_scripts( $hook ) {
20
  }
21
 
22
  // Load the CodeMirror plugin
23
+ wp_register_style( 'codemirror', plugins_url('ditty-news-ticker/assets/css/codemirror.css'), false, MTPHR_DNT_VERSION );
24
  wp_enqueue_style( 'codemirror' );
25
+ wp_register_script( 'codemirror', plugins_url('ditty-news-ticker/assets/js/codemirror.js'), array('jquery'), MTPHR_DNT_VERSION, true );
26
  wp_enqueue_script( 'codemirror' );
27
+ wp_register_script( 'codemirror-css', plugins_url('ditty-news-ticker/assets/js/codemirror/css.js'), array('jquery'), MTPHR_DNT_VERSION, true );
28
  wp_enqueue_script( 'codemirror-css' );
29
 
30
  // Register the jQuery easing
31
+ wp_register_script( 'jquery-easing', plugins_url('ditty-news-ticker/assets/js/jquery.easing.1.3.js'), array('jquery'), MTPHR_DNT_VERSION, true );
32
 
33
  // Register Bootstrap
34
+ wp_register_script( 'mtphr-dnt-affix', plugins_url('ditty-news-ticker/assets/js/mtphr-dnt-affix.js'), array('jquery'), MTPHR_DNT_VERSION, true );
35
 
36
  // Load qTip
37
+ wp_register_style( 'qtip', plugins_url('ditty-news-ticker/assets/qtip/jquery.qtip.min.css'), false, '3.0.3' );
38
  wp_enqueue_style( 'qtip' );
39
+ wp_register_script( 'qtip', plugins_url('ditty-news-ticker/assets/qtip/jquery.qtip.min.js'), array( 'jquery' ), '3.0.3', true );
40
  wp_enqueue_script( 'qtip' );
41
 
42
  // Load the news ticker scripts
43
+ wp_register_script( 'ditty-news-ticker', plugins_url('ditty-news-ticker/assets/js/script-admin.js'), array( 'jquery','jquery-ui-core','jquery-ui-sortable', 'jquery-easing', 'qtip', 'mtphr-dnt-affix' ), MTPHR_DNT_VERSION, true );
44
  wp_enqueue_script( 'ditty-news-ticker' );
45
  wp_localize_script( 'ditty-news-ticker', 'ditty_news_ticker_vars', array(
46
  'security' => wp_create_nonce( 'ditty-news-ticker' ),
51
  }
52
 
53
  // Load the icon font css
54
+ wp_register_style( 'ditty-news-ticker-font', plugins_url('ditty-news-ticker/assets/fontastic/styles.css'), false, MTPHR_DNT_VERSION );
55
  wp_enqueue_style( 'ditty-news-ticker-font' );
56
 
57
  // Load the plugin css
58
+ wp_register_style( 'ditty-news-ticker', plugins_url('ditty-news-ticker/assets/css/style-admin.css'), array('dashicons'), MTPHR_DNT_VERSION );
59
  wp_enqueue_style( 'ditty-news-ticker' );
60
  }
61
  add_action( 'admin_enqueue_scripts', 'mtphr_dnt_admin_scripts', 9 );
includes/scripts.php CHANGED
@@ -1,35 +1,26 @@
1
  <?php
2
 
3
  /* --------------------------------------------------------- */
4
- /* !Load the front end scripts - 1.5.0 */
5
  /* --------------------------------------------------------- */
6
 
7
  function mtphr_dnt_scripts() {
8
 
9
  // Load the icon font css
10
- wp_register_style( 'ditty-news-ticker-font', MTPHR_DNT_URL.'assets/fontastic/styles.css', false, MTPHR_DNT_VERSION );
11
  wp_enqueue_style( 'ditty-news-ticker-font' );
12
 
13
  // Register touchSwipe
14
- wp_register_script( 'touchSwipe', MTPHR_DNT_URL.'assets/js/jquery.touchSwipe.min.js', array('jquery'), MTPHR_DNT_VERSION, true );
15
 
16
  // Register the jQuery easing
17
- wp_register_script( 'jquery-easing', MTPHR_DNT_URL.'assets/js/jquery.easing.1.3.js', array('jquery'), MTPHR_DNT_VERSION, true );
18
-
19
- // Register the Ditty News Ticker image scripts
20
- //wp_register_script( 'ditty-news-ticker-images', MTPHR_DNT_URL.'assets/js/ditty-news-ticker-images.js', array('jquery'), MTPHR_DNT_VERSION, true );
21
- //wp_enqueue_script( 'ditty-news-ticker-images' );
22
-
23
 
24
  // Register the Ditty News Ticker scripts
25
- wp_register_style( 'ditty-news-ticker', MTPHR_DNT_URL.'assets/css/style.css', false, MTPHR_DNT_VERSION );
26
  wp_enqueue_style( 'ditty-news-ticker' );
27
- wp_register_script( 'imagesLoaded', MTPHR_DNT_URL.'assets/js/imagesloaded.pkgd.min.js', array('jquery'), MTPHR_DNT_VERSION, true );
28
- wp_register_script( 'ditty-news-ticker', MTPHR_DNT_URL.'assets/js/ditty-news-ticker.js', array('jquery', 'imagesLoaded', 'touchSwipe', 'jquery-easing'), MTPHR_DNT_VERSION, true );
29
-
30
- // Register the rotate scripts
31
- //wp_register_script( 'unslider', MTPHR_DNT_URL.'assets/unslider/js/unslider-min.js', array('jquery'), MTPHR_DNT_VERSION, true );
32
- //wp_register_script( 'ditty-rotate-ticker', MTPHR_DNT_URL.'assets/js/ditty-rotate-ticker.js', array('jquery', 'unslider'), MTPHR_DNT_VERSION, true );
33
  }
34
  add_action( 'wp_enqueue_scripts', 'mtphr_dnt_scripts' );
35
 
@@ -106,43 +97,4 @@ function mtphr_dnt_tickers_init_scripts() {
106
  <?php
107
  }
108
  }
109
- add_action( 'wp_footer', 'mtphr_dnt_tickers_init_scripts', 20 );
110
-
111
-
112
- /* --------------------------------------------------------- */
113
- /* !Initialize the carousel scripts - 2.0.9 */
114
- /* --------------------------------------------------------- */
115
-
116
- /*
117
- function mtphr_dnt_rotate_init_scripts() {
118
-
119
- global $mtphr_dnt_rotate_ticks;
120
-
121
- if( is_array($mtphr_dnt_rotate_ticks) && !empty($mtphr_dnt_rotate_ticks) ) {
122
- wp_print_scripts('unslider');
123
- wp_print_scripts('ditty-rotate-ticker');
124
-
125
- $filtered_tickers = array();
126
- $id_array = array();
127
- foreach ( $mtphr_dnt_rotate_ticks as $ticker_id=>$ticks) {
128
- if (!array_key_exists($ticker_id, $id_array)) {
129
- $id_array[$ticker_id] = $ticker_id;
130
- $filtered_tickers[$ticker_id] = $ticks;
131
- }
132
- }
133
- ?>
134
- <script>
135
- jQuery( document ).ready( function($) {
136
- <?php foreach( $filtered_tickers as $ticker_id=>$ticks ) { ?>
137
- $( '#<?php echo $ticker_id; ?>' ).ditty_rotate_ticker({
138
- id : '<?php echo $ticker_id; ?>',
139
- ticks : <?php echo json_encode($ticks); ?>
140
- });
141
- <?php } ?>
142
- });
143
- </script>
144
- <?php
145
- }
146
- }
147
- */
148
- //add_action( 'wp_footer', 'mtphr_dnt_rotate_init_scripts', 20 );
1
  <?php
2
 
3
  /* --------------------------------------------------------- */
4
+ /* !Load the front end scripts - 2.1.2 */
5
  /* --------------------------------------------------------- */
6
 
7
  function mtphr_dnt_scripts() {
8
 
9
  // Load the icon font css
10
+ wp_register_style( 'ditty-news-ticker-font', plugins_url('ditty-news-ticker/assets/fontastic/styles.css'), false, MTPHR_DNT_VERSION );
11
  wp_enqueue_style( 'ditty-news-ticker-font' );
12
 
13
  // Register touchSwipe
14
+ wp_register_script( 'touchSwipe', plugins_url('ditty-news-ticker/assets/js/jquery.touchSwipe.min.js'), array('jquery'), MTPHR_DNT_VERSION, true );
15
 
16
  // Register the jQuery easing
17
+ wp_register_script( 'jquery-easing', plugins_url('ditty-news-ticker/assets/js/jquery.easing.1.3.js'), array('jquery'), MTPHR_DNT_VERSION, true );
 
 
 
 
 
18
 
19
  // Register the Ditty News Ticker scripts
20
+ wp_register_style( 'ditty-news-ticker', plugins_url('ditty-news-ticker/assets/css/style.css'), false, MTPHR_DNT_VERSION );
21
  wp_enqueue_style( 'ditty-news-ticker' );
22
+ wp_register_script( 'imagesLoaded', plugins_url('ditty-news-ticker/assets/js/imagesloaded.pkgd.min.js'), array('jquery'), MTPHR_DNT_VERSION, true );
23
+ wp_register_script( 'ditty-news-ticker', plugins_url('ditty-news-ticker/assets/js/ditty-news-ticker.js'), array('jquery', 'imagesLoaded', 'touchSwipe', 'jquery-easing'), MTPHR_DNT_VERSION, true );
 
 
 
 
24
  }
25
  add_action( 'wp_enqueue_scripts', 'mtphr_dnt_scripts' );
26
 
97
  <?php
98
  }
99
  }
100
+ add_action( 'wp_footer', 'mtphr_dnt_tickers_init_scripts', 20 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -68,6 +68,10 @@ Each individual Ticker post has multiple settings to customize.
68
 
69
  == Changelog ==
70
 
 
 
 
 
71
  = 2.1.1 =
72
  * Bug fix from last update
73
  * Added custom News Tickers Settings capability for admins
@@ -394,4 +398,4 @@ Each individual Ticker post has multiple settings to customize.
394
 
395
  == Upgrade Notice ==
396
 
397
- Bug fix and settings capability added
68
 
69
  == Changelog ==
70
 
71
+ = 2.1.2 =
72
+ * Updated qtip scripts
73
+ * Updated paths to enqueued files
74
+
75
  = 2.1.1 =
76
  * Bug fix from last update
77
  * Added custom News Tickers Settings capability for admins
398
 
399
  == Upgrade Notice ==
400
 
401
+ Updated qtip scripts & paths to enqueued files