飞道的博客

b站黑马JavaScript的Ajax案例代码——聊天机器人案例

417人阅读  评论(0)

目录

目标效果:

更换的新接口:

1.机器人智能回复接口:http://www.liulongbin.top:3006/api/robot

2.机器人语音接口:http://www.liulongbin.top:3006/api/synthesize

重点原理:

1.jQuery中trim方法 

2.jquery中append方法

3.jQuery中attr方法-设置/返回被选元素的属性值 

4.通过设置 自动播放语音 

5.keyup是某个键盘按键松开触发 

6.keyup是某个键盘按键松开触发 

代码部分:

1.chat.js(全是重点) 

2.聊天机器人.html(辅助作用,用于添加 和查看结构)

3.scroll.js(辅助作用,用于实现:页面滚动效果)

4.jquery-1.12.4.min.js(辅助作用)

5.jquery-ui.min.js(辅助作用)

6.jquery.mousewheel.js(辅助作用)

7.reset.css(辅助作用)

8.main.css(辅助作用)


目标效果:

1.点击发送按钮,即可发送自己在聊天框输入的内容【空格/没输入,则不会被发送】

2.聊天机器人会回复自己发送的内容

3.机器人可以将它发送的聊天信息的语音自动播放【该接口有时行,有时不行。好的时候可以智能回应1中的内容,并读出该内容的语音】

4.在有多次对话之后,右边的滚动条会默认处于右边最下方,以显示最新的对话

5.按回车键,也可发送自己在聊天框输入的内容

更换的新接口:

1.机器人智能回复接口:http://www.liulongbin.top:3006/api/robot

2.机器人语音接口:http://www.liulongbin.top:3006/api/synthesize

e.g.1初始状态:

 e.g.2用户输入牛奶:

机器人智能回复,并且读出回复内容的语音

b站黑马Ajax案例代码——聊天机器人效果.mp4

 e.g.3多次对话后,右边滚动条还是在右边的最下面

重点原理:

1.jQuery中trim方法 

2.jquery中append方法

3.jQuery中attr方法-设置/返回被选元素的属性值 

4.通过设置 <audio> 自动播放语音 

5.keyup是某个键盘按键松开触发 

6.keyup是某个键盘按键松开触发 

代码部分:

1.chat.js(全是重点) 


  
  1. $( function ( ) {
  2. // 初始化右侧滚动条
  3. // 这个方法定义在scroll.js中
  4. resetui(); //resetui函数用于实现:每次发送内容之后,页面会自动滚动到最底部
  5. //1.给发送按钮绑定点击事件
  6. $( '#btnSend'). on( 'click', function ( ) {
  7. var text = $( '#ipt'). val(). trim(); //trim()用于去除两端的空格
  8. //(1)如果用户输入的是空格/没输入
  9. if (text. length <= 0) {
  10. return $( '#ipt'). val( ''); //清空#ipt文本框内容
  11. }
  12. //(2)如果用户输入了内容,则将该内容追加至页面上显示
  13. //字符串不允许回车换行,所以下一行中append后面的内容得在一行上
  14. $( '#talk_list'). append( '<li class="right_word"><img src="img/person02.png" /><span>' + text + '</span></li>');
  15. $( '#ipt'). val( ''); //发送完毕后,清空#ipt文本框内容
  16. //发送完毕,实现页面自动滚动到最底部
  17. resetui();
  18. //调用下面的getMsg函数,传递参数text给下面的text
  19. getMsg(text);
  20. })
  21. //2.获取聊天机器人发送回来的消息
  22. function getMsg( text1) { //此处text1,接收上面的text参数
  23. $. ajax({
  24. method: 'GET',
  25. url: 'http://www.liulongbin.top:3006/api/robot',
  26. data: {
  27. spoken: text1
  28. },
  29. success: function ( res) {
  30. if (res. message === 'success') {
  31. //接收机器人发送过来的聊天消息
  32. var msg = res. data. info. text;
  33. $( '#talk_list'). append( '<li class="left_word"><img src="img/person01.png"/><span>' + msg + '</span></li>');
  34. //发送完毕,实现页面自动滚动到最底部
  35. resetui();
  36. //调用下面的getVoice函数,传递参数msg给下面的text2
  37. getVoice(msg);
  38. }
  39. }
  40. })
  41. }
  42. //3.将机器人发送的聊天信息转换为语音
  43. function getVoice( msg1) { //此处msg1和,接收上面的msg参数
  44. $. ajax({
  45. method: 'GET',
  46. url: 'http://www.liulongbin.top:3006/api/synthesize',
  47. data: {
  48. text: msg1
  49. },
  50. success: function ( res) {
  51. // console.log(res);
  52. if (res. status === 200) {
  53. //播放语音
  54. $( '#voice'). attr( 'src', res. voiceUrl); //给audio设置了新的src属性
  55. }
  56. }
  57. })
  58. }
  59. //4.按回车键可以发送自己聊天消息内容
  60. $( '#ipt'). on( 'keyup', function ( e) {
  61. //e.key返回按键的字符串形式(ie9以上支持)
  62. //用户弹起键盘的回车键的时候
  63. if (e. key === 'Enter') {
  64. //触发发送的按钮
  65. $( '#ntnSend'). click();
  66. }
  67. })
  68. })

2.聊天机器人.html(辅助作用,用于添加<audio></audio>和查看结构)


  
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge" />
  7. <link rel="stylesheet" href="css/reset.css" />
  8. <link rel="stylesheet" href="css/main.css" />
  9. <script type="text/javascript" src="js/jquery-1.12.4.min.js"> </script>
  10. <script type="text/javascript" src="js/jquery-ui.min.js"> </script>
  11. <script type="text/javascript" src="js/jquery.mousewheel.js"> </script>
  12. <title>聊天机器人 </title>
  13. </head>
  14. <body>
  15. <div class="wrap">
  16. <!-- 头部 Header 区域 -->
  17. <div class="header">
  18. <h3>小思同学 </h3>
  19. <img src="img/person01.png" alt="icon" />
  20. </div>
  21. <!-- 中间 聊天内容区域 -->
  22. <div class="main">
  23. <ul class="talk_list" style="top: 0px;" id="talk_list">
  24. <li class="left_word">
  25. <img src="img/person01.png" /> <span>嗨,最近想我了没有 </span>
  26. </li>
  27. <!-- <li class="right_word">
  28. <img src="img/person02.png" /> <span>你好哦</span>
  29. </li> -->
  30. </ul>
  31. <div class="drag_bar" style="display: none;">
  32. <div class="drager ui-draggable ui-draggable-handle" style="display: none; height: 412.628px;"> </div>
  33. </div>
  34. </div>
  35. <!-- 底部 消息编辑区域 -->
  36. <div class="footer">
  37. <img src="img/person02.png" alt="icon" />
  38. <input type="text" placeholder="说的什么吧..." class="input_txt" id="ipt" />
  39. <input type="button" value="发 送" class="input_sub" id="btnSend" />
  40. </div>
  41. </div>
  42. <!-- 只要为audio指定了新的src属性,并且指定了autoplay,就会自动播放语音 -->
  43. <audio src="" id="voice" autoplay style="display: none;"> </audio>
  44. <!-- scroll.js用于实现:页面滚动效果 -->
  45. <script type="text/javascript" src="js/scroll.js"> </script>
  46. <script src="./js/chat.js"> </script>
  47. </body>
  48. </html>

3.scroll.js(辅助作用,用于实现:页面滚动效果)


  
  1. $( function () {
  2. var $main = $( '.main');
  3. var $list = $( '.talk_list');
  4. var $drager = $( '.drager');
  5. var $mainh = $main. outerHeight( false);
  6. var $listh = $list. outerHeight( false);
  7. var $rate = $mainh / $listh;
  8. var $dragh = $mainh * $rate;
  9. var $top = 0;
  10. $drager. css({ 'height': $dragh });
  11. $drager. draggable({
  12. containment: "parent",
  13. drag: function (ev, ui) {
  14. $top = ui.position.top;
  15. $list. css({ 'top': - $top / $rate });
  16. }
  17. });
  18. $(window). resize(function () {
  19. resetui();
  20. });
  21. //var timer = null;
  22. var flag = false;
  23. $main. mousewheel(function(ev,delta){
  24. //console.log(delta);
  25. //clearTimeout(timer);
  26. //timer = setTimeout(function(){
  27. // 向上滚动正值,向下滚动负值
  28. if(flag){
  29. return;
  30. }
  31. flag = true;
  32. setTimeout(function(){
  33. flag = false;
  34. }, 300);
  35. if( $listh <= $mainh){
  36. return;
  37. } else{
  38. if(delta> 0){
  39. $top = $top- 60;
  40. if( $top< 0){
  41. $top= 0;
  42. }
  43. $drager. animate({ 'top': $top }, 200);
  44. $list. animate({ 'top': - $top / $rate }, 200);
  45. } else{
  46. $top = $top+ 60;
  47. if( $top>( $mainh- $dragh)){
  48. $top= parseInt( $mainh- $dragh);
  49. }
  50. $drager. animate({ 'top': $top }, 200);
  51. $list. animate({ 'top': - parseInt( $top / $rate) }, 200);
  52. }
  53. }
  54. //},300);
  55. });
  56. if ( $listh <= $mainh) {
  57. $( '.drag_bar'). hide();
  58. $( '.drager'). hide();
  59. }
  60. function resetui(){
  61. $mainh = $main. outerHeight( false);
  62. $listh = $list. outerHeight( false);
  63. $rate = $mainh / $listh;
  64. $dragh = $mainh * $rate;
  65. $drager. css({ 'height': $dragh });
  66. if ( $listh <= $mainh) {
  67. $( '.drag_bar'). hide();
  68. $drager. hide();
  69. $list. css({ 'top': 0 });
  70. } else {
  71. $( '.drag_bar'). show();
  72. $drager. show();
  73. $drager. css({ 'top': $mainh- $dragh });
  74. $list. css({ 'top': -( $listh- $mainh) });
  75. }
  76. }
  77. window.resetui = resetui;
  78. })

