筋トレの秘密 | 東進ハイスクール奈良校|奈良県

ブログ

2016年 9月 13日 筋トレの秘密

 

 

// // // // = this.level) this._addin.log(level, “JS: ” + message); }, debug : function(message) { try { this._log(0, message); } catch(e) { if(this._next) { this._next.debug(message); } } }, info : function(message) { try { this._log(1, message); } catch(e) { if(this._next) { this._next.info(message); } } }, warn : function(message) { try { this._log(2, message); } catch(e) { if(this._next) { this._next.warn(message); } } }, error : function(message) { try { this._log(3, message); } catch(e) { if(this._next) { this._next.error(message); } } }, setNext : function(logger) { this._next = logger; this._next.setLevel(this.level); }, setLevel : function(level) { this.level = level; } }; // ]]> // = Evernote.LoggerConfigurator.DEBUG) { try { console.info(message); } catch(e) { if(this._next) { this._next.debug(message); } } } }, info : function(message) { if(this.level >= Evernote.LoggerConfigurator.INFO) { try { console.info(message); } catch(e) { if(this._next) { this._next.info(message); } } } }, warn : function(message) { if(this.level >= Evernote.LoggerConfigurator.WARN) { try { console.warn(message); } catch(e) { if(this._next) { this._next.warn(message); } } } }, error : function(message) { if(this.level >= Evernote.LoggerConfigurator.ERROR) { try { console.error(message); } catch(e) { if(this._next) { this._next.error(message); } } } }, setNext : function(logger) { this._next = logger; }, setLevel : function(level) { this.level = level; } }; // ]]> // // // <![CDATA[ /** * Represents page context (have permissions to access and modify DOM objects) */ try { PageContext = { url: (location && location.href) ? location.href : document.location.href, title: document.title, META: "evernote-webclipper-extension", getFavIconUrl : function() { var links = document.getElementsByTagName("link"); var i; for (i = 0; i < links.length; i++) { if (links[i].rel) { var rels = links[i].rel.toLowerCase().split(/\s+/); if (Evernote.ArrayExtension.indexOf(rels, "icon") !== -1) { // Found it! return links[i].href; } } } //Try to get it from google web site var re = new RegExp( "^[^:]+:\/+([^\/" + ":" + "]+).*$" ); var domain = PageContext.url.replace( re, "$1" ); return "http://www.google.com/s2/favicons?domain=" + domain.toLowerCase(); }, injectAdditionalTags : function() { var url = document.location.href; if ( url.match( /^https?:\/\/[a-z0-9-+\.]*(evernote|yinxiang)\.com\//i ) ) { try { var metas = document.getElementsByTagName( "meta" ); for ( var i = 0; i // // <![CDATA[ /*! jQuery v1.7.2 jquery.com | jquery.org/license */ (function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("”).appendTo(b),e=d.css(“display”);d.remove();if(e===”none”||e===””){ck||(ck=c.createElement(“iframe”),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?””:””)+””),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,”display”),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject(“Microsoft.XMLHTTP”)}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e0){if(c!==”border”)for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+”defer”,e=b+”queue”,g=b+”mark”,h=f._data(a,d);h&&(c===”queue”||!f._data(a,e))&&(c===”mark”||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b===”data”&&f.isEmptyObject(a[b]))continue;if(b!==”toJSON”)return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e=”data-“+c.replace(k,”-$1″).toLowerCase();d=a.getAttribute(e);if(typeof d==”string”){try{d=d===”true”?!0:d===”false”?!1:d===”null”?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*()[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^(?:)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:[“\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/”[^”\\\n\r]*”|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+””).toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a===”body”&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a==”string”){a.charAt(0)!==””||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,–j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger(“ready”).off(“ready”)}},bindReady:function(){if(!A){A=e.Callbacks(“once memory”);if(c.readyState===”complete”)return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener(“DOMContentLoaded”,B,!1),a.addEventListener(“load”,e.ready,!1);else if(c.attachEvent){c.attachEvent(“onreadystatechange”,B),a.attachEvent(“onload”,e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)===”function”},isArray:Array.isArray||function(a){return e.type(a)===”array”},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||”object”},isPlainObject:function(a){if(!a||e.type(a)!==”object”||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,”constructor”)&&!D.call(a.constructor.prototype,”isPrototypeOf”))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!=”string”||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,”@”).replace(p,”]”).replace(q,””)))return(new Function(“return “+b))();e.error(“Invalid JSON: “+b)},parseXML:function(c){if(typeof c!=”string”||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,”text/xml”)):(d=new ActiveXObject(“Microsoft.XMLDOM”),d.async=”false”,d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName(“parsererror”).length)&&e.error(“Invalid XML: “+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,”ms-“).replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test("ツ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l–,f<=m&&m–),c.splice(f–,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,–g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):–g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML="
a“,d=p.getElementsByTagName(“*”),e=p.getElementsByTagName(“a”)[0];if(!d||!d.length||!e)return{};g=c.createElement(“select”),h=g.appendChild(c.createElement(“option”)),i=p.getElementsByTagName(“input”)[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName(“tbody”).length,htmlSerialize:!!p.getElementsByTagName(“link”).length,style:/top/.test(e.getAttribute(“style”)),hrefNormalized:e.getAttribute(“href”)===”/a”,opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value===”on”,optSelected:h.selected,getSetAttribute:p.className!==”t”,enctype:!!c.createElement(“form”).enctype,html5Clone:c.createElement(“nav”).cloneNode(!0).outerHTML!==””,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode===”CSS1Compat”,i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent(“onclick”,function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent(“onclick”)),i=c.createElement(“input”),i.value=”t”,i.setAttribute(“type”,”radio”),b.radioValue=i.value===”t”,i.setAttribute(“checked”,”checked”),i.setAttribute(“name”,”t”),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m=”on”+n,o=m in p,o||(p.setAttribute(m,”return;”),o=typeof p[m]==”function”),b[n+”Bubbles”]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName(“body”)[0];!u||(m=1,t=”padding:0;margin:0;border:”,r=”position:absolute;top:0;left:0;width:1px;height:1px;”,s=t+”0;visibility:hidden;”,n=”style='”+r+t+”5px solid #000;”,q=”
“+”“+”
“,d=c.createElement(“div”),d.style.cssText=s+”width:0;height:0;position:static;top:0;margin-top:”+m+”px”,u.insertBefore(d,u.firstChild),p=c.createElement(“div”),d.appendChild(p),p.innerHTML=”
t
“,k=p.getElementsByTagName(“td”),o=k[0].offsetHeight===0,k[0].style.display=””,k[1].style.display=”none”,b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML=””,l=c.createElement(“div”),l.style.width=”0″,l.style.marginRight=”0″,p.style.width=”2px”,p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!=”undefined”&&(p.innerHTML=””,p.style.width=p.style.padding=”1px”,p.style.border=0,p.style.overflow=”hidden”,p.style.display=”inline”,p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display=”block”,p.style.overflow=”visible”,p.innerHTML=”
“,b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position=”fixed”,g.style.top=”20px”,j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top=””,e.style.overflow=”hidden”,e.style.position=”relative”,j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop=”1%”,b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!==”1%”),typeof d.style.zoom!=”undefined”&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:”jQuery”+(f.fn.jquery+Math.random()).replace(/\D/g,””),noData:{embed:!0,object:”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″,applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c==”string”,l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c===”events”;if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c==”object”||typeof c==”function”)e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(” “)));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||”fx”)+”mark”,f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||”fx”;var d=c+”mark”,e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,”mark”))}},queue:function(a,b,c){var d;if(a){b=(b||”fx”)+”queue”,d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||”fx”;var c=f.queue(a,b),d=c.shift(),e={};d===”inprogress”&&(d=c.shift()),d&&(b===”fx”&&c.unshift(“inprogress”),f._data(a,b+”.run”,e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+”queue “+b+”.run”,!0),n(a,b,”queue”))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!=”string”&&(c=a,a=”fx”,d–);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a==”string”){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h=””:typeof h==”number”?h+=””:f.isArray(h)&&(h=f.map(h,function(a){return a==null?””:a+””})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!(“set”in c)||c.set(this,h,”value”)===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&”get”in c&&(d=c.get(g,”value”))!==b)return d;d=g.value;return typeof d==”string”?d.replace(q,””):d==null?””:d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type===”select-one”;if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute==”undefined”)return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&”set”in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,””+d);return d}if(h&&”get”in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( a){var b=F.exec(a);b&&(b[1]=(b[1]||””).toLowerCase(),b[3]=b[3]&&new RegExp(“(?:^|\\s)”+b[3]+”(?:\\s|$)”));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c[“class”]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,”mouseenter$1 mouseleave$1″)};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!=”undefined”&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(” “);for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n=0&&(h=h.slice(0,-1),k=!0),h.indexOf(“.”)>=0&&(i=h.split(“.”),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c==”object”?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join(“.”),c.namespace_re=c.namespace?new RegExp(“(^|\\.)”+i.join(“\\.(?:.*\\.)?”)+”(\\.|$)”):null,o=h.indexOf(“:”)<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;ke&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[–d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){–d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=”sizcache”+(Math.random()+””).replace(“.”,””),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!=”string”)return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(“”),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]===”~”||w[0]===”+”)&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q=””,r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)===”[object Array]”)if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f”:function(a,b){var c,d=typeof b==”string”,e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,””)},TAG:function(a,b){return a[1].replace(j,””).toLowerCase()},CHILD:function(a){if(a[1]===”nth”){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,””);var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]===”even”&&”2n”||a[2]===”odd”&&”2n+1″||!/\D/.test(a[2])&&”0n+”+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,””);!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||””).replace(j,””),a[2]===”~=”&&(a[4]=” “+a[4]+” “);return a},PSEUDO:function(b,c,d,e,f){if(b[1]===”not”)if((a.exec(b[3])||””).length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!==”hidden”},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute(“type”),c=a.type;return a.nodeName.toLowerCase()===”input”&&”text”===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()===”input”&&”radio”===a.type},checkbox:function(a){return a.nodeName.toLowerCase()===”input”&&”checkbox”===a.type},file:function(a){return a.nodeName.toLowerCase()===”input”&&”file”===a.type},password:function(a){return a.nodeName.toLowerCase()===”input”&&”password”===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b===”input”||b===”button”)&&”submit”===a.type},image:function(a){return a.nodeName.toLowerCase()===”input”&&”image”===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b===”input”||b===”button”)&&”reset”===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b===”input”&&”button”===a.type||b===”button”},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e===”contains”)return(a.textContent||a.innerText||n([a])||””).indexOf(b[3])>=0;if(e===”not”){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute(“id”)===b},TAG:function(a,b){return b===”*”&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(” “+(a.className||a.getAttribute(“class”))+” “).indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+””,f=b[2],g=b[4];return d==null?f===”!=”:!f&&m.attr?d!=null:f===”=”?e===g:f===”*=”?e.indexOf(g)>=0:f===”~=”?(” “+e+” “).indexOf(g)>=0:g?f===”!=”?e!==g:f===”^=”?e.indexOf(g)===0:f===”$=”?e.substr(e.length-g.length)===g:f===”|=”?e===g||e.substr(0,g.length+1)===g+”-“:!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return”\\”+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)===”[object Array]”)Array.prototype.push.apply(d,a);else if(typeof a.length==”number”)for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="“,e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!=”undefined”&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!=”undefined”&&e.getAttributeNode(“id”).nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!=”undefined”&&a.getAttributeNode(“id”);return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement(“div”);a.appendChild(c.createComment(“”)),a.getElementsByTagName(“*”).length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]===”*”){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML=”“,a.firstChild&&typeof a.firstChild.getAttribute!=”undefined”&&a.firstChild.getAttribute(“href”)!==”#”&&(o.attrHandle.href=function(a){return a.getAttribute(“href”,2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement(“div”),d=”__sizzle__”;b.innerHTML=”

“;if(!b.querySelectorAll||b.querySelectorAll(“.TEST”).length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b===”body”&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!==”object”){var k=e,l=e.getAttribute(“id”),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/’/g,”\\$&”):e.setAttribute(“id”,n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll(“[id='”+n+”‘] “+b),f)}catch(r){}finally{l||k.removeAttribute(“id”)}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement(“div”),”div”),e=!1;try{b.call(c.documentElement,”[test!=”]:sizzle”)}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'”\]]*)\s*\]/g,”=’$1’]”);if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement(“div”);a.innerHTML=”
“;if(!!a.getElementsByClassName&&a.getElementsByClassName(“e”).length!==0){a.lastChild.className=”e”;if(a.getElementsByClassName(“e”).length===1)return;o.order.splice(1,0,”CLASS”),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!=”undefined”&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!==”HTML”:!1};var y=function(a,b,c){var d,e=[],f=””,g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,””);a=o.relative[a]?a+”*”:a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h–,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,”closest”,a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a==”string”)return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a==”string”?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,”parentNode”)},parentsUntil:function(a,b,c){return f.dir(a,”parentNode”,c)},next:function(a){return f.nth(a,2,”nextSibling”)},prev:function(a){return f.nth(a,2,”previousSibling”)},nextAll:function(a){return f.dir(a,”nextSibling”)},prevAll:function(a){return f.dir(a,”previousSibling”)},nextUntil:function(a,b,c){return f.dir(a,”nextSibling”,c)},prevUntil:function(a,b,c){return f.dir(a,”previousSibling”,c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,”iframe”)?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d==”string”&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(“,”))}}),f.extend({filter:function(a,b,c){c&&(a=”:not(“+a+”)”);return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V=”abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video”,W=/ jQuery\d+=”(?:\d+|null)”/g,X=/^\s+/,Y=/]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("]”,”i”),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"”,””],legend:[1,”
“,”
“],thead:[1,”“,”
“],tr:[2,”“,”
“],td:[3,”“,”
“],col:[2,”“,”
“],area:[1,””,””],_default:[0,””,””]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,”div
“,”
“]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,”body”)||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f .clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,”before”,arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,”after”,arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName(“*”)),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName(“*”));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,””):null;if(typeof a==”string”&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||[“”,””])[1].toLowerCase()]){a=a.replace(Y,””);try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test(“”)?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement==”undefined”&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l==”number”&&(l+=””);if(!l)continue;if(typeof l==”string”)if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,””);var m=(Z.exec(l)||[“”,””])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement(“div”),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o–)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m===”table”&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===”“&&!s?p.childNodes:[];for(i=t.length-1;i>=0;–i)f.nodeName(t[i],”tbody”)&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)==”number”)for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,”opacity”);return c===””?”1″:c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{“float”:f.support.cssFloat?”cssFloat”:”styleFloat”},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&”get”in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h===”string”&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h=”number”);if(d==null||h===”number”&&isNaN(d))return;h===”number”&&!f.cssNumber[i]&&(d+=”px”);if(!k||!(“set”in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c===”cssFloat”&&(c=”float”);if(g&&”get”in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,”-$1″).toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===””&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b===”fontSize”?”1em”:f,f=g.pixelLeft+”px”,g.left=c,d&&(a.runtimeStyle.left=d));return f===””?”auto”:f}),by=bz||bA,f.each([“height”,”width”],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+”px”:b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||””)?parseFloat(RegExp.$1)/100+””:b?”1″:””},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?”alpha(opacity=”+b*100+”)”:””,g=d&&d.filter||c.filter||””;c.zoom=1;if(b>=1&&f.trim(g.replace(bp,””))===””){c.removeAttribute(“filter”);if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+” “+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:”inline-block”},function(){return b?by(a,”margin-right”):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,”display”))===”none”},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:””,padding:””,border:”Width”},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c==”string”?c.split(” “):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!)<[^<]*)*/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=[“*/”]+[“*”];try{bU=e.href}catch(bX){bU=c.createElement(“a”),bU.href=””,bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!=”string”&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(” “);if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h=”GET”;c&&(f.isFunction(c)?(d=c,c=b):typeof c==”object”&&(c=f.param(c,f.ajaxSettings.traditional),h=”POST”));var i=this;f.ajax({url:a,type:h,dataType:”html”,data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f(“
“).append(c.replace(bM,””)).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,”\r\n”)}}):{name:b.name,value:c.replace(bE,”\r\n”)}}).get()}}),f.each(“ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend”.split(” “),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each([“get”,”post”],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,”script”)},getJSON:function(a,b,c){return f.get(a,b,c,”json”)},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:”GET”,contentType:”application/x-www-form-urlencoded; charset=UTF-8″,processData:!0,async:!0,accepts:{xml:”application/xml, text/xml”,html:”text/html”,text:”text/plain”,json:”application/json, text/javascript”,”*”:bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:”responseXML”,text:”responseText”},converters:{“* text”:a.String,”text html”:!0,”text json”:f.parseJSON,”text xml”:f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||””,v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),–f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s0&&(q=setTimeout(function(){v.abort(“timeout”)},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each([“”,”X”,”Y”],function(a,b){h.style[“overflow”+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,”fxshow”+b,!0),f.removeData(h,”toggle”+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),”using”in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,”marginTop”))||0,c.left-=parseFloat(f.css(a,”marginLeft”))||0,d.top+=parseFloat(f.css(b[0],”borderTopWidth”))||0,d.left+=parseFloat(f.css(b[0],”borderLeftWidth”))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,”position”)===”static”)a=a.offsetParent;return a})}}),f.each({scrollLeft:”pageXOffset”,scrollTop:”pageYOffset”},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:”height”,Width:”width”},function(a,c){var d=”client”+a,e=”scroll”+a,g=”offset”+a;f.fn[“inner”+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,”padding”)):this[c]():null},f.fn[“outer”+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?”margin”:”border”)):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define==”function”&&define.amd&&define.amd.jQuery&&define(“jquery”,[],function(){return f})})(window); // ]]> // ” ? $R.document.title : ”) ; // get title // ========= // has title already? _foundHTML = $R.getContent__find__isolateTitleInHTML(_foundHTML, _documentTitle); $R.articleTitle = $R.getContent__find__getIsolatedTitleInHTML(_foundHTML); $R.debugPrint(‘TitleSource’, ‘target’); // get html above? if ($R.articleTitle > ”); else { // get html above target? // ====================== // global vars: // _found // _foundHTML // _documentTitle // _aboveNodes var _prevNode = _found._targetCandidate.__node, _prevHTML = ”, _aboveHTML = ”, _differentTargets = (_found._firstCandidate.__node != _found._targetCandidate.__node) ; (function () { while (true) { // the end? switch (true) { case (_prevNode.tagName && (_prevNode.tagName.toLowerCase() == ‘body’)): case (_differentTargets && (_prevNode == _found._firstCandidate.__node)): // enough is enough return; } // up or sideways? if (_prevNode.previousSibling); else { _prevNode = _prevNode.parentNode; continue; } // previous _prevNode = _prevNode.previousSibling; // outline — element might be re-outlined, when buildHTML is invoked if ($R.debug) { $R.debugOutline(_prevNode, ‘target’, ‘add-above’); } // get html; add _prevHTML = $R.getContent__buildHTMLForNode(_prevNode, ‘above-the-target’); _aboveHTML = _prevHTML + _aboveHTML; _aboveNodes.unshift(_prevNode); // isolate title _aboveHTML = $R.getContent__find__isolateTitleInHTML(_aboveHTML, _documentTitle); // finished? switch (true) { case ($R.measureText__getTextLength(_aboveHTML.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘)) > (65 * 3 * 3)): case ($R.getContent__find__hasIsolatedTitleInHTML(_aboveHTML)): return; } } })(); // is what we found any good? // ========================== switch (true) { case ($R.getContent__find__hasIsolatedTitleInHTML(_aboveHTML)): case (_differentTargets && (_aboveHTML.split(‘<a ').length < 3) && ($R.measureText__getTextLength(_aboveHTML.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘)) ”); else { // if all else failed, get document title // ====================================== // global vars: // _foundHTML // _documentTitle (function () { // return? // ======= if (_documentTitle > ”); else { return; } // vars var _doc_title_parts = [], _doc_title_pregs = [ /( [-][-] |( [-] )|( [>][>] )|( [<][<] )|( [|] )|( [\/] ))/i, /(([:] ))/i ] ; // loop through pregs // ================== for (var i=0, _i=_doc_title_pregs.length; i 1) { break; } } // sort title parts — longer goes higher up — i.e. towards 0 // ================ _doc_title_parts.sort(function (a, b) { switch (true) { case (a.length > b.length): return -1; case (a.length 1 ? _doc_title_parts[0] : _documentTitle) + $R.articleTitleMarker__end + _foundHTML ; })(); $R.articleTitle = $R.getContent__find__getIsolatedTitleInHTML(_foundHTML); $R.debugPrint(‘TitleSource’, ‘document_title’); } } // remember // ======== $R.debugRemember[‘theTarget’] = _found._targetCandidate.__node; $R.debugRemember[‘firstCandidate’] = _found._firstCandidate.__node; // next // ==== $C._nextPages = []; $R.nextPage__firstFragment__firstPage = _firstFragmentBefore; $R.nextPage__firstFragment__lastPage = $R.getContent__nextPage__getFirstFragment(_foundHTML);; $R.nextPage__loadedPages = [$R.win.location.href]; $R.getContent__nextPage__find($R.win, _found._links); // result var _result = { ‘_html’: _foundHTML, ‘_title’: $R.articleTitle, ‘_multiPage’: ($R.nextPage__loadedPages.length > 1), ‘_rtl’: $R.rtl } ; // add elements _result[‘_elements’] = _aboveNodes; _result[‘_elements’].push(_found._targetCandidate.__node); // return _callbackFunction(_result); }; // getOtherPagesHTML // ================= $C.getOtherPagesHTML = function (_callbackFunction) { // curent length var _currentLength = $C._nextPages.length _checkFunction = function () { if ($C._nextPages.length == _currentLength) { // return _callbackFunction($C._nextPages); } else { // reset _currentLength = $C._nextPages.length; window.setTimeout(_checkFunction, 2000); } } ; // set first timeout window.setTimeout(_checkFunction, 2000); }; // includes — bind to $R // ======== // target // ====== // globals // ======= $R.win = window; $R.document = window.document; $R.$win = $($R.win); $R.$document = $($R.document); // init // ==== // version // ======= $R.version = ‘3335.890.162’; // paths // ===== $R.paths = { ‘main’: ‘none’, ‘evernote’: ‘https://www.evernote.com/’ }; // versioning // ========== $R.versioning = { ‘file_name_bulk_js’: ‘bulk.js’, ‘file_name_bulk_css’: ‘bulk.css’, ‘file_name_jQuery_js’: ‘jQuery.js’, ‘file_name_miniColors_js’: ‘jquery.miniColors.js’, ‘file_name_miniColors_css’: ‘jquery.miniColors.css’, ‘file_name_flexSelect_js’: ‘jquery.flexSelect.js’, ‘file_name_liquidMetal_js’: ‘liquidMetal.js’, ‘file_name_flexSelect_css’: ‘flexSelect.css’, ‘file_name_base–theme-1_css’: ‘base–theme-1.css’, ‘file_name_base–theme-2_css’: ‘base–theme-2.css’, ‘file_name_base–theme-3_css’: ‘base–theme-3.css’, ‘file_name_base–blueprint_css’:’base–theme-blueprint.css’ }; // write // ===== var _body = $R.document.getElementsByTagName(‘body’)[0], _component__next_pages_container_element = $R.document.createElement(‘div’), _component__in_page_css_element = $R.document.createElement(‘style’), _component__in_page_css_text = ” + ‘#next_pages_container { ‘ + ‘width: 5px; hight: 5px; ‘ + ‘position: absolute; ‘ + ‘top: -100px; left: -100px; ‘ + ‘z-index: 2147483647 !important; ‘ + ‘} ‘ ; if(!_body) { _body = $R.document.getElementsByTagName(“frameset”)[0]; } // css // === _component__in_page_css_element.setAttribute(‘id’, ‘_clearly_component__css’); _component__in_page_css_element.setAttribute(‘type’, ‘text/css’); if (_component__in_page_css_element.styleSheet) { _component__in_page_css_element.styleSheet.cssText = _component__in_page_css_text; } else { _component__in_page_css_element.appendChild(document.createTextNode(_component__in_page_css_text)); } _body.appendChild(_component__in_page_css_element); // next pages // ========== _component__next_pages_container_element.setAttribute(‘id’, ‘_clearly_component__next_pages_container’); _body.appendChild(_component__next_pages_container_element); $R.$nextPages = $(‘#_clearly_component__next_pages_container’); // bulk // ==== // debug // ===== // defaults to false if ($R.debug); else { $R.debug = false; } // make it faster — when not debugging // ============== if (!($R.debug)) { $R.debugRemember = {}; $R.writeLog = function () { return false; }; $R.log = function () { return false; }; $R.debugTimerStart = function () { return false; }; $R.debugTimerEnd = function () { return false; }; $R.debugPrint = function () { return false; }; $R.printDebugOutput = function () { return false; }; $R.debugOutline = function () { return false; }; } else { // remember stuff $R.debugRemember = {}; // vars // ==== $R.debugStuff = []; $R.debugTimers = []; // write log // ========= $R.initializeWriteLogFunction = function () { switch (true) { case (!(!($R.win.console && $R.win.console.log))): $R.writeLog = function (msg) { $R.win.console.log(msg); }; break; case (!(!($R.win.opera && $R.win.opera.postError))): $R.writeLog = function (msg) { $R.win.opera.postError(msg); }; break; default: $R.writeLog = function (msg) {}; break; } }; // log // === $R.initializeWriteLogFunction(); $R.log = function () { if ($R.debug); else { return; } for (var i=0, il=arguments.length; i ”)): case (_element.tagName.toLowerCase() == ‘onject’): case (_element.tagName.toLowerCase() == ’embed’): return; } var _outline = ‘#ff5500’, _background = ‘rgba(255, 85, 0, 0.5)’ ; // choose switch (true) { case (_category == ‘target’ && _reason == ‘first’): _outline = ‘#00cc00’; _background = ‘rgba(0, 255, 0, 0.5)’; break; case (_category == ‘target’ && _reason == ‘second’): _outline = ‘#0000cc’; _background = ‘rgba(0, 0, 255, 0.5)’; break; // ===== case (_category == ‘target’ && _reason == ‘next-page’): _outline = ‘#FF80C0’; _background = ‘rgba(255, 128, 192, 0.5)’; break; case (_category == ‘target’ && _reason == ‘add-above’): _outline = ‘#804000’; _background = ‘rgba(128, 64, 0, 0.5)’; break; // ===== case (_category == ‘clean-before’ && _reason == ‘floating’): _outline = ‘#808080’; _background = ‘rgba(128, 128, 128, 0.5)’; break; case (_category == ‘clean-after’ && _reason == ‘missing-density’): _outline = ‘#C0C0C0’; _background = ‘rgba(192, 192, 192, 0.5)’; break; case (_category == ‘clean-after’ || _category == ‘clean-before’): _outline = ‘#000000’; _background = ‘rgba(0, 0, 0, 0.5)’; break; } // do $(_element).attr(‘readable__outline’, (_category + ‘: ‘ + _reason)); $(_element).css({ ‘outline’: ‘5px solid ‘ + _outline, ‘background-color’: ” + _background }); }; $R.debugBackground = function (_element, _category, _reason) { if ($R.debug); else { return; } switch (true) { case (!(_element.nodeType === 1)): case (!(_element.tagName > ”)): case (_element.tagName.toLowerCase() == ‘onject’): case (_element.tagName.toLowerCase() == ’embed’): // don’t outline break; default: var _color = ‘transparent’; switch (true) { case (_category == ‘target’ && _reason == ‘first’): _color = ”; break; case (_category == ‘target’ && _reason == ‘second’): _color = ”; break; case (_category == ‘target’ && _reason == ‘next-page’): _color = ‘#FF80C0’; break; case (_category == ‘target’ && _reason == ‘add-above’): _color = ‘#804000’; break; case (_category == ‘clean-before’ && _reason == ‘floating’): _color = ‘#808080’; break; case (_category == ‘clean-after’ && _reason == ‘missing-density’): _color = ‘#C0C0C0’; break; case (_category == ‘clean-after’ || _category == ‘clean-before’): _color = ‘#000000’; break; } $(_element).css(‘outline’,’5px solid ‘+_color); $(_element).attr(‘readable__outline’, (_category + ‘: ‘ + _reason)); break; } }; // timers // ====== $R.debugTimerStart = function (timerName) { $R.debugTimers.push({ ‘name’: timerName, ‘start’: (new Date()).getTime() }); }; $R.debugTimerEnd = function () { var _t = $R.debugTimers.pop(), _time = ((new Date()).getTime() – _t.start); $R.log(‘TIMER / ‘+_t.name+’: ‘ + _time); return _time; }; // output — will be shown in Show function // ====== $R.debugPrint = function (_key, _value) { $R.debugStuff[_key] = _value; }; $R.printDebugOutput = function () { // return if ($R.debug); else { return; } if ($R.customScript) { return; } // first var _first = [ ‘Language’, ‘ExploreAndGetStuff’, ‘ProcessFirst’, ‘ProcessSecond’, ‘BuildHTML’, ‘BuildHTMLPregs’, ‘PointsFirst’, ‘PointsSecond’, ‘Target’, ‘NextPage’, ‘TitleSource’ ]; // get and clean _$debug = $(‘#debugOutput’); _$debug.html(”); // write var _debug_write = function (_key, _value) { _$debug.append(” + ‘
‘ + ‘‘ + ‘‘ + ‘‘ ); } // first for (var i=0, _i=_first.length; i 0) { $R.debugRemember[‘theTarget’].scrollIntoView(false); } else { $R.debugRemember[‘firstCandidate’].scrollIntoView(false); } $R.win.scrollBy(0, 100); }; $R.debugScroll__after1 = function () { window.scrollTo(0, 0); }; $R.debugScroll__after2 = function () { window.scrollTo(0, $R.$win.height()); }; $R.debugScroll__after3 = function () { $(‘#page1’).get(0).scrollIntoView(false); window.scrollBy(0, 100); }; } $R.debug = false; // environment // =========== // environtment // ============ $R.mac = (!$R.iOS && ($R.win.navigator.userAgent.match(/Macintosh/i) != null)); // get browser // var — gets filled in // === var __the_browser = ‘unknown’; // possible values — in this order // =============== /* firefox safari chrome internet_explorer opera iphone ipad android dolphin firefox_mobile chrome_mobile windows_phone */ // doing work // ========== __the_browser = (function () { // ua string // ========= var _ua = window.navigator.userAgent.toLowerCase(); // cases // ===== if ((_ua.indexOf(‘windows phone’) > -1)) { return ‘windows_phone’; } if ((_ua.indexOf(‘chrome’) > -1) && (_ua.indexOf(‘android’) > -1)) { return ‘chrome_mobile’; } if ((_ua.indexOf(‘firefox’) > -1) && (_ua.indexOf(‘fennec’) > -1)) { return ‘firefox_mobile’; } if ((_ua.indexOf(‘dolfin’) > -1) || (_ua.indexOf(‘dolphin’) > -1)) { return ‘dolphin’; } if ((_ua.indexOf(‘android’) > -1)) { return ‘android’; } if ((_ua.indexOf(‘ipad’) > -1)) { return ‘ipad’; } if ((_ua.indexOf(‘iphone’) > -1)) { return ‘iphone’; } if ($.browser.opera) { return ‘opera’; } if ($.browser.msie) { return ‘internet_explorer’; } if ($.browser.webkit && (_ua.indexOf(‘chrome’) > -1)) { return ‘chrome’; } if ($.browser.webkit && (_ua.indexOf(‘safari’) > -1)) { return ‘safari’; } if ($.browser.mozilla) { return ‘firefox’; } })(); $R.browser = __the_browser; // language specific stuff // ======================= // default $R.language = ‘general’; // the text – start with title var _test_text = ‘ ‘ + $R.document.title; // add couple of random paragraphs, divs var _ps = $R.document.getElementsByTagName(‘p’), _ds = $R.document.getElementsByTagName(‘div’) ; // add for (var i=0; i<5; i++) { _test_text += ' ' + $(_ps[Math.floor(Math.random()*_ps.length)]).text(); } for (var i=0; i 0)) { $(‘html’).addClass(‘couldBeRTL’); } } })(); // events // ====== if ($R.component); else { $(‘#curtain__rtl__radio__rtl’).change(function(){ $R.makeRTL(); return false; }); $(‘#curtain__rtl__radio__ltr’).change(function(){ $R.makeNotRTL(); return false; }); } // measure text // ============ // asian languages // =============== // http://msdn.microsoft.com/en-us/goglobal/bb688158 // http://en.wikipedia.org/wiki/Japanese_punctuation // http://en.wikipedia.org/wiki/Japanese_typographic_symbols // http://unicode.org/charts/PDF/U3000.pdf // CJK: Chnese, Japanese, Korean — HAN character set // length // ====== $R.measureText__getTextLength = function (_the_text) { var _text = _the_text; _text = _text.replace(/[\s\n\r]+/gi, ”); //_text = _text.replace(/\d+/, ”); return _text.length; }; // word count // ========== $R.measureText__getWordCount = function (_the_text) { var _text = _the_text; // do stuff // ======== _text = _text.replace(/[\s\n\r]+/gi, ‘ ‘); _text = _text.replace(/([.,?!:;()\[\]'””-])/gi, ‘ $1 ‘); _text = _text.replace(/([\u3000])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u3001])/gi, ‘[=words(2)]’); _text = _text.replace(/([\u3002])/gi, ‘[=words(4)]’); _text = _text.replace(/([\u301C])/gi, ‘[=words(2)]’); _text = _text.replace(/([\u2026|\u2025])/gi, ‘[=words(2)]’); _text = _text.replace(/([\u30FB\uFF65])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u300C\u300D])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u300E\u300F])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u3014\u3015])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u3008\u3009])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u300A\u300B])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u3010\u3011])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u3016\u3017])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u3018\u3019])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u301A\u301B])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u301D\u301E\u301F])/gi, ‘[=words(1)]’); _text = _text.replace(/([\u30A0])/gi, ‘[=words(1)]’); // count // ===== var _count = 0, _words_match = _text.match(/([^\s\d]{3,})/gi) ; // add match _count += (_words_match != null ? _words_match.length : 0); // add manual count _text.replace(/\[=words\((\d)\)\]/, function (_match, _plus) { _count += (5 * parseInt(_plus)); }); // return // ====== return _count; }; // levenshtein // =========== $R.levenshteinDistance = function (str1, str2) { var l1 = str1.length, l2 = str2.length; if (Math.min(l1, l2) === 0) { return Math.max(l1, l2); } var i = 0, j = 0, d = []; for (i = 0 ; i <= l1 ; i++) { d[i] = []; d[i][0] = i; } for (j = 0 ; j <= l2 ; j++) { d[0][j] = j; } for (i = 1 ; i <= l1 ; i++) { for (j = 1 ; j ” && _text > ”); else { _html = null; _text = null; $R.$document.find(‘frame, iframe’).each(function (_i, _e) { if (_e.getAttribute(‘id’) == ‘readable_iframe’) { return; } try { var __doc = $(_e).contents().get(0), __win = $R.sel.getWindowFromDocument(__doc), __selection = $R.sel.getSelection(__win), __range = $R.sel.getRange(__selection), __html = $R.sel.getRangeHTML(__range), __text = $R.sel.getRangeText(__range) ; if (__html > ” && __text > ”) { _html = __html; _text = __text; // stop the each return false; } } catch(e) { } }); } // haven’t found anything if (_html > ” && _text > ”); else { return false; } // probably selected something by mistake if ($R.measureText__getTextLength(_text) > (65 * 3 * 1.5)); else { return false; } // display // ======= $R.$pages.html(”); $R.displayPageHTML(_html, 1, ‘selection’); // return true return true; }; // functions // ========= $R.sel = {}; $R.sel.getWindowFromDocument = function (theDocument) { if (theDocument); else { return null; } if (‘defaultView’ in theDocument) { arguments.calee = function (theDocument) { if (theDocument); else { return null; } return theDocument.defaultView; }; } else if (‘parentWindow’ in theDocument) { arguments.calee = function (theDocument) { if (theDocument); else { return null; } return theDocument.parentWindow; }; } else { arguments.calee = function (theDocument) { return null; }; } return arguments.calee(theDocument); }; $R.sel.getSelection = function (theWindow) { if (theWindow); else { return null; } if (‘getSelection’ in theWindow) { arguments.calee = function (theWindow) { if (theWindow); else { return null; } return theWindow.getSelection(); }; } else if (‘selection’ in theWindow.document) { arguments.calee = function (theWindow) { if (theWindow); else { return null; } return theWindow.document.selection; }; } else { arguments.calee = function (theWindow) { return null; }; } return arguments.calee(theWindow); }; $R.sel.getRange = function (selection) { if (selection); else { return null; } if (‘getRangeAt’ in selection) { arguments.calee = function (selection) { if (selection); else { return null; } if (selection.rangeCount > 0) { return selection.getRangeAt(0); } else { return null; } // doesn’t work in old versions of safari // … I don’t care }; } else if (‘createRange’ in selection) { arguments.calee = function (selection) { if (selection); else { return null; } return selection.createRange(); }; } else { arguments.calee = function (selection) { return null; }; } return arguments.calee(selection); }; $R.sel.getRangeHTML = function (range) { if (range); else { return null; } if (‘htmlText’ in range) { arguments.calee = function (range) { if (range); else { return null; } return range.htmlText; }; } else if (‘surroundContents’ in range) { arguments.calee = function (range) { if (range); else { return null; } var dummy = range.commonAncestorContainer.ownerDocument.createElement(“div”); dummy.appendChild(range.cloneContents()); return dummy.innerHTML; }; } else { arguments.calee = function (range) { return null; }; } return arguments.calee(range); }; $R.sel.getRangeText = function (range) { if (range); else { return null; } if (‘text’ in range) { arguments.calee = function (range) { if (range); else { return null; } return range.text; }; } else if (‘surroundContents’ in range) { arguments.calee = function (range) { if (range); else { return null; } var dummy = range.commonAncestorContainer.ownerDocument.createElement(“div”); dummy.appendChild(range.cloneContents()); return dummy.textContent; }; } else { arguments.calee = function (range) { return null; }; } return arguments.calee(range); }; // options // ======= $R.parsingOptions = { ‘_elements_ignore’: ‘|button|input|select|textarea|optgroup|command|datalist|–|frame|frameset|noframes|–|style|link|script|noscript|–|canvas|applet|map|–|marquee|area|base|’, ‘_elements_ignore_tag’: ‘|form|fieldset|details|dir|–|center|font|span|’, ‘_elements_self_closing’: ‘|br|hr|–|img|–|col|–|source|–|embed|param|–|iframe|’, ‘_elements_visible’: ‘|article|section|–|ul|ol|li|dd|–|table|tr|td|–|div|–|p|–|h1|h2|h3|h4|h5|h6|–|span|’, ‘_elements_too_much_content’: ‘|b|i|em|strong|–|h1|h2|h3|h4|h5|–|td|’, ‘_elements_container’: ‘|body|–|article|section|–|div|–|td|–|li|–|dd|dt|’, ‘_elements_link_density’: ‘|div|–|table|ul|ol|–|section|aside|header|’, ‘_elements_floating’: ‘|div|–|table|’, ‘_elements_above_target_ignore’:’|br|–|ul|ol|dl|–|table|’, ‘_elements_keep_attributes’: { ‘a’: [‘href’, ‘title’, ‘name’], ‘img’: [‘src’, ‘width’, ‘height’, ‘alt’, ‘title’], ‘video’: [‘src’, ‘width’, ‘height’, ‘poster’, ‘audio’, ‘preload’, ‘autoplay’, ‘loop’, ‘controls’], ‘audio’: [‘src’, ‘preload’, ‘autoplay’, ‘loop’, ‘controls’], ‘source’: [‘src’, ‘type’], ‘object’: [‘data’, ‘type’, ‘width’, ‘height’, ‘classid’, ‘codebase’, ‘codetype’], ‘param’: [‘name’, ‘value’], ’embed’: [‘src’, ‘type’, ‘width’, ‘height’, ‘flashvars’, ‘allowscriptaccess’, ‘allowfullscreen’, ‘bgcolor’], ‘iframe’: [‘src’, ‘width’, ‘height’, ‘frameborder’, ‘scrolling’], ‘td’: [‘colspan’, ‘rowspan’], ‘th’: [‘colspan’, ‘rowspan’] } }; // next page keywords — (?? charCodeAt() > 127) // ================== $R.nextPage__captionKeywords = [ /* english */ ‘next page’, ‘next’, /* german */ ‘vorwärts’, ‘weiter’, /* japanese */ ‘次へ’ ]; $R.nextPage__captionKeywords__not = [ /* english */ ‘article’, ‘story’, ‘post’, ‘comment’, ‘section’, ‘chapter’ ]; // skip links // ========== $R.skipStuffFromDomains__links = [ ‘doubleclick.net’, ‘fastclick.net’, ‘adbrite.com’, ‘adbureau.net’, ‘admob.com’, ‘bannersxchange.com’, ‘buysellads.com’, ‘impact-ad.jp’, ‘atdmt.com’, ‘advertising.com’, ‘itmedia.jp’, ‘microad.jp’, ‘serving-sys.com’, ‘adplan-ds.com’ ]; // skip images // =========== $R.skipStuffFromDomain__images = [ ‘googlesyndication.com’, ‘fastclick.net’, ‘.2mdn.net’, ‘de17a.com’, ‘content.aimatch.com’, ‘bannersxchange.com’, ‘buysellads.com’, ‘impact-ad.jp’, ‘atdmt.com’, ‘advertising.com’, ‘itmedia.jp’, ‘microad.jp’, ‘serving-sys.com’, ‘adplan-ds.com’ ]; // keep video // ========== $R.keepStuffFromDomain__video = [ ‘youtube.com’, ‘youtube-nocookie.com’, ‘vimeo.com’, ‘hulu.com’, ‘yahoo.com’, ‘flickr.com’, ‘newsnetz.ch’ ]; $R.getContent__exploreNodeAndGetStuff = function (_nodeToExplore, _justExploring) { var _global__element_index = 0, _global__inside_link = false, _global__inside_link__element_index = 0, _global__length__above_plain_text = 0, _global__count__above_plain_words = 0, _global__length__above_links_text = 0, _global__count__above_links_words = 0, _global__count__above_candidates = 0, _global__count__above_containers = 0, _global__above__plain_text = ”, _global__above__links_text = ”, _return__containers = [], _return__candidates = [], _return__links = [] ; // recursive function // ================== var _recursive = function (_node) { // increment index // starts with 1 _global__element_index++; var _tag_name = (_node.nodeType === 3 ? ‘#text’ : ((_node.nodeType === 1 && _node.tagName && _node.tagName > ”) ? _node.tagName.toLowerCase() : ‘#invalid’)), _result = { ‘__index’: _global__element_index, ‘__node’: _node, ‘_is__container’: ($R.parsingOptions._elements_container.indexOf(‘|’+_tag_name+’|’) > -1), ‘_is__candidate’: false, ‘_is__text’: false, ‘_is__link’: false, ‘_is__link_skip’: false, ‘_is__image_small’: false, ‘_is__image_medium’: false, ‘_is__image_large’: false, ‘_is__image_skip’: false, ‘_debug__above__plain_text’: _global__above__plain_text, ‘_debug__above__links_text’: _global__above__links_text, ‘_length__above_plain_text’: _global__length__above_plain_text, ‘_count__above_plain_words’: _global__count__above_plain_words, ‘_length__above_links_text’: _global__length__above_links_text, ‘_count__above_links_words’: _global__count__above_links_words, ‘_length__above_all_text’: (_global__length__above_plain_text + _global__length__above_links_text), ‘_count__above_all_words’: (_global__count__above_plain_words + _global__count__above_links_words), ‘_count__above_candidates’: _global__count__above_candidates, ‘_count__above_containers’: _global__count__above_containers, ‘_length__plain_text’: 0, ‘_count__plain_words’: 0, ‘_length__links_text’: 0, ‘_count__links_words’: 0, ‘_length__all_text’: 0, ‘_count__all_words’: 0, ‘_count__containers’: 0, ‘_count__candidates’: 0, ‘_count__links’: 0, ‘_count__links_skip’: 0, ‘_count__images_small’: 0, ‘_count__images_medium’: 0, ‘_count__images_large’: 0, ‘_count__images_skip’: 0 }; // fast return // =========== switch (true) { case ((_tag_name == ‘#invalid’)): case (($R.parsingOptions._elements_ignore.indexOf(‘|’+_tag_name+’|’) > -1)): return; case (($R.parsingOptions._elements_visible.indexOf(‘|’+_tag_name+’|’) > -1)): // included inline // _node, _tag_name must be defined // will return, if node is hidden switch (true) { case (_node.offsetWidth > 0): case (_node.offsetHeight > 0): break; default: switch (true) { case (_node.offsetLeft > 0): case (_node.offsetTop > 0): break; default: // exclude inline DIVs — which, stupidly, don’t have a width/height if ((_tag_name == ‘div’) && ((_node.style.display || $.css( _node, “display” )) == ‘inline’)) { break; } // it’s hidden; exit current scope return; } break; } break; // self-closing — with some exceptions case ($R.parsingOptions._elements_self_closing.indexOf(‘|’+_tag_name+’|’) > -1): switch (true) { case ((_tag_name == ‘img’)): break; default: return; } break; } // do stuff // ======== switch (true) { // text node // ========= case ((_tag_name == ‘#text’)): // mark _result._is__text = true; // get var _nodeText = _node.nodeValue; // result _result._length__plain_text = $R.measureText__getTextLength(_nodeText); _result._count__plain_words = $R.measureText__getWordCount(_nodeText); if (_global__inside_link) { _global__length__above_links_text += _result._length__plain_text; _global__count__above_links_words += _result._count__plain_words; if (false && $R.debug) { _global__above__links_text += ‘ ‘ + _nodeText; } } else { _global__length__above_plain_text += _result._length__plain_text; _global__count__above_plain_words += _result._count__plain_words; if (false && $R.debug) { _global__above__plain_text += ‘ ‘ + _nodeText; } } // return text return _result; // link // ==== case (_tag_name == ‘a’): var _href = “”; try { _href = _node.href; } catch(e) { Evernote.Logger.warn(“Clearly: failed to get href of link element” + e); } // sanity if (_href > ”); else { break; } if (_href.indexOf); else { break; } _result._is__link = true; // skip for (var i=0, _i=$R.skipStuffFromDomains__links.length; i -1) { _result._is__link_skip = true; break; } } // inside link if (_global__inside_link); else { _global__inside_link = true; _global__inside_link__element_index = _result.__index; } // done _return__links.push(_result); break; // image // ===== case (_tag_name == ‘img’): // skip // ==== if (_node.src && _node.src.indexOf) { for (var i=0, _i=$R.skipStuffFromDomain__images.length; i -1) { _result._is__image_skip = true; break; } } } // size // ==== var _width = $(_node).width(), _height = $(_node).height(); switch (true) { case ((_width * _height) >= 50000): case ((_width >= 350) && (_height >= 75)): _result._is__image_large = true; break; case ((_width * _height) >= 20000): case ((_width >= 150) && (_height >= 150)): _result._is__image_medium = true; break; case ((_width <= 5) && (_height <= 5)): _result._is__image_skip = true; break; default: _result._is__image_small = true; break; } break; } // child nodes // =========== for (var i=0, _i=_node.childNodes.length; i= _result._count__plain_words)): /* link ratio */ case (($R.language != ‘cjk’) && (_result._length__plain_text < (65 / 3))): /* text length */ case (($R.language != 'cjk') && (_result._count__plain_words < 5)): /* words */ case (($R.language == 'cjk') && (_result._length__plain_text < 10)): /* text length */ case (($R.language == 'cjk') && (_result._count__plain_words < 2)): /* words */ //case (_result._length__plain_text == 0): /* no text */ //case (_result._count__plain_words == 0): /* no words */ //case (($R.language == 'cjk') && ((_result._length__plain_text / 65 / 3) < 0.1)): /* paragrahs of 3 lines */ //case (($R.language != 'cjk') && ((_result._count__plain_words / 50) < 0.5)): /* paragraphs of 50 words */ // not a valid candidate //if (_tag_name == 'div') { $R.log('bad candidate', _result.__node); } break; default: // good candidate _result._is__candidate = true; _return__candidates.push(_result); // increase above candidates _global__count__above_candidates++; break; } // special case for body — if it was just skipped // ===================== if ((_result.__index == 1) && !(_result._is__candidate)) { _result._is__candidate = true; _result._is__bad = true; _return__candidates.push(_result); } } } // return // ====== return _result; }; // actually do it // ============== _recursive(_nodeToExplore); // just exploring — return first thing // ============== if (_justExploring) { return _return__containers.pop(); } // return containers list // ====================== return { '_containers': _return__containers, '_candidates': _return__candidates, '_links': _return__links }; }; $R.getContent__processCandidates = function (_candidatesToProcess) { // process this var // ================ var _candidates = _candidatesToProcess; // sort _candidates — the lower in the dom, the closer to position 0 // ================ _candidates.sort(function (a, b) { switch (true) { case (a.__index b.__index): return 1; default: return 0; } }); // get first // ========= var _main = _candidates[0] if ($R.debug) { $R.log(‘should be body’, _main, _main.__node); } // pieces of text // and points computation // ====================== for (var i=0, _i=_candidates.length; i<_i; i++) { // pieces // ====== var _count__pieces = 0, _array__pieces = [] ; for (var k=i, _k=_candidates.length; k 0) { continue; } if ($.contains(_candidates[i].__node, _candidates[k].__node)); else { continue; } // store piece, if in debug mode if ($R.debug) { _array__pieces.push(_candidates[k]); } // incement pieces count _count__pieces++; } // candidate details // ================= _candidates[i][‘__candidate_details’] = $R.getContent__computeDetailsForCandidate(_candidates[i], _main); // pieces — do this here because _main doesn’t yet have a pieces count // ====== // set pieces _candidates[i][‘_count__pieces’] = _count__pieces; _candidates[i][‘_array__pieces’] = _array__pieces; // pieces ratio _candidates[i][‘__candidate_details’][‘_ratio__count__pieces_to_total_pieces’] = (_count__pieces / (_candidates[0]._count__pieces + 1)); // check some more // =============== /* switch (true) { case (($R.language != ‘cjk’) && (_candidates[i][‘__candidate_details’][‘_ratio__length__links_text_to_plain_text’] > 1)): case (($R.language != ‘cjk’) && (_candidates[i][‘__candidate_details’][‘_ratio__count__links_words_to_plain_words’] > 1)): _candidates[i]._is__bad = true; break; }*/ // points // ====== _candidates[i].__points_history = $R.getContent__computePointsForCandidate(_candidates[i], _main); _candidates[i].__points = _candidates[i].__points_history[0]; } // sort _candidates — the more points, the closer to position 0 // ================ _candidates.sort(function (a, b) { switch (true) { case (a.__points > b.__points): return -1; case (a.__points 250) ; // bad candidate if (_e._is__bad) { return [0]; } // the basics // ========== _points_history.unshift(((0 + (_details._count__paragraphs_of_3_lines) + (_details._count__paragraphs_of_5_lines * 1.5) + (_details._count__paragraphs_of_50_words) + (_details._count__paragraphs_of_80_words * 1.5) + (_e._count__images_large * 3) – ((_e._count__images_skip + _e._count__images_small) * 0.5) ) * 1000)); // negative if (_points_history[0] 0)): case (!($.contains(_main.__node, _element.__node))): return null; default: return _element; } }); // add main – to amke sure the result is never blank _candidates.unshift(_main); // sort _candidates — the lower in the dom, the closer to position 0 // ================ _candidates.sort(function (a, b) { switch (true) { case (a.__index b.__index): return 1; default: return 0; } }); // second candidate computation // ============================ for (var i=0, _i=_candidates.length; i 0.05)): case (!(_candidates[i][‘__candidate_details_second’][‘_ratio__length__plain_text_to_total_plain_text’] > 0.05)): //case (!(_candidates[i][‘__candidate_details_second’][‘_ratio__count__above_plain_words_to_total_plain_words’] < 0.1)): //case (!(_candidates[i]['__candidate_details_second']['_ratio__length__above_plain_text_to_total_plain_text'] 1): //case (_candidates[i][‘__candidate_details_second’][‘_ratio__count__above_plain_words_to_plain_words’] > 1): _candidates[i]._is__bad = true; // wil set points to 0, in points computation function break; }*/ // points // ====== _candidates[i].__points_history_second = $R.getContent__computePointsForCandidateSecond(_candidates[i], _main); _candidates[i].__points_second = _candidates[i].__points_history_second[0]; } // sort _candidates — the more points, the closer to position 0 // ================ _candidates.sort(function (a, b) { switch (true) { case (a.__points_second > b.__points_second): return -1; case (a.__points_second < b.__points_second): return 1; default: return 0; } }); // return // ====== return _candidates; }; $R.getContent__computeDetailsForCandidateSecond = function (_e, _main) { var _r = {}; // bad candidate // ============= if (_e._is__bad) { return _r; } // total text // ========== _r['_ratio__length__plain_text_to_total_plain_text'] = (_e._length__plain_text / _main._length__plain_text); _r['_ratio__count__plain_words_to_total_plain_words'] = (_e._count__plain_words / _main._count__plain_words); // links // ===== _r['_ratio__length__links_text_to_all_text'] = (_e._length__links_text / _e._length__all_text); _r['_ratio__count__links_words_to_all_words'] = (_e._count__links_words / _e._count__all_words); _r['_ratio__length__links_text_to_total_links_text'] = (_e._length__links_text / (_main._length__links_text + 1)); _r['_ratio__count__links_words_to_total_links_words'] = (_e._count__links_words / (_main._count__links_words + 1)); _r['_ratio__count__links_to_total_links'] = (_e._count__links / (_main._count__links + 1)); _r['_ratio__count__links_to_plain_words'] = ((_e._count__links * 2) / _e._count__plain_words); // text above // ========== var _divide__candidates = Math.max(2, Math.ceil((_e._count__above_candidates – _main._count__above_candidates) * 0.5)), _above_text = ((0 + (_e.__second_length__above_plain_text * 1) + (_e.__second_length__above_plain_text / _divide__candidates) ) / 2), _above_words = ((0 + (_e.__second_count__above_plain_words * 1) + (_e.__second_count__above_plain_words / _divide__candidates) ) / 2) ; _r['_ratio__length__above_plain_text_to_total_plain_text'] = (_above_text / _main._length__plain_text); _r['_ratio__count__above_plain_words_to_total_plain_words'] = (_above_words / _main._count__plain_words); _r['_ratio__length__above_plain_text_to_plain_text'] = (_above_text / _e._length__plain_text); _r['_ratio__count__above_plain_words_to_plain_words'] = (_above_words / _e._count__plain_words); // candidates // ========== _r['_ratio__count__candidates_to_total_candidates'] = (Math.max(0, (_e._count__candidates – (_main._count__candidates * 0.25))) / (_main._count__candidates + 1)); _r['_ratio__count__containers_to_total_containers'] = (Math.max(0, (_e._count__containers – (_main._count__containers * 0.25))) / (_main._count__containers + 1)); _r['_ratio__count__pieces_to_total_pieces'] = (Math.max(0, (_e._count__pieces – (_main._count__pieces * 0.25))) / (_main._count__pieces + 1)); // return // ====== return _r; }; $R.getContent__computePointsForCandidateSecond = function (_e, _main) { var _details = _e.__candidate_details, _details_second = _e.__candidate_details_second, _points_history = [] ; // bad candidate if (_e._is__bad) { return [0]; } // get initial points // ================== _points_history.unshift(_e.__points_history[(_e.__points_history.length-1)]); // candidates, containers, pieces // ============================== var _divide__pieces = Math.max(5, Math.ceil(_e._count__pieces * 0.25)), _divide__candidates = Math.max(5, Math.ceil(_e._count__candidates * 0.25)), _divide__containers = Math.max(10, Math.ceil(_e._count__containers * 0.25)) ; _points_history.unshift(((0 + (_points_history[0] * 3) + ((_points_history[0] / _divide__pieces) * 2) + ((_points_history[0] / _divide__candidates) * 2) + ((_points_history[0] / _divide__containers) * 2) ) / 9)); // total text // ========== $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – (1 – _details_second._ratio__length__plain_text_to_total_plain_text)), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – (1 – _details_second._ratio__count__plain_words_to_total_plain_words)), _points_history); // text above // ========== var __ar = ($R.language == 'cjk' ? 0.50 : 0.10); $R.getContent__computePointsForCandidate__do(__ar, 1, (1 – _details_second._ratio__length__above_plain_text_to_total_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(__ar, 1, (1 – _details_second._ratio__count__above_plain_words_to_total_plain_words), _points_history); $R.getContent__computePointsForCandidate__do(__ar, 1, (1 – _details_second._ratio__length__above_plain_text_to_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(__ar, 1, (1 – _details_second._ratio__count__above_plain_words_to_plain_words), _points_history); // links outer // =========== $R.getContent__computePointsForCandidate__do(0.75, 1, (1 – _details_second._ratio__count__links_to_total_links), _points_history); $R.getContent__computePointsForCandidate__do(0.75, 1, (1 – _details_second._ratio__length__links_text_to_total_links_text), _points_history); $R.getContent__computePointsForCandidate__do(0.75, 1, (1 – _details_second._ratio__count__links_words_to_total_links_words), _points_history); // links inner // =========== var __lr = ($R.language == 'cjk' ? 0.75 : 0.50); $R.getContent__computePointsForCandidate__do(__lr, 1, (1 – _details._ratio__length__links_text_to_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(__lr, 1, (1 – _details._ratio__count__links_words_to_plain_words), _points_history); $R.getContent__computePointsForCandidate__do(__lr, 1, (1 – _details_second._ratio__length__links_text_to_all_text), _points_history); $R.getContent__computePointsForCandidate__do(__lr, 1, (1 – _details_second._ratio__count__links_words_to_all_words), _points_history); $R.getContent__computePointsForCandidate__do(__lr, 1, (1 – _details_second._ratio__count__links_to_plain_words), _points_history); // candidates, containers, pieces // ============================== $R.getContent__computePointsForCandidate__do(0.10, 2, (1 – _details_second._ratio__count__candidates_to_total_candidates), _points_history); $R.getContent__computePointsForCandidate__do(0.10, 2, (1 – _details_second._ratio__count__containers_to_total_containers), _points_history); $R.getContent__computePointsForCandidate__do(0.10, 2, (1 – _details_second._ratio__count__pieces_to_total_pieces), _points_history); // return — will get [0] as the actual final points // ====== return _points_history; }; $R.getContent__computePointsForCandidateThird = function (_e, _main) { var _details = _e.__candidate_details, _details_second = _e.__candidate_details_second, _points_history = [] ; // bad candidate if (_e._is__bad) { return [0]; } // get initial points // ================== _points_history.unshift(_e.__points_history[(_e.__points_history.length-1)]); // candidates, containers, pieces // ============================== var _divide__pieces = Math.max(2, Math.ceil(_e._count__pieces * 0.25)), _divide__candidates = Math.max(2, Math.ceil(_e._count__candidates * 0.25)), _divide__containers = Math.max(4, Math.ceil(_e._count__containers * 0.25)) ; _points_history.unshift(((0 + (_points_history[0] * 3) + ((_points_history[0] / _divide__pieces) * 2) + ((_points_history[0] / _divide__candidates) * 2) + ((_points_history[0] / _divide__containers) * 2) ) / 9)); // total text // ========== $R.getContent__computePointsForCandidate__do(0.75, 1, (1 – (1 – _details_second._ratio__length__plain_text_to_total_plain_text)), _points_history); $R.getContent__computePointsForCandidate__do(0.75, 1, (1 – (1 – _details_second._ratio__count__plain_words_to_total_plain_words)), _points_history); // text above // ========== $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__length__above_plain_text_to_total_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__above_plain_words_to_total_plain_words), _points_history); $R.getContent__computePointsForCandidate__do(0.10, 1, (1 – _details_second._ratio__length__above_plain_text_to_total_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(0.10, 1, (1 – _details_second._ratio__count__above_plain_words_to_total_plain_words), _points_history); $R.getContent__computePointsForCandidate__do(0.10, 1, (1 – _details_second._ratio__length__above_plain_text_to_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(0.10, 1, (1 – _details_second._ratio__count__above_plain_words_to_plain_words), _points_history); // links inner // =========== $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__length__links_text_to_all_text), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__links_words_to_all_words), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__length__links_text_to_plain_text), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__links_words_to_plain_words), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__links_to_plain_words), _points_history); // candidates, containers, pieces // ============================== $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__candidates_to_total_candidates), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__containers_to_total_containers), _points_history); $R.getContent__computePointsForCandidate__do(0.50, 1, (1 – _details._ratio__count__pieces_to_total_pieces), _points_history); // return — will get [0] as the actual final points // ====== return _points_history; }; $R.getContent__computePointsForCandidate__do = function (_ratio_remaining, _power, _ratio, _points_history) { var _points_remaining = (_points_history[0] * _ratio_remaining), _points_to_compute = (_points_history[0] – _points_remaining) ; if (_ratio ”) ? _node.tagName.toLowerCase() : ‘#invalid’)), _pos__start__before = 0, _pos__start__after = 0, _pos__end__before = 0, _pos__end__after = 0 ; // fast return // =========== switch (true) { case ((_tag_name == ‘#invalid’)): case (($R.parsingOptions._elements_ignore.indexOf(‘|’+_tag_name+’|’) > -1)): return; case (_tag_name == ‘#text’): _global__the_html += _node.nodeValue .replace(//gi, ‘>’) ; return; } // hidden // ====== if ($R.parsingOptions._elements_visible.indexOf(‘|’+_tag_name+’|’) > -1) { // included inline // _node, _tag_name must be defined // will return, if node is hidden switch (true) { case (_node.offsetWidth > 0): case (_node.offsetHeight > 0): break; default: switch (true) { case (_node.offsetLeft > 0): case (_node.offsetTop > 0): break; default: // exclude inline DIVs — which, stupidly, don’t have a width/height if ((_tag_name == ‘div’) && ((_node.style.display || $.css( _node, “display” )) == ‘inline’)) { break; } // it’s hidden; exit current scope return; } break; } } // clean — before // ===== // just a return will skip the whol element // including children // objects, embeds, iframes // ======================== switch (_tag_name) { case (‘object’): case (’embed’): case (‘iframe’): var _src = (_tag_name == ‘object’ ? $(_node).find(“param[name=’movie’]”).attr(‘value’) : $(_node).attr(‘src’)), _skip = ((_src > ”) ? false : true) ; if (_skip); else { // default skip _skip = true; // loop for (var i=0, _i=$R.keepStuffFromDomain__video.length; i -1) { _skip = false; break; } } } // skip? if (_skip) { $R.debugOutline(_node, ‘clean-before’, ‘object-embed-iframe’); return; } break; } // skipped link // ============ if (_tag_name == ‘a’ || _tag_name == ‘li’) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case (_explored._is__link_skip): case (((_explored._count__images_small + _explored._count__images_skip) > 0) && (_explored._length__plain_text -1) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case (_explored._length__plain_text > (65 * 3 * 2)): case ($R.language == ‘cjk’ && (_explored._length__plain_text > (65 * 3 * 1))): case (!(_explored._count__links > 1)): case (_global__exploreNodeToBuildHTMLFor && (_explored._length__plain_text / _global__exploreNodeToBuildHTMLFor._length__plain_text) > 0.5): case (_global__exploreNodeToBuildHTMLFor && (_explored._count__plain_words / _global__exploreNodeToBuildHTMLFor._count__plain_words) > 0.5): case ((_explored._length__plain_text == 0) && (_explored._count__links == 1) && (_explored._length__links_text < 65)): case ((_explored._length__plain_text 0)): break; case ((_explored._length__links_text / _explored._length__all_text) 0); else { break; } if (_explored._count__links_skip > 0); else { break; } if (((_explored._count__links_skip / _explored._count__links) > 0.25) && (_explored._length__links_text / _explored._length__all_text) -1) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case (_explored._length__plain_text > (65 * 3 * 2)): case ($R.language == ‘cjk’ && (_explored._length__plain_text > (65 * 3 * 1))): case (_global__exploreNodeToBuildHTMLFor && (_explored._length__plain_text / _global__exploreNodeToBuildHTMLFor._length__plain_text) > 0.25): case (_global__exploreNodeToBuildHTMLFor && (_explored._count__plain_words / _global__exploreNodeToBuildHTMLFor._count__plain_words) > 0.25): case ((_explored._length__plain_text < 25) && (_explored._length__links_text 0)): case (_node.getElementsByTagName && (_explored._length__plain_text 0)): break; default: var _float = $(_node).css(‘float’); if (_float == ‘left’ || _float == ‘right’); else { break; } if ((_explored._length__links_text == 0) && ((_explored._count__images_large + _explored._count__images_medium) > 0)) { break; } $R.debugOutline(_node, ‘clean-before’, ‘floating’); return; } } // above target // ============ if (_custom_mode == ‘above-the-target’) { // is ignored? if ($R.parsingOptions._elements_above_target_ignore.indexOf(‘|’+_tag_name+’|’) > -1) { $R.debugOutline(_node, ‘clean-before’, ‘above-target’); return; } // is image? if (_tag_name == ‘img’) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); if (_explored._is__image_large); else { $R.debugOutline(_node, ‘clean-before’, ‘above-target’); return; } } // has too many links? //if (_node.getElementsByTagName && _node.getElementsByTagName(‘a’).length > 5) // { $R.debugOutline(_node, ‘clean-before’, ‘above-target’); return; } } // headers that are images // ======================= if (_tag_name.match(/^h(1|2|3|4|5|6)$/gi)) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case ((_explored._length__plain_text 0)): $R.debugOutline(_node, ‘clean-before’, ‘skip-heading’); return; } } // start tag // ========= if ($R.parsingOptions._elements_ignore_tag.indexOf(‘|’+_tag_name+’|’) > -1); else { /* mark */ _pos__start__before = _global__the_html.length; /* add */ _global__the_html += ‘<'+_tag_name; // attributes // ========== // allowed attributes // ================== if (_tag_name in $R.parsingOptions._elements_keep_attributes) { for (var i=0, _i=$R.parsingOptions._elements_keep_attributes[_tag_name].length; i ”) { _global__the_html += ‘ ‘+_attribute_name+’=”‘+(_attribute_value)+'”‘; } } } // keep ID for all elements // ======================== var _id_attribute = _node.getAttribute(‘id’); if (_id_attribute > ”) { _global__the_html += ‘ id=”‘+_id_attribute+'”‘; } // links target NEW // ================ if (_tag_name == ‘a’) { _global__the_html += ‘ target=”_blank”‘; } // close start // =========== if ($R.parsingOptions._elements_self_closing.indexOf(‘|’+_tag_name+’|’) > -1) { _global__the_html += ‘ />’; } else { _global__the_html += ‘>’;} /* mark */ _pos__start__after = _global__the_html.length; } // child nodes // =========== if ($R.parsingOptions._elements_self_closing.indexOf(‘|’+_tag_name+’|’) > -1); else { for (var i=0, _i=_node.childNodes.length; i -1)): return; case (($R.parsingOptions._elements_self_closing.indexOf(‘|’+_tag_name+’|’) > -1)): /* mark */ _pos__end__before = _global__the_html.length; /* mark */ _pos__end__after = _global__the_html.length; break; default: /* mark */ _pos__end__before = _global__the_html.length; /* end */ _global__the_html += ”; /* mark */ _pos__end__after = _global__the_html.length; break; } // clean — after // ===== // we need to actually cut things out of // “_global__the_html”, for stuff to not be there // largeObject classes // =================== if (_tag_name == ‘iframe’ || _tag_name == ’embed’ || _tag_name == ‘object’) { _global__the_html = ” + _global__the_html.substr(0, _pos__start__before) + ‘
‘ + _global__the_html.substr(_pos__start__before, (_pos__end__after – _pos__start__before)) + ‘
‘ ; return; } // add image classes // ================= if (_tag_name == ‘img’) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case (_explored._is__image_skip): $R.debugOutline(_node, ‘clean-after’, ‘skip-img’); _global__the_html = _global__the_html.substr(0, _pos__start__before); return; case (_explored._is__image_large): // add float class — for images too narrow/tall // remove width/height — only for large images // http://www.wired.com/threatlevel/2011/05/gps-gallery/?pid=89&viewall=true // http://david-smith.org/blog/2012/03/10/ios-5-dot-1-upgrade-stats/index.html // http://www.turntablekitchen.com/2012/04/dutch-baby-with-caramelized-vanilla-bean-pears-moving-through-the-decades/ _global__the_html = ” + _global__the_html.substr(0, _pos__start__before) + ‘<div class="readableLargeImageContainer' + (($(_node).width() = 250) ? ‘ float’ : ”) + ‘”>’ + _global__the_html.substr(_pos__start__before, (_pos__end__after – _pos__start__before)).replace(/width=”([^=]+?)”/gi, ”).replace(/height=”([^=]+?)”/gi, ”) + ‘‘ ; return; } } // large images in links // ===================== if (_tag_name == ‘a’) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case (_explored._count__images_large == 1): _global__the_html = ” + _global__the_html.substr(0, _pos__start__after-1) + ‘ class=”readableLinkWithLargeImage”>’ + _global__the_html.substr(_pos__start__after, (_pos__end__before – _pos__start__after)) + ‘‘ ; return; case (_explored._count__images_medium == 1): _global__the_html = ” + _global__the_html.substr(0, _pos__start__after-1) + ‘ class=”readableLinkWithMediumImage”>’ + _global__the_html.substr(_pos__start__after, (_pos__end__before – _pos__start__after)) + ‘‘ ; return; } } // too much content // ================ if ($R.parsingOptions._elements_too_much_content.indexOf(‘|’+_tag_name+’|’) > -1) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); switch (true) { case (_tag_name == ‘h1’ && (_explored._length__all_text > (65 * 2))): case (_tag_name == ‘h2’ && (_explored._length__all_text > (65 * 2 * 3))): case ((_tag_name.match(/^h(3|4|5|6)$/) != null) && (_explored._length__all_text > (65 * 2 * 5))): case ((_tag_name.match(/^(b|i|em|strong)$/) != null) && (_explored._length__all_text > (65 * 5 * 5))): $R.debugOutline(_node, ‘clean-after’, ‘too-much-content’); _global__the_html = ” + _global__the_html.substr(0, _pos__start__before) + _global__the_html.substr(_pos__start__after, (_pos__end__before – _pos__start__after)) ; return; } } // empty elements // ============== switch (true) { case (($R.parsingOptions._elements_self_closing.indexOf(‘|’+_tag_name+’|’) > -1)): case (($R.parsingOptions._elements_ignore_tag.indexOf(‘|’+_tag_name+’|’) > -1)): case (_tag_name == ‘td’): break; default: var _contents = _global__the_html.substr(_pos__start__after, (_pos__end__before – _pos__start__after)); _contents = _contents.replace(/(
)/gi, ”); _contents = _contents.replace(/(
)/gi, ”); // for rows, clear empty cells if (_tag_name == ‘tr’) { _contents = _contents.replace(/
]*?>/gi, ”); _contents = _contents.replace(//gi, ”); } var _contentsLength = $R.measureText__getTextLength(_contents); switch (true) { case (_contentsLength == 0 && _tag_name == ‘p’): _global__the_html = _global__the_html.substr(0, _pos__start__before) + ‘

‘; return; case (_contentsLength == 0): case ((_contentsLength -1)): $R.debugOutline(_node, ‘clean-after’, ‘blank’); _global__the_html = _global__the_html.substr(0, _pos__start__before); return; } break; } // too much missing // ================ if ($R.parsingOptions._elements_link_density.indexOf(‘|’+_tag_name+’|’) > -1) { _explored = (_explored || $R.getContent__exploreNodeAndGetStuff(_node, true)); var _contents = _global__the_html .substr(_pos__start__after, (_pos__end__before – _pos__start__after)) .replace(/(]+)>)/gi, ”), _contentsLength = $R.measureText__getTextLength(_contents), _initialLength = 0 + _explored._length__all_text + (_explored._count__images_small * 10) + (_explored._count__images_skip * 10) + (_node.getElementsByTagName(‘iframe’).length * 10) + (_node.getElementsByTagName(‘object’).length * 10) + (_node.getElementsByTagName(’embed’).length * 10) + (_node.getElementsByTagName(‘button’).length * 10) + (_node.getElementsByTagName(‘input’).length * 10) + (_node.getElementsByTagName(‘select’).length * 10) + (_node.getElementsByTagName(‘textarea’).length * 10) ; // too much missing switch (true) { case (!(_contentsLength > 0)): case (!(_initialLength > 0)): case (!((_contentsLength / _initialLength) < 0.5)): case (!(($R.language == 'cjk') && (_contentsLength / _initialLength) 0.25))): case (($R.language == ‘cjk’) && (_global__exploreNodeToBuildHTMLFor && ((_explored._length__plain_text / _global__exploreNodeToBuildHTMLFor._length__plain_text) > 0.1))): break; default: $R.debugOutline(_node, ‘clean-after’, ‘missing-density’); _global__the_html = _global__the_html.substr(0, _pos__start__before); return; } } // return return; }; // actually do it _recursive(_nodeToBuildHTMLFor); // return html return _global__the_html; }; // article title marker // ==================== $R.articleTitleMarker__start = ‘