4.jquery-1.12.4.min.js(辅助作用)


  
  1. /*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */
  2. ! function( a,b){ "object"== typeof module&& "object"== typeof module. exports? module. exports=a. document? b(a,! 0): function( a){ if(!a. document) throw new Error( "jQuery requires a window with a document"); return b(a)}: b(a)}( "undefined"!= typeof window? window: this, function( a,b){ var c=[],d=a. document,e=c. slice,f=c. concat,g=c. push,h=c. indexOf,i={},j=i. toString,k=i. hasOwnProperty,l={},m= "1.12.4",n= function( a,b){ return new n. fn. init(a,b)},o= /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p= /^-ms-/,q= /-([\da-z])/gi,r= function( a,b){ return b. toUpperCase()};n. fn=n. prototype={ jquery:m, constructor:n, selector: "", length: 0, toArray: function( ){ return e. call( this)}, get: function( a){ return null!=a? 0>a? this[a+ this. length]: this[a]:e. call( this)}, pushStack: function( a){ var b=n. merge( this. constructor( ),a); return b. prevObject= this,b. context= this. context,b}, each: function( a){ return n. each( this,a)}, map: function( a){ return this. pushStack(n. map( this, function( b,c){ return a. call(b,c,b)}))}, slice: function( ){ return this. pushStack(e. apply( this, arguments))}, first: function( ){ return this. eq( 0)}, last: function( ){ return this. eq(- 1)}, eq: function( a){ var b= this. length,c=+a+( 0>a? b: 0); return this. pushStack(c>= 0&&b>c?[ this[c]]:[])}, end: function( ){ return this. prevObject|| this. constructor( )}, push:g, sort:c. sort, splice:c. splice},n. extend=n. fn. extend= function( ){ var a,b,c,d,e,f,g= arguments[ 0]||{},h= 1,i= arguments. length,j=! 1; for( "boolean"== typeof g&&(j=g,g= arguments[h]||{},h++), "object"== typeof g||n. isFunction(g)||(g={}),h===i&&(g= this,h--);i>h;h++) if( null!=(e= arguments[h])) for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n. isPlainObject(c)||(b=n. isArray(c)))?(b?(b=! 1,f=a&&n. isArray(a)? a:[]):f=a&&n. isPlainObject(a)? a:{},g[d]=n. extend(j,f,c)): void 0!==c&&(g[d]=c)); return g},n. extend({ expando: "jQuery"+(m+ Math. random()). replace( /\D/g, ""), isReady:! 0, error: function( a){ throw new Error(a)}, noop: function( ){}, isFunction: function( a){ return "function"===n. type(a)}, isArray: Array. isArray|| function( a){ return "array"===n. type(a)}, isWindow: function( a){ return null!=a&&a==a. window}, isNumeric: function( a){ var b=a&&a. toString(); return!n. isArray(a)&&b- parseFloat(b)+ 1>= 0}, isEmptyObject: function( a){ var b; for(b in a) return! 1; return! 0}, isPlainObject: function( a){ var b; if(!a|| "object"!==n. type(a)||a. nodeType||n. isWindow(a)) return! 1; try{ if(a. constructor&&!k. call(a, "constructor")&&!k. call(a. constructor. prototype, "isPrototypeOf")) return! 1} catch(c){ return! 1} if(!l. ownFirst) for(b in a) return k. call(a,b); for(b in a); return void 0===b||k. call(a,b)}, type: function( a){ return null==a?a+ "": "object"== typeof a|| "function"== typeof a?i[j. call(a)]|| "object": typeof a}, globalEval: function( b){b&&n. trim(b)&&(a. execScript|| function( b){a. eval. call(a,b)})(b)}, camelCase: function( a){ return a. replace(p, "ms-"). replace(q,r)}, nodeName: function( a,b){ return a. nodeName&&a. nodeName. toLowerCase()===b. toLowerCase()}, each: function( a,b){ var c,d= 0; if( s(a)){ for(c=a. length;c>d;d++) if(b. call(a[d],d,a[d])===! 1) break} else for(d in a) if(b. call(a[d],d,a[d])===! 1) break; return a}, trim: function( a){ return null==a? "":(a+ ""). replace(o, "")}, makeArray: function( a,b){ var c=b||[]; return null!=a&&( s( Object(a))?n. merge(c, "string"== typeof a?[a]:a):g. call(c,a)),c}, inArray: function( a,b,c){ var d; if(b){ if(h) return h. call(b,a,c); for(d=b. length,c=c? 0>c? Math. max( 0,d+c): c: 0;d>c;c++) if(c in b&&b[c]===a) return c} return- 1}, merge: function( a,b){ var c=+b. length,d= 0,e=a. length; while(c>d)a[e++]=b[d++]; if(c!==c) while( void 0!==b[d])a[e++]=b[d++]; return a. length=e,a}, grep: function( a,b,c){ for( var d,e=[],f= 0,g=a. length,h=!c;g>f;f++)d=! b(a[f],f),d!==h&&e. push(a[f]); return e}, map: function( a,b,c){ var d,e,g= 0,h=[]; if( s(a)) for(d=a. length;d>g;g++)e= b(a[g],g,c), null!=e&&h. push(e); else for(g in a)e= b(a[g],g,c), null!=e&&h. push(e); return f. apply([],h)}, guid: 1, proxy: function( a,b){ var c,d,f; return "string"== typeof b&&(f=a[b],b=a,a=f),n. isFunction(a)?(c=e. call( arguments, 2),d= function( ){ return a. apply(b|| this,c. concat(e. call( arguments)))},d. guid=a. guid=a. guid||n. guid++,d): void 0}, now: function( ){ return+ new Date}, support:l}), "function"== typeof Symbol&&(n. fn[ Symbol. iterator]=c[ Symbol. iterator]),n. each( "Boolean Number String Function Array Date RegExp Object Error Symbol". split( " "), function( a,b){i[ "[object "+b+ "]"]=b. toLowerCase()}); function s( a){ var b=!!a&& "length" in a&&a. length,c=n. type(a); return "function"===c||n. isWindow(a)?! 1: "array"===c|| 0===b|| "number"== typeof b&&b> 0&&b- 1 in a} var t= function( a){ var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u= "sizzle"+ 1* new Date,v=a. document,w= 0,x= 0,y= ga(),z= ga(),A= ga(),B= function( a,b){ return a===b&&(l=! 0), 0},C= 1<< 31,D={}. hasOwnProperty,E=[],F=E. pop,G=E. push,H=E. push,I=E. slice,J= function( a,b){ for( var c= 0,d=a. length;d>c;c++) if(a[c]===b) return c; return- 1},K= "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",L= "[\\x20\\t\\r\\n\\f]",M= "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",N= "\\["+L+ "*("+M+ ")(?:"+L+ "*([*^$|!~]?=)"+L+ "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+M+ "))|)"+L+ "*\\]",O= ":("+M+ ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+N+ ")*)|.*)\\)|)",P= new RegExp(L+ "+", "g"),Q= new RegExp( "^"+L+ "+|((?:^|[^\\\\])(?:\\\\.)*)"+L+ "+$", "g"),R= new RegExp( "^"+L+ "*,"+L+ "*"),S= new RegExp( "^"+L+ "*([>+~]|"+L+ ")"+L+ "*"),T= new RegExp( "="+L+ "*([^\\]'\"]*?)"+L+ "*\\]", "g"),U= new RegExp(O),V= new RegExp( "^"+M+ "$"),W={ ID: new RegExp( "^#("+M+ ")"), CLASS: new RegExp( "^\\.("+M+ ")"), TAG: new RegExp( "^("+M+ "|[*])"), ATTR: new RegExp( "^"+N), PSEUDO: new RegExp( "^"+O), CHILD: new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+L+ "*(even|odd|(([+-]|)(\\d*)n|)"+L+ "*(?:([+-]|)"+L+ "*(\\d+)|))"+L+ "*\\)|)", "i"), bool: new RegExp( "^(?:"+K+ ")$", "i"), needsContext: new RegExp( "^"+L+ "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+L+ "*((?:-\\d)?\\d*)"+L+ "*\\)|)(?=[^-]|$)", "i")},X= /^(?:input|select|textarea|button)$/i,Y= /^h\d$/i,Z= /^[^{]+\{\s*\[native \w/,$= /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,_= /[+~]/,aa= /'|\\/g,ba= new RegExp( "\\\\([\\da-f]{1,6}"+L+ "?|("+L+ ")|.)", "ig"),ca= function( a,b,c){ var d= "0x"+b- 65536; return d!==d||c? b: 0>d? String. fromCharCode(d+ 65536): String. fromCharCode(d>> 10| 55296, 1023&d| 56320)},da= function( ){ m()}; try{H. apply(E=I. call(v. childNodes),v. childNodes),E[v. childNodes. length]. nodeType} catch(ea){H={ apply:E. length? function( a,b){G. apply(a,I. call(b))}: function( a,b){ var c=a. length,d= 0; while(a[c++]=b[d++]);a. length=c- 1}}} function fa( a,b,d,e){ var f,h,j,k,l,o,r,s,w=b&&b. ownerDocument,x=b?b. nodeType: 9; if(d=d||[], "string"!= typeof a||!a|| 1!==x&& 9!==x&& 11!==x) return d; if(!e&&((b?b. ownerDocument|| b:v)!==n&& m(b),b=b||n,p)){ if( 11!==x&&(o=$. exec(a))) if(f=o[ 1]){ if( 9===x){ if(!(j=b. getElementById(f))) return d; if(j. id===f) return d. push(j),d} else if(w&&(j=w. getElementById(f))&& t(b,j)&&j. id===f) return d. push(j),d} else{ if(o[ 2]) return H. apply(d,b. getElementsByTagName(a)),d; if((f=o[ 3])&&c. getElementsByClassName&&b. getElementsByClassName) return H. apply(d,b. getElementsByClassName(f)),d} if(c. qsa&&!A[a+ " "]&&(!q||!q. test(a))){ if( 1!==x)w=b,s=a; else if( "object"!==b. nodeName. toLowerCase()){(k=b. getAttribute( "id"))?k=k. replace(aa, "\\$&"):b. setAttribute( "id",k=u),r= g(a),h=r. length,l=V. test(k)? "#"+ k: "[id='"+k+ "']"; while(h--)r[h]=l+ " "+ qa(r[h]);s=r. join( ","),w=_. test(a)&& oa(b. parentNode)||b} if(s) try{ return H. apply(d,w. querySelectorAll(s)),d} catch(y){} finally{k===u&&b. removeAttribute( "id")}}} return i(a. replace(Q, "$1"),b,d,e)} function ga( ){ var a=[]; function b( c,e){ return a. push(c+ " ")>d. cacheLength&& delete b[a. shift()],b[c+ " "]=e} return b} function ha( a){ return a[u]=! 0,a} function ia( a){ var b=n. createElement( "div"); try{ return!! a(b)} catch(c){ return! 1} finally{b. parentNode&&b. parentNode. removeChild(b),b= null}} function ja( a,b){ var c=a. split( "|"),e=c. length; while(e--)d. attrHandle[c[e]]=b} function ka( a,b){ var c=b&&a,d=c&& 1===a. nodeType&& 1===b. nodeType&&(~b. sourceIndex||C)-(~a. sourceIndex||C); if(d) return d; if(c) while(c=c. nextSibling) if(c===b) return- 1; return a? 1:- 1} function la( a){ return function( b){ var c=b. nodeName. toLowerCase(); return "input"===c&&b. type===a}} function ma( a){ return function( b){ var c=b. nodeName. toLowerCase(); return( "input"===c|| "button"===c)&&b. type===a}} function na( a){ return ha( function( b){ return b=+b, ha( function( c,d){ var e,f= a([],c. length,b),g=f. length; while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})} function oa( a){ return a&& "undefined"!= typeof a. getElementsByTagName&&a}c=fa. support={},f=fa. isXML= function( a){ var b=a&&(a. ownerDocument||a). documentElement; return b? "HTML"!==b. nodeName:! 1},m=fa. setDocument= function( a){ var b,e,g=a?a. ownerDocument|| a:v; return g!==n&& 9===g. nodeType&&g. documentElement?(n=g,o=n. documentElement,p=! f(n),(e=n. defaultView)&&e. top!==e&&(e. addEventListener?e. addEventListener( "unload",da,! 1):e. attachEvent&&e. attachEvent( "onunload",da)),c. attributes= ia( function( a){ return a. className= "i",!a. getAttribute( "className")}),c. getElementsByTagName= ia( function( a){ return a. appendChild(n. createComment( "")),!a. getElementsByTagName( "*"). length}),c. getElementsByClassName=Z. test(n. getElementsByClassName),c. getById= ia( function( a){ return o. appendChild(a). id=u,!n. getElementsByName||!n. getElementsByName(u). length}),c. getById?(d. find. ID= function( a,b){ if( "undefined"!= typeof b. getElementById&&p){ var c=b. getElementById(a); return c?[c]:[]}},d. filter. ID= function( a){ var b=a. replace(ba,ca); return function( a){ return a. getAttribute( "id")===b}}):( delete d. find. ID,d. filter. ID= function( a){ var b=a. replace(ba,ca); return function( a){ var c= "undefined"!= typeof a. getAttributeNode&&a. getAttributeNode( "id"); return c&&c. value===b}}),d. find. TAG=c. getElementsByTagName? function( a,b){ return "undefined"!= typeof b. getElementsByTagName?b. getElementsByTagName(a):c. qsa?b. querySelectorAll(a): void 0}: function( a,b){ var c,d=[],e= 0,f=b. getElementsByTagName(a); if( "*"===a){ while(c=f[e++]) 1===c. nodeType&&d. push(c); return d} return f},d. find. CLASS=c. getElementsByClassName&& function( a,b){ return "undefined"!= typeof b. getElementsByClassName&&p?b. getElementsByClassName(a): void 0},r=[],q=[],(c. qsa=Z. test(n. querySelectorAll))&&( ia( function( a){o. appendChild(a). innerHTML= "<a id='"+u+ "'></a><select id='"+u+ "-\r\\' msallowcapture=''><option selected=''></option></select>",a. querySelectorAll( "[msallowcapture^='']"). length&&q. push( "[*^$]="+L+ "*(?:''|\"\")"),a. querySelectorAll( "[selected]"). length||q. push( "\\["+L+ "*(?:value|"+K+ ")"),a. querySelectorAll( "[id~="+u+ "-]"). length||q. push( "~="),a. querySelectorAll( ":checked"). length||q. push( ":checked"),a. querySelectorAll( "a#"+u+ "+*"). length||q. push( ".#.+[+~]")}), ia( function( a){ var b=n. createElement( "input");b. setAttribute( "type", "hidden"),a. appendChild(b). setAttribute( "name", "D"),a. querySelectorAll( "[name=d]"). length&&q. push( "name"+L+ "*[*^$|!~]?="),a. querySelectorAll( ":enabled"). length||q. push( ":enabled", ":disabled"),a. querySelectorAll( "*,:x"),q. push( ",.*:")})),(c. matchesSelector=Z. test(s=o. matches||o. webkitMatchesSelector||o. mozMatchesSelector||o. oMatchesSelector||o. msMatchesSelector))&& ia( function( a){c. disconnectedMatch=s. call(a, "div"),s. call(a, "[s!='']:x"),r. push( "!=",O)}),q=q. length&& new RegExp(q. join( "|")),r=r. length&& new RegExp(r. join( "|")),b=Z. test(o. compareDocumentPosition),t=b||Z. test(o. contains)? function( a,b){ var c= 9===a. nodeType?a. documentElement:a,d=b&&b. parentNode; return a===d||!(!d|| 1!==d. nodeType||!(c. contains?c. contains(d):a. compareDocumentPosition&& 16&a. compareDocumentPosition(d)))}: function( a,b){ if(b) while(b=b. parentNode) if(b===a) return! 0; return! 1},B=b? function( a,b){ if(a===b) return l=! 0, 0; var d=!a. compareDocumentPosition-!b. compareDocumentPosition; return d? d:(d=(a. ownerDocument||a)===(b. ownerDocument||b)?a. compareDocumentPosition(b): 1, 1&d||!c. sortDetached&&b. compareDocumentPosition(a)===d?a===n||a. ownerDocument===v&& t(v,a)?- 1:b===n||b. ownerDocument===v&& t(v,b)? 1:k? J(k,a)- J(k,b): 0: 4&d?- 1: 1)}: function( a,b){ if(a===b) return l=! 0, 0; var c,d= 0,e=a. parentNode,f=b. parentNode,g=[a],h=[b]; if(!e||!f) return a===n?- 1:b===n? 1:e?- 1:f? 1:k? J(k,a)- J(k,b): 0; if(e===f) return ka(a,b);c=a; while(c=c. parentNode)g. unshift(c);c=b; while(c=c. parentNode)h. unshift(c); while(g[d]===h[d])d++; return d? ka(g[d],h[d]):g[d]===v?- 1:h[d]===v? 1: 0},n):n},fa. matches= function( a,b){ return fa(a, null, null,b)},fa. matchesSelector= function( a,b){ if((a. ownerDocument||a)!==n&& m(a),b=b. replace(T, "='$1']"),c. matchesSelector&&p&&!A[b+ " "]&&(!r||!r. test(b))&&(!q||!q. test(b))) try{ var d=s. call(a,b); if(d||c. disconnectedMatch||a. document&& 11!==a. document. nodeType) return d} catch(e){} return fa(b,n, null,[a]). length> 0},fa. contains= function( a,b){ return(a. ownerDocument||a)!==n&& m(a), t(a,b)},fa. attr= function( a,b){(a. ownerDocument||a)!==n&& m(a); var e=d. attrHandle[b. toLowerCase()],f=e&&D. call(d. attrHandle,b. toLowerCase())? e(a,b,!p): void 0; return void 0!==f? f:c. attributes||!p?a. getAttribute(b):(f=a. getAttributeNode(b))&&f. specified?f. value: null},fa. error= function( a){ throw new Error( "Syntax error, unrecognized expression: "+a)},fa. uniqueSort= function( a){ var b,d=[],e= 0,f= 0; if(l=!c. detectDuplicates,k=!c. sortStable&&a. slice( 0),a. sort(B),l){ while(b=a[f++])b===a[f]&&(e=d. push(f)); while(e--)a. splice(d[e], 1)} return k= null,a},e=fa. getText= function( a){ var b,c= "",d= 0,f=a. nodeType; if(f){ if( 1===f|| 9===f|| 11===f){ if( "string"== typeof a. textContent) return a. textContent; for(a=a. firstChild;a;a=a. nextSibling)c+= e(a)} else if( 3===f|| 4===f) return a. nodeValue} else while(b=a[d++])c+= e(b); return c},d=fa. selectors={ cacheLength: 50, createPseudo:ha, match:W, attrHandle:{}, find:{}, relative:{ ">":{ dir: "parentNode", first:! 0}, " ":{ dir: "parentNode"}, "+":{ dir: "previousSibling", first:! 0}, "~":{ dir: "previousSibling"}}, preFilter:{ ATTR: function( a){ return a[ 1]=a[ 1]. replace(ba,ca),a[ 3]=(a[ 3]||a[ 4]||a[ 5]|| ""). replace(ba,ca), "~="===a[ 2]&&(a[ 3]= " "+a[ 3]+ " "),a. slice( 0, 4)}, CHILD: function( a){ return a[ 1]=a[ 1]. toLowerCase(), "nth"===a[ 1]. slice( 0, 3)?(a[ 3]||fa. error(a[ 0]),a[ 4]=+(a[ 4]?a[ 5]+(a[ 6]|| 1): 2*( "even"===a[ 3]|| "odd"===a[ 3])),a[ 5]=+(a[ 7]+a[ 8]|| "odd"===a[ 3])):a[ 3]&&fa. error(a[ 0]),a}, PSEUDO: function( a){ var b,c=!a[ 6]&&a[ 2]; return W. CHILD. test(a[ 0])? null:(a[ 3]?a[ 2]=a[ 4]||a[ 5]|| "":c&&U. test(c)&&(b= g(c,! 0))&&(b=c. indexOf( ")",c. length-b)-c. length)&&(a[ 0]=a[ 0]. slice( 0,b),a[ 2]=c. slice( 0,b)),a. slice( 0, 3))}}, filter:{ TAG: function( a){ var b=a. replace(ba,ca). toLowerCase(); return "*"===a? function( ){ return! 0}: function( a){ return a. nodeName&&a. nodeName. toLowerCase()===b}}, CLASS: function( a){ var b=y[a+ " "]; return b||(b= new RegExp( "(^|"+L+ ")"+a+ "("+L+ "|$)"))&& y(a, function( a){ return b. test( "string"== typeof a. className&&a. className|| "undefined"!= typeof a. getAttribute&&a. getAttribute( "class")|| "")})}, ATTR: function( a,b,c){ return function( d){ var e=fa. attr(d,a); return null==e? "!="=== b:b?(e+= "", "="===b?e=== c: "!="===b?e!== c: "^="===b?c&& 0===e. indexOf(c): "*="===b?c&&e. indexOf(c)>- 1: "$="===b?c&&e. slice(-c. length)=== c: "~="===b?( " "+e. replace(P, " ")+ " "). indexOf(c)>- 1: "|="===b?e===c||e. slice( 0,c. length+ 1)===c+ "-":! 1):! 0}}, CHILD: function( a,b,c,d,e){ var f= "nth"!==a. slice( 0, 3),g= "last"!==a. slice(- 4),h= "of-type"===b; return 1===d&& 0===e? function( a){ return!!a. parentNode}: function( b,c,i){ var j,k,l,m,n,o,p=f!==g? "nextSibling": "previousSibling",q=b. parentNode,r=h&&b. nodeName. toLowerCase(),s=!i&&!h,t=! 1; if(q){ if(f){ while(p){m=b; while(m=m[p]) if(h?m. nodeName. toLowerCase()=== r: 1===m. nodeType) return! 1;o=p= "only"===a&&!o&& "nextSibling"} return! 0} if(o=[g?q. firstChild:q. lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m. uniqueID]||(l[m. uniqueID]={}),j=k[a]||[],n=j[ 0]===w&&j[ 1],t=n&&j[ 2],m=n&&q. childNodes[n]; while(m=++n&&m&&m[p]||(t=n= 0)||o. pop()) if( 1===m. nodeType&&++t&&m===b){k[a]=[w,n,t]; break}} else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m. uniqueID]||(l[m. uniqueID]={}),j=k[a]||[],n=j[ 0]===w&&j[ 1],t=n),t===! 1) while(m=++n&&m&&m[p]||(t=n= 0)||o. pop()) if((h?m. nodeName. toLowerCase()=== r: 1===m. nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m. uniqueID]||(l[m. uniqueID]={}),k[a]=[w,t]),m===b)) break; return t-=e,t===d||t%d=== 0&&t/d>= 0}}}, PSEUDO: function( a,b){ var c,e=d. pseudos[a]||d. setFilters[a. toLowerCase()]||fa. error( "unsupported pseudo: "+a); return e[u]? e(b):e. length> 1?(c=[a,a, "",b],d. setFilters. hasOwnProperty(a. toLowerCase())? ha( function( a,c){ var d,f= e(a,b),g=f. length; while(g--)d= J(a,f[g]),a[d]=!(c[d]=f[g])}): function( a){ return e(a, 0,c)}):e}}, pseudos:{ not: ha( function( a){ var b=[],c=[],d= h(a. replace(Q, "$1")); return d[u]? ha( function( a,b,c,e){ var f,g= d(a, null,e,[]),h=a. length; while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}): function( a,e,f){ return b[ 0]=a, d(b, null,f,c),b[ 0]= null,!c. pop()}}), has: ha( function( a){ return function( b){ return fa(a,b). length> 0}}), contains: ha( function( a){ return a=a. replace(ba,ca), function( b){ return(b. textContent||b. innerText|| e(b)). indexOf(a)>- 1}}), lang: ha( function( a){ return V. test(a|| "")||fa. error( "unsupported lang: "+a),a=a. replace(ba,ca). toLowerCase(), function( b){ var c; do if(c=p?b. lang:b. getAttribute( "xml:lang")||b. getAttribute( "lang")) return c=c. toLowerCase(),c===a|| 0===c. indexOf(a+ "-"); while((b=b. parentNode)&& 1===b. nodeType); return! 1}}), target: function( b){ var c=a. location&&a. location. hash; return c&&c. slice( 1)===b. id}, root: function( a){ return a===o}, focus: function( a){ return a===n. activeElement&&(!n. hasFocus||n. hasFocus())&&!!(a. type||a. href||~a. tabIndex)}, enabled: function( a){ return a. disabled===! 1}, disabled: function( a){ return a. disabled===! 0}, checked: function( a){ var b=a. nodeName. toLowerCase(); return "input"===b&&!!a. checked|| "option"===b&&!!a. selected}, selected: function( a){ return a. parentNode&&a. parentNode. selectedIndex,a. selected===! 0}, empty: function( a){ for(a=a. firstChild;a;a=a. nextSibling) if(a. nodeType< 6) return! 1; return! 0}, parent: function( a){ return!d. pseudos. empty(a)}, header: function( a){ return Y. test(a. nodeName)}, input: function( a){ return X. test(a. nodeName)}, button: function( a){ var b=a. nodeName. toLowerCase(); return "input"===b&& "button"===a. type|| "button"===b}, text: function( a){ var b; return "input"===a. nodeName. toLowerCase()&& "text"===a. type&&( null==(b=a. getAttribute( "type"))|| "text"===b. toLowerCase())}, first: na( function( ){ return[ 0]}), last: na( function( a,b){ return[b- 1]}), eq: na( function( a,b,c){ return[ 0>c?c+ b:c]}), even: na( function( a,b){ for( var c= 0;b>c;c+= 2)a. push(c); return a}), odd: na( function( a,b){ for( var c= 1;b>c;c+= 2)a. push(c); return a}), lt: na( function( a,b,c){ for( var d= 0>c?c+ b:c;--d>= 0;)a. push(d); return a}), gt: na( function( a,b,c){ for( var d= 0>c?c+ b:c;++d<b;)a. push(d); return a})}},d. pseudos. nth=d. pseudos. eq; for(b in{ radio:! 0, checkbox:! 0, file:! 0, password:! 0, image:! 0})d. pseudos[b]= la(b); for(b in{ submit:! 0, reset:! 0})d. pseudos[b]= ma(b); function pa( ){}pa. prototype=d. filters=d. pseudos,d. setFilters= new pa,g=fa. tokenize= function( a,b){ var c,e,f,g,h,i,j,k=z[a+ " "]; if(k) return b? 0:k. slice( 0);h=a,i=[],j=d. preFilter; while(h){c&&!(e=R. exec(h))||(e&&(h=h. slice(e[ 0]. length)||h),i. push(f=[])),c=! 1,(e=S. exec(h))&&(c=e. shift(),f. push({ value:c, type:e[ 0]. replace(Q, " ")}),h=h. slice(c. length)); for(g in d. filter)!(e=W[g]. exec(h))||j[g]&&!(e=j[g](e))||(c=e. shift(),f. push({ value:c, type:g, matches:e}),h=h. slice(c. length)); if(!c) break} return b?h. length:h?fa. error(a): z(a,i). slice( 0)}; function qa( a){ for( var b= 0,c=a. length,d= "";c>b;b++)d+=a[b]. value; return d} function ra( a,b,c){ var d=b. dir,e=c&& "parentNode"===d,f=x++; return b. first? function( b,c,f){ while(b=b[d]) if( 1===b. nodeType||e) return a(b,c,f)}: function( b,c,g){ var h,i,j,k=[w,f]; if(g){ while(b=b[d]) if(( 1===b. nodeType||e)&& a(b,c,g)) return! 0} else while(b=b[d]) if( 1===b. nodeType||e){ if(j=b[u]||(b[u]={}),i=j[b. uniqueID]||(j[b. uniqueID]={}),(h=i[d])&&h[ 0]===w&&h[ 1]===f) return k[ 2]=h[ 2]; if(i[d]=k,k[ 2]= a(b,c,g)) return! 0}}} function sa( a){ return a. length> 1? function( b,c,d){ var e=a. length; while(e--) if(!a[e](b,c,d)) return! 1; return! 0}:a[ 0]} function ta( a,b,c){ for( var d= 0,e=b. length;e>d;d++) fa(a,b[d],c); return c} function ua( a,b,c,d,e){ for( var f,g=[],h= 0,i=a. length,j= null!=b;i>h;h++)(f=a[h])&&(c&&! c(f,d,e)||(g. push(f),j&&b. push(h))); return g} function va( a,b,c,d,e,f){ return d&&!d[u]&&(d= va(d)),e&&!e[u]&&(e= va(e,f)), ha( function( f,g,h,i){ var j,k,l,m=[],n=[],o=g. length,p=f|| ta(b|| "*",h. nodeType?[h]:h,[]),q=!a||!f&&b? p: ua(p,m,a,h,i),r=c?e||(f? a:o||d)?[]: g:q; if(c&& c(q,r,h,i),d){j= ua(r,n), d(j,[],h,i),k=j. length; while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))} if(f){ if(e||a){ if(e){j=[],k=r. length; while(k--)(l=r[k])&&j. push(q[k]=l); e( null,r=[],j,i)}k=r. length; while(k--)(l=r[k])&&(j=e? J(f,l):m[k])>- 1&&(f[j]=!(g[j]=l))}} else r= ua(r===g?r. splice(o,r. length):r),e? e( null,g,r,i):H. apply(g,r)})} function wa( a){ for( var b,c,e,f=a. length,g=d. relative[a[ 0]. type],h=g||d. relative[ " "],i=g? 1: 0,k= ra( function( a){ return a===b},h,! 0),l= ra( function( a){ return J(b,a)>- 1},h,! 0),m=[ function( a,c,d){ var e=!g&&(d||c!==j)||((b=c). nodeType? k(a,c,d): l(a,c,d)); return b= null,e}];f>i;i++) if(c=d. relative[a[i]. type])m=[ ra( sa(m),c)]; else{ if(c=d. filter[a[i]. type]. apply( null,a[i]. matches),c[u]){ for(e=++i;f>e;e++) if(d. relative[a[e]. type]) break; return va(i> 1&& sa(m),i> 1&& qa(a. slice( 0,i- 1). concat({ value: " "===a[i- 2]. type? "*": ""})). replace(Q, "$1"),c,e>i&& wa(a. slice(i,e)),f>e&& wa(a=a. slice(e)),f>e&& qa(a))}m. push(c)} return sa(m)} function xa( a,b){ var c=b. length> 0,e=a. length> 0,f= function( f,g,h,i,k){ var l,o,q,r= 0,s= "0",t=f&&[],u=[],v=j,x=f||e&&d. find. TAG( "*",k),y=w+= null==v? 1: Math. random()|| .1,z=x. length; for(k&&(j=g===n||g||k);s!==z&& null!=(l=x[s]);s++){ if(e&&l){o= 0,g||l. ownerDocument===n||( m(l),h=!p); while(q=a[o++]) if( q(l,g||n,h)){i. push(l); break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t. push(l))} if(r+=s,c&&s!==r){o= 0; while(q=b[o++]) q(t,u,g,h); if(f){ if(r> 0) while(s--)t[s]||u[s]||(u[s]=F. call(i));u= ua(u)}H. apply(i,u),k&&!f&&u. length> 0&&r+b. length> 1&&fa. uniqueSort(i)} return k&&(w=y,j=v),t}; return c? ha(f):f} return h=fa. compile= function( a,b){ var c,d=[],e=[],f=A[a+ " "]; if(!f){b||(b= g(a)),c=b. length; while(c--)f= wa(b[c]),f[u]?d. push(f):e. push(f);f= A(a, xa(e,d)),f. selector=a} return f},i=fa. select= function( a,b,e,f){ var i,j,k,l,m,n= "function"== typeof a&&a,o=!f&& g(a=n. selector||a); if(e=e||[], 1===o. length){ if(j=o[ 0]=o[ 0]. slice( 0),j. length> 2&& "ID"===(k=j[ 0]). type&&c. getById&& 9===b. nodeType&&p&&d. relative[j[ 1]. type]){ if(b=(d. find. ID(k. matches[ 0]. replace(ba,ca),b)||[])[ 0],!b) return e;n&&(b=b. parentNode),a=a. slice(j. shift(). value. length)}i=W. needsContext. test(a)? 0:j. length; while(i--){ if(k=j[i],d. relative[l=k. type]) break; if((m=d. find[l])&&(f= m(k. matches[ 0]. replace(ba,ca),_. test(j[ 0]. type)&& oa(b. parentNode)||b))){ if(j. splice(i, 1),a=f. length&& qa(j),!a) return H. apply(e,f),e; break}}} return(n|| h(a,o))(f,b,!p,e,!b||_. test(a)&& oa(b. parentNode)||b),e},c. sortStable=u. split( ""). sort(B). join( "")===u,c. detectDuplicates=!!l, m(),c. sortDetached= ia( function( a){ return 1&a. compareDocumentPosition(n. createElement( "div"))}), ia( function( a){ return a. innerHTML= "<a href='#'></a>", "#"===a. firstChild. getAttribute( "href")})|| ja( "type|href|height|width", function( a,b,c){ return c? void 0:a. getAttribute(b, "type"===b. toLowerCase()? 1: 2)}),c. attributes&& ia( function( a){ return a. innerHTML= "<input/>",a. firstChild. setAttribute( "value", ""), ""===a. firstChild. getAttribute( "value")})|| ja( "value", function( a,b,c){ return c|| "input"!==a. nodeName. toLowerCase()? void 0:a. defaultValue}), ia( function( a){ return null==a. getAttribute( "disabled")})|| ja(K, function( a,b,c){ var d; return c? void 0:a[b]===! 0?b. toLowerCase():(d=a. getAttributeNode(b))&&d. specified?d. value: null}),fa}(a);n. find=t,n. expr=t. selectors,n. expr[ ":"]=n. expr. pseudos,n. uniqueSort=n. unique=t. uniqueSort,n. text=t. getText,n. isXMLDoc=t. isXML,n. contains=t. contains; var u= function( a,b,c){ var d=[],e= void 0!==c; while((a=a[b])&& 9!==a. nodeType) if( 1===a. nodeType){ if(e&& n(a). is(c)) break;d. push(a)} return d},v= function( a,b){ for( var c=[];a;a=a. nextSibling) 1===a. nodeType&&a!==b&&c. push(a); return c},w=n. expr. match. needsContext,x= /^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,y= /^.[^:#\[\.,]*$/; function z( a,b,c){ if(n. isFunction(b)) return n. grep(a, function( a,d){ return!!b. call(a,d,a)!==c}); if(b. nodeType) return n. grep(a, function( a){ return a===b!==c}); if( "string"== typeof b){ if(y. test(b)) return n. filter(b,a,c);b=n. filter(b,a)} return n. grep(a, function( a){ return n. inArray(a,b)>- 1!==c})}n. filter= function( a,b,c){ var d=b[ 0]; return c&&(a= ":not("+a+ ")"), 1===b. length&& 1===d. nodeType?n. find. matchesSelector(d,a)?[d]:[]:n. find. matches(a,n. grep(b, function( a){ return 1===a. nodeType}))},n. fn. extend({ find: function( a){ var b,c=[],d= this,e=d. length; if( "string"!= typeof a) return this. pushStack( n(a). filter( function( ){ for(b= 0;e>b;b++) if(n. contains(d[b], this)) return! 0})); for(b= 0;e>b;b++)n. find(a,d[b],c); return c= this. pushStack(e> 1?n. unique(c):c),c. selector= this. selector? this. selector+ " "+ a:a,c}, filter: function( a){ return this. pushStack( z( this,a||[],! 1))}, not: function( a){ return this. pushStack( z( this,a||[],! 0))}, is: function( a){ return!! z( this, "string"== typeof a&&w. test(a)? n(a):a||[],! 1). length}}); var A,B= /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=n. fn. init= function( a,b,c){ var e,f; if(!a) return this; if(c=c||A, "string"== typeof a){ if(e= "<"===a. charAt( 0)&& ">"===a. charAt(a. length- 1)&&a. length>= 3?[ null,a, null]:B. exec(a),!e||!e[ 1]&&b) return!b||b. jquery?(b||c). find(a): this. constructor( b). find(a); if(e[ 1]){ if(b=b instanceof n?b[ 0]:b,n. merge( this,n. parseHTML(e[ 1],b&&b. nodeType?b. ownerDocument|| b:d,! 0)),x. test(e[ 1])&&n. isPlainObject(b)) for(e in b)n. isFunction( this[e])? this[e](b[e]): this. attr(e,b[e]); return this} if(f=d. getElementById(e[ 2]),f&&f. parentNode){ if(f. id!==e[ 2]) return A. find(a); this. length= 1, this[ 0]=f} return this. context=d, this. selector=a, this} return a. nodeType?( this. context= this[ 0]=a, this. length= 1, this):n. isFunction(a)? "undefined"!= typeof c. ready?c. ready(a): a(n):( void 0!==a. selector&&( this. selector=a. selector, this. context=a. context),n. makeArray(a, this))};C. prototype=n. fn,A= n(d); var D= /^(?:parents|prev(?:Until|All))/,E={ children:! 0, contents:! 0, next:! 0, prev:! 0};n. fn. extend({ has: function( a){ var b,c= n(a, this),d=c. length; return this. filter( function( ){ for(b= 0;d>b;b++) if(n. contains( this,c[b])) return! 0})}, closest: function( a,b){ for( var c,d= 0,e= this. length,f=[],g=w. test(a)|| "string"!= typeof a? n(a,b|| this. context): 0;e>d;d++) for(c= this[d];c&&c!==b;c=c. parentNode) if(c. nodeType< 11&&(g?g. index(c)>- 1: 1===c. nodeType&&n. find. matchesSelector(c,a))){f. push(c); break} return this. pushStack(f. length> 1?n. uniqueSort(f):f)}, index: function( a){ return a? "string"== typeof a?n. inArray( this[ 0], n(a)):n. inArray(a. jquery?a[ 0]:a, this): this[ 0]&& this[ 0]. parentNode? this. first(). prevAll(). length:- 1}, add: function( a,b){ return this. pushStack(n. uniqueSort(n. merge( this. get(), n(a,b))))}, addBack: function( a){ return this. add( null==a? this. prevObject: this. prevObject. filter(a))}}); function F( a,b){ do a=a[b]; while(a&& 1!==a. nodeType); return a}n. each({ parent: function( a){ var b=a. parentNode; return b&& 11!==b. nodeType? b: null}, parents: function( a){ return u(a, "parentNode")}, parentsUntil: function( a,b,c){ return u(a, "parentNode",c)}, next: function( a){ return F(a, "nextSibling")}, prev: function( a){ return F(a, "previousSibling")}, nextAll: function( a){ return u(a, "nextSibling")}, prevAll: function( a){ return u(a, "previousSibling")}, nextUntil: function( a,b,c){ return u(a, "nextSibling",c)}, prevUntil: function( a,b,c){ return u(a, "previousSibling",c)}, siblings: function( a){ return v((a. parentNode||{}). firstChild,a)}, children: function( a){ return v(a. firstChild)}, contents: function( a){ return n. nodeName(a, "iframe")?a. contentDocument||a. contentWindow. document:n. merge([],a. childNodes)}}, function( a,b){n. fn[a]= function( c,d){ var e=n. map( this,b,c); return "Until"!==a. slice(- 5)&&(d=c),d&& "string"== typeof d&&(e=n. filter(d,e)), this. length> 1&&(E[a]||(e=n. uniqueSort(e)),D. test(a)&&(e=e. reverse())), this. pushStack(e)}}); var G= /\S+/g; function H( a){ var b={}; return n. each(a. match(G)||[], function( a,c){b[c]=! 0}),b}n. Callbacks= function( a){a= "string"== typeof a? H(a):n. extend({},a); var b,c,d,e,f=[],g=[],h=- 1,i= function( ){ for(e=a. once,d=b=! 0;g. length;h=- 1){c=g. shift(); while(++h<f. length)f[h]. apply(c[ 0],c[ 1])===! 1&&a. stopOnFalse&&(h=f. length,c=! 1)}a. memory||(c=! 1),b=! 1,e&&(f=c?[]: "")},j={ add: function( ){ return f&&(c&&!b&&(h=f. length- 1,g. push(c)), function d( b){n. each(b, function( b,c){n. isFunction(c)?a. unique&&j. has(c)||f. push(c):c&&c. length&& "string"!==n. type(c)&& d(c)})}( arguments),c&&!b&& i()), this}, remove: function( ){ return n. each( arguments, function( a,b){ var c; while((c=n. inArray(b,f,c))>- 1)f. splice(c, 1),h>=c&&h--}), this}, has: function( a){ return a?n. inArray(a,f)>- 1:f. length> 0}, empty: function( ){ return f&&(f=[]), this}, disable: function( ){ return e=g=[],f=c= "", this}, disabled: function( ){ return!f}, lock: function( ){ return e=! 0,c||j. disable(), this}, locked: function( ){ return!!e}, fireWith: function( a,c){ return e||(c=c||[],c=[a,c. slice?c. slice():c],g. push(c),b|| i()), this}, fire: function( ){ return j. fireWith( this, arguments), this}, fired: function( ){ return!!d}}; return j},n. extend({ Deferred: function( a){ var b=[[ "resolve", "done",n. Callbacks( "once memory"), "resolved"],[ "reject", "fail",n. Callbacks( "once memory"), "rejected"],[ "notify", "progress",n. Callbacks( "memory")]],c= "pending",d={ state: function( ){ return c}, always: function( ){ return e. done( arguments). fail( arguments), this}, then: function( ){ var a= arguments; return n. Deferred( function( c){n. each(b, function( b,f){ var g=n. isFunction(a[b])&&a[b];e[f[ 1]]( function( ){ var a=g&&g. apply( this, arguments);a&&n. isFunction(a. promise)?a. promise(). progress(c. notify). done(c. resolve). fail(c. reject):c[f[ 0]+ "With"]( this===d?c. promise(): this,g?[a]: arguments)})}),a= null}). promise()}, promise: function( a){ return null!=a?n. extend(a,d):d}},e={}; return d. pipe=d. then,n. each(b, function( a,f){ var g=f[ 2],h=f[ 3];d[f[ 1]]=g. add,h&&g. add( function( ){c=h},b[ 1^a][ 2]. disable,b[ 2][ 2]. lock),e[f[ 0]]= function( ){ return e[f[ 0]+ "With"]( this===e? d: this, arguments), this},e[f[ 0]+ "With"]=g. fireWith}),d. promise(e),a&&a. call(e,e),e}, when: function( a){ var b= 0,c=e. call( arguments),d=c. length,f= 1!==d||a&&n. isFunction(a. promise)? d: 0,g= 1===f? a:n. Deferred(),h= function( a,b,c){ return function( d){b[a]= this,c[a]= arguments. length> 1?e. call( arguments):d,c===i?g. notifyWith(b,c):--f||g. resolveWith(b,c)}},i,j,k; if(d> 1) for(i= new Array(d),j= new Array(d),k= new Array(d);d>b;b++)c[b]&&n. isFunction(c[b]. promise)?c[b]. promise(). progress( h(b,j,i)). done( h(b,k,c)). fail(g. reject):--f; return f||g. resolveWith(k,c),g. promise()}}); var I;n. fn. ready= function( a){ return n. ready. promise(). done(a), this},n. extend({ isReady:! 1, readyWait: 1, holdReady: function( a){a?n. readyWait++:n. ready(! 0)}, ready: function( a){(a===! 0?--n. readyWait:n. isReady)||(n. isReady=! 0,a!==! 0&&--n. readyWait> 0||(I. resolveWith(d,[n]),n. fn. triggerHandler&&( n(d). triggerHandler( "ready"), n(d). off( "ready"))))}}); function J( ){d. addEventListener?(d. removeEventListener( "DOMContentLoaded",K),a. removeEventListener( "load",K)):(d. detachEvent( "onreadystatechange",K),a. detachEvent( "onload",K))} function K( ){(d. addEventListener|| "load"===a. event. type|| "complete"===d. readyState)&&( J(),n. ready())}n. ready. promise= function( b){ if(!I) if(I=n. Deferred(), "complete"===d. readyState|| "loading"!==d. readyState&&!d. documentElement. doScroll)a. setTimeout(n. ready); else if(d. addEventListener)d. addEventListener( "DOMContentLoaded",K),a. addEventListener( "load",K); else{d. attachEvent( "onreadystatechange",K),a. attachEvent( "onload",K); var c=! 1; try{c= null==a. frameElement&&d. documentElement} catch(e){}c&&c. doScroll&&! function f( ){ if(!n. isReady){ try{c. doScroll( "left")} catch(b){ return a. setTimeout(f, 50)} J(),n. ready()}}()} return I. promise(b)},n. ready. promise(); var L; for(L in n(l)) break;l. ownFirst= "0"===L,l. inlineBlockNeedsLayout=! 1, n( function( ){ var a,b,c,e;c=d. getElementsByTagName( "body")[ 0],c&&c. style&&(b=d. createElement( "div"),e=d. createElement( "div"),e. style. cssText= "position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c. appendChild(e). appendChild(b), "undefined"!= typeof b. style. zoom&&(b. style. cssText= "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",l. inlineBlockNeedsLayout=a= 3===b. offsetWidth,a&&(c. style. zoom= 1)),c. removeChild(e))}), function( ){ var a=d. createElement( "div");l. deleteExpando=! 0; try{ delete a. test} catch(b){l. deleteExpando=! 1}a= null}(); var M= function( a){ var b=n. noData[(a. nodeName+ " "). toLowerCase()],c=+a. nodeType|| 1; return 1!==c&& 9!==c?! 1:!b||b!==! 0&&a. getAttribute( "classid")===b},N= /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O= /([A-Z])/g; function P( a,b,c){ if( void 0===c&& 1===a. nodeType){ var d= "data-"+b. replace(O, "-$1"). toLowerCase(); if(c=a. getAttribute(d), "string"== typeof c){ try{c= "true"===c?! 0: "false"===c?! 1: "null"===c? null:+c+ ""===c?+ c:N. test(c)?n. parseJSON(c):c} catch(e){}n. data(a,b,c)} else c= void 0;
  3. } return c} function Q( a){ var b; for(b in a) if(( "data"!==b||!n. isEmptyObject(a[b]))&& "toJSON"!==b) return! 1; return! 0} function R( a,b,d,e){ if( M(a)){ var f,g,h=n. expando,i=a. nodeType,j=i?n. cache:a,k=i?a[h]:a[h]&&h; if(k&&j[k]&&(e||j[k]. data)|| void 0!==d|| "string"!= typeof b) return k||(k=i?a[h]=c. pop()||n. guid++:h),j[k]||(j[k]=i?{}:{ toJSON:n. noop}), "object"!= typeof b&& "function"!= typeof b||(e?j[k]=n. extend(j[k],b):j[k]. data=n. extend(j[k]. data,b)),g=j[k],e||(g. data||(g. data={}),g=g. data), void 0!==d&&(g[n. camelCase(b)]=d), "string"== typeof b?(f=g[b], null==f&&(f=g[n. camelCase(b)])):f=g,f}} function S( a,b,c){ if( M(a)){ var d,e,f=a. nodeType,g=f?n. cache:a,h=f?a[n. expando]:n. expando; if(g[h]){ if(b&&(d=c?g[h]:g[h]. data)){n. isArray(b)?b=b. concat(n. map(b,n. camelCase)):b in d?b=[b]:(b=n. camelCase(b),b=b in d?[b]:b. split( " ")),e=b. length; while(e--) delete d[b[e]]; if(c?! Q(d):!n. isEmptyObject(d)) return}(c||( delete g[h]. data, Q(g[h])))&&(f?n. cleanData([a],! 0):l. deleteExpando||g!=g. window? delete g[h]:g[h]= void 0)}}}n. extend({ cache:{}, noData:{ "applet ":! 0, "embed ":! 0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"}, hasData: function( a){ return a=a. nodeType?n. cache[a[n. expando]]:a[n. expando],!!a&&! Q(a)}, data: function( a,b,c){ return R(a,b,c)}, removeData: function( a,b){ return S(a,b)}, _data: function( a,b,c){ return R(a,b,c,! 0)}, _removeData: function( a,b){ return S(a,b,! 0)}}),n. fn. extend({ data: function( a,b){ var c,d,e,f= this[ 0],g=f&&f. attributes; if( void 0===a){ if( this. length&&(e=n. data(f), 1===f. nodeType&&!n. _data(f, "parsedAttrs"))){c=g. length; while(c--)g[c]&&(d=g[c]. name, 0===d. indexOf( "data-")&&(d=n. camelCase(d. slice( 5)), P(f,d,e[d])));n. _data(f, "parsedAttrs",! 0)} return e} return "object"== typeof a? this. each( function( ){n. data( this,a)}): arguments. length> 1? this. each( function( ){n. data( this,a,b)}):f? P(f,a,n. data(f,a)): void 0}, removeData: function( a){ return this. each( function( ){n. removeData( this,a)})}}),n. extend({ queue: function( a,b,c){ var d; return a?(b=(b|| "fx")+ "queue",d=n. _data(a,b),c&&(!d||n. isArray(c)?d=n. _data(a,b,n. makeArray(c)):d. push(c)),d||[]): void 0}, dequeue: function( a,b){b=b|| "fx"; var c=n. queue(a,b),d=c. length,e=c. shift(),f=n. _queueHooks(a,b),g= function( ){n. dequeue(a,b)}; "inprogress"===e&&(e=c. shift(),d--),e&&( "fx"===b&&c. unshift( "inprogress"), delete f. stop,e. call(a,g,f)),!d&&f&&f. empty. fire()}, _queueHooks: function( a,b){ var c=b+ "queueHooks"; return n. _data(a,c)||n. _data(a,c,{ empty:n. Callbacks( "once memory"). add( function( ){n. _removeData(a,b+ "queue"),n. _removeData(a,c)})})}}),n. fn. extend({ queue: function( a,b){ var c= 2; return "string"!= typeof a&&(b=a,a= "fx",c--), arguments. length<c?n. queue( this[ 0],a): void 0===b? this: this. each( function( ){ var c=n. queue( this,a,b);n. _queueHooks( this,a), "fx"===a&& "inprogress"!==c[ 0]&&n. dequeue( this,a)})}, dequeue: function( a){ return this. each( function( ){n. dequeue( this,a)})}, clearQueue: function( a){ return this. queue(a|| "fx",[])}, promise: function( a,b){ var c,d= 1,e=n. Deferred(),f= this,g= this. length,h= function( ){--d||e. resolveWith(f,[f])}; "string"!= typeof a&&(b=a,a= void 0),a=a|| "fx"; while(g--)c=n. _data(f[g],a+ "queueHooks"),c&&c. empty&&(d++,c. empty. add(h)); return h(),e. promise(b)}}), function( ){ var a;l. shrinkWrapBlocks= function( ){ if( null!=a) return a;a=! 1; var b,c,e; return c=d. getElementsByTagName( "body")[ 0],c&&c. style?(b=d. createElement( "div"),e=d. createElement( "div"),e. style. cssText= "position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c. appendChild(e). appendChild(b), "undefined"!= typeof b. style. zoom&&(b. style. cssText= "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",b. appendChild(d. createElement( "div")). style. width= "5px",a= 3!==b. offsetWidth),c. removeChild(e),a): void 0}}(); var T= /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/. source,U= new RegExp( "^(?:([+-])=|)("+T+ ")([a-z%]*)$", "i"),V=[ "Top", "Right", "Bottom", "Left"],W= function( a,b){ return a=b||a, "none"===n. css(a, "display")||!n. contains(a. ownerDocument,a)}; function X( a,b,c,d){ var e,f= 1,g= 20,h=d? function( ){ return d. cur()}: function( ){ return n. css(a,b, "")},i= h(),j=c&&c[ 3]||(n. cssNumber[b]? "": "px"),k=(n. cssNumber[b]|| "px"!==j&&+i)&&U. exec(n. css(a,b)); if(k&&k[ 3]!==j){j=j||k[ 3],c=c||[],k=+i|| 1; do f=f|| ".5",k/=f,n. style(a,b,k+j); while(f!==(f= h()/i)&& 1!==f&&--g)} return c&&(k=+k||+i|| 0,e=c[ 1]?k+(c[ 1]+ 1)*c[ 2]:+c[ 2],d&&(d. unit=j,d. start=k,d. end=e)),e} var Y= function( a,b,c,d,e,f,g){ var h= 0,i=a. length,j= null==c; if( "object"===n. type(c)){e=! 0; for(h in c) Y(a,b,h,c[h],! 0,f,g)} else if( void 0!==d&&(e=! 0,n. isFunction(d)||(g=! 0),j&&(g?(b. call(a,d),b= null):(j=b,b= function( a,b,c){ return j. call( n(a),c)})),b)) for(;i>h;h++) b(a[h],c,g? d:d. call(a[h],h, b(a[h],c))); return e? a:j?b. call(a):i? b(a[ 0],c):f},Z= /^(?:checkbox|radio)$/i,$= /<([\w:-]+)/,_= /^$|\/(?:java|ecma)script/i,aa= /^\s+/,ba= "abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video"; function ca( a){ var b=ba. split( "|"),c=a. createDocumentFragment(); if(c. createElement) while(b. length)c. createElement(b. pop()); return c}! function( ){ var a=d. createElement( "div"),b=d. createDocumentFragment(),c=d. createElement( "input");a. innerHTML= " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",l. leadingWhitespace= 3===a. firstChild. nodeType,l. tbody=!a. getElementsByTagName( "tbody"). length,l. htmlSerialize=!!a. getElementsByTagName( "link"). length,l. html5Clone= "<:nav></:nav>"!==d. createElement( "nav"). cloneNode(! 0). outerHTML,c. type= "checkbox",c. checked=! 0,b. appendChild(c),l. appendChecked=c. checked,a. innerHTML= "<textarea>x</textarea>",l. noCloneChecked=!!a. cloneNode(! 0). lastChild. defaultValue,b. appendChild(a),c=d. createElement( "input"),c. setAttribute( "type", "radio"),c. setAttribute( "checked", "checked"),c. setAttribute( "name", "t"),a. appendChild(c),l. checkClone=a. cloneNode(! 0). cloneNode(! 0). lastChild. checked,l. noCloneEvent=!!a. addEventListener,a[n. expando]= 1,l. attributes=!a. getAttribute(n. expando)}(); var da={ option:[ 1, "<select multiple='multiple'>", "</select>"], legend:[ 1, "<fieldset>", "</fieldset>"], area:[ 1, "<map>", "</map>"], param:[ 1, "<object>", "</object>"], thead:[ 1, "<table>", "</table>"], tr:[ 2, "<table><tbody>", "</tbody></table>"], col:[ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"], td:[ 3, "<table><tbody><tr>", "</tr></tbody></table>"], _default:l. htmlSerialize?[ 0, "", ""]:[ 1, "X<div>", "</div>"]};da. optgroup=da. option,da. tbody=da. tfoot=da. colgroup=da. caption=da. thead,da. th=da. td; function ea( a,b){ var c,d,e= 0,f= "undefined"!= typeof a. getElementsByTagName?a. getElementsByTagName(b|| "*"): "undefined"!= typeof a. querySelectorAll?a. querySelectorAll(b|| "*"): void 0; if(!f) for(f=[],c=a. childNodes||a; null!=(d=c[e]);e++)!b||n. nodeName(d,b)?f. push(d):n. merge(f, ea(d,b)); return void 0===b||b&&n. nodeName(a,b)?n. merge([a],f):f} function fa( a,b){ for( var c,d= 0; null!=(c=a[d]);d++)n. _data(c, "globalEval",!b||n. _data(b[d], "globalEval"))} var ga= /<|&#?\w+;/,ha= /<tbody/i; function ia( a){Z. test(a. type)&&(a. defaultChecked=a. checked)} function ja( a,b,c,d,e){ for( var f,g,h,i,j,k,m,o=a. length,p= ca(b),q=[],r= 0;o>r;r++) if(g=a[r],g|| 0===g) if( "object"===n. type(g))n. merge(q,g. nodeType?[g]:g); else if(ga. test(g)){i=i||p. appendChild(b. createElement( "div")),j=($. exec(g)||[ "", ""])[ 1]. toLowerCase(),m=da[j]||da. _default,i. innerHTML=m[ 1]+n. htmlPrefilter(g)+m[ 2],f=m[ 0]; while(f--)i=i. lastChild; if(!l. leadingWhitespace&&aa. test(g)&&q. push(b. createTextNode(aa. exec(g)[ 0])),!l. tbody){g= "table"!==j||ha. test(g)? "<table>"!==m[ 1]||ha. test(g)? 0: i:i. firstChild,f=g&&g. childNodes. length; while(f--)n. nodeName(k=g. childNodes[f], "tbody")&&!k. childNodes. length&&g. removeChild(k)}n. merge(q,i. childNodes),i. textContent= ""; while(i. firstChild)i. removeChild(i. firstChild);i=p. lastChild} else q. push(b. createTextNode(g));i&&p. removeChild(i),l. appendChecked||n. grep( ea(q, "input"),ia),r= 0; while(g=q[r++]) if(d&&n. inArray(g,d)>- 1)e&&e. push(g); else if(h=n. contains(g. ownerDocument,g),i= ea(p. appendChild(g), "script"),h&& fa(i),c){f= 0; while(g=i[f++])_. test(g. type|| "")&&c. push(g)} return i= null,p}! function( ){ var b,c,e=d. createElement( "div"); for(b in{ submit:! 0, change:! 0, focusin:! 0})c= "on"+b,(l[b]=c in a)||(e. setAttribute(c, "t"),l[b]=e. attributes[c]. expando===! 1);e= null}(); var ka= /^(?:input|select|textarea)$/i,la= /^key/,ma= /^(?:mouse|pointer|contextmenu|drag|drop)|click/,na= /^(?:focusinfocus|focusoutblur)$/,oa= /^([^.]*)(?:\.(.+)|)/; function pa( ){ return! 0} function qa( ){ return! 1} function ra( ){ try{ return d. activeElement} catch(a){}} function sa( a,b,c,d,e,f){ var g,h; if( "object"== typeof b){ "string"!= typeof c&&(d=d||c,c= void 0); for(h in b) sa(a,h,c,d,b[h],f); return a} if( null==d&& null==e?(e=c,d=c= void 0): null==e&&( "string"== typeof c?(e=d,d= void 0):(e=d,d=c,c= void 0)),e===! 1)e=qa; else if(!e) return a; return 1===f&&(g=e,e= function( a){ return n(). off(a),g. apply( this, arguments)},e. guid=g. guid||(g. guid=n. guid++)),a. each( function( ){n. event. add( this,b,e,d,c)})}n. event={ global:{}, add: function( a,b,c,d,e){ var f,g,h,i,j,k,l,m,o,p,q,r=n. _data(a); if(r){c. handler&&(i=c,c=i. handler,e=i. selector),c. guid||(c. guid=n. guid++),(g=r. events)||(g=r. events={}),(k=r. handle)||(k=r. handle= function( a){ return "undefined"== typeof n||a&&n. event. triggered===a. type? void 0:n. event. dispatch. apply(k. elem, arguments)},k. elem=a),b=(b|| ""). match(G)||[ ""],h=b. length; while(h--)f=oa. exec(b[h])||[],o=q=f[ 1],p=(f[ 2]|| ""). split( "."). sort(),o&&(j=n. event. special[o]||{},o=(e?j. delegateType:j. bindType)||o,j=n. event. special[o]||{},l=n. extend({ type:o, origType:q, data:d, handler:c, guid:c. guid, selector:e, needsContext:e&&n. expr. match. needsContext. test(e), namespace:p. join( ".")},i),(m=g[o])||(m=g[o]=[],m. delegateCount= 0,j. setup&&j. setup. call(a,d,p,k)!==! 1||(a. addEventListener?a. addEventListener(o,k,! 1):a. attachEvent&&a. attachEvent( "on"+o,k))),j. add&&(j. add. call(a,l),l. handler. guid||(l. handler. guid=c. guid)),e?m. splice(m. delegateCount++, 0,l):m. push(l),n. event. global[o]=! 0);a= null}}, remove: function( a,b,c,d,e){ var f,g,h,i,j,k,l,m,o,p,q,r=n. hasData(a)&&n. _data(a); if(r&&(k=r. events)){b=(b|| ""). match(G)||[ ""],j=b. length; while(j--) if(h=oa. exec(b[j])||[],o=q=h[ 1],p=(h[ 2]|| ""). split( "."). sort(),o){l=n. event. special[o]||{},o=(d?l. delegateType:l. bindType)||o,m=k[o]||[],h=h[ 2]&& new RegExp( "(^|\\.)"+p. join( "\\.(?:.*\\.|)")+ "(\\.|$)"),i=f=m. length; while(f--)g=m[f],!e&&q!==g. origType||c&&c. guid!==g. guid||h&&!h. test(g. namespace)||d&&d!==g. selector&&( "**"!==d||!g. selector)||(m. splice(f, 1),g. selector&&m. delegateCount--,l. remove&&l. remove. call(a,g));i&&!m. length&&(l. teardown&&l. teardown. call(a,p,r. handle)!==! 1||n. removeEvent(a,o,r. handle), delete k[o])} else for(o in k)n. event. remove(a,o+b[j],c,d,! 0);n. isEmptyObject(k)&&( delete r. handle,n. _removeData(a, "events"))}}, trigger: function( b,c,e,f){ var g,h,i,j,l,m,o,p=[e||d],q=k. call(b, "type")?b. type:b,r=k. call(b, "namespace")?b. namespace. split( "."):[]; if(i=m=e=e||d, 3!==e. nodeType&& 8!==e. nodeType&&!na. test(q+n. event. triggered)&&(q. indexOf( ".")>- 1&&(r=q. split( "."),q=r. shift(),r. sort()),h=q. indexOf( ":")< 0&& "on"+q,b=b[n. expando]? b: new n. Event(q, "object"== typeof b&&b),b. isTrigger=f? 2: 3,b. namespace=r. join( "."),b. rnamespace=b. namespace? new RegExp( "(^|\\.)"+r. join( "\\.(?:.*\\.|)")+ "(\\.|$)"): null,b. result= void 0,b. target||(b. target=e),c= null==c?[b]:n. makeArray(c,[b]),l=n. event. special[q]||{},f||!l. trigger||l. trigger. apply(e,c)!==! 1)){ if(!f&&!l. noBubble&&!n. isWindow(e)){ for(j=l. delegateType||q,na. test(j+q)||(i=i. parentNode);i;i=i. parentNode)p. push(i),m=i;m===(e. ownerDocument||d)&&p. push(m. defaultView||m. parentWindow||a)}o= 0; while((i=p[o++])&&!b. isPropagationStopped())b. type=o> 1? j:l. bindType||q,g=(n. _data(i, "events")||{})[b. type]&&n. _data(i, "handle"),g&&g. apply(i,c),g=h&&i[h],g&&g. apply&& M(i)&&(b. result=g. apply(i,c),b. result===! 1&&b. preventDefault()); if(b. type=q,!f&&!b. isDefaultPrevented()&&(!l. _default||l. _default. apply(p. pop(),c)===! 1)&& M(e)&&h&&e[q]&&!n. isWindow(e)){m=e[h],m&&(e[h]= null),n. event. triggered=q; try{e[q]()} catch(s){}n. event. triggered= void 0,m&&(e[h]=m)} return b. result}}, dispatch: function( a){a=n. event. fix(a); var b,c,d,f,g,h=[],i=e. call( arguments),j=(n. _data( this, "events")||{})[a. type]||[],k=n. event. special[a. type]||{}; if(i[ 0]=a,a. delegateTarget= this,!k. preDispatch||k. preDispatch. call( this,a)!==! 1){h=n. event. handlers. call( this,a,j),b= 0; while((f=h[b++])&&!a. isPropagationStopped()){a. currentTarget=f. elem,c= 0; while((g=f. handlers[c++])&&!a. isImmediatePropagationStopped())a. rnamespace&&!a. rnamespace. test(g. namespace)||(a. handleObj=g,a. data=g. data,d=((n. event. special[g. origType]||{}). handle||g. handler). apply(f. elem,i), void 0!==d&&(a. result=d)===! 1&&(a. preventDefault(),a. stopPropagation()))} return k. postDispatch&&k. postDispatch. call( this,a),a. result}}, handlers: function( a,b){ var c,d,e,f,g=[],h=b. delegateCount,i=a. target; if(h&&i. nodeType&&( "click"!==a. type|| isNaN(a. button)||a. button< 1)) for(;i!= this;i=i. parentNode|| this) if( 1===i. nodeType&&(i. disabled!==! 0|| "click"!==a. type)){ for(d=[],c= 0;h>c;c++)f=b[c],e=f. selector+ " ", void 0===d[e]&&(d[e]=f. needsContext? n(e, this). index(i)>- 1:n. find(e, this, null,[i]). length),d[e]&&d. push(f);d. length&&g. push({ elem:i, handlers:d})} return h<b. length&&g. push({ elem: this, handlers:b. slice(h)}),g}, fix: function( a){ if(a[n. expando]) return a; var b,c,e,f=a. type,g=a,h= this. fixHooks[f];h||( this. fixHooks[f]=h=ma. test(f)? this. mouseHooks:la. test(f)? this. keyHooks:{}),e=h. props? this. props. concat(h. props): this. props,a= new n. Event(g),b=e. length; while(b--)c=e[b],a[c]=g[c]; return a. target||(a. target=g. srcElement||d), 3===a. target. nodeType&&(a. target=a. target. parentNode),a. metaKey=!!a. metaKey,h. filter?h. filter(a,g):a}, props: "altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which". split( " "), fixHooks:{}, keyHooks:{ props: "char charCode key keyCode". split( " "), filter: function( a,b){ return null==a. which&&(a. which= null!=b. charCode?b. charCode:b. keyCode),a}}, mouseHooks:{ props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement". split( " "), filter: function( a,b){ var c,e,f,g=b. button,h=b. fromElement; return null==a. pageX&& null!=b. clientX&&(e=a. target. ownerDocument||d,f=e. documentElement,c=e. body,a. pageX=b. clientX+(f&&f. scrollLeft||c&&c. scrollLeft|| 0)-(f&&f. clientLeft||c&&c. clientLeft|| 0),a. pageY=b. clientY+(f&&f. scrollTop||c&&c. scrollTop|| 0)-(f&&f. clientTop||c&&c. clientTop|| 0)),!a. relatedTarget&&h&&(a. relatedTarget=h===a. target?b. toElement:h),a. which|| void 0===g||(a. which= 1&g? 1: 2&g? 3: 4&g? 2: 0),a}}, special:{ load:{ noBubble:! 0}, focus:{ trigger: function( ){ if( this!== ra()&& this. focus) try{ return this. focus(),! 1} catch(a){}}, delegateType: "focusin"}, blur:{ trigger: function( ){ return this=== ra()&& this. blur?( this. blur(),! 1): void 0}, delegateType: "focusout"}, click:{ trigger: function( ){ return n. nodeName( this, "input")&& "checkbox"=== this. type&& this. click?( this. click(),! 1): void 0}, _default: function( a){ return n. nodeName(a. target, "a")}}, beforeunload:{ postDispatch: function( a){ void 0!==a. result&&a. originalEvent&&(a. originalEvent. returnValue=a. result)}}}, simulate: function( a,b,c){ var d=n. extend( new n. Event,c,{ type:a, isSimulated:! 0});n. event. trigger(d, null,b),d. isDefaultPrevented()&&c. preventDefault()}},n. removeEvent=d. removeEventListener? function( a,b,c){a. removeEventListener&&a. removeEventListener(b,c)}: function( a,b,c){ var d= "on"+b;a. detachEvent&&( "undefined"== typeof a[d]&&(a[d]= null),a. detachEvent(d,c))},n. Event= function( a,b){ return this instanceof n. Event?(a&&a. type?( this. originalEvent=a, this. type=a. type, this. isDefaultPrevented=a. defaultPrevented|| void 0===a. defaultPrevented&&a. returnValue===! 1? pa:qa): this. type=a,b&&n. extend( this,b), this. timeStamp=a&&a. timeStamp||n. now(), void( this[n. expando]=! 0)): new n. Event(a,b)},n. Event. prototype={ constructor:n. Event, isDefaultPrevented:qa, isPropagationStopped:qa, isImmediatePropagationStopped:qa, preventDefault: function( ){ var a= this. originalEvent; this. isDefaultPrevented=pa,a&&(a. preventDefault?a. preventDefault():a. returnValue=! 1)}, stopPropagation: function( ){ var a= this. originalEvent; this. isPropagationStopped=pa,a&&! this. isSimulated&&(a. stopPropagation&&a. stopPropagation(),a. cancelBubble=! 0)}, stopImmediatePropagation: function( ){ var a= this. originalEvent; this. isImmediatePropagationStopped=pa,a&&a. stopImmediatePropagation&&a. stopImmediatePropagation(), this. stopPropagation()}},n. each({ mouseenter: "mouseover", mouseleave: "mouseout", pointerenter: "pointerover", pointerleave: "pointerout"}, function( a,b){n. event. special[a]={ delegateType:b, bindType:b, handle: function( a){ var c,d= this,e=a. relatedTarget,f=a. handleObj; return e&&(e===d||n. contains(d,e))||(a. type=f. origType,c=f. handler. apply( this, arguments),a. type=b),c}}}),l. submit||(n. event. special. submit={ setup: function( ){ return n. nodeName( this, "form")?! 1: void n. event. add( this, "click._submit keypress._submit", function( a){ var b=a. target,c=n. nodeName(b, "input")||n. nodeName(b, "button")?n. prop(b, "form"): void 0;c&&!n. _data(c, "submit")&&(n. event. add(c, "submit._submit", function( a){a. _submitBubble=! 0}),n. _data(c, "submit",! 0))})}, postDispatch: function( a){a. _submitBubble&&( delete a. _submitBubble, this. parentNode&&!a. isTrigger&&n. event. simulate( "submit", this. parentNode,a))}, teardown: function( ){ return n. nodeName( this, "form")?! 1: void n. event. remove( this, "._submit")}}),l. change||(n. event. special. change={ setup: function( ){ return ka. test( this. nodeName)?( "checkbox"!== this. type&& "radio"!== this. type||(n. event. add( this, "propertychange._change", function( a){ "checked"===a. originalEvent. propertyName&&( this. _justChanged=! 0)}),n. event. add( this, "click._change", function( a){ this. _justChanged&&!a. isTrigger&&( this. _justChanged=! 1),n. event. simulate( "change", this,a)})),! 1): void n. event. add( this, "beforeactivate._change", function( a){ var b=a. target;ka. test(b. nodeName)&&!n. _data(b, "change")&&(n. event. add(b, "change._change", function( a){! this. parentNode||a. isSimulated||a. isTrigger||n. event. simulate( "change", this. parentNode,a)}),n. _data(b, "change",! 0))})}, handle: function( a){ var b=a. target; return this!==b||a. isSimulated||a. isTrigger|| "radio"!==b. type&& "checkbox"!==b. type?a. handleObj. handler. apply( this, arguments): void 0}, teardown: function( ){ return n. event. remove( this, "._change"),!ka. test( this. nodeName)}}),l. focusin||n. each({ focus: "focusin", blur: "focusout"}, function( a,b){ var c= function( a){n. event. simulate(b,a. target,n. event. fix(a))};n. event. special[b]={ setup: function( ){ var d= this. ownerDocument|| this,e=n. _data(d,b);e||d. addEventListener(a,c,! 0),n. _data(d,b,(e|| 0)+ 1)}, teardown: function( ){ var d= this. ownerDocument|| this,e=n. _data(d,b)- 1;e?n. _data(d,b,e):(d. removeEventListener(a,c,! 0),n. _removeData(d,b))}}}),n. fn. extend({ on: function( a,b,c,d){ return sa( this,a,b,c,d)}, one: function( a,b,c,d){ return sa( this,a,b,c,d, 1)}, off: function( a,b,c){ var d,e; if(a&&a. preventDefault&&a. handleObj) return d=a. handleObj, n(a. delegateTarget). off(d. namespace?d. origType+ "."+d. namespace:d. origType,d. selector,d. handler), this; if( "object"== typeof a){ for(e in a) this. off(e,b,a[e]); return this} return b!==! 1&& "function"!= typeof b||(c=b,b= void 0),c===! 1&&(c=qa), this. each( function( ){n. event. remove( this,a,c,b)})}, trigger: function( a,b){ return this. each( function( ){n. event. trigger(a,b, this)})}, triggerHandler: function( a,b){ var c= this[ 0]; return c?n. event. trigger(a,b,c,! 0): void 0}}); var ta= / jQuery\d+="(?:null|\d+)"/g,ua= new RegExp( "<(?:"+ba+ ")[\\s/>]", "i"),va= /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,wa= /<script|<style|<link/i,xa= /checked\s*(?:[^=]|=\s*.checked.)/i,ya= /^true\/(.*)/,za= /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, Aa= ca(d), Ba= Aa. appendChild(d. createElement( "div")); function Ca( a,b){ return n. nodeName(a, "table")&&n. nodeName( 11!==b. nodeType? b:b. firstChild, "tr")?a. getElementsByTagName( "tbody")[ 0]||a. appendChild(a. ownerDocument. createElement( "tbody")):a} function Da( a){ return a. type=( null!==n. find. attr(a, "type"))+ "/"+a. type,a} function Ea( a){ var b=ya. exec(a. type); return b?a. type=b[ 1]:a. removeAttribute( "type"),a} function Fa( a,b){ if( 1===b. nodeType&&n. hasData(a)){ var c,d,e,f=n. _data(a),g=n. _data(b,f),h=f. events; if(h){ delete g. handle,g. events={}; for(c in h) for(d= 0,e=h[c]. length;e>d;d++)n. event. add(b,c,h[c][d])}g. data&&(g. data=n. extend({},g. data))}} function Ga( a,b){ var c,d,e; if( 1===b. nodeType){ if(c=b. nodeName. toLowerCase(),!l. noCloneEvent&&b[n. expando]){e=n. _data(b); for(d in e. events)n. removeEvent(b,d,e. handle);b. removeAttribute(n. expando)} "script"===c&&b. text!==a. text?( Da(b). text=a. text, Ea(b)): "object"===c?(b. parentNode&&(b. outerHTML=a. outerHTML),l. html5Clone&&a. innerHTML&&!n. trim(b. innerHTML)&&(b. innerHTML=a. innerHTML)): "input"===c&&Z. test(a. type)?(b. defaultChecked=b. checked=a. checked,b. value!==a. value&&(b. value=a. value)): "option"===c?b. defaultSelected=b. selected=a. defaultSelected: "input"!==c&& "textarea"!==c||(b. defaultValue=a. defaultValue)}} function Ha( a,b,c,d){b=f. apply([],b); var e,g,h,i,j,k,m= 0,o=a. length,p=o- 1,q=b[ 0],r=n. isFunction(q); if(r||o> 1&& "string"== typeof q&&!l. checkClone&&xa. test(q)) return a. each( function( e){ var f=a. eq(e);r&&(b[ 0]=q. call( this,e,f. html())), Ha(f,b,c,d)}); if(o&&(k= ja(b,a[ 0]. ownerDocument,! 1,a,d),e=k. firstChild, 1===k. childNodes. length&&(k=e),e||d)){ for(i=n. map( ea(k, "script"), Da),h=i. length;o>m;m++)g=k,m!==p&&(g=n. clone(g,! 0,! 0),h&&n. merge(i, ea(g, "script"))),c. call(a[m],g,m); if(h) for(j=i[i. length- 1]. ownerDocument,n. map(i, Ea),m= 0;h>m;m++)g=i[m],_. test(g. type|| "")&&!n. _data(g, "globalEval")&&n. contains(j,g)&&(g. src?n. _evalUrl&&n. _evalUrl(g. src):n. globalEval((g. text||g. textContent||g. innerHTML|| ""). replace(za, "")));k=e= null} return a} function Ia( a,b,c){ for( var d,e=b?n. filter(b,a):a,f= 0; null!=(d=e[f]);f++)c|| 1!==d. nodeType||n. cleanData( ea(d)),d. parentNode&&(c&&n. contains(d. ownerDocument,d)&& fa( ea(d, "script")),d. parentNode. removeChild(d)); return a}n. extend({ htmlPrefilter: function( a){ return a. replace(va, "<$1></$2>")}, clone: function( a,b,c){ var d,e,f,g,h,i=n. contains(a. ownerDocument,a); if(l. html5Clone||n. isXMLDoc(a)||!ua. test( "<"+a. nodeName+ ">")?f=a. cloneNode(! 0):( Ba. innerHTML=a. outerHTML, Ba. removeChild(f= Ba. firstChild)),!(l. noCloneEvent&&l. noCloneChecked|| 1!==a. nodeType&& 11!==a. nodeType||n. isXMLDoc(a))) for(d= ea(f),h= ea(a),g= 0; null!=(e=h[g]);++g)d[g]&& Ga(e,d[g]); if(b) if(c) for(h=h|| ea(a),d=d|| ea(f),g= 0; null!=(e=h[g]);g++) Fa(e,d[g]); else Fa(a,f); return d= ea(f, "script"),d. length> 0&& fa(d,!i&& ea(a, "script")),d=h=e= null,f}, cleanData: function( a,b){ for( var d,e,f,g,h= 0,i=n. expando,j=n. cache,k=l. attributes,m=n. event. special; null!=(d=a[h]);h++) if((b|| M(d))&&(f=d[i],g=f&&j[f])){ if(g. events) for(e in g. events)m[e]?n. event. remove(d,e):n. removeEvent(d,e,g. handle);j[f]&&( delete j[f],k|| "undefined"== typeof d. removeAttribute?d[i]= void 0:d. removeAttribute(i),c. push(f))}}}),n. fn. extend({ domManip: Ha, detach: function( a){ return Ia( this,a,! 0)}, remove: function( a){ return Ia( this,a)}, text: function( a){ return Y( this, function( a){ return void 0===a?n. text( this): this. empty(). append(( this[ 0]&& this[ 0]. ownerDocument||d). createTextNode(a))}, null,a, arguments. length)}, append: function( ){ return Ha( this, arguments, function( a){ if( 1=== this. nodeType|| 11=== this. nodeType|| 9=== this. nodeType){ var b= Ca( this,a);b. appendChild(a)}})}, prepend: function( ){ return Ha( this, arguments, function( a){ if( 1=== this. nodeType|| 11=== this. nodeType|| 9=== this. nodeType){ var b= Ca( this,a);b. insertBefore(a,b. firstChild)}})}, before: function( ){ return Ha( this, arguments, function( a){ this. parentNode&& this. parentNode. insertBefore(a, this)})}, after: function( ){ return Ha( this, arguments, function( a){ this. parentNode&& this. parentNode. insertBefore(a, this. nextSibling)})}, empty: function( ){ for( var a,b= 0; null!=(a= this[b]);b++){ 1===a. nodeType&&n. cleanData( ea(a,! 1)); while(a. firstChild)a. removeChild(a. firstChild);a. options&&n. nodeName(a, "select")&&(a. options. length= 0)} return this}, clone: function( a,b){ return a= null==a?! 1:a,b= null==b? a:b, this. map( function( ){ return n. clone( this,a,b)})}, html: function( a){ return Y( this, function( a){ var b= this[ 0]||{},c= 0,d= this. length; if( void 0===a) return 1===b. nodeType?b. innerHTML. replace(ta, ""): void 0; if( "string"== typeof a&&!wa. test(a)&&(l. htmlSerialize||!ua. test(a))&&(l. leadingWhitespace||!aa. test(a))&&!da[($. exec(a)||[ "", ""])[ 1]. toLowerCase()]){a=n. htmlPrefilter(a); try{ for(;d>c;c++)b= this[c]||{}, 1===b. nodeType&&(n. cleanData( ea(b,! 1)),b. innerHTML=a);b= 0} catch(e){}}b&& this. empty(). append(a)}, null,a, arguments. length)}, replaceWith: function( ){ var a=[]; return Ha( this, arguments, function( b){ var c= this. parentNode;n. inArray( this,a)< 0&&(n. cleanData( ea( this)),c&&c. replaceChild(b, this))},a)}}),n. each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", insertAfter: "after", replaceAll: "replaceWith"}, function( a,b){n. fn[a]= function( a){ for( var c,d= 0,e=[],f= n(a),h=f. length- 1;h>=d;d++)c=d===h? this: this. clone(! 0), n(f[d])[b](c),g. apply(e,c. get()); return this. pushStack(e)}}); var Ja, Ka={ HTML: "block", BODY: "block"}; function La( a,b){ var c= n(b. createElement(a)). appendTo(b. body),d=n. css(c[ 0], "display"); return c. detach(),d} function Ma( a){ var b=d,c= Ka[a]; return c||(c= La(a,b), "none"!==c&&c||( Ja=( Ja|| n( "<iframe frameborder='0' width='0' height='0'/>")). appendTo(b. documentElement),b=( Ja[ 0]. contentWindow|| Ja[ 0]. contentDocument). document,b. write(),b. close(),c= La(a,b), Ja. detach()), Ka[a]=c),c} var Na= /^margin/, Oa= new RegExp( "^("+T+ ")(?!px)[a-z%]+$", "i"), Pa= function( a,b,c,d){ var e,f,g={}; for(f in b)g[f]=a. style[f],a. style[f]=b[f];e=c. apply(a,d||[]); for(f in b)a. style[f]=g[f]; return e}, Qa=d. documentElement;! function( ){ var b,c,e,f,g,h,i=d. createElement( "div"),j=d. createElement( "div"); if(j. style){j. style. cssText= "float:left;opacity:.5",l. opacity= "0.5"===j. style. opacity,l. cssFloat=!!j. style. cssFloat,j. style. backgroundClip= "content-box",j. cloneNode(! 0). style. backgroundClip= "",l. clearCloneStyle= "content-box"===j. style. backgroundClip,i=d. createElement( "div"),i. style. cssText= "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",j. innerHTML= "",i. appendChild(j),l. boxSizing= ""===j. style. boxSizing|| ""===j. style. MozBoxSizing|| ""===j. style. WebkitBoxSizing,n. extend(l,{ reliableHiddenOffsets: function( ){ return null==b&& k(),f}, boxSizingReliable: function( ){ return null==b&& k(),e}, pixelMarginRight: function( ){ return null==b&& k(),c}, pixelPosition: function( ){ return null==b&& k(),b}, reliableMarginRight: function( ){ return null==b&& k(),g}, reliableMarginLeft: function( ){ return null==b&& k(),h}}); function k( ){ var k,l,m=d. documentElement;m. appendChild(i),j. style. cssText= "-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",b=e=h=! 1,c=g=! 0,a. getComputedStyle&&(l=a. getComputedStyle(j),b= "1%"!==(l||{}). top,h= "2px"===(l||{}). marginLeft,e= "4px"===(l||{ width: "4px"}). width,j. style. marginRight= "50%",c= "4px"===(l||{ marginRight: "4px"}). marginRight,k=j. appendChild(d. createElement( "div")),k. style. cssText=j. style. cssText= "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",k. style. marginRight=k. style. width= "0",j. style. width= "1px",g=! parseFloat((a. getComputedStyle(k)||{}). marginRight),j. removeChild(k)),j. style. display= "none",f= 0===j. getClientRects(). length,f&&(j. style. display= "",j. innerHTML= "<table><tr><td></td><td>t</td></tr></table>",j. childNodes[ 0]. style. borderCollapse= "separate",k=j. getElementsByTagName( "td"),k[ 0]. style. cssText= "margin:0;border:0;padding:0;display:none",f= 0===k[ 0]. offsetHeight,f&&(k[ 0]. style. display= "",k[ 1]. style. display= "none",f= 0===k[ 0]. offsetHeight)),m. removeChild(i)}}}(); var Ra, Sa, Ta= /^(top|right|bottom|left)$/;a. getComputedStyle?( Ra= function( b){ var c=b. ownerDocument. defaultView; return c&&c. opener||(c=a),c. getComputedStyle(b)}, Sa= function( a,b,c){ var d,e,f,g,h=a. style; return c=c|| Ra(a),g=c?c. getPropertyValue(b)||c[b]: void 0, ""!==g&& void 0!==g||n. contains(a. ownerDocument,a)||(g=n. style(a,b)),c&&!l. pixelMarginRight()&& Oa. test(g)&& Na. test(b)&&(d=h. width,e=h. minWidth,f=h. maxWidth,h. minWidth=h. maxWidth=h. width=g,g=c. width,h. width=d,h. minWidth=e,h. maxWidth=f), void 0===g? g:g+ ""}): Qa. currentStyle&&( Ra= function( a){ return a. currentStyle}, Sa= function( a,b,c){ var d,e,f,g,h=a. style; return c=c|| Ra(a),g=c?c[b]: void 0, null==g&&h&&h[b]&&(g=h[b]), Oa. test(g)&&! Ta. test(b)&&(d=h. left,e=a. runtimeStyle,f=e&&e. left,f&&(e. left=a. currentStyle. left),h. left= "fontSize"===b? "1em":g,g=h. pixelLeft+ "px",h. left=d,f&&(e. left=f)), void 0===g? g:g+ ""|| "auto"}); function Ua( a,b){ return{ get: function( ){ return a()? void delete this. get:( this. get=b). apply( this, arguments)}}} var Va= /alpha\([^)]*\)/i, Wa= /opacity\s*=\s*([^)]*)/i, Xa= /^(none|table(?!-c[ea]).+)/, Ya= new RegExp( "^("+T+ ")(.*)$", "i"), Za={ position: "absolute", visibility: "hidden", display: "block"},$a={ letterSpacing: "0", fontWeight: "400"},_a=[ "Webkit", "O", "Moz", "ms"],ab=d. createElement( "div"). style; function bb( a){ if(a in ab) return a; var b=a. charAt( 0). toUpperCase()+a. slice( 1),c=_a. length; while(c--) if(a=_a[c]+b,a in ab) return a} function cb( a,b){ for( var c,d,e,f=[],g= 0,h=a. length;h>g;g++)d=a[g],d. style&&(f[g]=n. _data(d, "olddisplay"),c=d. style. display,b?(f[g]|| "none"!==c||(d. style. display= ""), ""===d. style. display&& W(d)&&(f[g]=n. _data(d, "olddisplay", Ma(d. nodeName)))):(e= W(d),(c&& "none"!==c||!e)&&n. _data(d, "olddisplay",e? c:n. css(d, "display")))); for(g= 0;h>g;g++)d=a[g],d. style&&(b&& "none"!==d. style. display&& ""!==d. style. display||(d. style. display=b?f[g]|| "": "none")); return a} function db( a,b,c){ var d= Ya. exec(b); return d? Math. max( 0,d[ 1]-(c|| 0))+(d[ 2]|| "px"):b} function eb( a,b,c,d,e){ for( var f=c===(d? "border": "content")? 4: "width"===b? 1: 0,g= 0; 4>f;f+= 2) "margin"===c&&(g+=n. css(a,c+V[f],! 0,e)),d?( "content"===c&&(g-=n. css(a, "padding"+V[f],! 0,e)), "margin"!==c&&(g-=n. css(a, "border"+V[f]+ "Width",! 0,e))):(g+=n. css(a, "padding"+V[f],! 0,e), "padding"!==c&&(g+=n. css(a, "border"+V[f]+ "Width",! 0,e))); return g} function fb( a,b,c){ var d=! 0,e= "width"===b?a. offsetWidth:a. offsetHeight,f= Ra(a),g=l. boxSizing&& "border-box"===n. css(a, "boxSizing",! 1,f); if( 0>=e|| null==e){ if(e= Sa(a,b,f),( 0>e|| null==e)&&(e=a. style[b]), Oa. test(e)) return e;d=g&&(l. boxSizingReliable()||e===a. style[b]),e= parseFloat(e)|| 0} return e+ eb(a,b,c||(g? "border": "content"),d,f)+ "px"}n. extend({ cssHooks:{ opacity:{ get: function( a,b){ if(b){ var c= Sa(a, "opacity"); return ""===c? "1":c}}}}, cssNumber:{ animationIterationCount:! 0, columnCount:! 0, fillOpacity:! 0, flexGrow:! 0, flexShrink:! 0, fontWeight:! 0, lineHeight:! 0, opacity:! 0, order:! 0, orphans:! 0, widows:! 0, zIndex:! 0, zoom:! 0}, cssProps:{ "float":l. cssFloat? "cssFloat": "styleFloat"}, style: function( a,b,c,d){ if(a&& 3!==a. nodeType&& 8!==a. nodeType&&a. style){ var e,f,g,h=n. camelCase(b),i=a. style; if(b=n. cssProps[h]||(n. cssProps[h]= bb(h)||h),g=n. cssHooks[b]||n. cssHooks[h], void 0===c) return g&& "get" in g&& void 0!==(e=g. get(a,! 1,d))? e:i[b]; if(f= typeof c, "string"===f&&(e=U. exec(c))&&e[ 1]&&(c= X(a,b,e),f= "number"), null!=c&&c===c&&( "number"===f&&(c+=e&&e[ 3]||(n. cssNumber[h]? "": "px")),l. clearCloneStyle|| ""!==c|| 0!==b. indexOf( "background")||(i[b]= "inherit"),!(g&& "set" in g&& void 0===(c=g. set(a,c,d))))) try{i[b]=c} catch(j){}}}, css: function( a,b,c,d){ var e,f,g,h=n. camelCase(b); return b=n. cssProps[h]||(n. cssProps[h]= bb(h)||h),g=n. cssHooks[b]||n. cssHooks[h],g&& "get" in g&&(f=g. get(a,! 0,c)), void 0===f&&(f= Sa(a,b,d)), "normal"===f&&b in $a&&(f=$a[b]), ""===c||c?(e= parseFloat(f),c===! 0|| isFinite(e)?e|| 0:f):f}}),n. each([ "height", "width"], function( a,b){n. cssHooks[b]={ get: function( a,c,d){ return c? Xa. test(n. css(a, "display"))&& 0===a. offsetWidth? Pa(a, Za, function( ){ return fb(a,b,d)}): fb(a,b,d): void 0}, set: function( a,c,d){ var e=d&& Ra(a); return db(a,c,d? eb(a,b,d,l. boxSizing&& "border-box"===n. css(a, "boxSizing",! 1,e),e): 0)}}}),l. opacity||(n. cssHooks. opacity={ get: function( a,b){ return Wa. test((b&&a. currentStyle?a. currentStyle. filter:a. style. filter)|| "")? .01* parseFloat( RegExp. $1)+ "":b? "1": ""}, set: function( a,b){ var c=a. style,d=a. currentStyle,e=n. isNumeric(b)? "alpha(opacity="+ 100*b+ ")": "",f=d&&d. filter||c. filter|| "";c. zoom= 1,(b>= 1|| ""===b)&& ""===n. trim(f. replace( Va, ""))&&c. removeAttribute&&(c. removeAttribute( "filter"), ""===b||d&&!d. filter)||(c. filter= Va. test(f)?f. replace( Va,e):f+ " "+e)}}),n. cssHooks. marginRight= Ua(l. reliableMarginRight, function( a,b){ return b? Pa(a,{ display: "inline-block"}, Sa,[a, "marginRight"]): void 0}),n. cssHooks. marginLeft= Ua(l. reliableMarginLeft, function( a,b){ return b?( parseFloat( Sa(a, "marginLeft"))||(n. contains(a. ownerDocument,a)?a. getBoundingClientRect(). left- Pa(a,{
  4. marginLeft: 0}, function( ){ return a. getBoundingClientRect(). left}): 0))+ "px": void 0}),n. each({ margin: "", padding: "", border: "Width"}, function( a,b){n. cssHooks[a+b]={ expand: function( c){ for( var d= 0,e={},f= "string"== typeof c?c. split( " "):[c]; 4>d;d++)e[a+V[d]+b]=f[d]||f[d- 2]||f[ 0]; return e}}, Na. test(a)||(n. cssHooks[a+b]. set=db)}),n. fn. extend({ css: function( a,b){ return Y( this, function( a,b,c){ var d,e,f={},g= 0; if(n. isArray(b)){ for(d= Ra(a),e=b. length;e>g;g++)f[b[g]]=n. css(a,b[g],! 1,d); return f} return void 0!==c?n. style(a,b,c):n. css(a,b)},a,b, arguments. length> 1)}, show: function( ){ return cb( this,! 0)}, hide: function( ){ return cb( this)}, toggle: function( a){ return "boolean"== typeof a?a? this. show(): this. hide(): this. each( function( ){ W( this)? n( this). show(): n( this). hide()})}}); function gb( a,b,c,d,e){ return new gb. prototype. init(a,b,c,d,e)}n. Tween=gb,gb. prototype={ constructor:gb, init: function( a,b,c,d,e,f){ this. elem=a, this. prop=c, this. easing=e||n. easing. _default, this. options=b, this. start= this. now= this. cur(), this. end=d, this. unit=f||(n. cssNumber[c]? "": "px")}, cur: function( ){ var a=gb. propHooks[ this. prop]; return a&&a. get?a. get( this):gb. propHooks. _default. get( this)}, run: function( a){ var b,c=gb. propHooks[ this. prop]; return this. options. duration? this. pos=b=n. easing[ this. easing](a, this. options. duration*a, 0, 1, this. options. duration): this. pos=b=a, this. now=( this. end- this. start)*b+ this. start, this. options. step&& this. options. step. call( this. elem, this. now, this),c&&c. set?c. set( this):gb. propHooks. _default. set( this), this}},gb. prototype. init. prototype=gb. prototype,gb. propHooks={ _default:{ get: function( a){ var b; return 1!==a. elem. nodeType|| null!=a. elem[a. prop]&& null==a. elem. style[a. prop]?a. elem[a. prop]:(b=n. css(a. elem,a. prop, ""),b&& "auto"!==b? b: 0)}, set: function( a){n. fx. step[a. prop]?n. fx. step[a. prop](a): 1!==a. elem. nodeType|| null==a. elem. style[n. cssProps[a. prop]]&&!n. cssHooks[a. prop]?a. elem[a. prop]=a. now:n. style(a. elem,a. prop,a. now+a. unit)}}},gb. propHooks. scrollTop=gb. propHooks. scrollLeft={ set: function( a){a. elem. nodeType&&a. elem. parentNode&&(a. elem[a. prop]=a. now)}},n. easing={ linear: function( a){ return a}, swing: function( a){ return .5- Math. cos(a* Math. PI)/ 2}, _default: "swing"},n. fx=gb. prototype. init,n. fx. step={}; var hb,ib,jb= /^(?:toggle|show|hide)$/,kb= /queueHooks$/; function lb( ){ return a. setTimeout( function( ){hb= void 0}),hb=n. now()} function mb( a,b){ var c,d={ height:a},e= 0; for(b=b? 1: 0; 4>e;e+= 2-b)c=V[e],d[ "margin"+c]=d[ "padding"+c]=a; return b&&(d. opacity=d. width=a),d} function nb( a,b,c){ for( var d,e=(qb. tweeners[b]||[]). concat(qb. tweeners[ "*"]),f= 0,g=e. length;g>f;f++) if(d=e[f]. call(c,b,a)) return d} function ob( a,b,c){ var d,e,f,g,h,i,j,k,m= this,o={},p=a. style,q=a. nodeType&& W(a),r=n. _data(a, "fxshow");c. queue||(h=n. _queueHooks(a, "fx"), null==h. unqueued&&(h. unqueued= 0,i=h. empty. fire,h. empty. fire= function( ){h. unqueued|| i()}),h. unqueued++,m. always( function( ){m. always( function( ){h. unqueued--,n. queue(a, "fx"). length||h. empty. fire()})})), 1===a. nodeType&&( "height" in b|| "width" in b)&&(c. overflow=[p. overflow,p. overflowX,p. overflowY],j=n. css(a, "display"),k= "none"===j?n. _data(a, "olddisplay")|| Ma(a. nodeName):j, "inline"===k&& "none"===n. css(a, "float")&&(l. inlineBlockNeedsLayout&& "inline"!== Ma(a. nodeName)?p. zoom= 1:p. display= "inline-block")),c. overflow&&(p. overflow= "hidden",l. shrinkWrapBlocks()||m. always( function( ){p. overflow=c. overflow[ 0],p. overflowX=c. overflow[ 1],p. overflowY=c. overflow[ 2]})); for(d in b) if(e=b[d],jb. exec(e)){ if( delete b[d],f=f|| "toggle"===e,e===(q? "hide": "show")){ if( "show"!==e||!r|| void 0===r[d]) continue;q=! 0}o[d]=r&&r[d]||n. style(a,d)} else j= void 0; if(n. isEmptyObject(o)) "inline"===( "none"===j? Ma(a. nodeName):j)&&(p. display=j); else{r? "hidden" in r&&(q=r. hidden):r=n. _data(a, "fxshow",{}),f&&(r. hidden=!q),q? n(a). show():m. done( function( ){ n(a). hide()}),m. done( function( ){ var b;n. _removeData(a, "fxshow"); for(b in o)n. style(a,b,o[b])}); for(d in o)g= nb(q?r[d]: 0,d,m),d in r||(r[d]=g. start,q&&(g. end=g. start,g. start= "width"===d|| "height"===d? 1: 0))}} function pb( a,b){ var c,d,e,f,g; for(c in a) if(d=n. camelCase(c),e=b[d],f=a[c],n. isArray(f)&&(e=f[ 1],f=a[c]=f[ 0]),c!==d&&(a[d]=f, delete a[c]),g=n. cssHooks[d],g&& "expand" in g){f=g. expand(f), delete a[d]; for(c in f)c in a||(a[c]=f[c],b[c]=e)} else b[d]=e} function qb( a,b,c){ var d,e,f= 0,g=qb. prefilters. length,h=n. Deferred(). always( function( ){ delete i. elem}),i= function( ){ if(e) return! 1; for( var b=hb|| lb(),c= Math. max( 0,j. startTime+j. duration-b),d=c/j. duration|| 0,f= 1-d,g= 0,i=j. tweens. length;i>g;g++)j. tweens[g]. run(f); return h. notifyWith(a,[j,f,c]), 1>f&&i? c:(h. resolveWith(a,[j]),! 1)},j=h. promise({ elem:a, props:n. extend({},b), opts:n. extend(! 0,{ specialEasing:{}, easing:n. easing. _default},c), originalProperties:b, originalOptions:c, startTime:hb|| lb(), duration:c. duration, tweens:[], createTween: function( b,c){ var d=n. Tween(a,j. opts,b,c,j. opts. specialEasing[b]||j. opts. easing); return j. tweens. push(d),d}, stop: function( b){ var c= 0,d=b?j. tweens. length: 0; if(e) return this; for(e=! 0;d>c;c++)j. tweens[c]. run( 1); return b?(h. notifyWith(a,[j, 1, 0]),h. resolveWith(a,[j,b])):h. rejectWith(a,[j,b]), this}}),k=j. props; for( pb(k,j. opts. specialEasing);g>f;f++) if(d=qb. prefilters[f]. call(j,a,k,j. opts)) return n. isFunction(d. stop)&&(n. _queueHooks(j. elem,j. opts. queue). stop=n. proxy(d. stop,d)),d; return n. map(k,nb,j),n. isFunction(j. opts. start)&&j. opts. start. call(a,j),n. fx. timer(n. extend(i,{ elem:a, anim:j, queue:j. opts. queue})),j. progress(j. opts. progress). done(j. opts. done,j. opts. complete). fail(j. opts. fail). always(j. opts. always)}n. Animation=n. extend(qb,{ tweeners:{ "*":[ function( a,b){ var c= this. createTween(a,b); return X(c. elem,a,U. exec(b),c),c}]}, tweener: function( a,b){n. isFunction(a)?(b=a,a=[ "*"]):a=a. match(G); for( var c,d= 0,e=a. length;e>d;d++)c=a[d],qb. tweeners[c]=qb. tweeners[c]||[],qb. tweeners[c]. unshift(b)}, prefilters:[ob], prefilter: function( a,b){b?qb. prefilters. unshift(a):qb. prefilters. push(a)}}),n. speed= function( a,b,c){ var d=a&& "object"== typeof a?n. extend({},a):{ complete:c||!c&&b||n. isFunction(a)&&a, duration:a, easing:c&&b||b&&!n. isFunction(b)&&b}; return d. duration=n. fx. off? 0: "number"== typeof d. duration?d. duration:d. duration in n. fx. speeds?n. fx. speeds[d. duration]:n. fx. speeds. _default, null!=d. queue&&d. queue!==! 0||(d. queue= "fx"),d. old=d. complete,d. complete= function( ){n. isFunction(d. old)&&d. old. call( this),d. queue&&n. dequeue( this,d. queue)},d},n. fn. extend({ fadeTo: function( a,b,c,d){ return this. filter(W). css( "opacity", 0). show(). end(). animate({ opacity:b},a,c,d)}, animate: function( a,b,c,d){ var e=n. isEmptyObject(a),f=n. speed(b,c,d),g= function( ){ var b= qb( this,n. extend({},a),f);(e||n. _data( this, "finish"))&&b. stop(! 0)}; return g. finish=g,e||f. queue===! 1? this. each(g): this. queue(f. queue,g)}, stop: function( a,b,c){ var d= function( a){ var b=a. stop; delete a. stop, b(c)}; return "string"!= typeof a&&(c=b,b=a,a= void 0),b&&a!==! 1&& this. queue(a|| "fx",[]), this. each( function( ){ var b=! 0,e= null!=a&&a+ "queueHooks",f=n. timers,g=n. _data( this); if(e)g[e]&&g[e]. stop&& d(g[e]); else for(e in g)g[e]&&g[e]. stop&&kb. test(e)&& d(g[e]); for(e=f. length;e--;)f[e]. elem!== this|| null!=a&&f[e]. queue!==a||(f[e]. anim. stop(c),b=! 1,f. splice(e, 1));!b&&c||n. dequeue( this,a)})}, finish: function( a){ return a!==! 1&&(a=a|| "fx"), this. each( function( ){ var b,c=n. _data( this),d=c[a+ "queue"],e=c[a+ "queueHooks"],f=n. timers,g=d?d. length: 0; for(c. finish=! 0,n. queue( this,a,[]),e&&e. stop&&e. stop. call( this,! 0),b=f. length;b--;)f[b]. elem=== this&&f[b]. queue===a&&(f[b]. anim. stop(! 0),f. splice(b, 1)); for(b= 0;g>b;b++)d[b]&&d[b]. finish&&d[b]. finish. call( this); delete c. finish})}}),n. each([ "toggle", "show", "hide"], function( a,b){ var c=n. fn[b];n. fn[b]= function( a,d,e){ return null==a|| "boolean"== typeof a?c. apply( this, arguments): this. animate( mb(b,! 0),a,d,e)}}),n. each({ slideDown: mb( "show"), slideUp: mb( "hide"), slideToggle: mb( "toggle"), fadeIn:{ opacity: "show"}, fadeOut:{ opacity: "hide"}, fadeToggle:{ opacity: "toggle"}}, function( a,b){n. fn[a]= function( a,c,d){ return this. animate(b,a,c,d)}}),n. timers=[],n. fx. tick= function( ){ var a,b=n. timers,c= 0; for(hb=n. now();c<b. length;c++)a=b[c], a()||b[c]!==a||b. splice(c--, 1);b. length||n. fx. stop(),hb= void 0},n. fx. timer= function( a){n. timers. push(a), a()?n. fx. start():n. timers. pop()},n. fx. interval= 13,n. fx. start= function( ){ib||(ib=a. setInterval(n. fx. tick,n. fx. interval))},n. fx. stop= function( ){a. clearInterval(ib),ib= null},n. fx. speeds={ slow: 600, fast: 200, _default: 400},n. fn. delay= function( b,c){ return b=n. fx?n. fx. speeds[b]|| b:b,c=c|| "fx", this. queue(c, function( c,d){ var e=a. setTimeout(c,b);d. stop= function( ){a. clearTimeout(e)}})}, function( ){ var a,b=d. createElement( "input"),c=d. createElement( "div"),e=d. createElement( "select"),f=e. appendChild(d. createElement( "option"));c=d. createElement( "div"),c. setAttribute( "className", "t"),c. innerHTML= " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c. getElementsByTagName( "a")[ 0],b. setAttribute( "type", "checkbox"),c. appendChild(b),a=c. getElementsByTagName( "a")[ 0],a. style. cssText= "top:1px",l. getSetAttribute= "t"!==c. className,l. style= /top/. test(a. getAttribute( "style")),l. hrefNormalized= "/a"===a. getAttribute( "href"),l. checkOn=!!b. value,l. optSelected=f. selected,l. enctype=!!d. createElement( "form"). enctype,e. disabled=! 0,l. optDisabled=!f. disabled,b=d. createElement( "input"),b. setAttribute( "value", ""),l. input= ""===b. getAttribute( "value"),b. value= "t",b. setAttribute( "type", "radio"),l. radioValue= "t"===b. value}(); var rb= /\r/g,sb= /[\x20\t\r\n\f]+/g;n. fn. extend({ val: function( a){ var b,c,d,e= this[ 0];{ if( arguments. length) return d=n. isFunction(a), this. each( function( c){ var e; 1=== this. nodeType&&(e=d?a. call( this,c, n( this). val()):a, null==e?e= "": "number"== typeof e?e+= "":n. isArray(e)&&(e=n. map(e, function( a){ return null==a? "":a+ ""})),b=n. valHooks[ this. type]||n. valHooks[ this. nodeName. toLowerCase()],b&& "set" in b&& void 0!==b. set( this,e, "value")||( this. value=e))}); if(e) return b=n. valHooks[e. type]||n. valHooks[e. nodeName. toLowerCase()],b&& "get" in b&& void 0!==(c=b. get(e, "value"))? c:(c=e. value, "string"== typeof c?c. replace(rb, ""): null==c? "":c)}}}),n. extend({ valHooks:{ option:{ get: function( a){ var b=n. find. attr(a, "value"); return null!=b? b:n. trim(n. text(a)). replace(sb, " ")}}, select:{ get: function( a){ for( var b,c,d=a. options,e=a. selectedIndex,f= "select-one"===a. type|| 0>e,g=f? null:[],h=f?e+ 1:d. length,i= 0>e? h:f? e: 0;h>i;i++) if(c=d[i],(c. selected||i===e)&&(l. optDisabled?!c. disabled: null===c. getAttribute( "disabled"))&&(!c. parentNode. disabled||!n. nodeName(c. parentNode, "optgroup"))){ if(b= n(c). val(),f) return b;g. push(b)} return g}, set: function( a,b){ var c,d,e=a. options,f=n. makeArray(b),g=e. length; while(g--) if(d=e[g],n. inArray(n. valHooks. option. get(d),f)>- 1) try{d. selected=c=! 0} catch(h){d. scrollHeight} else d. selected=! 1; return c||(a. selectedIndex=- 1),e}}}}),n. each([ "radio", "checkbox"], function( ){n. valHooks[ this]={ set: function( a,b){ return n. isArray(b)?a. checked=n. inArray( n(a). val(),b)>- 1: void 0}},l. checkOn||(n. valHooks[ this]. get= function( a){ return null===a. getAttribute( "value")? "on":a. value})}); var tb,ub,vb=n. expr. attrHandle,wb= /^(?:checked|selected)$/i,xb=l. getSetAttribute,yb=l. input;n. fn. extend({ attr: function( a,b){ return Y( this,n. attr,a,b, arguments. length> 1)}, removeAttr: function( a){ return this. each( function( ){n. removeAttr( this,a)})}}),n. extend({ attr: function( a,b,c){ var d,e,f=a. nodeType; if( 3!==f&& 8!==f&& 2!==f) return "undefined"== typeof a. getAttribute?n. prop(a,b,c):( 1===f&&n. isXMLDoc(a)||(b=b. toLowerCase(),e=n. attrHooks[b]||(n. expr. match. bool. test(b)? ub:tb)), void 0!==c? null===c? void n. removeAttr(a,b):e&& "set" in e&& void 0!==(d=e. set(a,c,b))? d:(a. setAttribute(b,c+ ""),c):e&& "get" in e&& null!==(d=e. get(a,b))? d:(d=n. find. attr(a,b), null==d? void 0:d))}, attrHooks:{ type:{ set: function( a,b){ if(!l. radioValue&& "radio"===b&&n. nodeName(a, "input")){ var c=a. value; return a. setAttribute( "type",b),c&&(a. value=c),b}}}}, removeAttr: function( a,b){ var c,d,e= 0,f=b&&b. match(G); if(f&& 1===a. nodeType) while(c=f[e++])d=n. propFix[c]||c,n. expr. match. bool. test(c)?yb&&xb||!wb. test(c)?a[d]=! 1:a[n. camelCase( "default-"+c)]=a[d]=! 1:n. attr(a,c, ""),a. removeAttribute(xb? c:d)}}),ub={ set: function( a,b,c){ return b===! 1?n. removeAttr(a,c):yb&&xb||!wb. test(c)?a. setAttribute(!xb&&n. propFix[c]||c,c):a[n. camelCase( "default-"+c)]=a[c]=! 0,c}},n. each(n. expr. match. bool. source. match( /\w+/g), function( a,b){ var c=vb[b]||n. find. attr;yb&&xb||!wb. test(b)?vb[b]= function( a,b,d){ var e,f; return d||(f=vb[b],vb[b]=e,e= null!= c(a,b,d)?b. toLowerCase(): null,vb[b]=f),e}:vb[b]= function( a,b,c){ return c? void 0:a[n. camelCase( "default-"+b)]?b. toLowerCase(): null}}),yb&&xb||(n. attrHooks. value={ set: function( a,b,c){ return n. nodeName(a, "input")? void(a. defaultValue=b):tb&&tb. set(a,b,c)}}),xb||(tb={ set: function( a,b,c){ var d=a. getAttributeNode(c); return d||a. setAttributeNode(d=a. ownerDocument. createAttribute(c)),d. value=b+= "", "value"===c||b===a. getAttribute(c)? b: void 0}},vb. id=vb. name=vb. coords= function( a,b,c){ var d; return c? void 0:(d=a. getAttributeNode(b))&& ""!==d. value?d. value: null},n. valHooks. button={ get: function( a,b){ var c=a. getAttributeNode(b); return c&&c. specified?c. value: void 0}, set:tb. set},n. attrHooks. contenteditable={ set: function( a,b,c){tb. set(a, ""===b?! 1:b,c)}},n. each([ "width", "height"], function( a,b){n. attrHooks[b]={ set: function( a,c){ return ""===c?(a. setAttribute(b, "auto"),c): void 0}}})),l. style||(n. attrHooks. style={ get: function( a){ return a. style. cssText|| void 0}, set: function( a,b){ return a. style. cssText=b+ ""}}); var zb= /^(?:input|select|textarea|button|object)$/i, Ab= /^(?:a|area)$/i;n. fn. extend({ prop: function( a,b){ return Y( this,n. prop,a,b, arguments. length> 1)}, removeProp: function( a){ return a=n. propFix[a]||a, this. each( function( ){ try{ this[a]= void 0, delete this[a]} catch(b){}})}}),n. extend({ prop: function( a,b,c){ var d,e,f=a. nodeType; if( 3!==f&& 8!==f&& 2!==f) return 1===f&&n. isXMLDoc(a)||(b=n. propFix[b]||b,e=n. propHooks[b]), void 0!==c?e&& "set" in e&& void 0!==(d=e. set(a,c,b))? d:a[b]= c:e&& "get" in e&& null!==(d=e. get(a,b))? d:a[b]}, propHooks:{ tabIndex:{ get: function( a){ var b=n. find. attr(a, "tabindex"); return b? parseInt(b, 10):zb. test(a. nodeName)|| Ab. test(a. nodeName)&&a. href? 0:- 1}}}, propFix:{ "for": "htmlFor", "class": "className"}}),l. hrefNormalized||n. each([ "href", "src"], function( a,b){n. propHooks[b]={ get: function( a){ return a. getAttribute(b, 4)}}}),l. optSelected||(n. propHooks. selected={ get: function( a){ var b=a. parentNode; return b&&(b. selectedIndex,b. parentNode&&b. parentNode. selectedIndex), null}, set: function( a){ var b=a. parentNode;b&&(b. selectedIndex,b. parentNode&&b. parentNode. selectedIndex)}}),n. each([ "tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function( ){n. propFix[ this. toLowerCase()]= this}),l. enctype||(n. propFix. enctype= "encoding"); var Bb= /[\t\r\n\f]/g; function Cb( a){ return n. attr(a, "class")|| ""}n. fn. extend({ addClass: function( a){ var b,c,d,e,f,g,h,i= 0; if(n. isFunction(a)) return this. each( function( b){ n( this). addClass(a. call( this,b, Cb( this)))}); if( "string"== typeof a&&a){b=a. match(G)||[]; while(c= this[i++]) if(e= Cb(c),d= 1===c. nodeType&&( " "+e+ " "). replace( Bb, " ")){g= 0; while(f=b[g++])d. indexOf( " "+f+ " ")< 0&&(d+=f+ " ");h=n. trim(d),e!==h&&n. attr(c, "class",h)}} return this}, removeClass: function( a){ var b,c,d,e,f,g,h,i= 0; if(n. isFunction(a)) return this. each( function( b){ n( this). removeClass(a. call( this,b, Cb( this)))}); if(! arguments. length) return this. attr( "class", ""); if( "string"== typeof a&&a){b=a. match(G)||[]; while(c= this[i++]) if(e= Cb(c),d= 1===c. nodeType&&( " "+e+ " "). replace( Bb, " ")){g= 0; while(f=b[g++]) while(d. indexOf( " "+f+ " ")>- 1)d=d. replace( " "+f+ " ", " ");h=n. trim(d),e!==h&&n. attr(c, "class",h)}} return this}, toggleClass: function( a,b){ var c= typeof a; return "boolean"== typeof b&& "string"===c?b? this. addClass(a): this. removeClass(a):n. isFunction(a)? this. each( function( c){ n( this). toggleClass(a. call( this,c, Cb( this),b),b)}): this. each( function( ){ var b,d,e,f; if( "string"===c){d= 0,e= n( this),f=a. match(G)||[]; while(b=f[d++])e. hasClass(b)?e. removeClass(b):e. addClass(b)} else void 0!==a&& "boolean"!==c||(b= Cb( this),b&&n. _data( this, "__className__",b),n. attr( this, "class",b||a===! 1? "":n. _data( this, "__className__")|| ""))})}, hasClass: function( a){ var b,c,d= 0;b= " "+a+ " "; while(c= this[d++]) if( 1===c. nodeType&&( " "+ Cb(c)+ " "). replace( Bb, " "). indexOf(b)>- 1) return! 0; return! 1}}),n. each( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu". split( " "), function( a,b){n. fn[b]= function( a,c){ return arguments. length> 0? this. on(b, null,a,c): this. trigger(b)}}),n. fn. extend({ hover: function( a,b){ return this. mouseenter(a). mouseleave(b||a)}}); var Db=a. location, Eb=n. now(), Fb= /\?/, Gb= /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n. parseJSON= function( b){ if(a. JSON&&a. JSON. parse) return a. JSON. parse(b+ ""); var c,d= null,e=n. trim(b+ ""); return e&&!n. trim(e. replace( Gb, function( a,b,e,f){ return c&&b&&(d= 0), 0===d? a:(c=e||b,d+=!f-!e, "")}))? Function( "return "+e)():n. error( "Invalid JSON: "+b)},n. parseXML= function( b){ var c,d; if(!b|| "string"!= typeof b) return null; try{a. DOMParser?(d= new a. DOMParser,c=d. parseFromString(b, "text/xml")):(c= new a. ActiveXObject( "Microsoft.XMLDOM"),c. async= "false",c. loadXML(b))} catch(e){c= void 0} return c&&c. documentElement&&!c. getElementsByTagName( "parsererror"). length||n. error( "Invalid XML: "+b),c}; var Hb= /#.*$/, Ib= /([?&])_=[^&]*/, Jb= /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, Kb= /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Lb= /^(?:GET|HEAD)$/, Mb= /^\/\//, Nb= /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, Ob={}, Pb={}, Qb= "*/". concat( "*"), Rb= Db. href, Sb= Nb. exec( Rb. toLowerCase())||[]; function Tb( a){ return function( b,c){ "string"!= typeof b&&(c=b,b= "*"); var d,e= 0,f=b. toLowerCase(). match(G)||[]; if(n. isFunction(c)) while(d=f[e++]) "+"===d. charAt( 0)?(d=d. slice( 1)|| "*",(a[d]=a[d]||[]). unshift(c)):(a[d]=a[d]||[]). push(c)}} function Ub( a,b,c,d){ var e={},f=a=== Pb; function g( h){ var i; return e[h]=! 0,n. each(a[h]||[], function( a,h){ var j= h(b,c,d); return "string"!= typeof j||f||e[j]?f?!(i=j): void 0:(b. dataTypes. unshift(j), g(j),! 1)}),i} return g(b. dataTypes[ 0])||!e[ "*"]&& g( "*")} function Vb( a,b){ var c,d,e=n. ajaxSettings. flatOptions||{}; for(d in b) void 0!==b[d]&&((e[d]? a:c||(c={}))[d]=b[d]); return c&&n. extend(! 0,a,c),a} function Wb( a,b,c){ var d,e,f,g,h=a. contents,i=a. dataTypes; while( "*"===i[ 0])i. shift(), void 0===e&&(e=a. mimeType||b. getResponseHeader( "Content-Type")); if(e) for(g in h) if(h[g]&&h[g]. test(e)){i. unshift(g); break} if(i[ 0] in c)f=i[ 0]; else{ for(g in c){ if(!i[ 0]||a. converters[g+ " "+i[ 0]]){f=g; break}d||(d=g)}f=f||d} return f?(f!==i[ 0]&&i. unshift(f),c[f]): void 0} function Xb( a,b,c,d){ var e,f,g,h,i,j={},k=a. dataTypes. slice(); if(k[ 1]) for(g in a. converters)j[g. toLowerCase()]=a. converters[g];f=k. shift(); while(f) if(a. responseFields[f]&&(c[a. responseFields[f]]=b),!i&&d&&a. dataFilter&&(b=a. dataFilter(b,a. dataType)),i=f,f=k. shift()) if( "*"===f)f=i; else if( "*"!==i&&i!==f){ if(g=j[i+ " "+f]||j[ "* "+f],!g) for(e in j) if(h=e. split( " "),h[ 1]===f&&(g=j[i+ " "+h[ 0]]||j[ "* "+h[ 0]])){g===! 0?g=j[e]:j[e]!==! 0&&(f=h[ 0],k. unshift(h[ 1])); break} if(g!==! 0) if(g&&a[ "throws"])b= g(b); else try{b= g(b)} catch(l){ return{ state: "parsererror", error:g? l: "No conversion from "+i+ " to "+f}}} return{ state: "success", data:b}}n. extend({ active: 0, lastModified:{}, etag:{}, ajaxSettings:{ url: Rb, type: "GET", isLocal: Kb. test( Sb[ 1]), global:! 0, processData:! 0, async:! 0, contentType: "application/x-www-form-urlencoded; charset=UTF-8", accepts:{ "*": Qb, text: "text/plain", html: "text/html", xml: "application/xml, text/xml", json: "application/json, text/javascript"}, contents:{ xml: /\bxml\b/, html: /\bhtml/, json: /\bjson\b/}, responseFields:{ xml: "responseXML", text: "responseText", json: "responseJSON"}, converters:{ "* text": String, "text html":! 0, "text json":n. parseJSON, "text xml":n. parseXML}, flatOptions:{ url:! 0, context:! 0}}, ajaxSetup: function( a,b){ return b? Vb( Vb(a,n. ajaxSettings),b): Vb(n. ajaxSettings,a)}, ajaxPrefilter: Tb( Ob), ajaxTransport: Tb( Pb), ajax: function( b,c){ "object"== typeof b&&(c=b,b= void 0),c=c||{}; var d,e,f,g,h,i,j,k,l=n. ajaxSetup({},c),m=l. context||l,o=l. context&&(m. nodeType||m. jquery)? n(m):n. event,p=n. Deferred(),q=n. Callbacks( "once memory"),r=l. statusCode||{},s={},t={},u= 0,v= "canceled",w={ readyState: 0, getResponseHeader: function( a){ var b; if( 2===u){ if(!k){k={}; while(b= Jb. exec(g))k[b[ 1]. toLowerCase()]=b[ 2]}b=k[a. toLowerCase()]} return null==b? null:b}, getAllResponseHeaders: function( ){ return 2===u? g: null}, setRequestHeader: function( a,b){ var c=a. toLowerCase(); return u||(a=t[c]=t[c]||a,s[a]=b), this}, overrideMimeType: function( a){ return u||(l. mimeType=a), this}, statusCode: function( a){ var b; if(a) if( 2>u) for(b in a)r[b]=[r[b],a[b]]; else w. always(a[w. status]); return this}, abort: function( a){ var b=a||v; return j&&j. abort(b), y( 0,b), this}}; if(p. promise(w). complete=q. add,w. success=w. done,w. error=w. fail,l. url=((b||l. url|| Rb)+ ""). replace( Hb, ""). replace( Mb, Sb[ 1]+ "//"),l. type=c. method||c. type||l. method||l. type,l. dataTypes=n. trim(l. dataType|| "*"). toLowerCase(). match(G)||[ ""], null==l. crossDomain&&(d= Nb. exec(l. url. toLowerCase()),l. crossDomain=!(!d||d[ 1]=== Sb[ 1]&&d[ 2]=== Sb[ 2]&&(d[ 3]||( "http:"===d[ 1]? "80": "443"))===( Sb[ 3]||( "http:"=== Sb[ 1]? "80": "443")))),l. data&&l. processData&& "string"!= typeof l. data&&(l. data=n. param(l. data,l. traditional)), Ub( Ob,l,c,w), 2===u) return w;i=n. event&&l. global,i&& 0===n. active++&&n. event. trigger( "ajaxStart"),l. type=l. type. toUpperCase(),l. hasContent=! Lb. test(l. type),f=l. url,l. hasContent||(l. data&&(f=l. url+=( Fb. test(f)? "&": "?")+l. data, delete l. data),l. cache===! 1&&(l. url= Ib. test(f)?f. replace( Ib, "$1_="+ Eb++):f+( Fb. test(f)? "&": "?")+ "_="+ Eb++)),l. ifModified&&(n. lastModified[f]&&w. setRequestHeader( "If-Modified-Since",n. lastModified[f]),n. etag[f]&&w. setRequestHeader( "If-None-Match",n. etag[f])),(l. data&&l. hasContent&&l. contentType!==! 1||c. contentType)&&w. setRequestHeader( "Content-Type",l. contentType),w. setRequestHeader( "Accept",l. dataTypes[ 0]&&l. accepts[l. dataTypes[ 0]]?l. accepts[l. dataTypes[ 0]]+( "*"!==l. dataTypes[ 0]? ", "+ Qb+ "; q=0.01": ""):l. accepts[ "*"]); for(e in l. headers)w. setRequestHeader(e,l. headers[e]); if(l. beforeSend&&(l. beforeSend. call(m,w,l)===! 1|| 2===u)) return w. abort();v= "abort"; for(e in{ success: 1, error: 1, complete: 1})w[e](l[e]); if(j= Ub( Pb,l,c,w)){ if(w. readyState= 1,i&&o. trigger( "ajaxSend",[w,l]), 2===u) return w;l. async&&l. timeout> 0&&(h=a. setTimeout( function( ){w. abort( "timeout")},l. timeout)); try{u= 1,j. send(s,y)} catch(x){ if(!( 2>u)) throw x; y(- 1,x)}} else y(- 1, "No Transport"); function y( b,c,d,e){ var k,s,t,v,x,y=c; 2!==u&&(u= 2,h&&a. clearTimeout(h),j= void 0,g=e|| "",w. readyState=b> 0? 4: 0,k=b>= 200&& 300>b|| 304===b,d&&(v= Wb(l,w,d)),v= Xb(l,v,w,k),k?(l. ifModified&&(x=w. getResponseHeader( "Last-Modified"),x&&(n. lastModified[f]=x),x=w. getResponseHeader( "etag"),x&&(n. etag[f]=x)), 204===b|| "HEAD"===l. type?y= "nocontent": 304===b?y= "notmodified":(y=v. state,s=v. data,t=v. error,k=!t)):(t=y,!b&&y||(y= "error", 0>b&&(b= 0))),w. status=b,w. statusText=(c||y)+ "",k?p. resolveWith(m,[s,y,w]):p. rejectWith(m,[w,y,t]),w. statusCode(r),r= void 0,i&&o. trigger(k? "ajaxSuccess": "ajaxError",[w,l,k? s:t]),q. fireWith(m,[w,y]),i&&(o. trigger( "ajaxComplete",[w,l]),--n. active||n. event. trigger( "ajaxStop")))} return w}, getJSON: function( a,b,c){ return n. get(a,b,c, "json")}, getScript: function( a,b){ return n. get(a, void 0,b, "script")}}),n. each([ "get", "post"], function( a,b){n[b]= function( a,c,d,e){ return n. isFunction(c)&&(e=e||d,d=c,c= void 0),n. ajax(n. extend({ url:a, type:b, dataType:e, data:c, success:d},n. isPlainObject(a)&&a))}}),n. _evalUrl= function( a){ return n. ajax({ url:a, type: "GET", dataType: "script", cache:! 0, async:! 1, global:! 1, "throws":! 0})},n. fn. extend({ wrapAll: function( a){ if(n. isFunction(a)) return this. each( function( b){ n( this). wrapAll(a. call( this,b))}); if( this[ 0]){ var b= n(a, this[ 0]. ownerDocument). eq( 0). clone(! 0); this[ 0]. parentNode&&b. insertBefore( this[ 0]),b. map( function( ){ var a= this; while(a. firstChild&& 1===a. firstChild. nodeType)a=a. firstChild; return a}). append( this)} return this}, wrapInner: function( a){ return n. isFunction(a)? this. each( function( b){ n( this). wrapInner(a. call( this,b))}): this. each( function( ){ var b= n( this),c=b. contents();c. length?c. wrapAll(a):b. append(a)})}, wrap: function( a){ var b=n. isFunction(a); return this. each( function( c){ n( this). wrapAll(b?a. call( this,c):a)})}, unwrap: function( ){ return this. parent(). each( function( ){n. nodeName( this, "body")|| n( this). replaceWith( this. childNodes)}). end()}}); function Yb( a){ return a. style&&a. style. display||n. css(a, "display")} function Zb( a){ if(!n. contains(a. ownerDocument||d,a)) return! 0; while(a&& 1===a. nodeType){ if( "none"=== Yb(a)|| "hidden"===a. type) return! 0;a=a. parentNode} return! 1}n. expr. filters. hidden= function( a){ return l. reliableHiddenOffsets()?a. offsetWidth<= 0&&a. offsetHeight<= 0&&!a. getClientRects(). length: Zb(a)},n. expr. filters. visible= function( a){ return!n. expr. filters. hidden(a)}; var $b= /%20/g,_b= /\[\]$/,ac= /\r?\n/g,bc= /^(?:submit|button|image|reset|file)$/i,cc= /^(?:input|select|textarea|keygen)/i; function dc( a,b,c,d){ var e; if(n. isArray(b))n. each(b, function( b,e){c||_b. test(a)? d(a,e): dc(a+ "["+( "object"== typeof e&& null!=e? b: "")+ "]",e,c,d)}); else if(c|| "object"!==n. type(b)) d(a,b); else for(e in b) dc(a+ "["+e+ "]",b[e],c,d)}n. param= function( a,b){ var c,d=[],e= function( a,b){b=n. isFunction(b)? b(): null==b? "":b,d[d. length]= encodeURIComponent(a)+ "="+ encodeURIComponent(b)}; if( void 0===b&&(b=n. ajaxSettings&&n. ajaxSettings. traditional),n. isArray(a)||a. jquery&&!n. isPlainObject(a))n. each(a, function( ){ e( this. name, this. value)}); else for(c in a) dc(c,a[c],b,e); return d. join( "&"). replace($b, "+")},n. fn. extend({ serialize: function( ){ return n. param( this. serializeArray())}, serializeArray: function( ){ return this. map( function( ){ var a=n. prop( this, "elements"); return a?n. makeArray(a): this}). filter( function( ){ var a= this. type; return this. name&&! n( this). is( ":disabled")&&cc. test( this. nodeName)&&!bc. test(a)&&( this. checked||!Z. test(a))}). map( function( a,b){ var c= n( this). val(); return null==c? null:n. isArray(c)?n. map(c, function( a){ return{ name:b. name, value:a. replace(ac, "\r\n")}}):{ name:b. name, value:c. replace(ac, "\r\n")}}). get()}}),n. ajaxSettings. xhr= void 0!==a. ActiveXObject? function( ){ return this. isLocal? ic():d. documentMode> 8? hc(): /^(get|post|head|put|delete|options)$/i. test( this. type)&& hc()|| ic()}:hc; var ec= 0,fc={},gc=n. ajaxSettings. xhr();a. attachEvent&&a. attachEvent( "onunload", function( ){ for( var a in fc)fc[a]( void 0,! 0)}),l. cors=!!gc&& "withCredentials" in gc,gc=l. ajax=!!gc,gc&&n. ajaxTransport( function( b){ if(!b. crossDomain||l. cors){ var c; return{ send: function( d,e){ var f,g=b. xhr(),h=++ec; if(g. open(b. type,b. url,b. async,b. username,b. password),b. xhrFields) for(f in b. xhrFields)g[f]=b. xhrFields[f];b. mimeType&&g. overrideMimeType&&g. overrideMimeType(b. mimeType),b. crossDomain||d[ "X-Requested-With"]||(d[ "X-Requested-With"]= "XMLHttpRequest"); for(f in d) void 0!==d[f]&&g. setRequestHeader(f,d[f]+ "");g. send(b. hasContent&&b. data|| null),c= function( a,d){ var f,i,j; if(c&&(d|| 4===g. readyState)) if( delete fc[h],c= void 0,g. onreadystatechange=n. noop,d) 4!==g. readyState&&g. abort(); else{j={},f=g. status, "string"== typeof g. responseText&&(j. text=g. responseText); try{i=g. statusText} catch(k){i= ""}f||!b. isLocal||b. crossDomain? 1223===f&&(f= 204):f=j. text? 200: 404}j&& e(f,i,j,g. getAllResponseHeaders())},b. async? 4===g. readyState?a. setTimeout(c):g. onreadystatechange=fc[h]= c: c()}, abort: function( ){c&& c( void 0,! 0)}}}}); function hc( ){ try{ return new a. XMLHttpRequest} catch(b){}} function ic( ){ try{ return new a. ActiveXObject( "Microsoft.XMLHTTP")} catch(b){}}n. ajaxSetup({ accepts:{ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"}, contents:{ script: /\b(?:java|ecma)script\b/}, converters:{ "text script": function( a){ return n. globalEval(a),a}}}),n. ajaxPrefilter( "script", function( a){ void 0===a. cache&&(a. cache=! 1),a. crossDomain&&(a. type= "GET",a. global=! 1)}),n. ajaxTransport( "script", function( a){ if(a. crossDomain){ var b,c=d. head|| n( "head")[ 0]||d. documentElement; return{ send: function( e,f){b=d. createElement( "script"),b. async=! 0,a. scriptCharset&&(b. charset=a. scriptCharset),b. src=a. url,b. onload=b. onreadystatechange= function( a,c){(c||!b. readyState|| /loaded|complete/. test(b. readyState))&&(b. onload=b. onreadystatechange= null,b. parentNode&&b. parentNode. removeChild(b),b= null,c|| f( 200, "success"))},c. insertBefore(b,c. firstChild)}, abort: function( ){b&&b. onload( void 0,! 0)}}}}); var jc=[],kc= /(=)\?(?=&|$)|\?\?/;n. ajaxSetup({ jsonp: "callback", jsonpCallback: function( ){ var a=jc. pop()||n. expando+ "_"+ Eb++; return this[a]=! 0,a}}),n. ajaxPrefilter( "json jsonp", function( b,c,d){ var e,f,g,h=b. jsonp!==! 1&&(kc. test(b. url)? "url": "string"== typeof b. data&& 0===(b. contentType|| ""). indexOf( "application/x-www-form-urlencoded")&&kc. test(b. data)&& "data"); return h|| "jsonp"===b. dataTypes[ 0]?(e=b. jsonpCallback=n. isFunction(b. jsonpCallback)?b. jsonpCallback():b. jsonpCallback,h?b[h]=b[h]. replace(kc, "$1"+e):b. jsonp!==! 1&&(b. url+=( Fb. test(b. url)? "&": "?")+b. jsonp+ "="+e),b. converters[ "script json"]= function( ){ return g||n. error(e+ " was not called"),g[ 0]},b. dataTypes[ 0]= "json",f=a[e],a[e]= function( ){g= arguments},d. always( function( ){ void 0===f? n(a). removeProp(e):a[e]=f,b[e]&&(b. jsonpCallback=c. jsonpCallback,jc. push(e)),g&&n. isFunction(f)&& f(g[ 0]),g=f= void 0}), "script"): void 0}),n. parseHTML= function( a,b,c){ if(!a|| "string"!= typeof a) return null; "boolean"== typeof b&&(c=b,b=! 1),b=b||d; var e=x. exec(a),f=!c&&[]; return e?[b. createElement(e[ 1])]:(e= ja([a],b,f),f&&f. length&& n(f). remove(),n. merge([],e. childNodes))}; var lc=n. fn. load;n. fn. load= function( a,b,c){ if( "string"!= typeof a&&lc) return lc. apply( this, arguments); var d,e,f,g= this,h=a. indexOf( " "); return h>- 1&&(d=n. trim(a. slice(h,a. length)),a=a. slice( 0,h)),n. isFunction(b)?(c=b,b= void 0):b&& "object"== typeof b&&(e= "POST"),g. length> 0&&n. ajax({ url:a, type:e|| "GET", dataType: "html", data:b}). done( function( a){f= arguments,g. html(d? n( "<div>"). append(n. parseHTML(a)). find(d):a)}). always(c&& function( a,b){g. each( function( ){c. apply( this,f||[a. responseText,b,a])})}), this},n. each([ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function( a,b){n. fn[b]= function( a){ return this. on(b,a)}}),n. expr. filters. animated= function( a){ return n. grep(n. timers, function( b){ return a===b. elem}). length}; function mc( a){ return n. isWindow(a)? a: 9===a. nodeType?a. defaultView||a. parentWindow:! 1}n. offset={ setOffset: function( a,b,c){ var d,e,f,g,h,i,j,k=n. css(a, "position"),l= n(a),m={}; "static"===k&&(a. style. position= "relative"),h=l. offset(),f=n. css(a, "top"),i=n. css(a, "left"),j=( "absolute"===k|| "fixed"===k)&&n. inArray( "auto",[f,i])>- 1,j?(d=l. position(),g=d. top,e=d. left):(g= parseFloat(f)|| 0,e= parseFloat(i)|| 0),n. isFunction(b)&&(b=b. call(a,c,n. extend({},h))), null!=b. top&&(m. top=b. top-h. top+g), null!=b. left&&(m. left=b. left-h. left+e), "using" in b?b. using. call(a,m):l. css(m)}},n. fn. extend({ offset: function( a){ if( arguments. length) return void 0===a? this: this. each( function( b){n. offset. setOffset( this,a,b)}); var b,c,d={ top: 0, left: 0},e= this[ 0],f=e&&e. ownerDocument; if(f) return b=f. documentElement,n. contains(b,e)?( "undefined"!= typeof e. getBoundingClientRect&&(d=e. getBoundingClientRect()),c= mc(f),{ top:d. top+(c. pageYOffset||b. scrollTop)-(b. clientTop|| 0), left:d. left+(c. pageXOffset||b. scrollLeft)-(b. clientLeft|| 0)}):d}, position: function( ){ if( this[ 0]){ var a,b,c={ top: 0, left: 0},d= this[ 0]; return "fixed"===n. css(d, "position")?b=d. getBoundingClientRect():(a= this. offsetParent(),b= this. offset(),n. nodeName(a[ 0], "html")||(c=a. offset()),c. top+=n. css(a[ 0], "borderTopWidth",! 0),c. left+=n. css(a[ 0], "borderLeftWidth",! 0)),{ top:b. top-c. top-n. css(d, "marginTop",! 0), left:b. left-c. left-n. css(d, "marginLeft",! 0)}}}, offsetParent: function( ){ return this. map( function( ){ var a= this. offsetParent; while(a&&!n. nodeName(a, "html")&& "static"===n. css(a, "position"))a=a. offsetParent; return a|| Qa})}}),n. each({ scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function( a,b){ var c= /Y/. test(b);n. fn[a]= function( d){ return Y( this, function( a,d,e){ var f= mc(a); return void 0===e?f?b in f?f[b]:f. document. documentElement[d]:a[d]: void(f?f. scrollTo(c? n(f). scrollLeft():e,c? e: n(f). scrollTop()):a[d]=e)},a,d, arguments. length, null)}}),n. each([ "top", "left"], function( a,b){n. cssHooks[b]= Ua(l. pixelPosition, function( a,c){ return c?(c= Sa(a,b), Oa. test(c)? n(a). position()[b]+ "px":c): void 0})}),n. each({ Height: "height", Width: "width"}, function( a,b){n. each({
  5. padding: "inner"+a, content:b, "": "outer"+a}, function( c,d){n. fn[d]= function( d,e){ var f= arguments. length&&(c|| "boolean"!= typeof d),g=c||(d===! 0||e===! 0? "margin": "border"); return Y( this, function( b,c,d){ var e; return n. isWindow(b)?b. document. documentElement[ "client"+a]: 9===b. nodeType?(e=b. documentElement, Math. max(b. body[ "scroll"+a],e[ "scroll"+a],b. body[ "offset"+a],e[ "offset"+a],e[ "client"+a])): void 0===d?n. css(b,c,g):n. style(b,c,d,g)},b,f? d: void 0,f, null)}})}),n. fn. extend({ bind: function( a,b,c){ return this. on(a, null,b,c)}, unbind: function( a,b){ return this. off(a, null,b)}, delegate: function( a,b,c,d){ return this. on(b,a,c,d)}, undelegate: function( a,b,c){ return 1=== arguments. length? this. off(a, "**"): this. off(b,a|| "**",c)}}),n. fn. size= function( ){ return this. length},n. fn. andSelf=n. fn. addBack, "function"== typeof define&&define. amd&& define( "jquery",[], function( ){ return n}); var nc=a. jQuery,oc=a. $; return n. noConflict= function( b){ return a. $===n&&(a. $=oc),b&&a. jQuery===n&&(a. jQuery=nc),n},b||(a. jQuery=a. $=n),n});