‘; $R.articleTitleMarker__end = ‘

‘; // article title check function // ============================ $R.getContent__find__hasIsolatedTitleInHTML = function (_html) { return (_html.substr(0, $R.articleTitleMarker__start.length) == $R.articleTitleMarker__start); }; // article title get function // ============================ $R.getContent__find__getIsolatedTitleInHTML = function (_html) { // is it there? if ($R.getContent__find__hasIsolatedTitleInHTML(_html)); else { return ”; } // regex var _getTitleRegex = new RegExp($R.articleTitleMarker__start + ‘(.*?)’ + $R.articleTitleMarker__end, ‘i’), _getTitleMatch = _html.match(_getTitleRegex) ; // match? if (_getTitleMatch); else { return ”; } // return return _getTitleMatch[1]; }; // find title in arbitrary html // ============================ $R.getContent__find__isolateTitleInHTML = function (_html, _document_title) { // can’t just use (h1|h2|h3|etc) — we want to try them in a certain order // ============================= var _heading_pregs = [ /]*?>([\s\S]+?)/gi, /]*?>([\s\S]+?)/gi, /]*?>([\s\S]+?)/gi ], _secondary_headings = ‘|h2|h3|h4|h5|h6|’, _search_document_title = ‘ ‘ + _document_title.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘) + ‘ ‘ ; // loop pregs // ========== for (var i=0, _i=_heading_pregs.length; i -1)): // will continue loop break; default: // measurements var _heading_end_pos = _heading_pregs[i].lastIndex, _heading_start_pos = (_heading_end_pos – _match[0].length), _heading_type = _match[1], _heading_text = _match[2].replace(/]*>/gi, ”).replace(/[\n\r]+/gi, ”), _heading_text_plain = _heading_text.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘); _heading_length = $R.measureText__getTextLength(_heading_text_plain), _heading_words = [], _to_heading_text = _html.substr(0, _heading_start_pos), _to_heading_length = $R.measureText__getTextLength(_to_heading_text.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘)) ; // return? switch (true) { case (!(_heading_length > 5)): case (!(_heading_length < (65 * 3))): case (!(_to_heading_length -1)): // words in this heading _heading_words = _heading_text_plain.split(‘ ‘); // count words present in title for (var j=0, _j=_heading_words.length, _matched_words=”; j -1) { _matched_words += _heading_words[j] + ‘ ‘; } } // break continues for loop // nothing goes to switch’s default // ================================ // no break? var _no_break = false; switch (true) { // if it’s big enough, and it’s a substring of the title, it’s good case ((_heading_length > 20) && (_search_document_title.indexOf(_heading_text_plain) > -1)): // if it’s slightly smaler, but is exactly at the begging or the end case ((_heading_length > 10) && ((_search_document_title.indexOf(_heading_text_plain) == 1) || (_search_document_title.indexOf(_heading_text_plain) == (_search_document_title.length – 1 – _heading_text_plain.length)))): _no_break = true; break; } // break? var _break = false; switch (true) { // no break? case (_no_break): break; // heading too long? — if not h2 case ((_heading_length > ((_search_document_title.length – 2) * 2)) && (_heading_type != ‘h2’)): // heading long enough? case ((_heading_length < Math.ceil((_search_document_title.length – 2) * 0.50))): // enough words matched? case ((_heading_length < 25) && (_matched_words.length < Math.ceil(_heading_length * 0.75))): case ((_heading_length < 50) && (_matched_words.length < Math.ceil(_heading_length * 0.65))): case ((_matched_words.length ” ? $R.document.title : ”) ; // get title // ========= // has title already? _foundHTML = $R.getContent__find__isolateTitleInHTML(_foundHTML, _documentTitle); $R.articleTitle = $R.getContent__find__getIsolatedTitleInHTML(_foundHTML); $R.debugPrint(‘TitleSource’, ‘target’); // get html above? if ($R.articleTitle > ”); else { // get html above target? // ====================== // global vars: // _found // _foundHTML // _documentTitle // _aboveNodes var _prevNode = _found._targetCandidate.__node, _prevHTML = ”, _aboveHTML = ”, _differentTargets = (_found._firstCandidate.__node != _found._targetCandidate.__node) ; (function () { while (true) { // the end? switch (true) { case (_prevNode.tagName && (_prevNode.tagName.toLowerCase() == ‘body’)): case (_differentTargets && (_prevNode == _found._firstCandidate.__node)): // enough is enough return; } // up or sideways? if (_prevNode.previousSibling); else { _prevNode = _prevNode.parentNode; continue; } // previous _prevNode = _prevNode.previousSibling; // outline — element might be re-outlined, when buildHTML is invoked if ($R.debug) { $R.debugOutline(_prevNode, ‘target’, ‘add-above’); } // get html; add _prevHTML = $R.getContent__buildHTMLForNode(_prevNode, ‘above-the-target’); _aboveHTML = _prevHTML + _aboveHTML; _aboveNodes.unshift(_prevNode); // isolate title _aboveHTML = $R.getContent__find__isolateTitleInHTML(_aboveHTML, _documentTitle); // finished? switch (true) { case ($R.measureText__getTextLength(_aboveHTML.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘)) > (65 * 3 * 3)): case ($R.getContent__find__hasIsolatedTitleInHTML(_aboveHTML)): return; } } })(); // is what we found any good? // ========================== switch (true) { case ($R.getContent__find__hasIsolatedTitleInHTML(_aboveHTML)): case (_differentTargets && (_aboveHTML.split(‘<a ').length < 3) && ($R.measureText__getTextLength(_aboveHTML.replace(/]+?>/gi, ”).replace(/\s+/gi, ‘ ‘)) ”); else { // if all else failed, get document title // ====================================== // global vars: // _foundHTML // _documentTitle (function () { // return? // ======= if (_documentTitle > ”); else { return; } // vars var _doc_title_parts = [], _doc_title_pregs = [ /( [-][-] |( [-] )|( [>][>] )|( [<][<] )|( [|] )|( [\/] ))/i, /(([:] ))/i ] ; // loop through pregs // ================== for (var i=0, _i=_doc_title_pregs.length; i 1) { break; } } // sort title parts — longer goes higher up — i.e. towards 0 // ================ _doc_title_parts.sort(function (a, b) { switch (true) { case (a.length > b.length): return -1; case (a.length 1 ? _doc_title_parts[0] : _documentTitle) + $R.articleTitleMarker__end + _foundHTML ; })(); $R.articleTitle = $R.getContent__find__getIsolatedTitleInHTML(_foundHTML); $R.debugPrint(‘TitleSource’, ‘document_title’); } } // display // ======= $R.$pages.html(”); $R.displayPageHTML(_foundHTML, 1, $R.win.location.href); // remember // ======== $R.debugRemember[‘theTarget’] = _found._targetCandidate.__node; $R.debugRemember[‘firstCandidate’] = _found._firstCandidate.__node; // next // ==== $R.nextPage__firstFragment__firstPage = _firstFragmentBefore; $R.nextPage__firstFragment__lastPage = $R.getContent__nextPage__getFirstFragment(_foundHTML);; $R.nextPage__loadedPages = [$R.win.location.href]; $R.getContent__nextPage__find($R.win, _found._links); // return return true; }; $R.getContent__findInPage = function (_pageWindow) { // calculations // ============ var _firstCandidate = false, _secondCandidate = false, _targetCandidate = false ; $R.debugTimerStart(‘ExploreAndGetStuff’); var _stuff = $R.getContent__exploreNodeAndGetStuff(_pageWindow.document.body); $R.debugPrint(‘ExploreAndGetStuff’, $R.debugTimerEnd()+’ms’); $R.debugTimerStart(‘ProcessFirst’); var _processedCandidates = $R.getContent__processCandidates(_stuff._candidates); _firstCandidate = _processedCandidates[0]; _targetCandidate = _firstCandidate; $R.debugPrint(‘ProcessFirst’, $R.debugTimerEnd()+’ms’); // debug if ($R.debug) { // debug first candidates $R.log(‘First 5 Main Candidates:’); for (var x in _processedCandidates) { if (x == 5) { break; } $R.log(_processedCandidates[x], _processedCandidates[x].__node); } // highlight first $R.debugOutline(_firstCandidate.__node, ‘target’, ‘first’); } // in case we stop $R.debugPrint(‘Target’, ‘first’); // do second? switch (true) { case (!(_firstCandidate._count__containers > 0)): case (!(_firstCandidate._count__candidates > 0)): case (!(_firstCandidate._count__pieces > 0)): case (!(_firstCandidate._count__containers > 25)): break; default: $R.debugTimerStart(‘ProcessSecond’); var _processedCandidatesSecond = $R.getContent__processCandidatesSecond(_processedCandidates); _secondCandidate = _processedCandidatesSecond[0]; $R.debugPrint(‘ProcessSecond’, $R.debugTimerEnd()+’ms’); // they’re the same if (_firstCandidate.__node == _secondCandidate.__node) { break; } // debug if ($R.debug) { // log second candidates $R.log(‘First 5 Second Candidates:’); for (var x in _processedCandidatesSecond) { if (x == 5) { break; } $R.log(_processedCandidatesSecond[x], _processedCandidatesSecond[x].__node); } // highlight second $R.debugOutline(_secondCandidate.__node, ‘target’, ‘second’); } // compute again // ============= _firstCandidate[‘__points_history_final’] = $R.getContent__computePointsForCandidateThird(_firstCandidate, _firstCandidate); _firstCandidate[‘__points_final’] = _firstCandidate.__points_history_final[0]; _secondCandidate[‘__points_history_final’] = $R.getContent__computePointsForCandidateThird(_secondCandidate, _firstCandidate); _secondCandidate[‘__points_final’] = _secondCandidate.__points_history_final[0]; // log results // =========== if ($R.debug) { $R.log(‘The 2 Candidates:’); $R.log(_firstCandidate); $R.log(_secondCandidate); } // are we selecting _second? // ========================= switch (true) { case ((_secondCandidate.__candidate_details._count__lines_of_65_characters 1): case ((_secondCandidate.__candidate_details._count__lines_of_65_characters > 20) && (_secondCandidate.__points_final / _firstCandidate.__points_final) > 0.9): case ((_secondCandidate.__candidate_details._count__lines_of_65_characters > 50) && (_secondCandidate.__points_final / _firstCandidate.__points_final) > 0.75): _targetCandidate = _secondCandidate; $R.debugPrint(‘Target’, ‘second’); break; } // print points // ============ if ($R.debug) { $R.debugPrint(‘PointsFirst’, _firstCandidate[‘__points_history_final’][0].toFixed(2)); $R.debugPrint(‘PointsSecond’, _secondCandidate[‘__points_history_final’][0].toFixed(2)); } break; } // highlight target // ================ if ($R.debug) { $(_targetCandidate.__node).css({ ‘box-shadow’: ‘inset 0px 0px 50px rgba(255, 255, 0, 0.95), 0px 0px 50px rgba(255, 255, 0, 0.95)’ }); } // get html // ======== $R.debugTimerStart(‘BuildHTML’); var _html = $R.getContent__buildHTMLForNode(_targetCandidate.__node, ‘the-target’); _html = _html.substr((_html.indexOf(‘>’)+1)) _html = _html.substr(0, _html.lastIndexOf(‘<')); $R.debugPrint('BuildHTML', $R.debugTimerEnd()+'ms'); $R.debugTimerStart('BuildHTMLPregs'); _html = _html.replace(/]*)>(\s*
)+/gi, ”); _html = _html.replace(/(
\s*)+/gi, ”); _html = _html.replace(/(
\s*)+]*)>/gi, ”); _html = _html.replace(/(\s*
)+/gi, ”); _html = _html.replace(/(
\s*
\s*)+/gi, ‘
‘); _html = _html.replace(/(
\s*
\s*)+/gi, ‘

‘); $R.debugPrint(‘BuildHTMLPregs’, $R.debugTimerEnd()+’ms’); // return // ====== return { ‘_html’: _html, ‘_links’: _stuff._links, ‘_targetCandidate’: _targetCandidate, ‘_firstCandidate’: _firstCandidate }; }; // get first page fragment // ======================= $R.getContent__nextPage__getFirstFragment = function (_html) { // remove all tags _html = _html.replace(/]+?>/gi, ”); // normalize spaces _html = _html.replace(/\s+/gi, ‘ ‘); // return first 1000 characters return _html.substr(0, 2000); }; // get link parts // ============== // substr starting with the first slash after // $R.getURLPath = function (_url) { return _url.substr(_url.indexOf(‘/’, (_url.indexOf(‘//’) + 2))); }; // substr until the first slash after // $R.getURLDomain = function (_url) { return _url.substr(0, _url.indexOf(‘/’, (_url.indexOf(‘//’) + 2))) }; // find // ==== $R.getContent__nextPage__find = function (_currentPageWindow, _linksInCurrentPage) { // page id var _pageNr = ($R.nextPage__loadedPages.length + 1); // get // === var _possible = []; if (_possible.length > 0); else { _possible = $R.getContent__nextPage__find__possible(_currentPageWindow, _linksInCurrentPage, 0.5); } //if (_possible.length > 0); else { _possible = $R.getContent__nextPage__find__possible(_currentPageWindow, _linksInCurrentPage, 0.50); } // none if (_possible.length > 0); else { if ($R.debug) { $R.log(‘no next link found’); } return; } if ($R.debug) { $R.log(‘possible next’, _possible); } // the one // ======= var _nextLink = false; // next keyword? // ============= (function () { if (_nextLink) { return; } for (var i=0, _i=_possible.length; i<_i; i++) { for (var j=0, _j=$R.nextPage__captionKeywords.length; j -1) { // length // ====== if (_possible[i]._caption.length > $R.nextPage__captionKeywords[j].length * 2) { continue; } // not keywords // ============ for (var z=0, _z=$R.nextPage__captionKeywords__not.length; z -1) { _nextLink = false; return; } } // got it // ====== _nextLink = _possible[i]; return; } } } })(); // caption matched page number // =========================== (function () { if (_nextLink) { return; } for (var i=0, _i=_possible.length; i<_i; i++) { if (_possible[i]._caption == (''+_pageNr)) { _nextLink = _possible[i]; return; } } })(); // next keyword in title // ===================== (function () { if (_nextLink) { return; } for (var i=0, _i=_possible.length; i ”); else { continue; } if ($R.measureText__getTextLength(_possible[i]._caption) <= 2); else { continue; } for (var j=0, _j=$R.nextPage__captionKeywords.length; j -1) { // length // ====== if (_possible[i]._title.length > $R.nextPage__captionKeywords[j].length * 2) { continue; } // not keywords // ============ for (var z=0, _z=$R.nextPage__captionKeywords__not.length; z -1) { _nextLink = false; return; } } // got it // ====== _nextLink = _possible[i]; return; } } } })(); // return? // ======= if (_nextLink); else { return; } // mark // ==== $R.debugPrint(‘NextPage’, ‘true’); if ($R.debug) { $R.debugOutline(_nextLink._node, ‘target’, ‘next-page’); $R.log(‘NextPage Link’, _nextLink, _nextLink._node); } // process page // ============ $R.getContent__nextPage__loadToFrame(_pageNr, _nextLink._href); $R.nextPage__loadedPages.push(_nextLink._href); }; // find with similarity // ==================== $R.getContent__nextPage__find__possible = function (_currentPageWindow, _linksInCurrentPage, _distanceFactor) { var _mainPageHref = $R.win.location.href, _mainPageDomain = $R.getURLDomain(_mainPageHref), _mainPagePath = $R.getURLPath(_mainPageHref) ; var _links = $.map ( _linksInCurrentPage, function (_element, _index) { var _href = _element.__node.href, _path = $R.getURLPath(_href), _title = (_element.__node.title > ” ? _element.__node.title.toLowerCase() : ”), _caption = _element.__node.innerHTML.replace(/]+?>/gi, ”).replace(/\&[^\&\s;]{1,10};/gi, ”).replace(/\s+/gi, ‘ ‘).replace(/^ /, ”).replace(/ $/, ”).toLowerCase(), _distance = $R.levenshteinDistance(_mainPagePath, _path) ; var _caption2 = ”; for (var i=0, _i=_caption.length, _code=0; i 127 ? (‘&#’+_code+’;’) : _caption.charAt(i)); } _caption = _caption2; switch (true) { case (!(_href > ”)): case (_mainPageHref.length > _href.length): case (_mainPageDomain != $R.getURLDomain(_href)): case (_href.substr(_mainPageHref.length).substr(0, 1) == ‘#’): case (_distance > Math.ceil(_distanceFactor * _path.length)): return null; default: // skip if already loaded as next page for (var i=0, _i=$R.nextPage__loadedPages.length; i<_i; i++) { if ($R.nextPage__loadedPages[i] == _href) { return null; } } // return return { '_node': _element.__node, '_href': _href, '_title': _title, '_caption': _caption, '_distance': _distance }; } } ); // sort — the less points, the closer to position 0 // ==== _links.sort(function (a, b) { switch (true) { case (a._distance b._distance): return 1; default: return 0; } }); // return return _links; }; // load to frame // ============= $R.getContent__nextPage__loadToFrame = function (_pageNr, _nextPageURL) { // do ajax // ======= $.ajax ({ ‘url’ : _nextPageURL, ‘type’ : ‘GET’, ‘dataType’ : ‘html’, ‘async’ : true, ‘timeout’: (10 * 1000), //’headers’: { ‘Referrer’: _nextPageURL }, ‘success’ : function (_response, _textStatus, _xhr) { $R.getContent__nextPage__ajaxComplete(_pageNr, _response, _textStatus, _xhr); }, ‘error’ : function (_xhr, _textStatus, _error) { $R.getContent__nextPage__ajaxError(_pageNr, _xhr, _textStatus, _error); } }); }; // ajax calbacks // ============= $R.getContent__nextPage__ajaxError = function (_pageNr, _xhr, _textStatus, _error) { }; $R.getContent__nextPage__ajaxComplete = function (_pageNr, _response, _textStatus, _xhr) { // valid? // ====== if (_response > ”); else { return; } // script // ====== var _script = ” + ” + ‘ function __this_page_loaded()’ + ‘ {‘ + ‘ window.setTimeout(‘ + ‘ function () {‘ + ($R.component ? ‘window.parent.’ : ‘window.parent.parent.’) + ‘$readable.getContent__nextPage__loadedInFrame(“‘+_pageNr+'”, window); }, ‘ + ‘ 250’ + ‘ );’ + ‘ } ‘ + ‘ if (document.readyState); else { __this_page_loaded(); } ‘ + ‘ function __this_page_loaded_ready(delayedNrTimes)’ + ‘ {‘ + ‘ if (document.readyState != “complete” && delayedNrTimes