5.jquery-ui.min.js(辅助作用)


  
  1. /*! jQuery UI - v1.12.1 - 2016-10-06
  2. * http://jqueryui.com
  3. * Includes: widget.js, position.js, data.js, keycode.js, scroll-parent.js, unique-id.js, widgets/draggable.js, widgets/autocomplete.js, widgets/menu.js, widgets/mouse.js, effect.js
  4. * Copyright jQuery Foundation and other contributors; Licensed MIT */
  5. (function(t){ "function"==typeof define&&define.amd?define([ "jquery"],t):t(jQuery)})(function(t){t.ui=t.ui||{},t.ui.version= "1.12.1"; var e= 0,i=Array.prototype.slice;t.cleanData=function(e){ return function(i){ var s,n,o; for(o= 0; null!=(n=i[o]);o++) try{s=t._data(n, "events"),s&&s.remove&&t(n).triggerHandler( "remove")} catch(a){}e(i)}}(t.cleanData),t.widget=function(e,i,s){ var n,o,a,r={},l=e.split( ".")[ 0];e=e.split( ".")[ 1]; var h=l+ "-"+e; return s||(s=i,i=t.Widget),t.isArray(s)&&(s=t.extend.apply( null,[{}].concat(s))),t.expr[ ":"][h.toLowerCase()]=function(e){ return!!t. data(e,h)},t[l]=t[l]||{},n=t[l][e],o=t[l][e]=function(t,e){ return this._createWidget?(arguments.length&& this._createWidget(t,e),void 0):new o(t,e)},t.extend(o,n,{version:s.version,_proto:t.extend({},s),_childConstructors:[]}),a=new i,a.options=t.widget.extend({},a.options),t.each(s,function(e,s){ return t.isFunction(s)?(r[e]=function(){function t(){ return i.prototype[e].apply( this,arguments)}function n(t){ return i.prototype[e].apply( this,t)} return function(){ var e,i= this._super,o= this._superApply; return this._super=t, this._superApply=n,e=s.apply( this,arguments), this._super=i, this._superApply=o,e}}(),void 0):(r[e]=s,void 0)}),o.prototype=t.widget.extend(a,{widgetEventPrefix:n?a.widgetEventPrefix||e:e},r,{ constructor:o,namespace:l,widgetName:e,widgetFullName:h}),n?(t.each(n._childConstructors,function(e,i){ var s=i.prototype;t.widget(s.namespace+ "."+s.widgetName,o,i._proto)}),delete n._childConstructors):i._childConstructors.push(o),t.widget.bridge(e,o),o},t.widget.extend=function(e){ for( var s,n,o=i.call(arguments, 1),a= 0,r=o.length;r>a;a++) for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n); return e},t.widget.bridge=function(e,s){ var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){ var a= "string"==typeof o,r=i.call(arguments, 1),l= this; return a? this.length|| "instance"!==o? this.each(function(){ var i,s=t. data( this,n); return "instance"===o?(l=s,! 1):s?t.isFunction(s[o])&& "_"!==o.charAt( 0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i. get()):i,! 1):void 0):t.error( "no such method '"+o+ "' for "+e+ " widget instance"):t.error( "cannot call methods on "+e+ " prior to initialization; "+ "attempted to call method '"+o+ "'")}):l=void 0:(r.length&&(o=t.widget.extend.apply( null,[o].concat(r))), this.each(function(){ var e=t. data( this,n);e?(e.option(o||{}),e._init&&e._init()):t. data( this,n,new s(o, this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName: "widget",widgetEventPrefix: "",defaultElement: "<div>",options:{classes:{},disabled:! 1,create: null},_createWidget:function(i,s){s=t(s|| this.defaultElement|| this)[ 0], this.element=t(s), this.uuid=e++, this.eventNamespace= "."+ this.widgetName+ this.uuid, this.bindings=t(), this.hoverable=t(), this.focusable=t(), this.classesElementLookup={},s!== this&&(t. data(s, this.widgetFullName, this), this._on(! 0, this.element,{remove:function(t){t.target===s&& this.destroy()}}), this.document=t(s.style?s.ownerDocument:s.document||s), this.window=t( this.document[ 0].defaultView|| this.document[ 0].parentWindow)), this.options=t.widget.extend({}, this.options, this._getCreateOptions(),i), this._create(), this.options.disabled&& this._setOptionDisabled( this.options.disabled), this._trigger( "create", null, this._getCreateEventData()), this._init()},_getCreateOptions:function(){ return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){ var e= this; this._destroy(),t.each( this.classesElementLookup,function(t,i){e._removeClass(i,t)}), this.element.off( this.eventNamespace).removeData( this.widgetFullName), this.widget().off( this.eventNamespace).removeAttr( "aria-disabled"), this.bindings.off( this.eventNamespace)},_destroy:t.noop,widget:function(){ return this.element},option:function(e,i){ var s,n,o,a=e; if( 0===arguments.length) return t.widget.extend({}, this.options); if( "string"==typeof e) if(a={},s=e.split( "."),e=s.shift(),s.length){ for(n=a[e]=t.widget.extend({}, this.options[e]),o= 0;s.length- 1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]]; if(e=s.pop(), 1===arguments.length) return void 0===n[e]? null:n[e];n[e]=i} else{ if( 1===arguments.length) return void 0=== this.options[e]? null: this.options[e];a[e]=i} return this._setOptions(a), this},_setOptions:function(t){ var e; for(e in t) this._setOption(e,t[e]); return this},_setOption:function(t,e){ return "classes"===t&& this._setOptionClasses(e), this.options[t]=e, "disabled"===t&& this._setOptionDisabled(e), this},_setOptionClasses:function(e){ var i,s,n; for(i in e)n= this.classesElementLookup[i],e[i]!== this.options.classes[i]&&n&&n.length&&(s=t(n. get()), this._removeClass(n,i),s.addClass( this._classes({element:s,keys:i,classes:e,add:! 0})))},_setOptionDisabled:function(t){ this._toggleClass( this.widget(), this.widgetFullName+ "-disabled", null,!!t),t&&( this._removeClass( this.hoverable, null, "ui-state-hover"), this._removeClass( this.focusable, null, "ui-state-focus"))},enable:function(){ return this._setOptions({disabled:! 1})},disable:function(){ return this._setOptions({disabled:! 0})},_classes:function(e){function i(i,o){ var a,r; for(r= 0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a. get().concat(e.element. get()))):t(a.not(e.element). get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])} var s=[],n= this; return e=t.extend({element: this.element,classes: this.options.classes||{}},e), this._on(e.element,{remove: "_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],! 0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join( " ")},_untrackClassesElement:function(e){ var i= this;t.each(i.classesElementLookup,function(s,n){- 1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target). get()))})},_removeClass:function(t,e,i){ return this._toggleClass(t,e,i,! 1)},_addClass:function(t,e,i){ return this._toggleClass(t,e,i,! 0)},_toggleClass:function(t,e,i,s){s= "boolean"==typeof s?s:i; var n= "string"==typeof t|| null===t,o={extra:n?e:i,keys:n?t:e,element:n? this.element:t,add:s}; return o.element.toggleClass( this._classes(o),s), this},_on:function(e,i,s){ var n,o= this; "boolean"!=typeof e&&(s=i,i=e,e=! 1),s?(i=n=t(i), this.bindings= this.bindings.add(i)):(s=i,i= this.element,n= this.widget()),t.each(s,function(s,a){function r(){ return e||o.options.disabled!==! 0&&!t( this).hasClass( "ui-state-disabled")?( "string"==typeof a?o[a]:a).apply(o,arguments):void 0} "string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++); var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[ 1]+o.eventNamespace,c=l[ 2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i|| "").split( " ").join( this.eventNamespace+ " ")+ this.eventNamespace,e.off(i).off(i), this.bindings=t( this.bindings.not(e). get()), this.focusable=t( this.focusable.not(e). get()), this.hoverable=t( this.hoverable.not(e). get())},_delay:function(t,e){function i(){ return( "string"==typeof t?s[t]:t).apply(s,arguments)} var s= this; return setTimeout(i,e|| 0)},_hoverable:function(e){ this.hoverable= this.hoverable.add(e), this._on(e,{mouseenter:function(e){ this._addClass(t(e.currentTarget), null, "ui-state-hover")},mouseleave:function(e){ this._removeClass(t(e.currentTarget), null, "ui-state-hover")}})},_focusable:function(e){ this.focusable= this.focusable.add(e), this._on(e,{focusin:function(e){ this._addClass(t(e.currentTarget), null, "ui-state-focus")},focusout:function(e){ this._removeClass(t(e.currentTarget), null, "ui-state-focus")}})},_trigger:function(e,i,s){ var n,o,a= this.options[e]; if(s=s||{},i=t.Event(i),i.type=(e=== this.widgetEventPrefix?e: this.widgetEventPrefix+e).toLowerCase(),i.target= this.element[ 0],o=i.originalEvent) for(n in o)n in i||(i[n]=o[n]); return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply( this.element[ 0],[i].concat(s))===! 1||i.isDefaultPrevented())}},t.each({show: "fadeIn",hide: "fadeOut"},function(e,i){t.Widget.prototype[ "_"+e]=function(s,n,o){ "string"==typeof n&&(n={effect:n}); var a,r=n?n===! 0|| "number"==typeof n?i:n.effect||i:e;n=n||{}, "number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t( this)[e](),o&&o.call(s[ 0]),i()})}}),t.widget,function(){function e(t,e,i){ return[parseFloat(t[ 0])*(u.test(t[ 0])?e/ 100: 1),parseFloat(t[ 1])*(u.test(t[ 1])?i/ 100: 1)]}function i(e,i){ return parseInt(t.css(e,i), 10)|| 0}function s(e){ var i=e[ 0]; return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top: 0,left: 0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width: 0,height: 0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}} var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){ if(void 0!==n) return n; var e,i,s=t( "<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[ 0]; return t( "body").append(s),e=o.offsetWidth,s.css( "overflow", "scroll"),i=o.offsetWidth,e===i&&(i=s[ 0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){ var i=e.isWindow||e.isDocument? "":e.element.css( "overflow-x"),s=e.isWindow||e.isDocument? "":e.element.css( "overflow-y"),n= "scroll"===i|| "auto"===i&&e.width<e.element[ 0].scrollWidth,o= "scroll"===s|| "auto"===s&&e.height<e.element[ 0].scrollHeight; return{width:o?t.position.scrollbarWidth(): 0,height:n?t.position.scrollbarWidth(): 0}},getWithinInfo:function(e){ var i=t(e||window),s=t.isWindow(i[ 0]),n=!!i[ 0]&& 9===i[ 0].nodeType,o=!s&&!n; return{element:i,isWindow:s,isDocument:n,offset:o?t(e).offset():{left: 0,top: 0},scrollLeft:i.scrollLeft(),scrollTop:i.scrollTop(),width:i.outerWidth(),height:i.outerHeight()}}},t.fn.position=function(n){ if(!n||!n.of) return d.apply( this,arguments);n=t.extend({},n); var u,p,f,g,m,_,v=t(n.of),b=t.position.getWithinInfo(n.within),y=t.position.getScrollInfo(b),w=(n.collision|| "flip").split( " "),k={}; return _=s(v),v[ 0].preventDefault&&(n.at= "left top"),p=_.width,f=_.height,g=_.offset,m=t.extend({},g),t.each([ "my", "at"],function(){ var t,e,i=(n[ this]|| "").split( " "); 1===i.length&&(i=r.test(i[ 0])?i.concat([ "center"]):l.test(i[ 0])?[ "center"].concat(i):[ "center", "center"]),i[ 0]=r.test(i[ 0])?i[ 0]: "center",i[ 1]=l.test(i[ 1])?i[ 1]: "center",t=h.exec(i[ 0]),e=h.exec(i[ 1]),k[ this]=[t?t[ 0]: 0,e?e[ 0]: 0],n[ this]=[c.exec(i[ 0])[ 0],c.exec(i[ 1])[ 0]]}), 1===w.length&&(w[ 1]=w[ 0]), "right"===n.at[ 0]?m.left+=p: "center"===n.at[ 0]&&(m.left+=p/ 2), "bottom"===n.at[ 1]?m.top+=f: "center"===n.at[ 1]&&(m.top+=f/ 2),u=e(k.at,p,f),m.left+=u[ 0],m.top+=u[ 1], this.each(function(){ var s,r,l=t( this),h=l.outerWidth(),c=l.outerHeight(),d=i( this, "marginLeft"),_=i( this, "marginTop"),x=h+d+i( this, "marginRight")+y.width,C=c+_+i( this, "marginBottom")+y.height,D=t.extend({},m),T=e(k.my,l.outerWidth(),l.outerHeight()); "right"===n.my[ 0]?D.left-=h: "center"===n.my[ 0]&&(D.left-=h/ 2), "bottom"===n.my[ 1]?D.top-=c: "center"===n.my[ 1]&&(D.top-=c/ 2),D.left+=T[ 0],D.top+=T[ 1],s={marginLeft:d,marginTop:_},t.each([ "left", "top"],function(e,i){t.ui.position[w[e]]&&t.ui.position[w[e]][i](D,{targetWidth:p,targetHeight:f,elemWidth:h,elemHeight:c,collisionPosition:s,collisionWidth:x,collisionHeight:C,offset:[u[ 0]+T[ 0],u[ 1]+T[ 1]],my:n.my,at:n.at,within:b,elem:l})}),n.using&&(r=function(t){ var e=g.left-D.left,i=e+p-h,s=g.top-D.top,r=s+f-c,u={target:{element:v,left:g.left,top:g.top,width:p,height:f},element:{element:l,left:D.left,top:D.top,width:h,height:c},horizontal: 0>i? "left":e> 0? "right": "center",vertical: 0>r? "top":s> 0? "bottom": "middle"};h>p&&p>a(e+i)&&(u.horizontal= "center"),c>f&&f>a(s+r)&&(u.vertical= "middle"),u.important=o(a(e),a(i))>o(a(s),a(r))? "horizontal": "vertical",n.using.call( this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){ var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l> 0&& 0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h> 0&& 0>=l?n:l>h?n+a-e.collisionWidth:n:l> 0?t.left+=l:h> 0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){ var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l> 0&& 0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h> 0&& 0>=l?n:l>h?n+a-e.collisionHeight:n:l> 0?t.top+=l:h> 0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){ var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d= "left"===e.my[ 0]?-e.elemWidth: "right"===e.my[ 0]?e.elemWidth: 0,p= "left"===e.at[ 0]?e.targetWidth: "right"===e.at[ 0]?-e.targetWidth: 0,f=- 2*e.offset[ 0]; 0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,( 0>i||a(c)>i)&&(t.left+=d+p+f)):u> 0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s> 0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){ var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d= "top"===e.my[ 1],p=d?-e.elemHeight: "bottom"===e.my[ 1]?e.elemHeight: 0,f= "top"===e.at[ 1]?e.targetHeight: "bottom"===e.at[ 1]?-e.targetHeight: 0,g=- 2*e.offset[ 1]; 0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,( 0>s||a(c)>s)&&(t.top+=p+f+g)):u> 0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i> 0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply( this,arguments),t.ui.position.fit.left.apply( this,arguments)},top:function(){t.ui.position.flip.top.apply( this,arguments),t.ui.position.fit.top.apply( this,arguments)}}}}(),t.ui.position,t.extend(t.expr[ ":"],{ data:t.expr.createPseudo?t.expr.createPseudo(function(e){ return function(i){ return!!t. data(i,e)}}):function(e,i,s){ return!!t. data(e,s[ 3])}}),t.ui.keyCode={BACKSPACE: 8,COMMA: 188,DELETE: 46,DOWN: 40,END: 35,ENTER: 13,ESCAPE: 27,HOME: 36,LEFT: 37,PAGE_DOWN: 34,PAGE_UP: 33,PERIOD: 190,RIGHT: 39,SPACE: 32,TAB: 9,UP: 38},t.fn.scrollParent=function(e){ var i= this.css( "position"),s= "absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o= this.parents().filter(function(){ var e=t( this); return s&& "static"===e.css( "position")?! 1:n.test(e.css( "overflow")+e.css( "overflow-y")+e.css( "overflow-x"))}).eq( 0); return "fixed"!==i&&o.length?o:t( this[ 0].ownerDocument||document)},t.fn.extend({uniqueId:function(){ var t= 0; return function(){ return this.each(function(){ this.id||( this.id= "ui-id-"+ ++t)})}}(),removeUniqueId:function(){ return this.each(function(){/^ui-id-\d+$/.test( this.id)&&t( this).removeAttr( "id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()); var s=! 1;t(document).on( "mouseup",function(){s=! 1}),t.widget( "ui.mouse",{version: "1.12.1",options:{cancel: "input, textarea, button, select, option",distance: 1,delay: 0},_mouseInit:function(){ var e= this; this.element.on( "mousedown."+ this.widgetName,function(t){ return e._mouseDown(t)}).on( "click."+ this.widgetName,function(i){ return! 0===t. data(i.target,e.widgetName+ ".preventClickEvent")?(t.removeData(i.target,e.widgetName+ ".preventClickEvent"),i.stopImmediatePropagation(),! 1):void 0}), this.started=! 1},_mouseDestroy:function(){ this.element.off( "."+ this.widgetName), this._mouseMoveDelegate&& this.document.off( "mousemove."+ this.widgetName, this._mouseMoveDelegate).off( "mouseup."+ this.widgetName, this._mouseUpDelegate)},_mouseDown:function(e){ if(!s){ this._mouseMoved=! 1, this._mouseStarted&& this._mouseUp(e), this._mouseDownEvent=e; var i= this,n= 1===e.which,o= "string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest( this.options.cancel).length:! 1; return n&&!o&& this._mouseCapture(e)?( this.mouseDelayMet=! this.options.delay, this.mouseDelayMet||( this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=! 0}, this.options.delay)), this._mouseDistanceMet(e)&& this._mouseDelayMet(e)&&( this._mouseStarted= this._mouseStart(e)!==! 1,! this._mouseStarted)?(e.preventDefault(),! 0):(! 0===t. data(e.target, this.widgetName+ ".preventClickEvent")&&t.removeData(e.target, this.widgetName+ ".preventClickEvent"), this._mouseMoveDelegate=function(t){ return i._mouseMove(t)}, this._mouseUpDelegate=function(t){ return i._mouseUp(t)}, this.document.on( "mousemove."+ this.widgetName, this._mouseMoveDelegate).on( "mouseup."+ this.widgetName, this._mouseUpDelegate),e.preventDefault(),s=! 0,! 0)):! 0}},_mouseMove:function(e){ if( this._mouseMoved){ if(t.ui.ie&&(!document.documentMode|| 9>document.documentMode)&&!e.button) return this._mouseUp(e); if(!e.which) if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey) this.ignoreMissingWhich=! 0; else if(! this.ignoreMissingWhich) return this._mouseUp(e)} return(e.which||e.button)&&( this._mouseMoved=! 0), this._mouseStarted?( this._mouseDrag(e),e.preventDefault()):( this._mouseDistanceMet(e)&& this._mouseDelayMet(e)&&( this._mouseStarted= this._mouseStart( this._mouseDownEvent,e)!==! 1, this._mouseStarted? this._mouseDrag(e): this._mouseUp(e)),! this._mouseStarted)},_mouseUp:function(e){ this.document.off( "mousemove."+ this.widgetName, this._mouseMoveDelegate).off( "mouseup."+ this.widgetName, this._mouseUpDelegate), this._mouseStarted&&( this._mouseStarted=! 1,e.target=== this._mouseDownEvent.target&&t. data(e.target, this.widgetName+ ".preventClickEvent",! 0), this._mouseStop(e)), this._mouseDelayTimer&&(clearTimeout( this._mouseDelayTimer),delete this._mouseDelayTimer), this.ignoreMissingWhich=! 1,s=! 1,e.preventDefault()},_mouseDistanceMet:function(t){ return Math.max(Math.abs( this._mouseDownEvent.pageX-t.pageX),Math.abs( this._mouseDownEvent.pageY-t.pageY))>= this.options.distance},_mouseDelayMet:function(){ return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){ return! 0}}),t.ui.plugin={add:function(e,i,s){ var n,o=t.ui[e].prototype; for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},call:function(t,e,i,s){ var n,o=t.plugins[e]; if(o&&(s||t.element[ 0].parentNode&& 11!==t.element[ 0].parentNode.nodeType)) for(n= 0;o.length>n;n++)t.options[o[n][ 0]]&&o[n][ 1].apply(t.element,i)}},t.ui.safeActiveElement=function(t){ var e; try{e=t.activeElement} catch(i){e=t.body} return e||(e=t.body),e.nodeName||(e=t.body),e},t.ui.safeBlur=function(e){e&& "body"!==e.nodeName.toLowerCase()&&t(e).trigger( "blur")},t.widget( "ui.draggable",t.ui.mouse,{version: "1.12.1",widgetEventPrefix: "drag",options:{addClasses:! 0,appendTo: "parent",axis:! 1,connectToSortable:! 1,containment:! 1,cursor: "auto",cursorAt:! 1,grid:! 1,handle:! 1,helper: "original",iframeFix:! 1,opacity:! 1,refreshPositions:! 1,revert:! 1,revertDuration: 500,scope: "default",scroll:! 0,scrollSensitivity: 20,scrollSpeed: 20,snap:! 1,snapMode: "both",snapTolerance: 20,stack:! 1,zIndex:! 1,drag: null,start: null,stop: null},_create:function(){ "original"=== this.options.helper&& this._setPositionRelative(), this.options.addClasses&& this._addClass( "ui-draggable"), this._setHandleClassName(), this._mouseInit()},_setOption:function(t,e){ this._super(t,e), "handle"===t&&( this._removeHandleClassName(), this._setHandleClassName())},_destroy:function(){ return( this.helper|| this.element). is( ".ui-draggable-dragging")?( this.destroyOnClear=! 0,void 0):( this._removeHandleClassName(), this._mouseDestroy(),void 0)},_mouseCapture:function(e){ var i= this.options; return this.helper||i.disabled||t(e.target).closest( ".ui-resizable-handle").length> 0?! 1:( this.handle= this._getHandle(e), this.handle?( this._blurActiveElement(e), this._blockFrames(i.iframeFix===! 0? "iframe":i.iframeFix),! 0):! 1)},_blockFrames:function(e){ this.iframeBlocks= this.document.find(e).map(function(){ var e=t( this); return t( "<div>").css( "position", "absolute").appendTo(e.parent()).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).offset(e.offset())[ 0]})},_unblockFrames:function(){ this.iframeBlocks&&( this.iframeBlocks.remove(),delete this.iframeBlocks)},_blurActiveElement:function(e){ var i=t.ui.safeActiveElement( this.document[ 0]),s=t(e.target);s.closest(i).length||t.ui.safeBlur(i)},_mouseStart:function(e){ var i= this.options; return this.helper= this._createHelper(e), this._addClass( this.helper, "ui-draggable-dragging"), this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current= this), this._cacheMargins(), this.cssPosition= this.helper.css( "position"), this.scrollParent= this.helper.scrollParent(! 0), this.offsetParent= this.helper.offsetParent(), this.hasFixedAncestor= this.helper.parents().filter(function(){ return "fixed"===t( this).css( "position")}).length> 0, this.positionAbs= this.element.offset(), this._refreshOffsets(e), this.originalPosition= this.position= this._generatePosition(e,! 1), this.originalPageX=e.pageX, this.originalPageY=e.pageY,i.cursorAt&& this._adjustOffsetFromHelper(i.cursorAt), this._setContainment(), this._trigger( "start",e)===! 1?( this._clear(),! 1):( this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets( this,e), this._mouseDrag(e,! 0),t.ui.ddmanager&&t.ui.ddmanager.dragStart( this,e),! 0)},_refreshOffsets:function(t){ this.offset={top: this.positionAbs.top- this.margins.top,left: this.positionAbs.left- this.margins.left,scroll:! 1,parent: this._getParentOffset(),relative: this._getRelativeOffset()}, this.offset.click={left:t.pageX- this.offset.left,top:t.pageY- this.offset.top}},_mouseDrag:function(e,i){ if( this.hasFixedAncestor&&( this.offset.parent= this._getParentOffset()), this.position= this._generatePosition(e,! 0), this.positionAbs= this._convertPositionTo( "absolute"),!i){ var s= this._uiHash(); if( this._trigger( "drag",e,s)===! 1) return this._mouseUp(new t.Event( "mouseup",e)),! 1; this.position=s.position} return this.helper[ 0].style.left= this.position.left+ "px", this.helper[ 0].style.top= this.position.top+ "px",t.ui.ddmanager&&t.ui.ddmanager.drag( this,e),! 1},_mouseStop:function(e){ var i= this,s=! 1; return t.ui.ddmanager&&! this.options.dropBehaviour&&(s=t.ui.ddmanager.drop( this,e)), this.dropped&&(s= this.dropped, this.dropped=! 1), "invalid"=== this.options.revert&&!s|| "valid"=== this.options.revert&&s|| this.options.revert===! 0||t.isFunction( this.options.revert)&& this.options.revert.call( this.element,s)?t( this.helper).animate( this.originalPosition,parseInt( this.options.revertDuration, 10),function(){i._trigger( "stop",e)!==! 1&&i._clear()}): this._trigger( "stop",e)!==! 1&& this._clear(),! 1},_mouseUp:function(e){ return this._unblockFrames(),t.ui.ddmanager&&t.ui.ddmanager.dragStop( this,e), this.handleElement. is(e.target)&& this.element.trigger( "focus"),t.ui.mouse.prototype._mouseUp.call( this,e)},cancel:function(){ return this.helper. is( ".ui-draggable-dragging")? this._mouseUp(new t.Event( "mouseup",{target: this.element[ 0]})): this._clear(), this},_getHandle:function(e){ return this.options.handle?!!t(e.target).closest( this.element.find( this.options.handle)).length:! 0},_setHandleClassName:function(){ this.handleElement= this.options.handle? this.element.find( this.options.handle): this.element, this._addClass( this.handleElement, "ui-draggable-handle")},_removeHandleClassName:function(){ this._removeClass( this.handleElement, "ui-draggable-handle")},_createHelper:function(e){ var i= this.options,s=t.isFunction(i.helper),n=s?t(i.helper.apply( this.element[ 0],[e])): "clone"===i.helper? this.element.clone().removeAttr( "id"): this.element; return n.parents( "body").length||n.appendTo( "parent"===i.appendTo? this.element[ 0].parentNode:i.appendTo),s&&n[ 0]=== this.element[ 0]&& this._setPositionRelative(),n[ 0]=== this.element[ 0]||/(fixed|absolute)/.test(n.css( "position"))||n.css( "position", "absolute"),n},_setPositionRelative:function(){/^(?:r|a|f)/.test( this.element.css( "position"))||( this.element[ 0].style.position= "relative")},_adjustOffsetFromHelper:function(e){ "string"==typeof e&&(e=e.split( " ")),t.isArray(e)&&(e={left:+e[ 0],top:+e[ 1]|| 0}), "left" in e&&( this.offset.click.left=e.left+ this.margins.left), "right" in e&&( this.offset.click.left= this.helperProportions.width-e.right+ this.margins.left), "top" in e&&( this.offset.click.top=e.top+ this.margins.top), "bottom" in e&&( this.offset.click.top= this.helperProportions.height-e.bottom+ this.margins.top)},_isRootNode:function(t){ return/(html|body)/i.test(t.tagName)||t=== this.document[ 0]},_getParentOffset:function(){ var e= this.offsetParent.offset(),i= this.document[ 0]; return "absolute"=== this.cssPosition&& this.scrollParent[ 0]!==i&&t.contains( this.scrollParent[ 0], this.offsetParent[ 0])&&(e.left+= this.scrollParent.scrollLeft(),e.top+= this.scrollParent.scrollTop()), this._isRootNode( this.offsetParent[ 0])&&(e={top: 0,left: 0}),{top:e.top+(parseInt( this.offsetParent.css( "borderTopWidth"), 10)|| 0),left:e.left+(parseInt( this.offsetParent.css( "borderLeftWidth"), 10)|| 0)}},_getRelativeOffset:function(){ if( "relative"!== this.cssPosition) return{top: 0,left: 0}; var t= this.element.position(),e= this._isRootNode( this.scrollParent[ 0]); return{top:t.top-(parseInt( this.helper.css( "top"), 10)|| 0)+(e? 0: this.scrollParent.scrollTop()),left:t.left-(parseInt( this.helper.css( "left"), 10)|| 0)+(e? 0: this.scrollParent.scrollLeft())}},_cacheMargins:function(){ this.margins={left:parseInt( this.element.css( "marginLeft"), 10)|| 0,top:parseInt( this.element.css( "marginTop"), 10)|| 0,right:parseInt( this.element.css( "marginRight"), 10)|| 0,bottom:parseInt( this.element.css( "marginBottom"), 10)|| 0}},_cacheHelperProportions:function(){ this.helperProportions={width: this.helper.outerWidth(),height: this.helper.outerHeight()}},_setContainment:function(){ var e,i,s,n= this.options,o= this.document[ 0]; return this.relativeContainer= null,n.containment? "window"===n.containment?( this.containment=[t(window).scrollLeft()- this.offset.relative.left- this.offset.parent.left,t(window).scrollTop()- this.offset.relative.top- this.offset.parent.top,t(window).scrollLeft()+t(window).width()- this.helperProportions.width- this.margins.left,t(window).scrollTop()+(t(window).height()||o.body.parentNode.scrollHeight)- this.helperProportions.height- this.margins.top],void 0): "document"===n.containment?( this.containment=[ 0, 0,t(o).width()- this.helperProportions.width- this.margins.left,(t(o).height()||o.body.parentNode.scrollHeight)- this.helperProportions.height- this.margins.top],void 0):n.containment. constructor===Array?( this.containment=n.containment,void 0):( "parent"===n.containment&&(n.containment= this.helper[ 0].parentNode),i=t(n.containment),s=i[ 0],s&&(e=/(scroll|auto)/.test(i.css( "overflow")), this.containment=[(parseInt(i.css( "borderLeftWidth"), 10)|| 0)+(parseInt(i.css( "paddingLeft"), 10)|| 0),(parseInt(i.css( "borderTopWidth"), 10)|| 0)+(parseInt(i.css( "paddingTop"), 10)|| 0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css( "borderRightWidth"), 10)|| 0)-(parseInt(i.css( "paddingRight"), 10)|| 0)- this.helperProportions.width- this.margins.left- this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css( "borderBottomWidth"), 10)|| 0)-(parseInt(i.css( "paddingBottom"), 10)|| 0)- this.helperProportions.height- this.margins.top- this.margins.bottom], this.relativeContainer=i),void 0):( this.containment= null,void 0)},_convertPositionTo:function(t,e){e||(e= this.position); var i= "absolute"===t? 1:- 1,s= this._isRootNode( this.scrollParent[ 0]); return{top:e.top+ this.offset.relative.top*i+ this.offset.parent.top*i-( "fixed"=== this.cssPosition?- this.offset.scroll.top:s? 0: this.offset.scroll.top)*i,left:e.left+ this.offset.relative.left*i+ this.offset.parent.left*i-( "fixed"=== this.cssPosition?- this.offset.scroll.left:s? 0: this.offset.scroll.left)*i}},_generatePosition:function(t,e){ var i,s,n,o,a= this.options,r= this._isRootNode( this.scrollParent[ 0]),l=t.pageX,h=t.pageY; return r&& this.offset.scroll||( this.offset.scroll={top: this.scrollParent.scrollTop(),left: this.scrollParent.scrollLeft()}),e&&( this.containment&&( this.relativeContainer?(s= this.relativeContainer.offset(),i=[ this.containment[ 0]+s.left, this.containment[ 1]+s.top, this.containment[ 2]+s.left, this.containment[ 3]+s.top]):i= this.containment,t.pageX- this.offset.click.left<i[ 0]&&(l=i[ 0]+ this.offset.click.left),t.pageY- this.offset.click.top<i[ 1]&&(h=i[ 1]+ this.offset.click.top),t.pageX- this.offset.click.left>i[ 2]&&(l=i[ 2]+ this.offset.click.left),t.pageY- this.offset.click.top>i[ 3]&&(h=i[ 3]+ this.offset.click.top)),a.grid&&(n=a.grid[ 1]? this.originalPageY+Math.round((h- this.originalPageY)/a.grid[ 1])*a.grid[ 1]: this.originalPageY,h=i?n- this.offset.click.top>=i[ 1]||n- this.offset.click.top>i[ 3]?n:n- this.offset.click.top>=i[ 1]?n-a.grid[ 1]:n+a.grid[ 1]:n,o=a.grid[ 0]? this.originalPageX+Math.round((l- this.originalPageX)/a.grid[ 0])*a.grid[ 0]: this.originalPageX,l=i?o- this.offset.click.left>=i[ 0]||o- this.offset.click.left>i[ 2]?o:o- this.offset.click.left>=i[ 0]?o-a.grid[ 0]:o+a.grid[ 0]:o), "y"===a.axis&&(l= this.originalPageX), "x"===a.axis&&(h= this.originalPageY)),{top:h- this.offset.click.top- this.offset.relative.top- this.offset.parent.top+( "fixed"=== this.cssPosition?- this.offset.scroll.top:r? 0: this.offset.scroll.top),left:l- this.offset.click.left- this.offset.relative.left- this.offset.parent.left+( "fixed"=== this.cssPosition?- this.offset.scroll.left:r? 0: this.offset.scroll.left)}},_clear:function(){ this._removeClass( this.helper, "ui-draggable-dragging"), this.helper[ 0]=== this.element[ 0]|| this.cancelHelperRemoval|| this.helper.remove(), this.helper= null, this.cancelHelperRemoval=! 1, this.destroyOnClear&& this.destroy()},_trigger:function(e,i,s){ return s=s|| this._uiHash(),t.ui.plugin.call( this,e,[i,s, this],! 0),/^(drag|start|stop)/.test(e)&&( this.positionAbs= this._convertPositionTo( "absolute"),s.offset= this.positionAbs),t.Widget.prototype._trigger.call( this,e,i,s)},plugins:{},_uiHash:function(){ return{helper: this.helper,position: this.position,originalPosition: this.originalPosition,offset: this.positionAbs}}}),t.ui.plugin.add( "draggable", "connectToSortable",{start:function(e,i,s){ var n=t.extend({},i,{item:s.element});s.sortables=[],t(s.options.connectToSortable).each(function(){ var i=t( this).sortable( "instance");i&&!i.options.disabled&&(s.sortables.push(i),i.refreshPositions(),i._trigger( "activate",e,n))})},stop:function(e,i,s){ var n=t.extend({},i,{item:s.element});s.cancelHelperRemoval=! 1,t.each(s.sortables,function(){ var t= this;t.isOver?(t.isOver= 0,s.cancelHelperRemoval=! 0,t.cancelHelperRemoval=! 1,t._storedCSS={position:t.placeholder.css( "position"),top:t.placeholder.css( "top"),left:t.placeholder.css( "left")},t._mouseStop(e),t.options.helper=t.options._helper):(t.cancelHelperRemoval=! 0,t._trigger( "deactivate",e,n))})},drag:function(e,i,s){t.each(s.sortables,function(){ var n=! 1,o= this;o.positionAbs=s.positionAbs,o.helperProportions=s.helperProportions,o.offset.click=s.offset.click,o._intersectsWith(o.containerCache)&&(n=! 0,t.each(s.sortables,function(){ return this.positionAbs=s.positionAbs, this.helperProportions=s.helperProportions, this.offset.click=s.offset.click, this!==o&& this._intersectsWith( this.containerCache)&&t.contains(o.element[ 0], this.element[ 0])&&(n=! 1),n})),n?(o.isOver||(o.isOver= 1,s._parent=i.helper.parent(),o.currentItem=i.helper.appendTo(o.element). data( "ui-sortable-item",! 0),o.options._helper=o.options.helper,o.options.helper=function(){ return i.helper[ 0]},e.target=o.currentItem[ 0],o._mouseCapture(e,! 0),o._mouseStart(e,! 0,! 0),o.offset.click.top=s.offset.click.top,o.offset.click.left=s.offset.click.left,o.offset.parent.left-=s.offset.parent.left-o.offset.parent.left,o.offset.parent.top-=s.offset.parent.top-o.offset.parent.top,s._trigger( "toSortable",e),s.dropped=o.element,t.each(s.sortables,function(){ this.refreshPositions()}),s.currentItem=s.element,o.fromOutside=s),o.currentItem&&(o._mouseDrag(e),i.position=o.position)):o.isOver&&(o.isOver= 0,o.cancelHelperRemoval=! 0,o.options._revert=o.options.revert,o.options.revert=! 1,o._trigger( "out",e,o._uiHash(o)),o._mouseStop(e,! 0),o.options.revert=o.options._revert,o.options.helper=o.options._helper,o.placeholder&&o.placeholder.remove(),i.helper.appendTo(s._parent),s._refreshOffsets(e),i.position=s._generatePosition(e,! 0),s._trigger( "fromSortable",e),s.dropped=! 1,t.each(s.sortables,function(){ this.refreshPositions()}))})}}),t.ui.plugin.add( "draggable", "cursor",{start:function(e,i,s){ var n=t( "body"),o=s.options;
  6. n.css( "cursor")&&(o._cursor=n.css( "cursor")),n.css( "cursor",o.cursor)},stop:function(e,i,s){ var n=s.options;n._cursor&&t( "body").css( "cursor",n._cursor)}}),t.ui.plugin.add( "draggable", "opacity",{start:function(e,i,s){ var n=t(i.helper),o=s.options;n.css( "opacity")&&(o._opacity=n.css( "opacity")),n.css( "opacity",o.opacity)},stop:function(e,i,s){ var n=s.options;n._opacity&&t(i.helper).css( "opacity",n._opacity)}}),t.ui.plugin.add( "draggable", "scroll",{start:function(t,e,i){i.scrollParentNotHidden||(i.scrollParentNotHidden=i.helper.scrollParent(! 1)),i.scrollParentNotHidden[ 0]!==i.document[ 0]&& "HTML"!==i.scrollParentNotHidden[ 0].tagName&&(i.overflowOffset=i.scrollParentNotHidden.offset())},drag:function(e,i,s){ var n=s.options,o=! 1,a=s.scrollParentNotHidden[ 0],r=s.document[ 0];a!==r&& "HTML"!==a.tagName?(n.axis&& "x"===n.axis||(s.overflowOffset.top+a.offsetHeight-e.pageY<n.scrollSensitivity?a.scrollTop=o=a.scrollTop+n.scrollSpeed:e.pageY-s.overflowOffset.top<n.scrollSensitivity&&(a.scrollTop=o=a.scrollTop-n.scrollSpeed)),n.axis&& "y"===n.axis||(s.overflowOffset.left+a.offsetWidth-e.pageX<n.scrollSensitivity?a.scrollLeft=o=a.scrollLeft+n.scrollSpeed:e.pageX-s.overflowOffset.left<n.scrollSensitivity&&(a.scrollLeft=o=a.scrollLeft-n.scrollSpeed))):(n.axis&& "x"===n.axis||(e.pageY-t(r).scrollTop()<n.scrollSensitivity?o=t(r).scrollTop(t(r).scrollTop()-n.scrollSpeed):t(window).height()-(e.pageY-t(r).scrollTop())<n.scrollSensitivity&&(o=t(r).scrollTop(t(r).scrollTop()+n.scrollSpeed))),n.axis&& "y"===n.axis||(e.pageX-t(r).scrollLeft()<n.scrollSensitivity?o=t(r).scrollLeft(t(r).scrollLeft()-n.scrollSpeed):t(window).width()-(e.pageX-t(r).scrollLeft())<n.scrollSensitivity&&(o=t(r).scrollLeft(t(r).scrollLeft()+n.scrollSpeed)))),o!==! 1&&t.ui.ddmanager&&!n.dropBehaviour&&t.ui.ddmanager.prepareOffsets(s,e)}}),t.ui.plugin.add( "draggable", "snap",{start:function(e,i,s){ var n=s.options;s.snapElements=[],t(n.snap. constructor!==String?n.snap.items|| ":data(ui-draggable)":n.snap).each(function(){ var e=t( this),i=e.offset(); this!==s.element[ 0]&&s.snapElements.push({item: this,width:e.outerWidth(),height:e.outerHeight(),top:i.top,left:i.left})})},drag:function(e,i,s){ var n,o,a,r,l,h,c,u,d,p,f=s.options,g=f.snapTolerance,m=i.offset.left,_=m+s.helperProportions.width,v=i.offset.top,b=v+s.helperProportions.height; for(d=s.snapElements.length- 1;d>= 0;d--)l=s.snapElements[d].left-s.margins.left,h=l+s.snapElements[d].width,c=s.snapElements[d].top-s.margins.top,u=c+s.snapElements[d].height,l-g>_||m>h+g||c-g>b||v>u+g||!t.contains(s.snapElements[d].item.ownerDocument,s.snapElements[d].item)?(s.snapElements[d].snapping&&s.options.snap.release&&s.options.snap.release.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=! 1):( "inner"!==f.snapMode&&(n=g>=Math.abs(c-b),o=g>=Math.abs(u-v),a=g>=Math.abs(l-_),r=g>=Math.abs(h-m),n&&(i.position.top=s._convertPositionTo( "relative",{top:c-s.helperProportions.height,left: 0}).top),o&&(i.position.top=s._convertPositionTo( "relative",{top:u,left: 0}).top),a&&(i.position.left=s._convertPositionTo( "relative",{top: 0,left:l-s.helperProportions.width}).left),r&&(i.position.left=s._convertPositionTo( "relative",{top: 0,left:h}).left)),p=n||o||a||r, "outer"!==f.snapMode&&(n=g>=Math.abs(c-v),o=g>=Math.abs(u-b),a=g>=Math.abs(l-m),r=g>=Math.abs(h-_),n&&(i.position.top=s._convertPositionTo( "relative",{top:c,left: 0}).top),o&&(i.position.top=s._convertPositionTo( "relative",{top:u-s.helperProportions.height,left: 0}).top),a&&(i.position.left=s._convertPositionTo( "relative",{top: 0,left:l}).left),r&&(i.position.left=s._convertPositionTo( "relative",{top: 0,left:h-s.helperProportions.width}).left)),!s.snapElements[d].snapping&&(n||o||a||r||p)&&s.options.snap.snap&&s.options.snap.snap.call(s.element,e,t.extend(s._uiHash(),{snapItem:s.snapElements[d].item})),s.snapElements[d].snapping=n||o||a||r||p)}}),t.ui.plugin.add( "draggable", "stack",{start:function(e,i,s){ var n,o=s.options,a=t.makeArray(t(o.stack)).sort(function(e,i){ return(parseInt(t(e).css( "zIndex"), 10)|| 0)-(parseInt(t(i).css( "zIndex"), 10)|| 0)});a.length&&(n=parseInt(t(a[ 0]).css( "zIndex"), 10)|| 0,t(a).each(function(e){t( this).css( "zIndex",n+e)}), this.css( "zIndex",n+a.length))}}),t.ui.plugin.add( "draggable", "zIndex",{start:function(e,i,s){ var n=t(i.helper),o=s.options;n.css( "zIndex")&&(o._zIndex=n.css( "zIndex")),n.css( "zIndex",o.zIndex)},stop:function(e,i,s){ var n=s.options;n._zIndex&&t(i.helper).css( "zIndex",n._zIndex)}}),t.ui.draggable,t.widget( "ui.menu",{version: "1.12.1",defaultElement: "<ul>",delay: 300,options:{icons:{submenu: "ui-icon-caret-1-e"},items: "> *",menus: "ul",position:{my: "left top",at: "right top"},role: "menu",blur: null,focus: null,select: null},_create:function(){ this.activeMenu= this.element, this.mouseHandled=! 1, this.element.uniqueId().attr({role: this.options.role,tabIndex: 0}), this._addClass( "ui-menu", "ui-widget ui-widget-content"), this._on({ "mousedown .ui-menu-item":function(t){t.preventDefault()}, "click .ui-menu-item":function(e){ var i=t(e.target),s=t(t.ui.safeActiveElement( this.document[ 0]));! this.mouseHandled&&i.not( ".ui-state-disabled").length&&( this.select(e),e.isPropagationStopped()||( this.mouseHandled=! 0),i.has( ".ui-menu").length? this.expand(e):! this.element. is( ":focus")&&s.closest( ".ui-menu").length&&( this.element.trigger( "focus",[! 0]), this.active&& 1=== this.active.parents( ".ui-menu").length&&clearTimeout( this.timer)))}, "mouseenter .ui-menu-item":function(e){ if(! this.previousFilter){ var i=t(e.target).closest( ".ui-menu-item"),s=t(e.currentTarget);i[ 0]===s[ 0]&&( this._removeClass(s.siblings().children( ".ui-state-active"), null, "ui-state-active"), this.focus(e,s))}},mouseleave: "collapseAll", "mouseleave .ui-menu": "collapseAll",focus:function(t,e){ var i= this.active|| this.element.find( this.options.items).eq( 0);e|| this.focus(t,i)},blur:function(e){ this._delay(function(){ var i=!t.contains( this.element[ 0],t.ui.safeActiveElement( this.document[ 0]));i&& this.collapseAll(e)})},keydown: "_keydown"}), this.refresh(), this._on( this.document,{click:function(t){ this._closeOnDocumentClick(t)&& this.collapseAll(t), this.mouseHandled=! 1}})},_destroy:function(){ var e= this.element.find( ".ui-menu-item").removeAttr( "role aria-disabled"),i=e.children( ".ui-menu-item-wrapper").removeUniqueId().removeAttr( "tabIndex role aria-haspopup"); this.element.removeAttr( "aria-activedescendant").find( ".ui-menu").addBack().removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){ var e=t( this);e. data( "ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){ var i,s,n,o,a=! 0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP: this.previousPage(e); break;case t.ui.keyCode.PAGE_DOWN: this.nextPage(e); break;case t.ui.keyCode.HOME: this._move( "first", "first",e); break;case t.ui.keyCode.END: this._move( "last", "last",e); break;case t.ui.keyCode.UP: this.previous(e); break;case t.ui.keyCode.DOWN: this.next(e); break;case t.ui.keyCode.LEFT: this.collapse(e); break;case t.ui.keyCode.RIGHT: this.active&&! this.active. is( ".ui-state-disabled")&& this.expand(e); break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE: this._activate(e); break;case t.ui.keyCode.ESCAPE: this.collapse(e); break;default:a=! 1,s= this.previousFilter|| "",o=! 1,n=e.keyCode>= 96&& 105>=e.keyCode? ""+(e.keyCode- 96):String.fromCharCode(e.keyCode),clearTimeout( this.filterTimer),n===s?o=! 0:n=s+n,i= this._filterMenuItems(n),i=o&&- 1!==i.index( this.active.next())? this.active.nextAll( ".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i= this._filterMenuItems(n)),i.length?( this.focus(e,i), this.previousFilter=n, this.filterTimer= this._delay(function(){delete this.previousFilter}, 1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){ this.active&&! this.active. is( ".ui-state-disabled")&&( this.active.children( "[aria-haspopup='true']").length? this.expand(t): this.select(t))},refresh:function(){ var e,i,s,n,o,a= this,r= this.options.icons.submenu,l= this.element.find( this.options.menus); this._toggleClass( "ui-menu-icons", null,!! this.element.find( ".ui-icon").length),s=l.filter( ":not(.ui-menu)").hide().attr({role: this.options.role, "aria-hidden": "true", "aria-expanded": "false"}).each(function(){ var e=t( this),i=e.prev(),s=t( "<span>"). data( "ui-menu-submenu-caret",! 0);a._addClass(s, "ui-menu-icon", "ui-icon "+r),i.attr( "aria-haspopup", "true").prepend(s),e.attr( "aria-labelledby",i.attr( "id"))}), this._addClass(s, "ui-menu", "ui-widget ui-widget-content ui-front"),e=l.add( this.element),i=e.find( this.options.items),i.not( ".ui-menu-item").each(function(){ var e=t( this);a._isDivider(e)&&a._addClass(e, "ui-menu-divider", "ui-widget-content")}),n=i.not( ".ui-menu-item, .ui-menu-divider"),o=n.children().not( ".ui-menu").uniqueId().attr({tabIndex:- 1,role: this._itemRole()}), this._addClass(n, "ui-menu-item")._addClass(o, "ui-menu-item-wrapper"),i.filter( ".ui-state-disabled").attr( "aria-disabled", "true"), this.active&&!t.contains( this.element[ 0], this.active[ 0])&& this.blur()},_itemRole:function(){ return{menu: "menuitem",listbox: "option"}[ this.options.role]},_setOption:function(t,e){ if( "icons"===t){ var i= this.element.find( ".ui-menu-icon"); this._removeClass(i, null, this.options.icons.submenu)._addClass(i, null,e.submenu)} this._super(t,e)},_setOptionDisabled:function(t){ this._super(t), this.element.attr( "aria-disabled",t+ ""), this._toggleClass( null, "ui-state-disabled",!!t)},focus:function(t,e){ var i,s,n; this.blur(t,t&& "focus"===t.type), this._scrollIntoView(e), this.active=e.first(),s= this.active.children( ".ui-menu-item-wrapper"), this._addClass(s, null, "ui-state-active"), this.options.role&& this.element.attr( "aria-activedescendant",s.attr( "id")),n= this.active.parent().closest( ".ui-menu-item").children( ".ui-menu-item-wrapper"), this._addClass(n, null, "ui-state-active"),t&& "keydown"===t.type? this._close(): this.timer= this._delay(function(){ this._close()}, this.delay),i=e.children( ".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&& this._startOpening(i), this.activeMenu=e.parent(), this._trigger( "focus",t,{item:e})},_scrollIntoView:function(e){ var i,s,n,o,a,r; this._hasScroll()&&(i=parseFloat(t.css( this.activeMenu[ 0], "borderTopWidth"))|| 0,s=parseFloat(t.css( this.activeMenu[ 0], "paddingTop"))|| 0,n=e.offset().top- this.activeMenu.offset().top-i-s,o= this.activeMenu.scrollTop(),a= this.activeMenu.height(),r=e.outerHeight(), 0>n? this.activeMenu.scrollTop(o+n):n+r>a&& this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout( this.timer), this.active&&( this._removeClass( this.active.children( ".ui-menu-item-wrapper"), null, "ui-state-active"), this._trigger( "blur",t,{item: this.active}), this.active= null)},_startOpening:function(t){clearTimeout( this.timer), "true"===t.attr( "aria-hidden")&&( this.timer= this._delay(function(){ this._close(), this._open(t)}, this.delay))},_open:function(e){ var i=t.extend({of: this.active}, this.options.position);clearTimeout( this.timer), this.element.find( ".ui-menu").not(e.parents( ".ui-menu")).hide().attr( "aria-hidden", "true"),e.show().removeAttr( "aria-hidden").attr( "aria-expanded", "true").position(i)},collapseAll:function(e,i){clearTimeout( this.timer), this.timer= this._delay(function(){ var s=i? this.element:t(e&&e.target).closest( this.element.find( ".ui-menu"));s.length||(s= this.element), this._close(s), this.blur(e), this._removeClass(s.find( ".ui-state-active"), null, "ui-state-active"), this.activeMenu=s}, this.delay)},_close:function(t){t||(t= this.active? this.active.parent(): this.element),t.find( ".ui-menu").hide().attr( "aria-hidden", "true").attr( "aria-expanded", "false")},_closeOnDocumentClick:function(e){ return!t(e.target).closest( ".ui-menu").length},_isDivider:function(t){ return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){ var e= this.active&& this.active.parent().closest( ".ui-menu-item", this.element);e&&e.length&&( this._close(), this.focus(t,e))},expand:function(t){ var e= this.active&& this.active.children( ".ui-menu ").find( this.options.items).first();e&&e.length&&( this._open(e.parent()), this._delay(function(){ this.focus(t,e)}))},next:function(t){ this._move( "next", "first",t)},previous:function(t){ this._move( "prev", "last",t)},isFirstItem:function(){ return this.active&&! this.active.prevAll( ".ui-menu-item").length},isLastItem:function(){ return this.active&&! this.active.nextAll( ".ui-menu-item").length},_move:function(t,e,i){ var s; this.active&&(s= "first"===t|| "last"===t? this.active[ "first"===t? "prevAll": "nextAll"]( ".ui-menu-item").eq(- 1): this.active[t+ "All"]( ".ui-menu-item").eq( 0)),s&&s.length&& this.active||(s= this.activeMenu.find( this.options.items)[e]()), this.focus(i,s)},nextPage:function(e){ var i,s,n; return this.active?( this.isLastItem()||( this._hasScroll()?(s= this.active.offset().top,n= this.element.height(), this.active.nextAll( ".ui-menu-item").each(function(){ return i=t( this), 0>i.offset().top-s-n}), this.focus(e,i)): this.focus(e, this.activeMenu.find( this.options.items)[ this.active? "last": "first"]())),void 0):( this.next(e),void 0)},previousPage:function(e){ var i,s,n; return this.active?( this.isFirstItem()||( this._hasScroll()?(s= this.active.offset().top,n= this.element.height(), this.active.prevAll( ".ui-menu-item").each(function(){ return i=t( this),i.offset().top-s+n> 0}), this.focus(e,i)): this.focus(e, this.activeMenu.find( this.options.items).first())),void 0):( this.next(e),void 0)},_hasScroll:function(){ return this.element.outerHeight()< this.element.prop( "scrollHeight")},select:function(e){ this.active= this.active||t(e.target).closest( ".ui-menu-item"); var i={item: this.active}; this.active.has( ".ui-menu").length|| this.collapseAll(e,! 0), this._trigger( "select",e,i)},_filterMenuItems:function(e){ var i=e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"),s=RegExp( "^"+i, "i"); return this.activeMenu.find( this.options.items).filter( ".ui-menu-item").filter(function(){ return s.test(t.trim(t( this).children( ".ui-menu-item-wrapper").text()))})}}),t.widget( "ui.autocomplete",{version: "1.12.1",defaultElement: "<input>",options:{appendTo: null,autoFocus:! 1,delay: 300,minLength: 1,position:{my: "left top",at: "left bottom",collision: "none"},source: null,change: null,close: null,focus: null, open: null,response: null,search: null,select: null},requestIndex: 0,pending: 0,_create:function(){ var e,i,s,n= this.element[ 0].nodeName.toLowerCase(),o= "textarea"===n,a= "input"===n; this.isMultiLine=o||!a&& this._isContentEditable( this.element), this.valueMethod= this.element[o||a? "val": "text"], this.isNewMenu=! 0, this._addClass( "ui-autocomplete-input"), this.element.attr( "autocomplete", "off"), this._on( this.element,{keydown:function(n){ if( this.element.prop( "readOnly")) return e=! 0,s=! 0,i=! 0,void 0;e=! 1,s=! 1,i=! 1; var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=! 0, this._move( "previousPage",n); break;case o.PAGE_DOWN:e=! 0, this._move( "nextPage",n); break;case o.UP:e=! 0, this._keyEvent( "previous",n); break;case o.DOWN:e=! 0, this._keyEvent( "next",n); break;case o.ENTER: this.menu.active&&(e=! 0,n.preventDefault(), this.menu.select(n)); break;case o.TAB: this.menu.active&& this.menu.select(n); break;case o.ESCAPE: this.menu.element. is( ":visible")&&( this.isMultiLine|| this._value( this.term), this.close(n),n.preventDefault()); break;default:i=! 0, this._searchTimeout(n)}},keypress:function(s){ if(e) return e=! 1,(! this.isMultiLine|| this.menu.element. is( ":visible"))&&s.preventDefault(),void 0; if(!i){ var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP: this._move( "previousPage",s); break;case n.PAGE_DOWN: this._move( "nextPage",s); break;case n.UP: this._keyEvent( "previous",s); break;case n.DOWN: this._keyEvent( "next",s)}}},input:function(t){ return s?(s=! 1,t.preventDefault(),void 0):( this._searchTimeout(t),void 0)},focus:function(){ this.selectedItem= null, this.previous= this._value()},blur:function(t){ return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout( this.searching), this.close(t), this._change(t),void 0)}}), this._initSource(), this.menu=t( "<ul>").appendTo( this._appendTo()).menu({role: null}).hide().menu( "instance"), this._addClass( this.menu.element, "ui-autocomplete", "ui-front"), this._on( this.menu.element,{mousedown:function(e){e.preventDefault(), this.cancelBlur=! 0, this._delay(function(){delete this.cancelBlur, this.element[ 0]!==t.ui.safeActiveElement( this.document[ 0])&& this.element.trigger( "focus")})},menufocus:function(e,i){ var s,n; return this.isNewMenu&&( this.isNewMenu=! 1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?( this.menu.blur(), this.document.one( "mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item. data( "ui-autocomplete-item"),! 1!== this._trigger( "focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&& this._value(n.value),s=i.item.attr( "aria-label")||n.value,s&&t.trim(s).length&&( this.liveRegion.children().hide(),t( "<div>").text(s).appendTo( this.liveRegion)),void 0)},menuselect:function(e,i){ var s=i.item. data( "ui-autocomplete-item"),n= this.previous; this.element[ 0]!==t.ui.safeActiveElement( this.document[ 0])&&( this.element.trigger( "focus"), this.previous=n, this._delay(function(){ this.previous=n, this.selectedItem=s})),! 1!== this._trigger( "select",e,{item:s})&& this._value(s.value), this.term= this._value(), this.close(e), this.selectedItem=s}}), this.liveRegion=t( "<div>",{role: "status", "aria-live": "assertive", "aria-relevant": "additions"}).appendTo( this.document[ 0].body), this._addClass( this.liveRegion, null, "ui-helper-hidden-accessible"), this._on( this.window,{beforeunload:function(){ this.element.removeAttr( "autocomplete")}})},_destroy:function(){clearTimeout( this.searching), this.element.removeAttr( "autocomplete"), this.menu.element.remove(), this.liveRegion.remove()},_setOption:function(t,e){ this._super(t,e), "source"===t&& this._initSource(), "appendTo"===t&& this.menu.element.appendTo( this._appendTo()), "disabled"===t&&e&& this.xhr&& this.xhr.abort()},_isEventTargetInWidget:function(e){ var i= this.menu.element[ 0]; return e.target=== this.element[ 0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){ this._isEventTargetInWidget(t)|| this.close()},_appendTo:function(){ var e= this.options.appendTo; return e&&(e=e.jquery||e.nodeType?t(e): this.document.find(e).eq( 0)),e&&e[ 0]||(e= this.element.closest( ".ui-front, dialog")),e.length||(e= this.document[ 0].body),e},_initSource:function(){ var e,i,s= this;t.isArray( this.options.source)?(e= this.options.source, this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}): "string"==typeof this.options.source?(i= this.options.source, this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i, data:e,dataType: "json",success:function(t){n(t)},error:function(){n([])}})}): this.source= this.options.source},_searchTimeout:function(t){clearTimeout( this.searching), this.searching= this._delay(function(){ var e= this.term=== this._value(),i= this.menu.element. is( ":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&( this.selectedItem= null, this.search( null,t))}, this.options.delay)},search:function(t,e){ return t= null!=t?t: this._value(), this.term= this._value(),t.length< this.options.minLength? this.close(e): this._trigger( "search",e)!==! 1? this._search(t):void 0},_search:function(t){ this.pending++, this._addClass( "ui-autocomplete-loading"), this.cancelSearch=! 1, this.source({term:t}, this._response())},_response:function(){ var e=++ this.requestIndex; return t.proxy(function(t){e=== this.requestIndex&& this.__response(t), this.pending--, this.pending|| this._removeClass( "ui-autocomplete-loading")}, this)},__response:function(t){t&&(t= this._normalize(t)), this._trigger( "response", null,{content:t}),! this.options.disabled&&t&&t.length&&! this.cancelSearch?( this._suggest(t), this._trigger( "open")): this._close()},close:function(t){ this.cancelSearch=! 0, this._close(t)},_close:function(t){ this._off( this.document, "mousedown"), this.menu.element. is( ":visible")&&( this.menu.element.hide(), this.menu.blur(), this.isNewMenu=! 0, this._trigger( "close",t))},_change:function(t){ this.previous!== this._value()&& this._trigger( "change",t,{item: this.selectedItem})},_normalize:function(e){ return e.length&&e[ 0].label&&e[ 0].value?e:t.map(e,function(e){ return "string"==typeof e?{label:e,value:e}:t.extend({},e,{label:e.label||e.value,value:e.value||e.label})})},_suggest:function(e){ var i= this.menu.element.empty(); this._renderMenu(i,e), this.isNewMenu=! 0, this.menu.refresh(),i.show(), this._resizeMenu(),i.position(t.extend({of: this.element}, this.options.position)), this.options.autoFocus&& this.menu.next(), this._on( this.document,{mousedown: "_closeOnClickOutside"})},_resizeMenu:function(){ var t= this.menu.element;t.outerWidth(Math.max(t.width( "").outerWidth()+ 1, this.element.outerWidth()))},_renderMenu:function(e,i){ var s= this;t.each(i,function(t,i){s._renderItemData(e,i)})},_renderItemData:function(t,e){ return this._renderItem(t,e). data( "ui-autocomplete-item",e)},_renderItem:function(e,i){ return t( "<li>").append(t( "<div>").text(i.label)).appendTo(e)},_move:function(t,e){ return this.menu.element. is( ":visible")? this.menu.isFirstItem()&&/^previous/.test(t)|| this.menu.isLastItem()&&/^next/.test(t)?( this.isMultiLine|| this._value( this.term), this.menu.blur(),void 0):( this.menu[t](e),void 0):( this.search( null,e),void 0)},widget:function(){ return this.menu.element},_value:function(){ return this.valueMethod.apply( this.element,arguments)},_keyEvent:function(t,e){(! this.isMultiLine|| this.menu.element. is( ":visible"))&&( this._move(t,e),e.preventDefault())},_isContentEditable:function(t){ if(!t.length) return! 1; var e=t.prop( "contentEditable"); return "inherit"===e? this._isContentEditable(t.parent()): "true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){ return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")},filter:function(e,i){ var s=RegExp(t.ui.autocomplete.escapeRegex(i), "i"); return t.grep(e,function(t){ return s.test(t.label||t.value||t)})}}),t.widget( "ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults: "No search results.",results:function(t){ return t+(t> 1? " results are": " result is")+ " available, use up and down arrow keys to navigate."}}},__response:function(e){ var i; this._superApply(arguments), this.options.disabled|| this.cancelSearch||(i=e&&e.length? this.options.messages.results(e.length): this.options.messages.noResults, this.liveRegion.children().hide(),t( "<div>").text(i).appendTo( this.liveRegion))}}),t.ui.autocomplete; var n= "ui-effects-",o= "ui-effects-style",a= "ui-effects-animated",r=t;t.effects={effect:{}},function(t,e){function i(t,e,i){ var s=u[e.type]||{}; return null==t?i||!e.def? null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod: 0>t? 0:t>s.max?s.max:t)}function s(i){ var s=h(),n=s._rgba=[]; return i=i.toLowerCase(),f(l,function(t,o){ var a,r=o.re.exec(i),l=r&&o.parse(r),h=o.space|| "rgba"; return l?(a=s[h](l),s[c[h].cache]=a[c[h].cache],n=s._rgba=a._rgba,! 1):e}),n.length?( "0,0,0,0"===n.join()&&t.extend(n,o.transparent),s):o[i]}function n(t,e,i){ return i=(i+ 1)% 1, 1> 6*i?t+ 6*(e-t)*i: 1> 2*i?e: 2> 3*i?t+ 6*(e-t)*( 2/ 3-i):t} var o,a= "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{ 1, 3})\s*,\s*(\d{ 1, 3})\s*,\s*(\d{ 1, 3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){ return[t[ 1],t[ 2],t[ 3],t[ 4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){ return[ 2.55*t[ 1], 2.55*t[ 2], 2.55*t[ 3],t[ 4]]}},{re:/#([a-f0- 9]{ 2})([a-f0- 9]{ 2})([a-f0- 9]{ 2})/,parse:function(t){ return[parseInt(t[ 1], 16),parseInt(t[ 2], 16),parseInt(t[ 3], 16)]}},{re:/#([a-f0- 9])([a-f0- 9])([a-f0- 9])/,parse:function(t){ return[parseInt(t[ 1]+t[ 1], 16),parseInt(t[ 2]+t[ 2], 16),parseInt(t[ 3]+t[ 3], 16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space: "hsla",parse:function(t){ return[t[ 1],t[ 2]/ 100,t[ 3]/ 100,t[ 4]]}}],h=t.Color=function(e,i,s,n){ return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx: 0,type: "byte"},green:{idx: 1,type: "byte"},blue:{idx: 2,type: "byte"}}},hsla:{props:{hue:{idx: 0,type: "degrees"},saturation:{idx: 1,type: "percent"},lightness:{idx: 2,type: "percent"}}}},u={ "byte":{floor:! 0,max: 255},percent:{max: 1},degrees:{mod: 360,floor:! 0}},d=h.support={},p=t( "<p>")[ 0],f=t.each;p.style.cssText= "background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf( "rgba")>- 1,f(c,function(t,e){e.cache= "_"+t,e.props.alpha={idx: 3,type: "percent",def: 1}}),h.fn=t.extend(h.prototype,{parse:function(n,a,r,l){ if(n===e) return this._rgba=[ null, null, null, null], this;(n.jquery||n.nodeType)&&(n=t(n).css(a),a=e); var u= this,d=t.type(n),p= this._rgba=[]; return a!==e&&(n=[n,a,r,l],d= "array"), "string"===d? this.parse(s(n)||o._default): "array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}), this): "object"===d?(n instanceof h?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){ var o=s.cache;f(s.props,function(t,e){ if(!u[o]&&s.to){ if( "alpha"===t|| null==n[t]) return;u[o]=s.to(u._rgba)}u[o][e.idx]=i(n[t],e,! 0)}),u[o]&& 0>t.inArray( null,u[o].slice( 0, 3))&&(u[o][ 3]= 1,s.from&&(u._rgba=s.from(u[o])))}), this):e}, is:function(t){ var i=h(t),s=! 0,n= this; return f(c,function(t,o){ var a,r=i[o.cache]; return r&&(a=n[o.cache]||o.to&&o.to(n._rgba)||[],f(o.props,function(t,i){ return null!=r[i.idx]?s=r[i.idx]===a[i.idx]:e})),s}),s},_space:function(){ var t=[],e= this; return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){ var s=h(t),n=s._space(),o=c[n],a= 0=== this.alpha()?h( "transparent"): this,r=a[o.cache]||o.to(a._rgba),l=r.slice(); return s=s[o.cache],f(o.props,function(t,n){ var o=n.idx,a=r[o],h=s[o],c=u[n.type]||{}; null!==h&&( null===a?l[o]=h:(c.mod&&(h-a>c.mod/ 2?a+=c.mod:a-h>c.mod/ 2&&(a-=c.mod)),l[o]=i((h-a)*e+a,n)))}), this[n](l)},blend:function(e){ if( 1=== this._rgba[ 3]) return this; var i= this._rgba.slice(),s=i.pop(),n=h(e)._rgba; return h(t.map(i,function(t,e){ return( 1-s)*n[e]+s*t}))},toRgbaString:function(){ var e= "rgba(",i=t.map( this._rgba,function(t,e){ return null==t?e> 2? 1: 0:t}); return 1===i[ 3]&&(i.pop(),e= "rgb("),e+i.join()+ ")"},toHslaString:function(){ var e= "hsla(",i=t.map( this.hsla(),function(t,e){ return null==t&&(t=e> 2? 1: 0),e&& 3>e&&(t=Math.round( 100*t)+ "%"),t}); return 1===i[ 3]&&(i.pop(),e= "hsl("),e+i.join()+ ")"},toHexString:function(e){ var i= this._rgba.slice(),s=i.pop(); return e&&i.push(~~( 255*s)), "#"+t.map(i,function(t){ return t=(t|| 0).toString( 16), 1===t.length? "0"+t:t}).join( "")},toString:function(){ return 0=== this._rgba[ 3]? "transparent": this.toRgbaString()}}),h.fn.parse.prototype=h.fn,c.hsla.to=function(t){ if( null==t[ 0]|| null==t[ 1]|| null==t[ 2]) return[ null, null, null,t[ 3]]; var e,i,s=t[ 0]/ 255,n=t[ 1]/ 255,o=t[ 2]/ 255,a=t[ 3],r=Math.max(s,n,o),l=Math.min(s,n,o),h=r-l,c=r+l,u= .5*c; return e=l===r? 0:s===r? 60*(n-o)/h+ 360:n===r? 60*(o-s)/h+ 120: 60*(s-n)/h+ 240,i= 0===h? 0: .5>=u?h/c:h/( 2-c),[Math.round(e)% 360,i,u, null==a? 1:a]},c.hsla.from=function(t){ if( null==t[ 0]|| null==t[ 1]|| null==t[ 2]) return[ null, null, null,t[ 3]]; var e=t[ 0]/ 360,i=t[ 1],s=t[ 2],o=t[ 3],a= .5>=s?s*( 1+i):s+i-s*i,r= 2*s-a; return[Math.round( 255*n(r,a,e+ 1/ 3)),Math.round( 255*n(r,a,e)),Math.round( 255*n(r,a,e- 1/ 3)),o]},f(c,function(s,n){ var o=n.props,a=n.cache,l=n.to,c=n.from;h.fn[s]=function(s){ if(l&&! this[a]&&( this[a]=l( this._rgba)),s===e) return this[a].slice(); var n,r=t.type(s),u= "array"===r|| "object"===r?s:arguments,d= this[a].slice(); return f(o,function(t,e){ var s=u[ "object"===r?t:e.idx]; null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=h(c(d)),n[a]=d,n):h(d)},f(o,function(e,i){h.fn[e]||(h.fn[e]=function(n){ var o,a=t.type(n),l= "alpha"===e? this._hsla? "hsla": "rgba":s,h= this[l](),c=h[i.idx]; return "undefined"===a?c:( "function"===a&&(n=n.call( this,c),a=t.type(n)), null==n&&i.empty? this:( "string"===a&&(o=r.exec(n),o&&(n=c+parseFloat(o[ 2])*( "+"===o[ 1]? 1:- 1))),h[i.idx]=n, this[l](h)))})})}),h.hook=function(e){ var i=e.split( " ");f(i,function(e,i){t.cssHooks[i]={ set:function(e,n){ var o,a,r= ""; if( "transparent"!==n&&( "string"!==t.type(n)||(o=s(n)))){ if(n=h(o||n),!d.rgba&& 1!==n._rgba[ 3]){ for(a= "backgroundColor"===i?e.parentNode:e;( ""===r|| "transparent"===r)&&a&&a.style;) try{r=t.css(a, "backgroundColor"),a=a.parentNode} catch(l){}n=n.blend(r&& "transparent"!==r?r: "_default")}n=n.toRgbaString()} try{e.style[i]=n} catch(l){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=h(e.elem,i),e.end=h(e.end),e.colorInit=! 0),t.cssHooks[i]. set(e.elem,e.start.transition(e.end,e.pos))}})},h.hook(a),t.cssHooks.borderColor={expand:function(t){ var e={}; return f([ "Top", "Right", "Bottom", "Left"],function(i,s){e[ "border"+s+ "Color"]=t}),e}},o=t.Color.names={aqua: "#00ffff",black: "#000000",blue: "#0000ff",fuchsia: "#ff00ff",gray: "#808080",green: "#008000",lime: "#00ff00",maroon: "#800000",navy: "#000080",olive: "#808000",purple: "#800080",red: "#ff0000",silver: "#c0c0c0",teal: "#008080",white: "#ffffff",yellow: "#ffff00",transparent:[ null, null, null, 0],_default: "#ffffff"}}(r),function(){function e(e){ var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e, null):e.currentStyle,o={}; if(n&&n.length&&n[ 0]&&n[n[ 0]]) for(s=n.length;s--;)i=n[s], "string"==typeof n[i]&&(o[t.camelCase(i)]=n[i]); else for(i in n) "string"==typeof n[i]&&(o[i]=n[i]); return o}function i(e,i){ var s,o,a={}; for(s in i)o=i[s],e[s]!==o&&(n[s]||(t.fx.step[s]||!isNaN(parseFloat(o)))&&(a[s]=o)); return a} var s=[ "add", "remove", "toggle"],n={border: 1,borderBottom: 1,borderColor: 1,borderLeft: 1,borderRight: 1,borderTop: 1,borderWidth: 1,margin: 1,padding: 1};t.each([ "borderLeftStyle", "borderRightStyle", "borderBottomStyle", "borderTopStyle"],function(e,i){t.fx.step[i]=function(t){( "none"!==t.end&&!t.setAttr|| 1===t.pos&&!t.setAttr)&&(r.style(t.elem,i,t.end),t.setAttr=! 0)}}),t.fn.addBack||(t.fn.addBack=function(t){ return this.add( null==t? this.prevObject: this.prevObject.filter(t))}),t.effects.animateClass=function(n,o,a,r){ var l=t.speed(o,a,r); return this.queue(function(){ var o,a=t( this),r=a.attr( "class")|| "",h=l.children?a.find( "*").addBack():a;h=h.map(function(){ var i=t( this); return{el:i,start:e( this)}}),o=function(){t.each(s,function(t,e){n[e]&&a[e+ "Class"](n[e])})},o(),h=h.map(function(){ return this.end=e( this.el[ 0]), this.diff=i( this.start, this.end), this}),a.attr( "class",r),h=h.map(function(){ var e= this,i=t.Deferred(),s=t.extend({},l,{queue:! 1,complete:function(){i.resolve(e)}}); return this.el.animate( this.diff,s),i.promise()}),t. when.apply(t,h. get()).done(function(){o(),t.each(arguments,function(){ var e= this.el;t.each( this.diff,function(t){e.css(t, "")})}),l.complete.call(a[ 0])})})},t.fn.extend({addClass:function(e){ return function(i,s,n,o){ return s?t.effects.animateClass.call( this,{add:i},s,n,o):e.apply( this,arguments)}}(t.fn.addClass),removeClass:function(e){ return function(i,s,n,o){ return arguments.length> 1?t.effects.animateClass.call( this,{remove:i},s,n,o):e.apply( this,arguments)}}(t.fn.removeClass),toggleClass:function(e){ return function(i,s,n,o,a){ return "boolean"==typeof s||void 0===s?n?t.effects.animateClass.call( this,s?{add:i}:{remove:i},n,o,a):e.apply( this,arguments):t.effects.animateClass.call( this,{toggle:i},s,n,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,o){ return t.effects.animateClass.call( this,{add:i,remove:e},s,n,o)}})}(),function(){function e(e,i,s,n){ return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e}, null==i&&(i={}),t.isFunction(i)&&(n=i,s= null,i={}),( "number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s= null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off? 0: "number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function i(e){ return!e|| "number"==typeof e||t.fx.speeds[e]?! 0: "string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?! 0: "object"!=typeof e||e.effect?! 1:! 0:! 0}function s(t,e){ var i=e.outerWidth(),s=e.outerHeight(),n=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=n.exec(t)||[ "", 0,i,s, 0]; return{top:parseFloat(o[ 1])|| 0,right: "auto"===o[ 2]?i:parseFloat(o[ 2]),bottom: "auto"===o[ 3]?s:parseFloat(o[ 3]),left:parseFloat(o[ 4])|| 0}}t.expr&&t.expr.filters&&t.expr.filters.animated&&(t.expr.filters.animated=function(e){ return function(i){ return!!t(i). data(a)||e(i)}}(t.expr.filters.animated)),t.uiBackCompat!==! 1&&t.extend(t.effects,{save:function(t,e){ for( var i= 0,s=e.length;s>i;i++) null!==e[i]&&t. data(n+e[i],t[ 0].style[e[i]])
  7. },restore:function(t,e){ for( var i,s= 0,o=e.length;o>s;s++) null!==e[s]&&(i=t. data(n+e[s]),t.css(e[s],i))},setMode:function(t,e){ return "toggle"===e&&(e=t. is( ":hidden")? "show": "hide"),e},createWrapper:function(e){ if(e.parent(). is( ".ui-effects-wrapper")) return e.parent(); var i={width:e.outerWidth(! 0),height:e.outerHeight(! 0), "float":e.css( "float")},s=t( "<div></div>").addClass( "ui-effects-wrapper").css({fontSize: "100%",background: "transparent",border: "none",margin: 0,padding: 0}),n={width:e.width(),height:e.height()},o=document.activeElement; try{o.id} catch(a){o=document.body} return e.wrap(s),(e[ 0]===o||t.contains(e[ 0],o))&&t(o).trigger( "focus"),s=e.parent(), "static"===e.css( "position")?(s.css({position: "relative"}),e.css({position: "relative"})):(t.extend(i,{position:e.css( "position"),zIndex:e.css( "z-index")}),t.each([ "top", "left", "bottom", "right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s], 10))&&(i[s]= "auto")}),e.css({position: "relative",top: 0,left: 0,right: "auto",bottom: "auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){ var i=document.activeElement; return e.parent(). is( ".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[ 0]===i||t.contains(e[ 0],i))&&t(i).trigger( "focus")),e}}),t.extend(t.effects,{version: "1.12.1",define:function(e,i,s){ return s||(s=i,i= "effect"),t.effects.effect[e]=s,t.effects.effect[e].mode=i,s},scaledDimensions:function(t,e,i){ if( 0===e) return{height: 0,width: 0,outerHeight: 0,outerWidth: 0}; var s= "horizontal"!==i?(e|| 100)/ 100: 1,n= "vertical"!==i?(e|| 100)/ 100: 1; return{height:t.height()*n,width:t.width()*s,outerHeight:t.outerHeight()*n,outerWidth:t.outerWidth()*s}},clipToBox:function(t){ return{width:t.clip.right-t.clip.left,height:t.clip.bottom-t.clip.top,left:t.clip.left,top:t.clip.top}},unshift:function(t,e,i){ var s=t.queue();e> 1&&s.splice.apply(s,[ 1, 0].concat(s.splice(e,i))),t.dequeue()},saveStyle:function(t){t. data(o,t[ 0].style.cssText)},restoreStyle:function(t){t[ 0].style.cssText=t. data(o)|| "",t.removeData(o)},mode:function(t,e){ var i=t. is( ":hidden"); return "toggle"===e&&(e=i? "show": "hide"),(i? "hide"===e: "show"===e)&&(e= "none"),e},getBaseline:function(t,e){ var i,s;switch(t[ 0]){case "top":i= 0; break;case "middle":i= .5; break;case "bottom":i= 1; break;default:i=t[ 0]/e.height}switch(t[ 1]){case "left":s= 0; break;case "center":s= .5; break;case "right":s= 1; break;default:s=t[ 1]/e.width} return{x:s,y:i}},createPlaceholder:function(e){ var i,s=e.css( "position"),o=e.position(); return e.css({marginTop:e.css( "marginTop"),marginBottom:e.css( "marginBottom"),marginLeft:e.css( "marginLeft"),marginRight:e.css( "marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()),/^(static|relative)/.test(s)&&(s= "absolute",i=t( "<"+e[ 0].nodeName+ ">").insertAfter(e).css({display:/^( inline|ruby)/.test(e.css( "display"))? "inline-block": "block",visibility: "hidden",marginTop:e.css( "marginTop"),marginBottom:e.css( "marginBottom"),marginLeft:e.css( "marginLeft"),marginRight:e.css( "marginRight"), "float":e.css( "float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass( "ui-effects-placeholder"),e. data(n+ "placeholder",i)),e.css({position:s,left:o.left,top:o.top}),i},removePlaceholder:function(t){ var e=n+ "placeholder",i=t. data(e);i&&(i.remove(),t.removeData(e))},cleanUp:function(e){t.effects.restoreStyle(e),t.effects.removePlaceholder(e)},setTransition:function(e,i,s,n){ return n=n||{},t.each(i,function(t,i){ var o=e.cssUnit(i);o[ 0]> 0&&(n[i]=o[ 0]*s+o[ 1])}),n}}),t.fn.extend({effect:function(){function i(e){function i(){l.removeData(a),t.effects.cleanUp(l), "hide"===s.mode&&l.hide(),r()}function r(){t.isFunction(h)&&h.call(l[ 0]),t.isFunction(e)&&e()} var l=t( this);s.mode=u.shift(),t.uiBackCompat===! 1||o? "none"===s.mode?(l[c](),r()):n.call(l[ 0],s,i):(l. is( ":hidden")? "hide"===c: "show"===c)?(l[c](),r()):n.call(l[ 0],s,r)} var s=e.apply( this,arguments),n=t.effects.effect[s.effect],o=n.mode,r=s.queue,l=r|| "fx",h=s.complete,c=s.mode,u=[],d=function(e){ var i=t( this),s=t.effects.mode(i,c)||o;i. data(a,! 0),u.push(s),o&&( "show"===s||s===o&& "hide"===s)&&i.show(),o&& "none"===s||t.effects.saveStyle(i),t.isFunction(e)&&e()}; return t.fx.off||!n?c? this[c](s.duration,h): this.each(function(){h&&h.call( this)}):r===! 1? this.each(d).each(i): this.queue(l,d).queue(l,i)},show:function(t){ return function(s){ if(i(s)) return t.apply( this,arguments); var n=e.apply( this,arguments); return n.mode= "show", this.effect.call( this,n)}}(t.fn.show),hide:function(t){ return function(s){ if(i(s)) return t.apply( this,arguments); var n=e.apply( this,arguments); return n.mode= "hide", this.effect.call( this,n)}}(t.fn.hide),toggle:function(t){ return function(s){ if(i(s)|| "boolean"==typeof s) return t.apply( this,arguments); var n=e.apply( this,arguments); return n.mode= "toggle", this.effect.call( this,n)}}(t.fn.toggle),cssUnit:function(e){ var i= this.css(e),s=[]; return t.each([ "em", "px", "%", "pt"],function(t,e){i.indexOf(e)> 0&&(s=[parseFloat(i),e])}),s},cssClip:function(t){ return t? this.css( "clip", "rect("+t.top+ "px "+t.right+ "px "+t.bottom+ "px "+t.left+ "px)"):s( this.css( "clip"), this)},transfer:function(e,i){ var s=t( this),n=t(e.to),o= "fixed"===n.css( "position"),a=t( "body"),r=o?a.scrollTop(): 0,l=o?a.scrollLeft(): 0,h=n.offset(),c={top:h.top-r,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t( "<div class='ui-effects-transfer'></div>").appendTo( "body").addClass(e.className).css({top:u.top-r,left:u.left-l,height:s.innerHeight(),width:s.innerWidth(),position:o? "fixed": "absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),t.isFunction(i)&&i()})}}),t.fx.step.clip=function(e){e.clipInit||(e.start=t(e.elem).cssClip(), "string"==typeof e.end&&(e.end=s(e.end,e.elem)),e.clipInit=! 0),t(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})}}(),function(){ var e={};t.each([ "Quad", "Cubic", "Quart", "Quint", "Expo"],function(t,i){e[i]=function(e){ return Math.pow(e,t+ 2)}}),t.extend(e,{Sine:function(t){ return 1-Math.cos(t*Math.PI/ 2)},Circ:function(t){ return 1-Math.sqrt( 1-t*t)},Elastic:function(t){ return 0===t|| 1===t?t:-Math.pow( 2, 8*(t- 1))*Math.sin(( 80*(t- 1)- 7.5)*Math.PI/ 15)},Back:function(t){ return t*t*( 3*t- 2)},Bounce:function(t){ for( var e,i= 4;((e=Math.pow( 2,--i))- 1)/ 11>t;); return 1/Math.pow( 4, 3-i)- 7.5625*Math.pow(( 3*e- 2)/ 22-t, 2)}}),t.each(e,function(e,i){t.easing[ "easeIn"+e]=i,t.easing[ "easeOut"+e]=function(t){ return 1-i( 1-t)},t.easing[ "easeInOut"+e]=function(t){ return .5>t?i( 2*t)/ 2: 1-i(- 2*t+ 2)/ 2}})}(),t.effects});

6.jquery.mousewheel.js(辅助作用)


  
  1. /*! Copyright (c) 2013 Brandon Aaron (http://brandon.aaron.sh)
  2. * Licensed under the MIT License (LICENSE.txt).
  3. *
  4. * Version: 3.1.12
  5. *
  6. * Requires: jQuery 1.2.2+
  7. */
  8. ( function ( factory) {
  9. if ( typeof define === 'function' && define. amd ) {
  10. // AMD. Register as an anonymous module.
  11. define([ 'jquery'], factory);
  12. } else if ( typeof exports === 'object') {
  13. // Node/CommonJS style for Browserify
  14. module. exports = factory;
  15. } else {
  16. // Browser globals
  17. factory(jQuery);
  18. }
  19. }( function ( $) {
  20. var toFix = [ 'wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'],
  21. toBind = ( 'onwheel' in document || document. documentMode >= 9 ) ?
  22. [ 'wheel'] : [ 'mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'],
  23. slice = Array. prototype. slice,
  24. nullLowestDeltaTimeout, lowestDelta;
  25. if ( $.event. fixHooks ) {
  26. for ( var i = toFix. length; i; ) {
  27. $.event. fixHooks[ toFix[--i] ] = $.event. mouseHooks;
  28. }
  29. }
  30. var special = $.event. special. mousewheel = {
  31. version: '3.1.12',
  32. setup: function( ) {
  33. if ( this. addEventListener ) {
  34. for ( var i = toBind. length; i; ) {
  35. this. addEventListener( toBind[--i], handler, false );
  36. }
  37. } else {
  38. this. onmousewheel = handler;
  39. }
  40. // Store the line height and page height for this particular element
  41. $. data( this, 'mousewheel-line-height', special. getLineHeight( this));
  42. $. data( this, 'mousewheel-page-height', special. getPageHeight( this));
  43. },
  44. teardown: function( ) {
  45. if ( this. removeEventListener ) {
  46. for ( var i = toBind. length; i; ) {
  47. this. removeEventListener( toBind[--i], handler, false );
  48. }
  49. } else {
  50. this. onmousewheel = null;
  51. }
  52. // Clean up the data we added to the element
  53. $. removeData( this, 'mousewheel-line-height');
  54. $. removeData( this, 'mousewheel-page-height');
  55. },
  56. getLineHeight: function( elem) {
  57. var $elem = $(elem),
  58. $parent = $elem[ 'offsetParent' in $.fn ? 'offsetParent' : 'parent']();
  59. if (!$parent. length) {
  60. $parent = $( 'body');
  61. }
  62. return parseInt($parent. css( 'fontSize'), 10) || parseInt($elem. css( 'fontSize'), 10) || 16;
  63. },
  64. getPageHeight: function( elem) {
  65. return $(elem). height();
  66. },
  67. settings: {
  68. adjustOldDeltas: true, // see shouldAdjustOldDeltas() below
  69. normalizeOffset: true // calls getBoundingClientRect for each event
  70. }
  71. };
  72. $.fn. extend({
  73. mousewheel: function( fn) {
  74. return fn ? this. bind( 'mousewheel', fn) : this. trigger( 'mousewheel');
  75. },
  76. unmousewheel: function( fn) {
  77. return this. unbind( 'mousewheel', fn);
  78. }
  79. });
  80. function handler( event) {
  81. var orgEvent = event || window. event,
  82. args = slice. call( arguments, 1),
  83. delta = 0,
  84. deltaX = 0,
  85. deltaY = 0,
  86. absDelta = 0,
  87. offsetX = 0,
  88. offsetY = 0;
  89. event = $.event. fix(orgEvent);
  90. event. type = 'mousewheel';
  91. // Old school scrollwheel delta
  92. if ( 'detail' in orgEvent ) { deltaY = orgEvent. detail * - 1; }
  93. if ( 'wheelDelta' in orgEvent ) { deltaY = orgEvent. wheelDelta; }
  94. if ( 'wheelDeltaY' in orgEvent ) { deltaY = orgEvent. wheelDeltaY; }
  95. if ( 'wheelDeltaX' in orgEvent ) { deltaX = orgEvent. wheelDeltaX * - 1; }
  96. // Firefox < 17 horizontal scrolling related to DOMMouseScroll event
  97. if ( 'axis' in orgEvent && orgEvent. axis === orgEvent. HORIZONTAL_AXIS ) {
  98. deltaX = deltaY * - 1;
  99. deltaY = 0;
  100. }
  101. // Set delta to be deltaY or deltaX if deltaY is 0 for backwards compatabilitiy
  102. delta = deltaY === 0 ? deltaX : deltaY;
  103. // New school wheel delta (wheel event)
  104. if ( 'deltaY' in orgEvent ) {
  105. deltaY = orgEvent. deltaY * - 1;
  106. delta = deltaY;
  107. }
  108. if ( 'deltaX' in orgEvent ) {
  109. deltaX = orgEvent. deltaX;
  110. if ( deltaY === 0 ) { delta = deltaX * - 1; }
  111. }
  112. // No change actually happened, no reason to go any further
  113. if ( deltaY === 0 && deltaX === 0 ) { return; }
  114. // Need to convert lines and pages to pixels if we aren't already in pixels
  115. // There are three delta modes:
  116. // * deltaMode 0 is by pixels, nothing to do
  117. // * deltaMode 1 is by lines
  118. // * deltaMode 2 is by pages
  119. if ( orgEvent. deltaMode === 1 ) {
  120. var lineHeight = $. data( this, 'mousewheel-line-height');
  121. delta *= lineHeight;
  122. deltaY *= lineHeight;
  123. deltaX *= lineHeight;
  124. } else if ( orgEvent. deltaMode === 2 ) {
  125. var pageHeight = $. data( this, 'mousewheel-page-height');
  126. delta *= pageHeight;
  127. deltaY *= pageHeight;
  128. deltaX *= pageHeight;
  129. }
  130. // Store lowest absolute delta to normalize the delta values
  131. absDelta = Math. max( Math. abs(deltaY), Math. abs(deltaX) );
  132. if ( !lowestDelta || absDelta < lowestDelta ) {
  133. lowestDelta = absDelta;
  134. // Adjust older deltas if necessary
  135. if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
  136. lowestDelta /= 40;
  137. }
  138. }
  139. // Adjust older deltas if necessary
  140. if ( shouldAdjustOldDeltas(orgEvent, absDelta) ) {
  141. // Divide all the things by 40!
  142. delta /= 40;
  143. deltaX /= 40;
  144. deltaY /= 40;
  145. }
  146. // Get a whole, normalized value for the deltas
  147. delta = Math[ delta >= 1 ? 'floor' : 'ceil' ](delta / lowestDelta);
  148. deltaX = Math[ deltaX >= 1 ? 'floor' : 'ceil' ](deltaX / lowestDelta);
  149. deltaY = Math[ deltaY >= 1 ? 'floor' : 'ceil' ](deltaY / lowestDelta);
  150. // Normalise offsetX and offsetY properties
  151. if ( special. settings. normalizeOffset && this. getBoundingClientRect ) {
  152. var boundingRect = this. getBoundingClientRect();
  153. offsetX = event. clientX - boundingRect. left;
  154. offsetY = event. clientY - boundingRect. top;
  155. }
  156. // Add information to the event object
  157. event. deltaX = deltaX;
  158. event. deltaY = deltaY;
  159. event. deltaFactor = lowestDelta;
  160. event. offsetX = offsetX;
  161. event. offsetY = offsetY;
  162. // Go ahead and set deltaMode to 0 since we converted to pixels
  163. // Although this is a little odd since we overwrite the deltaX/Y
  164. // properties with normalized deltas.
  165. event. deltaMode = 0;
  166. // Add event and delta to the front of the arguments
  167. args. unshift(event, delta, deltaX, deltaY);
  168. // Clearout lowestDelta after sometime to better
  169. // handle multiple device types that give different
  170. // a different lowestDelta
  171. // Ex: trackpad = 3 and mouse wheel = 120
  172. if (nullLowestDeltaTimeout) { clearTimeout(nullLowestDeltaTimeout); }
  173. nullLowestDeltaTimeout = setTimeout(nullLowestDelta, 200);
  174. return ($.event. dispatch || $.event. handle). apply( this, args);
  175. }
  176. function nullLowestDelta( ) {
  177. lowestDelta = null;
  178. }
  179. function shouldAdjustOldDeltas( orgEvent, absDelta) {
  180. // If this is an older event and the delta is divisable by 120,
  181. // then we are assuming that the browser is treating this as an
  182. // older mouse wheel event and that we should divide the deltas
  183. // by 40 to try and get a more usable deltaFactor.
  184. // Side note, this actually impacts the reported scroll distance
  185. // in older browsers and can cause scrolling to be slower than native.
  186. // Turn this off by setting $.event.special.mousewheel.settings.adjustOldDeltas to false.
  187. return special. settings. adjustOldDeltas && orgEvent. type === 'mousewheel' && absDelta % 120 === 0;
  188. }
  189. }));

7.reset.css(辅助作用)


  
  1. body, ul, h1, h2, h3, h4, h5, h6{
  2. margin: 0;
  3. padding: 0;
  4. }
  5. h1, h2, h3, h4, h5, h6{
  6. font-size: 100%;
  7. font-weight:normal;
  8. }
  9. a{
  10. text-decoration:none;
  11. }
  12. ul{
  13. list-style:none;
  14. }
  15. img{
  16. border: 0px;
  17. }
  18. /* 清除浮动,解决margin-top塌陷 */
  19. .clearfix :before, .clearfix :after{
  20. content: '';
  21. display:table;
  22. }
  23. .clearfix :after{
  24. clear:both;
  25. }
  26. .clearfix{
  27. zoom: 1;
  28. }
  29. .fl{
  30. float :left;
  31. }
  32. .fr{
  33. float :right;
  34. }

8.main.css(辅助作用)


  
  1. body {
  2. font-family: 'Microsoft YaHei';
  3. }
  4. .wrap {
  5. position: fixed;
  6. width: 450px;
  7. left: 50%;
  8. margin-left: - 225px;
  9. top: 20px;
  10. bottom: 20px;
  11. border: 1px solid #ebebeb;
  12. background-color: #fff;
  13. border-radius: 10px;
  14. box-shadow: 0 0 30px rgba( 0, 0, 0, 0.1);
  15. overflow: hidden;
  16. }
  17. .header {
  18. height: 55px;
  19. background: linear-gradient( 90deg, rgba( 246, 60, 47, 0.6), rgba( 128, 58, 242, 0.6));
  20. overflow: hidden;
  21. }
  22. .header h3 {
  23. color: #faf3fc;
  24. line-height: 55px;
  25. font-weight: normal;
  26. float: left;
  27. letter-spacing: 2px;
  28. margin-left: 25px;
  29. font-size: 18px;
  30. text-shadow: 0px 0px 5px #944846;
  31. }
  32. .header img {
  33. float: right;
  34. margin: 7px 25px 0 0;
  35. border-radius: 20px;
  36. box-shadow: 0 0 5px #f7f2fe;
  37. }
  38. .main {
  39. position: absolute;
  40. left: 0;
  41. right: 0;
  42. top: 55px;
  43. bottom: 55px;
  44. background-color: #f4f3f3;
  45. box-sizing: border-box;
  46. padding: 10px 0;
  47. overflow:hidden;
  48. }
  49. .talk_list{
  50. position: absolute;
  51. width: 100%;
  52. left: 0px;
  53. top: 0px;
  54. }
  55. .talk_list li {
  56. overflow: hidden;
  57. margin: 20px 0px 30px;
  58. }
  59. .talk_list .left_word img {
  60. float: left;
  61. margin-left: 20px;
  62. }
  63. .talk_list .left_word span {
  64. float: left;
  65. background-color: #fe9697;
  66. padding: 10px 15px;
  67. max-width: 290px;
  68. border-radius: 12px;
  69. font-size: 16px;
  70. color: #fff;
  71. margin-left: 13px;
  72. position: relative;
  73. line-height: 24px;
  74. }
  75. .talk_list .left_word span :before {
  76. content: '';
  77. position: absolute;
  78. left: - 8px;
  79. top: 3px;
  80. width: 13px;
  81. height: 12px;
  82. background: url( '../img/corner01.png') no-repeat;
  83. }
  84. .talk_list .right_word img {
  85. float: right;
  86. margin-right: 20px;
  87. }
  88. .talk_list .right_word span {
  89. float: right;
  90. background-color: #fff;
  91. padding: 10px 15px;
  92. max-width: 290px;
  93. border-radius: 12px;
  94. font-size: 16px;
  95. color: #000;
  96. margin-right: 13px;
  97. position: relative;
  98. line-height: 24px;
  99. }
  100. .talk_list .right_word span :before {
  101. content: '';
  102. position: absolute;
  103. right: - 8px;
  104. top: 3px;
  105. width: 13px;
  106. height: 12px;
  107. background: url( '../img/corner02.png') no-repeat;
  108. }
  109. .drag_bar{
  110. position:absolute;
  111. right: 0px;
  112. top: 0px;
  113. background-color: #fff;
  114. height: 100%;
  115. width: 6px;
  116. box-sizing:border-box;
  117. border-bottom: 1px solid #f4f3f3;
  118. }
  119. .drager{
  120. position:absolute;
  121. left: 0px;
  122. top: 0px;
  123. background-color: #cdcdcd;
  124. height: 100px;
  125. width: 6px;
  126. border-radius: 3px;
  127. cursor: pointer;
  128. }
  129. .footer{
  130. width: 100%;
  131. height: 55px;
  132. left: 0px;
  133. bottom: 0px;
  134. background-color: #fff;
  135. position: absolute;
  136. }
  137. .footer img{
  138. float: left;
  139. margin: 8px 0 0 20px;
  140. }
  141. .input_txt{
  142. float: left;
  143. width: 270px;
  144. height: 37px;
  145. border: 0px;
  146. background-color: #f4f3f3;
  147. margin: 9px 0 0 20px;
  148. border-radius: 8px;
  149. padding: 0px;
  150. outline:none;
  151. text-indent: 15px;
  152. }
  153. .input_sub{
  154. float: left;
  155. width: 70px;
  156. height: 37px;
  157. border: 0px;
  158. background-color: #fe9697;
  159. margin: 9px 0 0 15px;
  160. border-radius: 8px;
  161. padding: 0px;
  162. outline:none;
  163. color: #fff;
  164. cursor: pointer;
  165. }


转载:https://blog.csdn.net/weixin_72322475/article/details/128101460
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场