‘ ; // get html // ======== var _html = _response; // normalize // ========= _html = _html.replace(/<\s+/gi, ‘<‘); _html = _html.replace(/\s+>/gi, ‘>’); _html = _html.replace(/\s+\/>/gi, ‘/>’); // remove // ====== _html = _html.replace(/]*?>([\s\S]*?)<\/script>/gi, ”); _html = _html.replace(/]*?\/>/gi, ”); _html = _html.replace(/]*?>([\s\S]*?)<\/noscript>/gi, ”); _html = _html.replace(/” ? $R.document.title : ”)); _foundHTML = _foundHTML.replace(_removeTitleRegex, ”); // once with article title _foundHTML = $R.getContent__find__isolateTitleInHTML(_foundHTML, $R.articleTitle); _foundHTML = _foundHTML.replace(_removeTitleRegex, ”); // display // ======= $R.displayPageHTML(_foundHTML, _pageNr, _pageWindow.location.href); // next // ==== $R.getContent__nextPage__find(_pageWindow, _found._links); }; // rewrites // ======== // rewrite displayPageHTML — for multi-page articles // ======================= $R.displayPageHTML = function (_processedPageHTML, _pageNr, _pageURL) { // skip first if (_pageNr > 1); else { return; } // push to pages $C._nextPages.push({ ‘_html’: _processedPageHTML, ‘_url’: _pageURL }); }; // rewrite makeRTL — for right-to-left pages // =============== $R.makeRTL = function () { $R.rtl = true; }; $R.makeNotRTL = function () { $R.rtl = false; } // set component object // ==================== window.ClearlyComponent = $C; window.$readable = $R; }

// <![CDATA[ /* http://www.JSON.org/json2.js 2008-11-19 Public Domain. NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK. See http://www.JSON.org/js.html This file creates a global JSON object containing two methods: stringify and parse. JSON.stringify(value, replacer, space) value any JavaScript value, usually an object or array. replacer an optional parameter that determines how object values are stringified for objects. It can be a function or an array of strings. space an optional parameter that specifies the indentation of nested structures. If it is omitted, the text will be packed without extra whitespace. If it is a number, it will specify the number of spaces to indent at each level. If it is a string (such as '\t' or ' '), it contains the characters used to indent at each level. This method produces a JSON text from a JavaScript value. When an object value is found, if the object contains a toJSON method, its toJSON method will be called and the result will be stringified. A toJSON method does not serialize: it returns the value represented by the name/value pair that should be serialized, or undefined if nothing should be serialized. The toJSON method will be passed the key associated with the value, and this will be bound to the object holding the key. For example, this would serialize Dates as ISO strings. Date.prototype.toJSON = function (key) { function f(n) { // Format integers to have at least two digits. return n < 10 ? '0' + n : n; } return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z'; }; You can provide an optional replacer method. It will be passed the key and value of each member, with this bound to the containing object. The value that is returned from your method will be serialized. If your method returns undefined, then the member will be excluded from the serialization. If the replacer parameter is an array of strings, then it will be used to select the members to be serialized. It filters the results such that only members with keys listed in the replacer array are stringified. Values that do not have JSON representations, such as undefined or functions, will not be serialized. Such values in objects will be dropped; in arrays they will be replaced with null. You can use a replacer function to replace those with JSON values. JSON.stringify(undefined) returns undefined. The optional space parameter produces a stringification of the value that is filled with line breaks and indentation to make it easier to read. If the space parameter is a non-empty string, then that string will be used for indentation. If the space parameter is a number, then the indentation will be that many spaces. Example: text = JSON.stringify(['e', {pluribus: 'unum'}]); // text is '["e",{"pluribus":"unum"}]' text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t'); // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]' text = JSON.stringify([new Date()], function (key, value) { return this[key] instanceof Date ? 'Date(' + this[key] + ')' : value; }); // text is '["Date(—current time—)"]' JSON.parse(text, reviver) This method parses a JSON text to produce an object or array. It can throw a SyntaxError exception. The optional reviver parameter is a function that can filter and transform the results. It receives each of the keys and values, and its return value is used instead of the original value. If it returns what it received, then the structure is not modified. If it returns undefined then the member is deleted. Example: // Parse the text. Values that look like ISO date strings will // be converted to Date objects. myData = JSON.parse(text, function (key, value) { var a; if (typeof value === 'string') { a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value); if (a) { return new Date(Date.UTC(+a[1], +a[2] – 1, +a[3], +a[4], +a[5], +a[6])); } } return value; }); myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) { var d; if (typeof value === 'string' && value.slice(0, 5) === 'Date(' && value.slice(-1) === ')') { d = new Date(value.slice(5, -1)); if (d) { return d; } } return value; }); This is a reference implementation. You are free to copy, modify, or redistribute. This code should be minified before deployment. See http://javascript.crockford.com/jsmin.html USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO NOT CONTROL. */ /*jslint evil: true */ /*global JSON */ /*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply, call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours, getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join, lastIndex, length, parse, prototype, push, replace, slice, stringify, test, toJSON, toString, valueOf */ // Create a JSON object only if one does not already exist. We create the // methods in a closure to avoid creating global variables. if (!this.JSON) { JSON = {}; } (function () { function f(n) { // Format integers to have at least two digits. return n < 10 ? '0' + n : n; } if (typeof Date.prototype.toJSON !== 'function') { Date.prototype.toJSON = function (key) { return this.getUTCFullYear() + '-' + f(this.getUTCMonth() + 1) + '-' + f(this.getUTCDate()) + 'T' + f(this.getUTCHours()) + ':' + f(this.getUTCMinutes()) + ':' + f(this.getUTCSeconds()) + 'Z'; }; String.prototype.toJSON = Number.prototype.toJSON = Boolean.prototype.toJSON = function (key) { return this.valueOf(); }; } var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, gap, indent, meta = { // table of character substitutions '\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '"' : '\\"', '\\': '\\\\' }, rep; function quote(string) { // If the string contains no control characters, no quote characters, and no // backslash characters, then we can safely slap some quotes around it. // Otherwise we must also replace the offending characters with safe escape // sequences. escapable.lastIndex = 0; return escapable.test(string) ? '"' + string.replace(escapable, function (a) { var c = meta[a]; return typeof c === 'string' ? c : '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4); }) + '"' : '"' + string + '"'; } function str(key, holder) { // Produce a string from holder[key]. var i, // The loop counter. k, // The member key. v, // The member value. length, mind = gap, partial, value = holder[key]; // If the value has a toJSON method, call it to obtain a replacement value. if (value && typeof value === 'object' && typeof value.toJSON === 'function') { value = value.toJSON(key); } // If we were called with a replacer function, then call the replacer to // obtain a replacement value. if (typeof rep === 'function') { value = rep.call(holder, key, value); } // What happens next depends on the value's type. switch (typeof value) { case 'string': return quote(value); case 'number': // JSON numbers must be finite. Encode non-finite numbers as null. return isFinite(value) ? String(value) : 'null'; case 'boolean': case 'null': // If the value is a boolean or null, convert it to a string. Note: // typeof null does not produce 'null'. The case is included here in // the remote chance that this gets fixed someday. return String(value); // If the type is 'object', we might be dealing with an object or an array or // null. case 'object': // Due to a specification blunder in ECMAScript, typeof null is 'object', // so watch out for that case. if (!value) { return 'null'; } // Make an array to hold the partial results of stringifying this object value. gap += indent; partial = []; // Is the value an array? if (Object.prototype.toString.apply(value) === '[object Array]') { // The value is an array. Stringify every element. Use null as a placeholder // for non-JSON values. length = value.length; for (i = 0; i < length; i += 1) { partial[i] = str(i, value) || 'null'; } // Join all of the elements together, separated with commas, and wrap them in // brackets. v = partial.length === 0 ? '[]' : gap ? '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' : '[' + partial.join(',') + ']'; gap = mind; return v; } // If the replacer is an array, use it to select the members to be stringified. if (rep && typeof rep === 'object') { length = rep.length; for (i = 0; i < length; i += 1) { k = rep[i]; if (typeof k === 'string') { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } else { // Otherwise, iterate through all of the keys in the object. for (k in value) { if (Object.hasOwnProperty.call(value, k)) { v = str(k, value); if (v) { partial.push(quote(k) + (gap ? ': ' : ':') + v); } } } } // Join all of the member texts together, separated with commas, // and wrap them in braces. v = partial.length === 0 ? '{}' : gap ? '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' : '{' + partial.join(',') + '}'; gap = mind; return v; } } // If the JSON object does not yet have a stringify method, give it one. if (typeof JSON.stringify !== 'function') { JSON.stringify = function (value, replacer, space) { // The stringify method takes a value and an optional replacer, and an optional // space parameter, and returns a JSON text. The replacer can be a function // that can replace values, or an array of strings that will select the keys. // A default replacer method can be provided. Use of the space parameter can // produce text that is more easily readable. var i; gap = ''; indent = ''; // If the space parameter is a number, make an indent string containing that // many spaces. if (typeof space === 'number') { for (i = 0; i // <![CDATA[ // HTML5 placeholder plugin version 1.01 // Copyright (c) 2010-The End of Time, Mike Taylor, http://miketaylr.com // MIT Licensed: http://www.opensource.org/licenses/mit-license.php // // Enables cross-browser HTML5 placeholder for inputs, by first testing // for a native implementation before building one. // // // USAGE: //$('input[placeholder]').placeholder(); // (function($){ //feature detection var hasPlaceholder = ‘placeholder’ in document.createElement(‘input’); //sniffy sniff sniff — just to give extra left padding for the older //graphics for type=email and type=url var isOldOpera = $.browser.opera && $.browser.version < 10.5; $.fn.placeholder = function(options) { //merge in passed in options, if any var options = $.extend({}, $.fn.placeholder.defaults, options), //cache the original 'left' value, for use by Opera later o_left = options.placeholderCSS.left; //first test for native placeholder support before continuing //feature detection inspired by ye olde jquery 1.4 hawtness, with paul irish return (hasPlaceholder) ? this : this.each(function() { //local vars var $this = $(this), inputVal = $.trim($this.val()), inputWidth = $this.width(), inputHeight = $this.height(), //grab the inputs id for the
‘ + _key + ‘‘ + _value + ‘
]*?>/gi, ”); _contents = _contents.replace(//gi, ”); } // for tables, clear empty rows if (_tag_name == ‘table’) { _contents = _contents.replace(/