/*
 * jQuery JavaScript Library v1.4.1
 * http://jquery.com/
 *
 * Copyright 2010, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2010, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Mon Jan 25 19:43:33 2010 -0500
 */
(function(M,U){function be(){if(!aj.isReady){try{ac.documentElement.doScroll("left")}catch(c){setTimeout(be,1);return}aj.ready()}}function bi(r,c){c.src?aj.ajax({url:c.src,async:false,dataType:"script"}):aj.globalEval(c.text||c.textContent||c.innerHTML||"");c.parentNode&&c.parentNode.removeChild(c)}function ar(r,c,J,F,G,z){var v=r.length;if(typeof c==="object"){for(var K in c){ar(r,K,c[K],F,G,J)}return r}if(J!==U){F=!z&&F&&aj.isFunction(J);for(K=0;K<v;K++){G(r[K],c,F?J.call(r[K],K,G(r[K],c)):J,z)}return r}return v?G(r[0],c):null}function aH(){return(new Date).getTime()}function aq(){return false}function ao(){return true}function a0(r,c,v){v[0].type=r;return aj.event.handle.apply(c,v)}function aM(O){var L,K=[],G=[],J=arguments,F,z,r,c,v,P,N=aj.extend({},aj.data(this,"events").live);if(!(O.button&&O.type==="click")){for(c in N){z=N[c];if(z.live===O.type||z.altLive&&aj.inArray(O.type,z.altLive)>-1){F=z.data;F.beforeFilter&&F.beforeFilter[O.type]&&!F.beforeFilter[O.type](O)||G.push(z.selector)}else{delete N[c]}}F=aj(O.target).closest(G,O.currentTarget);v=0;for(P=F.length;v<P;v++){for(c in N){z=N[c];r=F[v].elem;G=null;if(F[v].selector===z.selector){if(z.live==="mouseenter"||z.live==="mouseleave"){G=aj(O.relatedTarget).closest(z.selector)[0]}if(!G||G!==r){K.push({elem:r,fn:z})}}}}v=0;for(P=K.length;v<P;v++){F=K[v];O.currentTarget=F.elem;O.data=F.fn.data;if(F.fn.apply(F.elem,J)===false){L=false;break}}return L}}function ai(r,c){return"live."+(r?r+".":"")+c.replace(/\./g,"`").replace(/ /g,"&")}function C(c){return !c||!c.parentNode||c.parentNode.nodeType===11}function n(r,c){var v=0;c.each(function(){if(this.nodeName===(r[v]&&r[v].nodeName)){var G=aj.data(r[v++]),J=aj.data(this,G);if(G=G&&G.events){delete J.handle;J.events={};for(var F in G){for(var z in G[F]){aj.event.add(this,F,G[F][z],G[F][z].data)}}}}})}function bh(r,c,G){var z,F,v;if(r.length===1&&typeof r[0]==="string"&&r[0].length<512&&r[0].indexOf("<option")<0&&(aj.support.checkClone||!a4.test(r[0]))){F=true;if(v=aj.fragments[r[0]]){if(v!==1){z=v}}}if(!z){c=c&&c[0]?c[0].ownerDocument||c[0]:ac;z=c.createDocumentFragment();aj.clean(r,c,z,G)}if(F){aj.fragments[r[0]]=v?z:1}return{fragment:z,cacheable:F}}function aE(r,c){var v={};aj.each(aQ.concat.apply([],aQ.slice(0,c)),function(){v[this]=r});return v}function am(c){return"scrollTo" in c&&c.document?c:c.nodeType===9?c.defaultView||c.parentWindow:false}var aj=function(r,c){return new aj.fn.init(r,c)},a5=M.jQuery,aR=M.$,ac=M.document,aw,an=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,I=/^.[^:#\[\.,]*$/,s=/\S/,d=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,a7=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,aB=navigator.userAgent,H=false,az=[],aD,a2=Object.prototype.toString,aV=Object.prototype.hasOwnProperty,aA=Array.prototype.push,ax=Array.prototype.slice,q=Array.prototype.indexOf;aj.fn=aj.prototype={init:function(r,c){var z,v;if(!r){return this}if(r.nodeType){this.context=this[0]=r;this.length=1;return this}if(typeof r==="string"){if((z=an.exec(r))&&(z[1]||!c)){if(z[1]){v=c?c.ownerDocument||c:ac;if(r=a7.exec(r)){if(aj.isPlainObject(c)){r=[ac.createElement(r[1])];aj.fn.attr.call(r,c,true)}else{r=[v.createElement(r[1])]}}else{r=bh([z[1]],[v]);r=(r.cacheable?r.fragment.cloneNode(true):r.fragment).childNodes}}else{if(c=ac.getElementById(z[2])){if(c.id!==z[2]){return aw.find(r)}this.length=1;this[0]=c}this.context=ac;this.selector=r;return this}}else{if(!c&&/^\w+$/.test(r)){this.selector=r;this.context=ac;r=ac.getElementsByTagName(r)}else{return !c||c.jquery?(c||aw).find(r):aj(c).find(r)}}}else{if(aj.isFunction(r)){return aw.ready(r)}}if(r.selector!==U){this.selector=r.selector;this.context=r.context}return aj.isArray(r)?this.setArray(r):aj.makeArray(r,this)},selector:"",jquery:"1.4.1",length:0,size:function(){return this.length},toArray:function(){return ax.call(this,0)},get:function(c){return c==null?this.toArray():c<0?this.slice(c)[0]:this[c]},pushStack:function(r,c,v){r=aj(r||null);r.prevObject=this;r.context=this.context;if(c==="find"){r.selector=this.selector+(this.selector?" ":"")+v}else{if(c){r.selector=this.selector+"."+c+"("+v+")"}}return r},setArray:function(c){this.length=0;aA.apply(this,c);return this},each:function(r,c){return aj.each(this,r,c)},ready:function(c){aj.bindReady();if(aj.isReady){c.call(ac,aj)}else{az&&az.push(c)}return this},eq:function(c){return c===-1?this.slice(c):this.slice(c,+c+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(ax.apply(this,arguments),"slice",ax.call(arguments).join(","))},map:function(c){return this.pushStack(aj.map(this,function(r,v){return c.call(r,v,r)}))},end:function(){return this.prevObject||aj(null)},push:aA,sort:[].sort,splice:[].splice};aj.fn.init.prototype=aj.fn;aj.extend=aj.fn.extend=function(){var r=arguments[0]||{},c=1,J=arguments.length,F=false,G,z,v,K;if(typeof r==="boolean"){F=r;r=arguments[1]||{};c=2}if(typeof r!=="object"&&!aj.isFunction(r)){r={}}if(J===c){r=this;--c}for(;c<J;c++){if((G=arguments[c])!=null){for(z in G){v=r[z];K=G[z];if(r!==K){if(F&&K&&(aj.isPlainObject(K)||aj.isArray(K))){v=v&&(aj.isPlainObject(v)||aj.isArray(v))?v:aj.isArray(K)?[]:{};r[z]=aj.extend(F,v,K)}else{if(K!==U){r[z]=K}}}}}}return r};aj.extend({noConflict:function(c){M.$=aR;if(c){M.jQuery=a5}return aj},isReady:false,ready:function(){if(!aj.isReady){if(!ac.body){return setTimeout(aj.ready,13)}aj.isReady=true;if(az){for(var r,c=0;r=az[c++];){r.call(ac,aj)}az=null}aj.fn.triggerHandler&&aj(ac).triggerHandler("ready")}},bindReady:function(){if(!H){H=true;if(ac.readyState==="complete"){return aj.ready()}if(ac.addEventListener){ac.addEventListener("DOMContentLoaded",aD,false);M.addEventListener("load",aj.ready,false)}else{if(ac.attachEvent){ac.attachEvent("onreadystatechange",aD);M.attachEvent("onload",aj.ready);var r=false;try{r=M.frameElement==null}catch(c){}ac.documentElement.doScroll&&r&&be()}}}},isFunction:function(c){return a2.call(c)==="[object Function]"},isArray:function(c){return a2.call(c)==="[object Array]"},isPlainObject:function(r){if(!r||a2.call(r)!=="[object Object]"||r.nodeType||r.setInterval){return false}if(r.constructor&&!aV.call(r,"constructor")&&!aV.call(r.constructor.prototype,"isPrototypeOf")){return false}var c;for(c in r){}return c===U||aV.call(r,c)},isEmptyObject:function(r){for(var c in r){return false}return true},error:function(c){throw c},parseJSON:function(c){if(typeof c!=="string"||!c){return null}if(/^[\],:{}\s]*$/.test(c.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){return M.JSON&&M.JSON.parse?M.JSON.parse(c):(new Function("return "+c))()}else{aj.error("Invalid JSON: "+c)}},noop:function(){},globalEval:function(r){if(r&&s.test(r)){var c=ac.getElementsByTagName("head")[0]||ac.documentElement,v=ac.createElement("script");v.type="text/javascript";if(aj.support.scriptEval){v.appendChild(ac.createTextNode(r))}else{v.text=r}c.insertBefore(v,c.firstChild);c.removeChild(v)}},nodeName:function(r,c){return r.nodeName&&r.nodeName.toUpperCase()===c.toUpperCase()},each:function(r,c,J){var F,G=0,z=r.length,v=z===U||aj.isFunction(r);if(J){if(v){for(F in r){if(c.apply(r[F],J)===false){break}}}else{for(;G<z;){if(c.apply(r[G++],J)===false){break}}}}else{if(v){for(F in r){if(c.call(r[F],F,r[F])===false){break}}}else{for(J=r[0];G<z&&c.call(J,G,J)!==false;J=r[++G]){}}}return r},trim:function(c){return(c||"").replace(d,"")},makeArray:function(r,c){c=c||[];if(r!=null){r.length==null||typeof r==="string"||aj.isFunction(r)||typeof r!=="function"&&r.setInterval?aA.call(c,r):aj.merge(c,r)}return c},inArray:function(r,c){if(c.indexOf){return c.indexOf(r)}for(var z=0,v=c.length;z<v;z++){if(c[z]===r){return z}}return -1},merge:function(r,c){var F=r.length,v=0;if(typeof c.length==="number"){for(var z=c.length;v<z;v++){r[F++]=c[v]}}else{for(;c[v]!==U;){r[F++]=c[v++]}}r.length=F;return r},grep:function(r,c,G){for(var z=[],F=0,v=r.length;F<v;F++){!G!==!c(r[F],F)&&z.push(r[F])}return z},map:function(r,c,J){for(var F=[],G,z=0,v=r.length;z<v;z++){G=c(r[z],z,J);if(G!=null){F[F.length]=G}}return F.concat.apply([],F)},guid:1,proxy:function(r,c,v){if(arguments.length===2){if(typeof c==="string"){v=r;r=v[c];c=U}else{if(c&&!aj.isFunction(c)){v=c;c=U}}}if(!c&&r){c=function(){return r.apply(v||this,arguments)}}if(r){c.guid=r.guid=r.guid||c.guid||aj.guid++}return c},uaMatch:function(c){c=c.toLowerCase();c=/(webkit)[ \/]([\w.]+)/.exec(c)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(c)||/(msie) ([\w.]+)/.exec(c)||!/compatible/.test(c)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(c)||[];return{browser:c[1]||"",version:c[2]||"0"}},browser:{}});aB=aj.uaMatch(aB);if(aB.browser){aj.browser[aB.browser]=true;aj.browser.version=aB.version}if(aj.browser.webkit){aj.browser.safari=true}if(q){aj.inArray=function(r,c){return q.call(c,r)}}aw=aj(ac);if(ac.addEventListener){aD=function(){ac.removeEventListener("DOMContentLoaded",aD,false);aj.ready()}}else{if(ac.attachEvent){aD=function(){if(ac.readyState==="complete"){ac.detachEvent("onreadystatechange",aD);aj.ready()}}}}(function(){aj.support={};var r=ac.documentElement,c=ac.createElement("script"),J=ac.createElement("div"),F="script"+aH();J.style.display="none";J.innerHTML="   <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";var G=J.getElementsByTagName("*"),z=J.getElementsByTagName("a")[0];if(!(!G||!G.length||!z)){aj.support={leadingWhitespace:J.firstChild.nodeType===3,tbody:!J.getElementsByTagName("tbody").length,htmlSerialize:!!J.getElementsByTagName("link").length,style:/red/.test(z.getAttribute("style")),hrefNormalized:z.getAttribute("href")==="/a",opacity:/^0.55$/.test(z.style.opacity),cssFloat:!!z.style.cssFloat,checkOn:J.getElementsByTagName("input")[0].value==="on",optSelected:ac.createElement("select").appendChild(ac.createElement("option")).selected,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};c.type="text/javascript";try{c.appendChild(ac.createTextNode("window."+F+"=1;"))}catch(v){}r.insertBefore(c,r.firstChild);if(M[F]){aj.support.scriptEval=true;delete M[F]}r.removeChild(c);if(J.attachEvent&&J.fireEvent){J.attachEvent("onclick",function K(){aj.support.noCloneEvent=false;J.detachEvent("onclick",K)});J.cloneNode(true).fireEvent("onclick")}J=ac.createElement("div");J.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";r=ac.createDocumentFragment();r.appendChild(J.firstChild);aj.support.checkClone=r.cloneNode(true).cloneNode(true).lastChild.checked;aj(function(){var L=ac.createElement("div");L.style.width=L.style.paddingLeft="1px";ac.body.appendChild(L);aj.boxModel=aj.support.boxModel=L.offsetWidth===2;ac.body.removeChild(L).style.display="none"});r=function(O){var N=ac.createElement("div");O="on"+O;var L=O in N;if(!L){N.setAttribute(O,"return;");L=typeof N[O]==="function"}return L};aj.support.submitBubbles=r("submit");aj.support.changeBubbles=r("change");r=c=J=G=z=null}})();aj.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var aJ="jQuery"+aH(),aT=0,b={},ap={};aj.extend({cache:{},expando:aJ,noData:{embed:true,object:true,applet:true},data:function(r,c,F){if(!(r.nodeName&&aj.noData[r.nodeName.toLowerCase()])){r=r==M?b:r;var v=r[aJ],z=aj.cache;if(!c&&!v){return null}v||(v=++aT);if(typeof c==="object"){r[aJ]=v;z=z[v]=aj.extend(true,{},c)}else{z=z[v]?z[v]:typeof F==="undefined"?ap:(z[v]={})}if(F!==U){r[aJ]=v;z[c]=F}return typeof c==="string"?z[c]:z}},removeData:function(r,c){if(!(r.nodeName&&aj.noData[r.nodeName.toLowerCase()])){r=r==M?b:r;var G=r[aJ],z=aj.cache,F=z[G];if(c){if(F){delete F[c];aj.isEmptyObject(F)&&aj.removeData(r)}}else{try{delete r[aJ]}catch(v){r.removeAttribute&&r.removeAttribute(aJ)}delete z[G]}}}});aj.fn.extend({data:function(r,c){if(typeof r==="undefined"&&this.length){return aj.data(this[0])}else{if(typeof r==="object"){return this.each(function(){aj.data(this,r)})}}var z=r.split(".");z[1]=z[1]?"."+z[1]:"";if(c===U){var v=this.triggerHandler("getData"+z[1]+"!",[z[0]]);if(v===U&&this.length){v=aj.data(this[0],r)}return v===U&&z[1]?this.data(z[0]):v}else{return this.trigger("setData"+z[1]+"!",[z[0],c]).each(function(){aj.data(this,r,c)})}},removeData:function(c){return this.each(function(){aj.removeData(this,c)})}});aj.extend({queue:function(r,c,z){if(r){c=(c||"fx")+"queue";var v=aj.data(r,c);if(!z){return v||[]}if(!v||aj.isArray(z)){v=aj.data(r,c,aj.makeArray(z))}else{v.push(z)}return v}},dequeue:function(r,c){c=c||"fx";var z=aj.queue(r,c),v=z.shift();if(v==="inprogress"){v=z.shift()}if(v){c==="fx"&&z.unshift("inprogress");v.call(r,function(){aj.dequeue(r,c)})}}});aj.fn.extend({queue:function(r,c){if(typeof r!=="string"){c=r;r="fx"}if(c===U){return aj.queue(this[0],r)}return this.each(function(){var v=aj.queue(this,r,c);r==="fx"&&v[0]!=="inprogress"&&aj.dequeue(this,r)})},dequeue:function(c){return this.each(function(){aj.dequeue(this,c)})},delay:function(r,c){r=aj.fx?aj.fx.speeds[r]||r:r;c=c||"fx";return this.queue(c,function(){var v=this;setTimeout(function(){aj.dequeue(v,c)},r)})},clearQueue:function(c){return this.queue(c||"fx",[])}});var a6=/[\n\t]/g,ae=/\s+/,R=/\r/g,t=/href|src|style/,e=/(button|input)/i,a8=/(button|input|object|select|textarea)/i,aO=/^(a|area)$/i,aS=/radio|checkbox/;aj.fn.extend({attr:function(r,c){return ar(this,r,c,true,aj.attr)},removeAttr:function(c){return this.each(function(){aj.attr(this,c,"");this.nodeType===1&&this.removeAttribute(c)})},addClass:function(r){if(aj.isFunction(r)){return this.each(function(N){var L=aj(this);L.addClass(r.call(this,N,L.attr("class")))})}if(r&&typeof r==="string"){for(var c=(r||"").split(ae),J=0,F=this.length;J<F;J++){var G=this[J];if(G.nodeType===1){if(G.className){for(var z=" "+G.className+" ",v=0,K=c.length;v<K;v++){if(z.indexOf(" "+c[v]+" ")<0){G.className+=" "+c[v]}}}else{G.className=r}}}}return this},removeClass:function(r){if(aj.isFunction(r)){return this.each(function(N){var L=aj(this);L.removeClass(r.call(this,N,L.attr("class")))})}if(r&&typeof r==="string"||r===U){for(var c=(r||"").split(ae),J=0,F=this.length;J<F;J++){var G=this[J];if(G.nodeType===1&&G.className){if(r){for(var z=(" "+G.className+" ").replace(a6," "),v=0,K=c.length;v<K;v++){z=z.replace(" "+c[v]+" "," ")}G.className=z.substring(1,z.length-1)}else{G.className=""}}}}return this},toggleClass:function(r,c){var z=typeof r,v=typeof c==="boolean";if(aj.isFunction(r)){return this.each(function(G){var F=aj(this);F.toggleClass(r.call(this,G,F.attr("class"),c),c)})}return this.each(function(){if(z==="string"){for(var J,G=0,F=aj(this),L=c,K=r.split(ae);J=K[G++];){L=v?L:!F.hasClass(J);F[L?"addClass":"removeClass"](J)}}else{if(z==="undefined"||z==="boolean"){this.className&&aj.data(this,"__className__",this.className);this.className=this.className||r===false?"":aj.data(this,"__className__")||""}}})},hasClass:function(r){r=" "+r+" ";for(var c=0,v=this.length;c<v;c++){if((" "+this[c].className+" ").replace(a6," ").indexOf(r)>-1){return true}}return false},val:function(r){if(r===U){var c=this[0];if(c){if(aj.nodeName(c,"option")){return(c.attributes.value||{}).specified?c.value:c.text}if(aj.nodeName(c,"select")){var J=c.selectedIndex,F=[],G=c.options;c=c.type==="select-one";if(J<0){return null}var z=c?J:0;for(J=c?J+1:G.length;z<J;z++){var v=G[z];if(v.selected){r=aj(v).val();if(c){return r}F.push(r)}}return F}if(aS.test(c.type)&&!aj.support.checkOn){return c.getAttribute("value")===null?"on":c.value}return(c.value||"").replace(R,"")}return U}var K=aj.isFunction(r);return this.each(function(P){var N=aj(this),O=r;if(this.nodeType===1){if(K){O=r.call(this,P,N.val())}if(typeof O==="number"){O+=""}if(aj.isArray(O)&&aS.test(this.type)){this.checked=aj.inArray(N.val(),O)>=0}else{if(aj.nodeName(this,"select")){var L=aj.makeArray(O);aj("option",this).each(function(){this.selected=aj.inArray(aj(this).val(),L)>=0});if(!L.length){this.selectedIndex=-1}}else{this.value=O}}}})}});aj.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(r,c,G,z){if(!r||r.nodeType===3||r.nodeType===8){return U}if(z&&c in aj.attrFn){return aj(r)[c](G)}z=r.nodeType!==1||!aj.isXMLDoc(r);var F=G!==U;c=z&&aj.props[c]||c;if(r.nodeType===1){var v=t.test(c);if(c in r&&z&&!v){if(F){c==="type"&&e.test(r.nodeName)&&r.parentNode&&aj.error("type property can't be changed");r[c]=G}if(aj.nodeName(r,"form")&&r.getAttributeNode(c)){return r.getAttributeNode(c).nodeValue}if(c==="tabIndex"){return(c=r.getAttributeNode("tabIndex"))&&c.specified?c.value:a8.test(r.nodeName)||aO.test(r.nodeName)&&r.href?0:U}return r[c]}if(!aj.support.style&&z&&c==="style"){if(F){r.style.cssText=""+G}return r.style.cssText}F&&r.setAttribute(c,""+G);r=!aj.support.hrefNormalized&&z&&v?r.getAttribute(c,2):r.getAttribute(c);return r===null?U:r}return aj.style(r,c,G)}});var aU=function(c){return c.replace(/[^\w\s\.\|`]/g,function(r){return"\\"+r})};aj.event={add:function(O,L,K,G){if(!(O.nodeType===3||O.nodeType===8)){if(O.setInterval&&O!==M&&!O.frameElement){O=M}if(!K.guid){K.guid=aj.guid++}if(G!==U){K=aj.proxy(K);K.data=G}var J=aj.data(O,"events")||aj.data(O,"events",{}),F=aj.data(O,"handle"),z;if(!F){z=function(){return typeof aj!=="undefined"&&!aj.event.triggered?aj.event.handle.apply(z.elem,arguments):U};F=aj.data(O,"handle",z)}if(F){F.elem=O;L=L.split(/\s+/);for(var r,c=0;r=L[c++];){var v=r.split(".");r=v.shift();if(c>1){K=aj.proxy(K);if(G!==U){K.data=G}}K.type=v.slice(0).sort().join(".");var P=J[r],N=this.special[r]||{};if(!P){P=J[r]={};if(!N.setup||N.setup.call(O,G,v,K)===false){if(O.addEventListener){O.addEventListener(r,F,false)}else{O.attachEvent&&O.attachEvent("on"+r,F)}}}if(N.add){if((v=N.add.call(O,K,G,v,P))&&aj.isFunction(v)){v.guid=v.guid||K.guid;v.data=v.data||K.data;v.type=v.type||K.type;K=v}}P[K.guid]=K;this.global[r]=true}O=null}}},global:{},remove:function(P,N,L){if(!(P.nodeType===3||P.nodeType===8)){var J=aj.data(P,"events"),K,G,F;if(J){if(N===U||typeof N==="string"&&N.charAt(0)==="."){for(G in J){this.remove(P,G+(N||""))}}else{if(N.type){L=N.handler;N=N.type}N=N.split(/\s+/);for(var v=0;G=N[v++];){var r=G.split(".");G=r.shift();var z=!r.length,Q=aj.map(r.slice(0).sort(),aU);Q=new RegExp("(^|\\.)"+Q.join("\\.(?:.*\\.)?")+"(\\.|$)");var O=this.special[G]||{};if(J[G]){if(L){F=J[G][L.guid];delete J[G][L.guid]}else{for(var c in J[G]){if(z||Q.test(J[G][c].type)){delete J[G][c]}}}O.remove&&O.remove.call(P,r,F);for(K in J[G]){break}if(!K){if(!O.teardown||O.teardown.call(P,r)===false){if(P.removeEventListener){P.removeEventListener(G,aj.data(P,"handle"),false)}else{P.detachEvent&&P.detachEvent("on"+G,aj.data(P,"handle"))}}K=null;delete J[G]}}}}for(K in J){break}if(!K){if(c=aj.data(P,"handle")){c.elem=null}aj.removeData(P,"events");aj.removeData(P,"handle")}}}},trigger:function(r,c,J,F){var G=r.type||r;if(!F){r=typeof r==="object"?r[aJ]?r:aj.extend(aj.Event(G),r):aj.Event(G);if(G.indexOf("!")>=0){r.type=G=G.slice(0,-1);r.exclusive=true}if(!J){r.stopPropagation();this.global[G]&&aj.each(aj.cache,function(){this.events&&this.events[G]&&aj.event.trigger(r,c,this.handle.elem)})}if(!J||J.nodeType===3||J.nodeType===8){return U}r.result=U;r.target=J;c=aj.makeArray(c);c.unshift(r)}r.currentTarget=J;(F=aj.data(J,"handle"))&&F.apply(J,c);F=J.parentNode||J.ownerDocument;try{if(!(J&&J.nodeName&&aj.noData[J.nodeName.toLowerCase()])){if(J["on"+G]&&J["on"+G].apply(J,c)===false){r.result=false}}}catch(z){}if(!r.isPropagationStopped()&&F){aj.event.trigger(r,c,F,true)}else{if(!r.isDefaultPrevented()){J=r.target;var v;if(!(aj.nodeName(J,"a")&&G==="click")&&!(J&&J.nodeName&&aj.noData[J.nodeName.toLowerCase()])){try{if(J[G]){if(v=J["on"+G]){J["on"+G]=null}this.triggered=true;J[G]()}}catch(K){}if(v){J["on"+G]=v}this.triggered=false}}}},handle:function(r){var c,G;r=arguments[0]=aj.event.fix(r||M.event);r.currentTarget=this;G=r.type.split(".");r.type=G.shift();c=!G.length&&!r.exclusive;var z=new RegExp("(^|\\.)"+G.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)");G=(aj.data(this,"events")||{})[r.type];for(var F in G){var v=G[F];if(c||z.test(v.type)){r.handler=v;r.data=v.data;v=v.apply(this,arguments);if(v!==U){r.result=v;if(v===false){r.preventDefault();r.stopPropagation()}}if(r.isImmediatePropagationStopped()){break}}}return r.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(r){if(r[aJ]){return r}var c=r;r=aj.Event(c);for(var z=this.props.length,v;z;){v=this.props[--z];r[v]=c[v]}if(!r.target){r.target=r.srcElement||ac}if(r.target.nodeType===3){r.target=r.target.parentNode}if(!r.relatedTarget&&r.fromElement){r.relatedTarget=r.fromElement===r.target?r.toElement:r.fromElement}if(r.pageX==null&&r.clientX!=null){c=ac.documentElement;z=ac.body;r.pageX=r.clientX+(c&&c.scrollLeft||z&&z.scrollLeft||0)-(c&&c.clientLeft||z&&z.clientLeft||0);r.pageY=r.clientY+(c&&c.scrollTop||z&&z.scrollTop||0)-(c&&c.clientTop||z&&z.clientTop||0)}if(!r.which&&(r.charCode||r.charCode===0?r.charCode:r.keyCode)){r.which=r.charCode||r.keyCode}if(!r.metaKey&&r.ctrlKey){r.metaKey=r.ctrlKey}if(!r.which&&r.button!==U){r.which=r.button&1?1:r.button&2?3:r.button&4?2:0}return r},guid:100000000,proxy:aj.proxy,special:{ready:{setup:aj.bindReady,teardown:aj.noop},live:{add:function(r,c){aj.extend(r,c||{});r.guid+=c.selector+c.live;c.liveProxy=r;aj.event.add(this,c.live,aM,c)},remove:function(r){if(r.length){var c=0,v=new RegExp("(^|\\.)"+r[0]+"(\\.|$)");aj.each(aj.data(this,"events").live||{},function(){v.test(this.type)&&c++});c<1&&aj.event.remove(this,r[0],aM)}},special:{}},beforeunload:{setup:function(r,c,v){if(this.setInterval){this.onbeforeunload=v}return false},teardown:function(r,c){if(this.onbeforeunload===c){this.onbeforeunload=null}}}}};aj.Event=function(c){if(!this.preventDefault){return new aj.Event(c)}if(c&&c.type){this.originalEvent=c;this.type=c.type}else{this.type=c}this.timeStamp=aH();this[aJ]=true};aj.Event.prototype={preventDefault:function(){this.isDefaultPrevented=ao;var c=this.originalEvent;if(c){c.preventDefault&&c.preventDefault();c.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=ao;var c=this.originalEvent;if(c){c.stopPropagation&&c.stopPropagation();c.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=ao;this.stopPropagation()},isDefaultPrevented:aq,isPropagationStopped:aq,isImmediatePropagationStopped:aq};var bc=function(r){for(var c=r.relatedTarget;c&&c!==this;){try{c=c.parentNode}catch(v){break}}if(c!==this){r.type=r.data;aj.event.handle.apply(this,arguments)}},aY=function(c){c.type=c.data;aj.event.handle.apply(this,arguments)};aj.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(r,c){aj.event.special[r]={setup:function(v){aj.event.add(this,c,v&&v.selector?aY:bc,r)},teardown:function(v){aj.event.remove(this,c,v&&v.selector?aY:bc)}}});if(!aj.support.submitBubbles){aj.event.special.submit={setup:function(r,c,v){if(this.nodeName.toLowerCase()!=="form"){aj.event.add(this,"click.specialSubmit."+v.guid,function(F){var G=F.target,z=G.type;if((z==="submit"||z==="image")&&aj(G).closest("form").length){return a0("submit",this,arguments)}});aj.event.add(this,"keypress.specialSubmit."+v.guid,function(F){var G=F.target,z=G.type;if((z==="text"||z==="password")&&aj(G).closest("form").length&&F.keyCode===13){return a0("submit",this,arguments)}})}else{return false}},remove:function(r,c){aj.event.remove(this,"click.specialSubmit"+(c?"."+c.guid:""));aj.event.remove(this,"keypress.specialSubmit"+(c?"."+c.guid:""))}}}if(!aj.support.changeBubbles){var w=/textarea|input|select/i;function aI(r){var c=r.type,v=r.value;if(c==="radio"||c==="checkbox"){v=r.checked}else{if(c==="select-multiple"){v=r.selectedIndex>-1?aj.map(r.options,function(z){return z.selected}).join("-"):""}else{if(r.nodeName.toLowerCase()==="select"){v=r.selectedIndex}}}return v}function i(r,c){var F=r.target,v,z;if(!(!w.test(F.nodeName)||F.readOnly)){v=aj.data(F,"_change_data");z=aI(F);if(r.type!=="focusout"||F.type!=="radio"){aj.data(F,"_change_data",z)}if(!(v===U||z===v)){if(v!=null||z){r.type="change";return aj.event.trigger(r,c,F)}}}}aj.event.special.change={filters:{focusout:i,click:function(r){var c=r.target,v=c.type;if(v==="radio"||v==="checkbox"||c.nodeName.toLowerCase()==="select"){return i.call(this,r)}},keydown:function(r){var c=r.target,v=c.type;if(r.keyCode===13&&c.nodeName.toLowerCase()!=="textarea"||r.keyCode===32&&(v==="checkbox"||v==="radio")||v==="select-multiple"){return i.call(this,r)}},beforeactivate:function(c){c=c.target;c.nodeName.toLowerCase()==="input"&&c.type==="radio"&&aj.data(c,"_change_data",aI(c))}},setup:function(r,c,z){for(var v in av){aj.event.add(this,v+".specialChange."+z.guid,av[v])}return w.test(this.nodeName)},remove:function(r,c){for(var v in av){aj.event.remove(this,v+".specialChange"+(c?"."+c.guid:""),av[v])}return w.test(this.nodeName)}};var av=aj.event.special.change.filters}ac.addEventListener&&aj.each({focus:"focusin",blur:"focusout"},function(r,c){function v(z){z=aj.event.fix(z);z.type=c;return aj.event.handle.call(this,z)}aj.event.special[c]={setup:function(){this.addEventListener(r,v,true)},teardown:function(){this.removeEventListener(r,v,true)}}});aj.each(["bind","one"],function(r,c){aj.fn[c]=function(J,F,G){if(typeof J==="object"){for(var z in J){this[c](z,F,J[z],G)}return this}if(aj.isFunction(F)){G=F;F=U}var v=c==="one"?aj.proxy(G,function(K){aj(this).unbind(K,v);return G.apply(this,arguments)}):G;return J==="unload"&&c!=="one"?this.one(J,F,G):this.each(function(){aj.event.add(this,J,v,F)})}});aj.fn.extend({unbind:function(r,c){if(typeof r==="object"&&!r.preventDefault){for(var v in r){this.unbind(v,r[v])}return this}return this.each(function(){aj.event.remove(this,r,c)})},trigger:function(r,c){return this.each(function(){aj.event.trigger(r,c,this)})},triggerHandler:function(r,c){if(this[0]){r=aj.Event(r);r.preventDefault();r.stopPropagation();aj.event.trigger(r,c,this[0]);return r.result}},toggle:function(r){for(var c=arguments,v=1;v<c.length;){aj.proxy(r,c[v++])}return this.click(aj.proxy(r,function(z){var F=(aj.data(this,"lastToggle"+r.guid)||0)%v;aj.data(this,"lastToggle"+r.guid,F+1);z.preventDefault();return c[F].apply(this,arguments)||false}))},hover:function(r,c){return this.mouseenter(r).mouseleave(c||r)}});aj.each(["live","die"],function(r,c){aj.fn[c]=function(J,F,G){var z,v=0;if(aj.isFunction(F)){G=F;F=U}for(J=(J||"").split(/\s+/);(z=J[v++])!=null;){z=z==="focus"?"focusin":z==="blur"?"focusout":z==="hover"?J.push("mouseleave")&&"mouseenter":z;c==="live"?aj(this.context).bind(ai(z,this.selector),{data:F,selector:this.selector,live:z},G):aj(this.context).unbind(ai(z,this.selector),G?{guid:G.guid+this.selector+z}:null)}return this}});aj.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(r,c){aj.fn[c]=function(v){return v?this.bind(c,v):this.trigger(c)};if(aj.attrFn){aj.attrFn[c]=true}});M.attachEvent&&!M.addEventListener&&M.attachEvent("onunload",function(){for(var r in aj.cache){if(aj.cache[r].handle){try{aj.event.remove(aj.cache[r].handle.elem)}catch(c){}}}});(function(){function X(ab){for(var aa="",Z,Y=0;ab[Y];Y++){Z=ab[Y];if(Z.nodeType===3||Z.nodeType===4){aa+=Z.nodeValue}else{if(Z.nodeType!==8){aa+=X(Z.childNodes)}}}return aa}function W(bb,ba,ab,aa,Y,Z){Y=0;for(var bk=aa.length;Y<bk;Y++){var bl=aa[Y];if(bl){bl=bl[bb];for(var bj=false;bl;){if(bl.sizcache===ab){bj=aa[bl.sizset];break}if(bl.nodeType===1&&!Z){bl.sizcache=ab;bl.sizset=Y}if(bl.nodeName.toLowerCase()===ba){bj=bl;break}bl=bl[bb]}aa[Y]=bj}}}function V(bb,ba,ab,aa,Y,Z){Y=0;for(var bk=aa.length;Y<bk;Y++){var bl=aa[Y];if(bl){bl=bl[bb];for(var bj=false;bl;){if(bl.sizcache===ab){bj=aa[bl.sizset];break}if(bl.nodeType===1){if(!Z){bl.sizcache=ab;bl.sizset=Y}if(typeof ba!=="string"){if(bl===ba){bj=true;break}}else{if(K.filter(ba,[bl]).length>0){bj=bl;break}}}bl=bl[bb]}aa[Y]=bj}}}var S=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,T=0,Q=Object.prototype.toString,P=false,N=true;[0,0].sort(function(){N=false;return 0});var K=function(bk,bj,ba,ab){ba=ba||[];var Z=bj=bj||ac;if(bj.nodeType!==1&&bj.nodeType!==9){return[]}if(!bk||typeof bk!=="string"){return ba}for(var aa=[],bp,bq,bm,bb,bo=true,bl=r(bj),bn=bk;(S.exec(""),bp=S.exec(bn))!==null;){bn=bp[3];aa.push(bp[1]);if(bp[2]){bb=bp[3];break}}if(aa.length>1&&z.exec(bk)){if(aa.length===2&&O.relative[aa[0]]){bq=L(aa[0]+aa[1],bj)}else{for(bq=O.relative[aa[0]]?[bj]:K(aa.shift(),bj);aa.length;){bk=aa.shift();if(O.relative[bk]){bk+=aa.shift()}bq=L(bk,bq)}}}else{if(!ab&&aa.length>1&&bj.nodeType===9&&!bl&&O.match.ID.test(aa[0])&&!O.match.ID.test(aa[aa.length-1])){bp=K.find(aa.shift(),bj,bl);bj=bp.expr?K.filter(bp.expr,bp.set)[0]:bp.set[0]}if(bj){bp=ab?{expr:aa.pop(),set:J(ab)}:K.find(aa.pop(),aa.length===1&&(aa[0]==="~"||aa[0]==="+")&&bj.parentNode?bj.parentNode:bj,bl);bq=bp.expr?K.filter(bp.expr,bp.set):bp.set;if(aa.length>0){bm=J(bq)}else{bo=false}for(;aa.length;){var Y=aa.pop();bp=Y;if(O.relative[Y]){bp=aa.pop()}else{Y=""}if(bp==null){bp=bj}O.relative[Y](bm,bp,bl)}}else{bm=[]}}bm||(bm=bq);bm||K.error(Y||bk);if(Q.call(bm)==="[object Array]"){if(bo){if(bj&&bj.nodeType===1){for(bk=0;bm[bk]!=null;bk++){if(bm[bk]&&(bm[bk]===true||bm[bk].nodeType===1&&v(bj,bm[bk]))){ba.push(bq[bk])}}}else{for(bk=0;bm[bk]!=null;bk++){bm[bk]&&bm[bk].nodeType===1&&ba.push(bq[bk])}}}else{ba.push.apply(ba,bm)}}else{J(bm,ba)}if(bb){K(bb,Z,ba,ab);K.uniqueSort(ba)}return ba};K.uniqueSort=function(Z){if(F){P=N;Z.sort(F);if(P){for(var Y=1;Y<Z.length;Y++){Z[Y]===Z[Y-1]&&Z.splice(Y--,1)}}}return Z};K.matches=function(Z,Y){return K(Z,null,null,Y)};K.find=function(bb,ba,ab){var aa,Y;if(!bb){return[]}for(var Z=0,bk=O.order.length;Z<bk;Z++){var bl=O.order[Z];if(Y=O.leftMatch[bl].exec(bb)){var bj=Y[1];Y.splice(1,1);if(bj.substr(bj.length-1)!=="\\"){Y[1]=(Y[1]||"").replace(/\\/g,"");aa=O.find[bl](Y,ba,ab);if(aa!=null){bb=bb.replace(O.match[bl],"");break}}}}aa||(aa=ba.getElementsByTagName("*"));return{set:aa,expr:bb}};K.filter=function(bm,bl,bj,bb){for(var Z=bm,ab=[],br=bl,bs,bo,bk=bl&&bl[0]&&r(bl[0]);bm&&bl.length;){for(var bq in O.filter){if((bs=O.leftMatch[bq].exec(bm))!=null&&bs[2]){var bn=O.filter[bq],bp,Y;Y=bs[1];bo=false;bs.splice(1,1);if(Y.substr(Y.length-1)!=="\\"){if(br===ab){ab=[]}if(O.preFilter[bq]){if(bs=O.preFilter[bq](bs,br,bj,ab,bb,bk)){if(bs===true){continue}}else{bo=bp=true}}if(bs){for(var ba=0;(Y=br[ba])!=null;ba++){if(Y){bp=bn(Y,bs,ba,br);var aa=bb^!!bp;if(bj&&bp!=null){if(aa){bo=true}else{br[ba]=false}}else{if(aa){ab.push(Y);bo=true}}}}}if(bp!==U){bj||(br=ab);bm=bm.replace(O.match[bq],"");if(!bo){return[]}break}}}}if(bm===Z){if(bo==null){K.error(bm)}else{break}}Z=bm}return br};K.error=function(Y){throw"Syntax error, unrecognized expression: "+Y};var O=K.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|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(Y){return Y.getAttribute("href")}},relative:{"+":function(ab,aa){var Z=typeof aa==="string",Y=Z&&!/\W/.test(aa);Z=Z&&!Y;if(Y){aa=aa.toLowerCase()}Y=0;for(var ba=ab.length,bb;Y<ba;Y++){if(bb=ab[Y]){for(;(bb=bb.previousSibling)&&bb.nodeType!==1;){}ab[Y]=Z||bb&&bb.nodeName.toLowerCase()===aa?bb||false:bb===aa}}Z&&K.filter(aa,ab,true)},">":function(ab,aa){var Z=typeof aa==="string";if(Z&&!/\W/.test(aa)){aa=aa.toLowerCase();for(var Y=0,ba=ab.length;Y<ba;Y++){var bb=ab[Y];if(bb){Z=bb.parentNode;ab[Y]=Z.nodeName.toLowerCase()===aa?Z:false}}}else{Y=0;for(ba=ab.length;Y<ba;Y++){if(bb=ab[Y]){ab[Y]=Z?bb.parentNode:bb.parentNode===aa}}Z&&K.filter(aa,ab,true)}},"":function(ab,aa,Z){var Y=T++,ba=V;if(typeof aa==="string"&&!/\W/.test(aa)){var bb=aa=aa.toLowerCase();ba=W}ba("parentNode",aa,Y,ab,bb,Z)},"~":function(ab,aa,Z){var Y=T++,ba=V;if(typeof aa==="string"&&!/\W/.test(aa)){var bb=aa=aa.toLowerCase();ba=W}ba("previousSibling",aa,Y,ab,bb,Z)}},find:{ID:function(aa,Z,Y){if(typeof Z.getElementById!=="undefined"&&!Y){return(aa=Z.getElementById(aa[1]))?[aa]:[]}},NAME:function(ab,aa){if(typeof aa.getElementsByName!=="undefined"){var Z=[];aa=aa.getElementsByName(ab[1]);for(var Y=0,ba=aa.length;Y<ba;Y++){aa[Y].getAttribute("name")===ab[1]&&Z.push(aa[Y])}return Z.length===0?null:Z}},TAG:function(Z,Y){return Y.getElementsByTagName(Z[1])}},preFilter:{CLASS:function(ba,ab,Z,Y,bb,bj){ba=" "+ba[1].replace(/\\/g,"")+" ";if(bj){return ba}bj=0;for(var aa;(aa=ab[bj])!=null;bj++){if(aa){if(bb^(aa.className&&(" "+aa.className+" ").replace(/[\t\n]/g," ").indexOf(ba)>=0)){Z||Y.push(aa)}else{if(Z){ab[bj]=false}}}}return false},ID:function(Y){return Y[1].replace(/\\/g,"")},TAG:function(Y){return Y[1].toLowerCase()},CHILD:function(Z){if(Z[1]==="nth"){var Y=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(Z[2]==="even"&&"2n"||Z[2]==="odd"&&"2n+1"||!/\D/.test(Z[2])&&"0n+"+Z[2]||Z[2]);Z[2]=Y[1]+(Y[2]||1)-0;Z[3]=Y[3]-0}Z[0]=T++;return Z},ATTR:function(ab,aa,Z,Y,ba,bb){aa=ab[1].replace(/\\/g,"");if(!bb&&O.attrMap[aa]){ab[1]=O.attrMap[aa]}if(ab[2]==="~="){ab[4]=" "+ab[4]+" "}return ab},PSEUDO:function(ab,aa,Z,Y,ba){if(ab[1]==="not"){if((S.exec(ab[3])||"").length>1||/^\w/.test(ab[3])){ab[3]=K(ab[3],null,null,aa)}else{ab=K.filter(ab[3],aa,Z,true^ba);Z||Y.push.apply(Y,ab);return false}}else{if(O.match.POS.test(ab[0])||O.match.CHILD.test(ab[0])){return true}}return ab},POS:function(Y){Y.unshift(true);return Y}},filters:{enabled:function(Y){return Y.disabled===false&&Y.type!=="hidden"},disabled:function(Y){return Y.disabled===true},checked:function(Y){return Y.checked===true},selected:function(Y){return Y.selected===true},parent:function(Y){return !!Y.firstChild},empty:function(Y){return !Y.firstChild},has:function(aa,Z,Y){return !!K(Y[3],aa).length},header:function(Y){return/h\d/i.test(Y.nodeName)},text:function(Y){return"text"===Y.type},radio:function(Y){return"radio"===Y.type},checkbox:function(Y){return"checkbox"===Y.type},file:function(Y){return"file"===Y.type},password:function(Y){return"password"===Y.type},submit:function(Y){return"submit"===Y.type},image:function(Y){return"image"===Y.type},reset:function(Y){return"reset"===Y.type},button:function(Y){return"button"===Y.type||Y.nodeName.toLowerCase()==="button"},input:function(Y){return/input|select|textarea|button/i.test(Y.nodeName)}},setFilters:{first:function(Z,Y){return Y===0},last:function(ab,aa,Z,Y){return aa===Y.length-1},even:function(Z,Y){return Y%2===0},odd:function(Z,Y){return Y%2===1},lt:function(aa,Z,Y){return Z<Y[3]-0},gt:function(aa,Z,Y){return Z>Y[3]-0},nth:function(aa,Z,Y){return Y[3]-0===Z},eq:function(aa,Z,Y){return Y[3]-0===Z}},filter:{PSEUDO:function(ab,aa,Z,Y){var ba=aa[1],bb=O.filters[ba];if(bb){return bb(ab,Z,aa,Y)}else{if(ba==="contains"){return(ab.textContent||ab.innerText||X([ab])||"").indexOf(aa[3])>=0}else{if(ba==="not"){aa=aa[3];Z=0;for(Y=aa.length;Z<Y;Z++){if(aa[Z]===ab){return false}}return true}else{K.error("Syntax error, unrecognized expression: "+ba)}}}},CHILD:function(ba,ab){var Z=ab[1],Y=ba;switch(Z){case"only":case"first":for(;Y=Y.previousSibling;){if(Y.nodeType===1){return false}}if(Z==="first"){return true}Y=ba;case"last":for(;Y=Y.nextSibling;){if(Y.nodeType===1){return false}}return true;case"nth":Z=ab[2];var bb=ab[3];if(Z===1&&bb===0){return true}ab=ab[0];var bj=ba.parentNode;if(bj&&(bj.sizcache!==ab||!ba.nodeIndex)){var aa=0;for(Y=bj.firstChild;Y;Y=Y.nextSibling){if(Y.nodeType===1){Y.nodeIndex=++aa}}bj.sizcache=ab}ba=ba.nodeIndex-bb;return Z===0?ba===0:ba%Z===0&&ba/Z>=0}},ID:function(Z,Y){return Z.nodeType===1&&Z.getAttribute("id")===Y},TAG:function(Z,Y){return Y==="*"&&Z.nodeType===1||Z.nodeName.toLowerCase()===Y},CLASS:function(Z,Y){return(" "+(Z.className||Z.getAttribute("class"))+" ").indexOf(Y)>-1},ATTR:function(ab,aa){var Z=aa[1];ab=O.attrHandle[Z]?O.attrHandle[Z](ab):ab[Z]!=null?ab[Z]:ab.getAttribute(Z);Z=ab+"";var Y=aa[2];aa=aa[4];return ab==null?Y==="!=":Y==="="?Z===aa:Y==="*="?Z.indexOf(aa)>=0:Y==="~="?(" "+Z+" ").indexOf(aa)>=0:!aa?Z&&ab!==false:Y==="!="?Z!==aa:Y==="^="?Z.indexOf(aa)===0:Y==="$="?Z.substr(Z.length-aa.length)===aa:Y==="|="?Z===aa||Z.substr(0,aa.length+1)===aa+"-":false},POS:function(ab,aa,Z,Y){var ba=O.setFilters[aa[2]];if(ba){return ba(ab,Z,aa,Y)}}}},z=O.match.POS;for(var c in O.match){O.match[c]=new RegExp(O.match[c].source+/(?![^\[]*\])(?![^\(]*\))/.source);O.leftMatch[c]=new RegExp(/(^(?:.|\r|\n)*?)/.source+O.match[c].source.replace(/\\(\d+)/g,function(Z,Y){return"\\"+(Y-0+1)}))}var J=function(Z,Y){Z=Array.prototype.slice.call(Z,0);if(Y){Y.push.apply(Y,Z);return Y}return Z};try{Array.prototype.slice.call(ac.documentElement.childNodes,0)}catch(G){J=function(ab,aa){aa=aa||[];if(Q.call(ab)==="[object Array]"){Array.prototype.push.apply(aa,ab)}else{if(typeof ab.length==="number"){for(var Z=0,Y=ab.length;Z<Y;Z++){aa.push(ab[Z])}}else{for(Z=0;ab[Z];Z++){aa.push(ab[Z])}}}return aa}}var F;if(ac.documentElement.compareDocumentPosition){F=function(Z,Y){if(!Z.compareDocumentPosition||!Y.compareDocumentPosition){if(Z==Y){P=true}return Z.compareDocumentPosition?-1:1}Z=Z.compareDocumentPosition(Y)&4?-1:Z===Y?0:1;if(Z===0){P=true}return Z}}else{if("sourceIndex" in ac.documentElement){F=function(Z,Y){if(!Z.sourceIndex||!Y.sourceIndex){if(Z==Y){P=true}return Z.sourceIndex?-1:1}Z=Z.sourceIndex-Y.sourceIndex;if(Z===0){P=true}return Z}}else{if(ac.createRange){F=function(ab,aa){if(!ab.ownerDocument||!aa.ownerDocument){if(ab==aa){P=true}return ab.ownerDocument?-1:1}var Z=ab.ownerDocument.createRange(),Y=aa.ownerDocument.createRange();Z.setStart(ab,0);Z.setEnd(ab,0);Y.setStart(aa,0);Y.setEnd(aa,0);ab=Z.compareBoundaryPoints(Range.START_TO_END,Y);if(ab===0){P=true}return ab}}}}(function(){var aa=ac.createElement("div"),Z="script"+(new Date).getTime();aa.innerHTML="<a name='"+Z+"'/>";var Y=ac.documentElement;Y.insertBefore(aa,Y.firstChild);if(ac.getElementById(Z)){O.find.ID=function(ab,ba,bb){if(typeof ba.getElementById!=="undefined"&&!bb){return(ba=ba.getElementById(ab[1]))?ba.id===ab[1]||typeof ba.getAttributeNode!=="undefined"&&ba.getAttributeNode("id").nodeValue===ab[1]?[ba]:U:[]}};O.filter.ID=function(ab,ba){var bb=typeof ab.getAttributeNode!=="undefined"&&ab.getAttributeNode("id");return ab.nodeType===1&&bb&&bb.nodeValue===ba}}Y.removeChild(aa);Y=aa=null})();(function(){var Y=ac.createElement("div");Y.appendChild(ac.createComment(""));if(Y.getElementsByTagName("*").length>0){O.find.TAG=function(ab,aa){aa=aa.getElementsByTagName(ab[1]);if(ab[1]==="*"){ab=[];for(var Z=0;aa[Z];Z++){aa[Z].nodeType===1&&ab.push(aa[Z])}aa=ab}return aa}}Y.innerHTML="<a href='#'></a>";if(Y.firstChild&&typeof Y.firstChild.getAttribute!=="undefined"&&Y.firstChild.getAttribute("href")!=="#"){O.attrHandle.href=function(Z){return Z.getAttribute("href",2)}}Y=null})();ac.querySelectorAll&&function(){var aa=K,Z=ac.createElement("div");Z.innerHTML="<p class='TEST'></p>";if(!(Z.querySelectorAll&&Z.querySelectorAll(".TEST").length===0)){K=function(ab,bj,bk,ba){bj=bj||ac;if(!ba&&bj.nodeType===9&&!r(bj)){try{return J(bj.querySelectorAll(ab),bk)}catch(bb){}}return aa(ab,bj,bk,ba)};for(var Y in aa){K[Y]=aa[Y]}Z=null}}();(function(){var Y=ac.createElement("div");Y.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!Y.getElementsByClassName||Y.getElementsByClassName("e").length===0)){Y.lastChild.className="e";if(Y.getElementsByClassName("e").length!==1){O.order.splice(1,0,"CLASS");O.find.CLASS=function(ab,aa,Z){if(typeof aa.getElementsByClassName!=="undefined"&&!Z){return aa.getElementsByClassName(ab[1])}};Y=null}}})();var v=ac.compareDocumentPosition?function(Z,Y){return Z.compareDocumentPosition(Y)&16}:function(Z,Y){return Z!==Y&&(Z.contains?Z.contains(Y):true)},r=function(Y){return(Y=(Y?Y.ownerDocument||Y:0).documentElement)?Y.nodeName!=="HTML":false},L=function(ab,aa){var Z=[],Y="",ba;for(aa=aa.nodeType?[aa]:aa;ba=O.match.PSEUDO.exec(ab);){Y+=ba[0];ab=ab.replace(O.match.PSEUDO,"")}ab=O.relative[ab]?ab+"*":ab;ba=0;for(var bb=aa.length;ba<bb;ba++){K(ab,aa[ba],Z)}return K.filter(Y,Z)};aj.find=K;aj.expr=K.selectors;aj.expr[":"]=aj.expr.filters;aj.unique=K.uniqueSort;aj.getText=X;aj.isXMLDoc=r;aj.contains=v})();var ay=/Until$/,ad=/^(?:parents|prevUntil|prevAll)/,u=/,/;ax=Array.prototype.slice;var A=function(r,c,z){if(aj.isFunction(c)){return aj.grep(r,function(G,F){return !!c.call(G,F,G)===z})}else{if(c.nodeType){return aj.grep(r,function(F){return F===c===z})}else{if(typeof c==="string"){var v=aj.grep(r,function(F){return F.nodeType===1});if(I.test(c)){return aj.filter(c,v,!z)}else{c=aj.filter(c,v)}}}}return aj.grep(r,function(F){return aj.inArray(F,c)>=0===z})};aj.fn.extend({find:function(r){for(var c=this.pushStack("","find",r),J=0,F=0,G=this.length;F<G;F++){J=c.length;aj.find(r,this[F],c);if(F>0){for(var z=J;z<c.length;z++){for(var v=0;v<J;v++){if(c[v]===c[z]){c.splice(z--,1);break}}}}}return c},has:function(r){var c=aj(r);return this.filter(function(){for(var z=0,v=c.length;z<v;z++){if(aj.contains(this,c[z])){return true}}})},not:function(c){return this.pushStack(A(this,c,false),"not",c)},filter:function(c){return this.pushStack(A(this,c,true),"filter",c)},is:function(c){return !!c&&aj.filter(c,this).length>0},closest:function(L,K){if(aj.isArray(L)){var J=[],F=this[0],G,z={},v;if(F&&L.length){G=0;for(var r=L.length;G<r;G++){v=L[G];z[v]||(z[v]=aj.expr.match.POS.test(v)?aj(v,K||this.context):v)}for(;F&&F.ownerDocument&&F!==K;){for(v in z){G=z[v];if(G.jquery?G.index(F)>-1:aj(F).is(G)){J.push({selector:v,elem:F});delete z[v]}}F=F.parentNode}}return J}var c=aj.expr.match.POS.test(L)?aj(L,K||this.context):null;return this.map(function(N,O){for(;O&&O.ownerDocument&&O!==K;){if(c?c.index(O)>-1:aj(O).is(L)){return O}O=O.parentNode}return null})},index:function(c){if(!c||typeof c==="string"){return aj.inArray(this[0],c?aj(c):this.parent().children())}return aj.inArray(c.jquery?c[0]:c,this)},add:function(r,c){r=typeof r==="string"?aj(r,c||this.context):aj.makeArray(r);c=aj.merge(this.get(),r);return this.pushStack(C(r[0])||C(c[0])?c:aj.unique(c))},andSelf:function(){return this.add(this.prevObject)}});aj.each({parent:function(c){return(c=c.parentNode)&&c.nodeType!==11?c:null},parents:function(c){return aj.dir(c,"parentNode")},parentsUntil:function(r,c,v){return aj.dir(r,"parentNode",v)},next:function(c){return aj.nth(c,2,"nextSibling")},prev:function(c){return aj.nth(c,2,"previousSibling")},nextAll:function(c){return aj.dir(c,"nextSibling")},prevAll:function(c){return aj.dir(c,"previousSibling")},nextUntil:function(r,c,v){return aj.dir(r,"nextSibling",v)},prevUntil:function(r,c,v){return aj.dir(r,"previousSibling",v)},siblings:function(c){return aj.sibling(c.parentNode.firstChild,c)},children:function(c){return aj.sibling(c.firstChild)},contents:function(c){return aj.nodeName(c,"iframe")?c.contentDocument||c.contentWindow.document:aj.makeArray(c.childNodes)}},function(r,c){aj.fn[r]=function(F,v){var z=aj.map(this,c,F);ay.test(r)||(v=F);if(v&&typeof v==="string"){z=aj.filter(v,z)}z=this.length>1?aj.unique(z):z;if((this.length>1||u.test(v))&&ad.test(r)){z=z.reverse()}return this.pushStack(z,r,ax.call(arguments).join(","))}});aj.extend({filter:function(r,c,v){if(v){r=":not("+r+")"}return aj.find.matches(r,c)},dir:function(r,c,z){var v=[];for(r=r[c];r&&r.nodeType!==9&&(z===U||r.nodeType!==1||!aj(r).is(z));){r.nodeType===1&&v.push(r);r=r[c]}return v},nth:function(r,c,z){c=c||1;for(var v=0;r;r=r[z]){if(r.nodeType===1&&++v===c){break}}return r},sibling:function(r,c){for(var v=[];r;r=r.nextSibling){r.nodeType===1&&r!==c&&v.push(r)}return v}});var l=/ jQuery\d+="(?:\d+|null)"/g,au=/^\s+/,bf=/(<([\w:]+)[^>]*?)\/>/g,f=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,a1=/<([\w:]+)/,a9=/<tbody/i,aW=/<|&\w+;/,a4=/checked\s*(?:[^=]|=\s*.checked.)/i,aN=function(r,c,v){return f.test(v)?r:c+"></"+v+">"},aL={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};aL.optgroup=aL.option;aL.tbody=aL.tfoot=aL.colgroup=aL.caption=aL.thead;aL.th=aL.td;if(!aj.support.htmlSerialize){aL._default=[1,"div<div>","</div>"]}aj.fn.extend({text:function(c){if(aj.isFunction(c)){return this.each(function(r){var v=aj(this);v.text(c.call(this,r,v.text()))})}if(typeof c!=="object"&&c!==U){return this.empty().append((this[0]&&this[0].ownerDocument||ac).createTextNode(c))}return aj.getText(this)},wrapAll:function(r){if(aj.isFunction(r)){return this.each(function(v){aj(this).wrapAll(r.call(this,v))})}if(this[0]){var c=aj(r,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&c.insertBefore(this[0]);c.map(function(){for(var v=this;v.firstChild&&v.firstChild.nodeType===1;){v=v.firstChild}return v}).append(this)}return this},wrapInner:function(c){if(aj.isFunction(c)){return this.each(function(r){aj(this).wrapInner(c.call(this,r))})}return this.each(function(){var r=aj(this),v=r.contents();v.length?v.wrapAll(c):r.append(c)})},wrap:function(c){return this.each(function(){aj(this).wrapAll(c)})},unwrap:function(){return this.parent().each(function(){aj.nodeName(this,"body")||aj(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(c){this.nodeType===1&&this.appendChild(c)})},prepend:function(){return this.domManip(arguments,true,function(c){this.nodeType===1&&this.insertBefore(c,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(r){this.parentNode.insertBefore(r,this)})}else{if(arguments.length){var c=aj(arguments[0]);c.push.apply(c,this.toArray());return this.pushStack(c,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(r){this.parentNode.insertBefore(r,this.nextSibling)})}else{if(arguments.length){var c=this.pushStack(this,"after",arguments);c.push.apply(c,aj(arguments[0]).toArray());return c}}},clone:function(r){var c=this.map(function(){if(!aj.support.noCloneEvent&&!aj.isXMLDoc(this)){var z=this.outerHTML,v=this.ownerDocument;if(!z){z=v.createElement("div");z.appendChild(this.cloneNode(true));z=z.innerHTML}return aj.clean([z.replace(l,"").replace(au,"")],v)[0]}else{return this.cloneNode(true)}});if(r===true){n(this,c);n(this.find("*"),c.find("*"))}return c},html:function(r){if(r===U){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(l,""):null}else{if(typeof r==="string"&&!/<script/i.test(r)&&(aj.support.leadingWhitespace||!au.test(r))&&!aL[(a1.exec(r)||["",""])[1].toLowerCase()]){r=r.replace(bf,aN);try{for(var c=0,z=this.length;c<z;c++){if(this[c].nodeType===1){aj.cleanData(this[c].getElementsByTagName("*"));this[c].innerHTML=r}}}catch(v){this.empty().append(r)}}else{aj.isFunction(r)?this.each(function(J){var G=aj(this),F=G.html();G.empty().append(function(){return r.call(this,J,F)})}):this.empty().append(r)}}return this},replaceWith:function(c){if(this[0]&&this[0].parentNode){if(aj.isFunction(c)){return this.each(function(r){var z=aj(this),v=z.html();z.replaceWith(c.call(this,r,v))})}else{c=aj(c).detach()}return this.each(function(){var r=this.nextSibling,v=this.parentNode;aj(this).remove();r?aj(r).before(c):aj(v).append(c)})}else{return this.pushStack(aj(aj.isFunction(c)?c():c),"replaceWith",c)}},detach:function(c){return this.remove(c,true)},domManip:function(N,L,K){function G(O){return aj.nodeName(O,"table")?O.getElementsByTagName("tbody")[0]||O.appendChild(O.ownerDocument.createElement("tbody")):O}var J,F,z=N[0],r=[];if(!aj.support.checkClone&&arguments.length===3&&typeof z==="string"&&a4.test(z)){return this.each(function(){aj(this).domManip(N,L,K,true)})}if(aj.isFunction(z)){return this.each(function(P){var O=aj(this);N[0]=z.call(this,P,L?O.html():U);O.domManip(N,L,K)})}if(this[0]){J=N[0]&&N[0].parentNode&&N[0].parentNode.nodeType===11?{fragment:N[0].parentNode}:bh(N,this,r);if(F=J.fragment.firstChild){L=L&&aj.nodeName(F,"tr");for(var c=0,v=this.length;c<v;c++){K.call(L?G(this[c],F):this[c],J.cacheable||this.length>1||c>0?J.fragment.cloneNode(true):J.fragment)}}r&&aj.each(r,bi)}return this}});aj.fragments={};aj.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(r,c){aj.fn[r]=function(J){var F=[];J=aj(J);for(var G=0,z=J.length;G<z;G++){var v=(G>0?this.clone(true):this).get();aj.fn[c].apply(aj(J[G]),v);F=F.concat(v)}return this.pushStack(F,r,J.selector)}});aj.each({remove:function(r,c){if(!r||aj.filter(r,[this]).length){if(!c&&this.nodeType===1){aj.cleanData(this.getElementsByTagName("*"));aj.cleanData([this])}this.parentNode&&this.parentNode.removeChild(this)}},empty:function(){for(this.nodeType===1&&aj.cleanData(this.getElementsByTagName("*"));this.firstChild;){this.removeChild(this.firstChild)}}},function(r,c){aj.fn[r]=function(){return this.each(c,arguments)}});aj.extend({clean:function(r,c,F,v){c=c||ac;if(typeof c.createElement==="undefined"){c=c.ownerDocument||c[0]&&c[0].ownerDocument||ac}var z=[];aj.each(r,function(K,J){if(typeof J==="number"){J+=""}if(J){if(typeof J==="string"&&!aW.test(J)){J=c.createTextNode(J)}else{if(typeof J==="string"){J=J.replace(bf,aN);var N=(a1.exec(J)||["",""])[1].toLowerCase(),L=aL[N]||aL._default,G=L[0];K=c.createElement("div");for(K.innerHTML=L[1]+J+L[2];G--;){K=K.lastChild}if(!aj.support.tbody){G=a9.test(J);N=N==="table"&&!G?K.firstChild&&K.firstChild.childNodes:L[1]==="<table>"&&!G?K.childNodes:[];for(L=N.length-1;L>=0;--L){aj.nodeName(N[L],"tbody")&&!N[L].childNodes.length&&N[L].parentNode.removeChild(N[L])}}!aj.support.leadingWhitespace&&au.test(J)&&K.insertBefore(c.createTextNode(au.exec(J)[0]),K.firstChild);J=aj.makeArray(K.childNodes)}}if(J.nodeType){z.push(J)}else{z=aj.merge(z,J)}}});if(F){for(r=0;z[r];r++){if(v&&aj.nodeName(z[r],"script")&&(!z[r].type||z[r].type.toLowerCase()==="text/javascript")){v.push(z[r].parentNode?z[r].parentNode.removeChild(z[r]):z[r])}else{z[r].nodeType===1&&z.splice.apply(z,[r+1,0].concat(aj.makeArray(z[r].getElementsByTagName("script"))));F.appendChild(z[r])}}}return z},cleanData:function(r){for(var c=0,v;(v=r[c])!=null;c++){aj.event.remove(v);aj.removeData(v)}}});var aF=/z-?index|font-?weight|opacity|zoom|line-?height/i,ak=/alpha\([^)]*\)/,D=/opacity=([^)]*)/,aX=/float/i,aG=/-([a-z])/ig,af=/([A-Z])/g,x=/^-?\d+(?:px)?$/i,j=/^-?\d/,bd={position:"absolute",visibility:"hidden",display:"block"},aZ=["Left","Right"],aK=["Top","Bottom"],ah=ac.defaultView&&ac.defaultView.getComputedStyle,o=aj.support.cssFloat?"cssFloat":"styleFloat",ag=function(r,c){return c.toUpperCase()};aj.fn.css=function(r,c){return ar(this,r,c,true,function(F,v,z){if(z===U){return aj.curCSS(F,v)}if(typeof z==="number"&&!aF.test(v)){z+="px"}aj.style(F,v,z)})};aj.extend({style:function(r,c,F){if(!r||r.nodeType===3||r.nodeType===8){return U}if((c==="width"||c==="height")&&parseFloat(F)<0){F=U}var v=r.style||r,z=F!==U;if(!aj.support.opacity&&c==="opacity"){if(z){v.zoom=1;c=parseInt(F,10)+""==="NaN"?"":"alpha(opacity="+F*100+")";r=v.filter||aj.curCSS(r,"filter")||"";v.filter=ak.test(r)?r.replace(ak,c):c}return v.filter&&v.filter.indexOf("opacity=")>=0?parseFloat(D.exec(v.filter)[1])/100+"":""}if(aX.test(c)){c=o}c=c.replace(aG,ag);if(z){v[c]=F}return v[c]},css:function(r,c,J,F){if(c==="width"||c==="height"){var G,z=c==="width"?aZ:aK;function v(){G=c==="width"?r.offsetWidth:r.offsetHeight;F!=="border"&&aj.each(z,function(){F||(G-=parseFloat(aj.curCSS(r,"padding"+this,true))||0);if(F==="margin"){G+=parseFloat(aj.curCSS(r,"margin"+this,true))||0}else{G-=parseFloat(aj.curCSS(r,"border"+this+"Width",true))||0}})}r.offsetWidth!==0?v():aj.swap(r,bd,v);return Math.max(0,Math.round(G))}return aj.curCSS(r,c,J)},curCSS:function(r,c,G){var z,F=r.style;if(!aj.support.opacity&&c==="opacity"&&r.currentStyle){z=D.test(r.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return z===""?"1":z}if(aX.test(c)){c=o}if(!G&&F&&F[c]){z=F[c]}else{if(ah){if(aX.test(c)){c="float"}c=c.replace(af,"-$1").toLowerCase();F=r.ownerDocument.defaultView;if(!F){return null}if(r=F.getComputedStyle(r,null)){z=r.getPropertyValue(c)}if(c==="opacity"&&z===""){z="1"}}else{if(r.currentStyle){G=c.replace(aG,ag);z=r.currentStyle[c]||r.currentStyle[G];if(!x.test(z)&&j.test(z)){c=F.left;var v=r.runtimeStyle.left;r.runtimeStyle.left=r.currentStyle.left;F.left=G==="fontSize"?"1em":z||0;z=F.pixelLeft+"px";F.left=c;r.runtimeStyle.left=v}}}}return z},swap:function(r,c,F){var v={};for(var z in c){v[z]=r.style[z];r.style[z]=c[z]}F.call(r);for(z in c){r.style[z]=v[z]}}});if(aj.expr&&aj.expr.filters){aj.expr.filters.hidden=function(r){var c=r.offsetWidth,z=r.offsetHeight,v=r.nodeName.toLowerCase()==="tr";return c===0&&z===0&&!v?true:c>0&&z>0&&!v?false:aj.curCSS(r,"display")==="none"};aj.expr.filters.visible=function(c){return !aj.expr.filters.hidden(c)}}var B=aH(),m=/<script(.|\s)*?\/script>/gi,bg=/select|textarea/i,a3=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,aC=/=\?(&|$)/,y=/\?/,aP=/(\?|&)_=.*?(&|$)/,al=/^(\w+:)?\/\/([^\/?#]+)/,E=/%20/g;aj.fn.extend({_load:aj.fn.load,load:function(r,c,G){if(typeof r!=="string"){return this._load(r)}else{if(!this.length){return this}}var z=r.indexOf(" ");if(z>=0){var F=r.slice(z,r.length);r=r.slice(0,z)}z="GET";if(c){if(aj.isFunction(c)){G=c;c=null}else{if(typeof c==="object"){c=aj.param(c,aj.ajaxSettings.traditional);z="POST"}}}var v=this;aj.ajax({url:r,type:z,dataType:"html",data:c,complete:function(J,K){if(K==="success"||K==="notmodified"){v.html(F?aj("<div />").append(J.responseText.replace(m,"")).find(F):J.responseText)}G&&v.each(G,[J.responseText,K,J])}});return this},serialize:function(){return aj.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?aj.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bg.test(this.nodeName)||a3.test(this.type))}).map(function(r,c){r=aj(this).val();return r==null?null:aj.isArray(r)?aj.map(r,function(v){return{name:c.name,value:v}}):{name:c.name,value:r}}).get()}});aj.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(r,c){aj.fn[c]=function(v){return this.bind(c,v)}});aj.extend({get:function(r,c,z,v){if(aj.isFunction(c)){v=v||z;z=c;c=null}return aj.ajax({type:"GET",url:r,data:c,success:z,dataType:v})},getScript:function(r,c){return aj.get(r,null,c,"script")},getJSON:function(r,c,v){return aj.get(r,c,v,"json")},post:function(r,c,z,v){if(aj.isFunction(c)){v=v||z;z=c;c={}}return aj.ajax({type:"POST",url:r,data:c,success:z,dataType:v})},ajaxSetup:function(c){aj.extend(aj.ajaxSettings,c)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:M.XMLHttpRequest&&(M.location.protocol!=="file:"||!M.ActiveXObject)?function(){return new M.XMLHttpRequest}:function(){try{return new M.ActiveXObject("Microsoft.XMLHTTP")}catch(c){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(ab){function aa(){Y.success&&Y.success.call(K,N,S,r);Y.global&&X("ajaxSuccess",[r,Y])}function Z(){Y.complete&&Y.complete.call(K,r,S);Y.global&&X("ajaxComplete",[r,Y]);Y.global&&!--aj.active&&aj.event.trigger("ajaxStop")}function X(ba,bb){(Y.context?aj(Y.context):aj.event).trigger(ba,bb)}var Y=aj.extend(true,{},aj.ajaxSettings,ab),T,S,N,K=ab&&ab.context||Y,O=Y.type.toUpperCase();if(Y.data&&Y.processData&&typeof Y.data!=="string"){Y.data=aj.param(Y.data,Y.traditional)}if(Y.dataType==="jsonp"){if(O==="GET"){aC.test(Y.url)||(Y.url+=(y.test(Y.url)?"&":"?")+(Y.jsonp||"callback")+"=?")}else{if(!Y.data||!aC.test(Y.data)){Y.data=(Y.data?Y.data+"&":"")+(Y.jsonp||"callback")+"=?"}}Y.dataType="json"}if(Y.dataType==="json"&&(Y.data&&aC.test(Y.data)||aC.test(Y.url))){T=Y.jsonpCallback||"jsonp"+B++;if(Y.data){Y.data=(Y.data+"").replace(aC,"="+T+"$1")}Y.url=Y.url.replace(aC,"="+T+"$1");Y.dataType="script";M[T]=M[T]||function(ba){N=ba;aa();Z();M[T]=U;try{delete M[T]}catch(bb){}J&&J.removeChild(G)}}if(Y.dataType==="script"&&Y.cache===null){Y.cache=false}if(Y.cache===false&&O==="GET"){var z=aH(),c=Y.url.replace(aP,"$1_="+z+"$2");Y.url=c+(c===Y.url?(y.test(Y.url)?"&":"?")+"_="+z:"")}if(Y.data&&O==="GET"){Y.url+=(y.test(Y.url)?"&":"?")+Y.data}Y.global&&!aj.active++&&aj.event.trigger("ajaxStart");z=(z=al.exec(Y.url))&&(z[1]&&z[1]!==location.protocol||z[2]!==location.host);if(Y.dataType==="script"&&O==="GET"&&z){var J=ac.getElementsByTagName("head")[0]||ac.documentElement,G=ac.createElement("script");G.src=Y.url;if(Y.scriptCharset){G.charset=Y.scriptCharset}if(!T){var F=false;G.onload=G.onreadystatechange=function(){if(!F&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){F=true;aa();Z();G.onload=G.onreadystatechange=null;J&&G.parentNode&&J.removeChild(G)}}}J.insertBefore(G,J.firstChild);return U}var v=false,r=Y.xhr();if(r){Y.username?r.open(O,Y.url,Y.async,Y.username,Y.password):r.open(O,Y.url,Y.async);try{if(Y.data||ab&&ab.contentType){r.setRequestHeader("Content-Type",Y.contentType)}if(Y.ifModified){aj.lastModified[Y.url]&&r.setRequestHeader("If-Modified-Since",aj.lastModified[Y.url]);aj.etag[Y.url]&&r.setRequestHeader("If-None-Match",aj.etag[Y.url])}z||r.setRequestHeader("X-Requested-With","XMLHttpRequest");r.setRequestHeader("Accept",Y.dataType&&Y.accepts[Y.dataType]?Y.accepts[Y.dataType]+", */*":Y.accepts._default)}catch(L){}if(Y.beforeSend&&Y.beforeSend.call(K,r,Y)===false){Y.global&&!--aj.active&&aj.event.trigger("ajaxStop");r.abort();return false}Y.global&&X("ajaxSend",[r,Y]);var W=r.onreadystatechange=function(bb){if(!r||r.readyState===0||bb==="abort"){v||Z();v=true;if(r){r.onreadystatechange=aj.noop}}else{if(!v&&r&&(r.readyState===4||bb==="timeout")){v=true;r.onreadystatechange=aj.noop;S=bb==="timeout"?"timeout":!aj.httpSuccess(r)?"error":Y.ifModified&&aj.httpNotModified(r,Y.url)?"notmodified":"success";var bj;if(S==="success"){try{N=aj.httpData(r,Y.dataType,Y)}catch(ba){S="parsererror";bj=ba}}if(S==="success"||S==="notmodified"){T||aa()}else{aj.handleError(Y,r,S,bj)}Z();bb==="timeout"&&r.abort();if(Y.async){r=null}}}};try{var V=r.abort;r.abort=function(){r&&V.call(r);W("abort")}}catch(Q){}Y.async&&Y.timeout>0&&setTimeout(function(){r&&!v&&W("timeout")},Y.timeout);try{r.send(O==="POST"||O==="PUT"||O==="DELETE"?Y.data:null)}catch(P){aj.handleError(Y,r,null,P);Z()}Y.async||W();return r}},handleError:function(r,c,z,v){if(r.error){r.error.call(r.context||r,c,z,v)}if(r.global){(r.context?aj(r.context):aj.event).trigger("ajaxError",[c,r,v])}},active:0,httpSuccess:function(r){try{return !r.status&&location.protocol==="file:"||r.status>=200&&r.status<300||r.status===304||r.status===1223||r.status===0}catch(c){}return false},httpNotModified:function(r,c){var z=r.getResponseHeader("Last-Modified"),v=r.getResponseHeader("Etag");if(z){aj.lastModified[c]=z}if(v){aj.etag[c]=v}return r.status===304||r.status===0},httpData:function(r,c,F){var v=r.getResponseHeader("content-type")||"",z=c==="xml"||!c&&v.indexOf("xml")>=0;r=z?r.responseXML:r.responseText;z&&r.documentElement.nodeName==="parsererror"&&aj.error("parsererror");if(F&&F.dataFilter){r=F.dataFilter(r,c)}if(typeof r==="string"){if(c==="json"||!c&&v.indexOf("json")>=0){r=aj.parseJSON(r)}else{if(c==="script"||!c&&v.indexOf("javascript")>=0){aj.globalEval(r)}}}return r},param:function(r,c){function G(J,K){if(aj.isArray(K)){aj.each(K,function(N,L){c?z(J,L):G(J+"["+(typeof L==="object"||aj.isArray(L)?N:"")+"]",L)})}else{!c&&K!=null&&typeof K==="object"?aj.each(K,function(N,L){G(J+"["+N+"]",L)}):z(J,K)}}function z(J,K){K=aj.isFunction(K)?K():K;F[F.length]=encodeURIComponent(J)+"="+encodeURIComponent(K)}var F=[];if(c===U){c=aj.ajaxSettings.traditional}if(aj.isArray(r)||r.jquery){aj.each(r,function(){z(this.name,this.value)})}else{for(var v in r){G(v,r[v])}}return F.join("&").replace(E,"+")}});var k={},p=/toggle|show|hide/,a=/^([+-]=)?([\d+-.]+)(.*)$/,at,aQ=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];aj.fn.extend({show:function(r,c){if(r||r===0){return this.animate(aE("show",3),r,c)}else{r=0;for(c=this.length;r<c;r++){var F=aj.data(this[r],"olddisplay");this[r].style.display=F||"";if(aj.css(this[r],"display")==="none"){F=this[r].nodeName;var v;if(k[F]){v=k[F]}else{var z=aj("<"+F+" />").appendTo("body");v=z.css("display");if(v==="none"){v="block"}z.remove();k[F]=v}aj.data(this[r],"olddisplay",v)}}r=0;for(c=this.length;r<c;r++){this[r].style.display=aj.data(this[r],"olddisplay")||""}return this}},hide:function(r,c){if(r||r===0){return this.animate(aE("hide",3),r,c)}else{r=0;for(c=this.length;r<c;r++){var v=aj.data(this[r],"olddisplay");!v&&v!=="none"&&aj.data(this[r],"olddisplay",aj.css(this[r],"display"))}r=0;for(c=this.length;r<c;r++){this[r].style.display="none"}return this}},_toggle:aj.fn.toggle,toggle:function(r,c){var v=typeof r==="boolean";if(aj.isFunction(r)&&aj.isFunction(c)){this._toggle.apply(this,arguments)}else{r==null||v?this.each(function(){var z=v?r:aj(this).is(":hidden");aj(this)[z?"show":"hide"]()}):this.animate(aE("toggle",3),r,c)}return this},fadeTo:function(r,c,v){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:c},r,v)},animate:function(r,c,F,v){var z=aj.speed(c,F,v);if(aj.isEmptyObject(r)){return this.each(z.complete)}return this[z.queue===false?"each":"queue"](function(){var K=aj.extend({},z),J,N=this.nodeType===1&&aj(this).is(":hidden"),L=this;for(J in r){var G=J.replace(aG,ag);if(J!==G){r[G]=r[J];delete r[J];J=G}if(r[J]==="hide"&&N||r[J]==="show"&&!N){return K.complete.call(this)}if((J==="height"||J==="width")&&this.style){K.display=aj.css(this,"display");K.overflow=this.style.overflow}if(aj.isArray(r[J])){(K.specialEasing=K.specialEasing||{})[J]=r[J][1];r[J]=r[J][0]}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=aj.extend({},r);aj.each(r,function(Q,P){var O=new aj.fx(L,K,Q);if(p.test(P)){O[P==="toggle"?N?"show":"hide":P](r)}else{var V=a.exec(P),T=O.cur(true)||0;if(V){P=parseFloat(V[2]);var S=V[3]||"px";if(S!=="px"){L.style[Q]=(P||1)+S;T=(P||1)/O.cur(true)*T;L.style[Q]=T+S}if(V[1]){P=(V[1]==="-="?-1:1)*P+T}O.custom(T,P,S)}else{O.custom(T,P,"")}}});return true})},stop:function(r,c){var v=aj.timers;r&&this.queue([]);this.each(function(){for(var z=v.length-1;z>=0;z--){if(v[z].elem===this){c&&v[z](true);v.splice(z,1)}}});c||this.dequeue();return this}});aj.each({slideDown:aE("show",1),slideUp:aE("hide",1),slideToggle:aE("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(r,c){aj.fn[r]=function(z,v){return this.animate(c,z,v)}});aj.extend({speed:function(r,c,z){var v=r&&typeof r==="object"?r:{complete:z||!z&&c||aj.isFunction(r)&&r,duration:r,easing:z&&c||c&&!aj.isFunction(c)&&c};v.duration=aj.fx.off?0:typeof v.duration==="number"?v.duration:aj.fx.speeds[v.duration]||aj.fx.speeds._default;v.old=v.complete;v.complete=function(){v.queue!==false&&aj(this).dequeue();aj.isFunction(v.old)&&v.old.call(this)};return v},easing:{linear:function(r,c,z,v){return z+v*r},swing:function(r,c,z,v){return(-Math.cos(r*Math.PI)/2+0.5)*v+z}},timers:[],fx:function(r,c,v){this.options=c;this.elem=r;this.prop=v;if(!c.orig){c.orig={}}}});aj.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(aj.fx.step[this.prop]||aj.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(c){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}return(c=parseFloat(aj.css(this.elem,this.prop,c)))&&c>-10000?c:parseFloat(aj.curCSS(this.elem,this.prop))||0},custom:function(r,c,F){function v(G){return z.step(G)}this.startTime=aH();this.start=r;this.end=c;this.unit=F||this.unit||"px";this.now=this.start;this.pos=this.state=0;var z=this;v.elem=this.elem;if(v()&&aj.timers.push(v)&&!at){at=setInterval(aj.fx.tick,13)}},show:function(){this.options.orig[this.prop]=aj.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());aj(this.elem).show()},hide:function(){this.options.orig[this.prop]=aj.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(r){var c=aH(),F=true;if(r||c>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var v in this.options.curAnim){if(this.options.curAnim[v]!==true){F=false}}if(F){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;r=aj.data(this.elem,"olddisplay");this.elem.style.display=r?r:this.options.display;if(aj.css(this.elem,"display")==="none"){this.elem.style.display="block"}}this.options.hide&&aj(this.elem).hide();if(this.options.hide||this.options.show){for(var z in this.options.curAnim){aj.style(this.elem,z,this.options.orig[z])}}this.options.complete.call(this.elem)}return false}else{z=c-this.startTime;this.state=z/this.options.duration;r=this.options.easing||(aj.easing.swing?"swing":"linear");this.pos=aj.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||r](this.state,z,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};aj.extend(aj.fx,{tick:function(){for(var r=aj.timers,c=0;c<r.length;c++){r[c]()||r.splice(c--,1)}r.length||aj.fx.stop()},stop:function(){clearInterval(at);at=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(c){aj.style(c.elem,"opacity",c.now)},_default:function(c){if(c.elem.style&&c.elem.style[c.prop]!=null){c.elem.style[c.prop]=(c.prop==="width"||c.prop==="height"?Math.max(0,c.now):c.now)+c.unit}else{c.elem[c.prop]=c.now}}}});if(aj.expr&&aj.expr.filters){aj.expr.filters.animated=function(c){return aj.grep(aj.timers,function(r){return c===r.elem}).length}}aj.fn.offset="getBoundingClientRect" in ac.documentElement?function(r){var c=this[0];if(r){return this.each(function(F){aj.offset.setOffset(this,r,F)})}if(!c||!c.ownerDocument){return null}if(c===c.ownerDocument.body){return aj.offset.bodyOffset(c)}var z=c.getBoundingClientRect(),v=c.ownerDocument;c=v.body;v=v.documentElement;return{top:z.top+(self.pageYOffset||aj.support.boxModel&&v.scrollTop||c.scrollTop)-(v.clientTop||c.clientTop||0),left:z.left+(self.pageXOffset||aj.support.boxModel&&v.scrollLeft||c.scrollLeft)-(v.clientLeft||c.clientLeft||0)}}:function(N){var L=this[0];if(N){return this.each(function(O){aj.offset.setOffset(this,N,O)})}if(!L||!L.ownerDocument){return null}if(L===L.ownerDocument.body){return aj.offset.bodyOffset(L)}aj.offset.initialize();var K=L.offsetParent,G=L,J=L.ownerDocument,F,z=J.documentElement,r=J.body;G=(J=J.defaultView)?J.getComputedStyle(L,null):L.currentStyle;for(var c=L.offsetTop,v=L.offsetLeft;(L=L.parentNode)&&L!==r&&L!==z;){if(aj.offset.supportsFixedPosition&&G.position==="fixed"){break}F=J?J.getComputedStyle(L,null):L.currentStyle;c-=L.scrollTop;v-=L.scrollLeft;if(L===K){c+=L.offsetTop;v+=L.offsetLeft;if(aj.offset.doesNotAddBorder&&!(aj.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(L.nodeName))){c+=parseFloat(F.borderTopWidth)||0;v+=parseFloat(F.borderLeftWidth)||0}G=K;K=L.offsetParent}if(aj.offset.subtractsBorderForOverflowNotVisible&&F.overflow!=="visible"){c+=parseFloat(F.borderTopWidth)||0;v+=parseFloat(F.borderLeftWidth)||0}G=F}if(G.position==="relative"||G.position==="static"){c+=r.offsetTop;v+=r.offsetLeft}if(aj.offset.supportsFixedPosition&&G.position==="fixed"){c+=Math.max(z.scrollTop,r.scrollTop);v+=Math.max(z.scrollLeft,r.scrollLeft)}return{top:c,left:v}};aj.offset={initialize:function(){var r=ac.body,c=ac.createElement("div"),G,z,F,v=parseFloat(aj.curCSS(r,"marginTop",true))||0;aj.extend(c.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});c.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";r.insertBefore(c,r.firstChild);G=c.firstChild;z=G.firstChild;F=G.nextSibling.firstChild.firstChild;this.doesNotAddBorder=z.offsetTop!==5;this.doesAddBorderForTableAndCells=F.offsetTop===5;z.style.position="fixed";z.style.top="20px";this.supportsFixedPosition=z.offsetTop===20||z.offsetTop===15;z.style.position=z.style.top="";G.style.overflow="hidden";G.style.position="relative";this.subtractsBorderForOverflowNotVisible=z.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=r.offsetTop!==v;r.removeChild(c);aj.offset.initialize=aj.noop},bodyOffset:function(r){var c=r.offsetTop,v=r.offsetLeft;aj.offset.initialize();if(aj.offset.doesNotIncludeMarginInBodyOffset){c+=parseFloat(aj.curCSS(r,"marginTop",true))||0;v+=parseFloat(aj.curCSS(r,"marginLeft",true))||0}return{top:c,left:v}},setOffset:function(r,c,J){if(/static/.test(aj.curCSS(r,"position"))){r.style.position="relative"}var F=aj(r),G=F.offset(),z=parseInt(aj.curCSS(r,"top",true),10)||0,v=parseInt(aj.curCSS(r,"left",true),10)||0;if(aj.isFunction(c)){c=c.call(r,J,G)}J={top:c.top-G.top+z,left:c.left-G.left+v};"using" in c?c.using.call(r,J):F.css(J)}};aj.fn.extend({position:function(){if(!this[0]){return null}var r=this[0],c=this.offsetParent(),z=this.offset(),v=/^body|html$/i.test(c[0].nodeName)?{top:0,left:0}:c.offset();z.top-=parseFloat(aj.curCSS(r,"marginTop",true))||0;z.left-=parseFloat(aj.curCSS(r,"marginLeft",true))||0;v.top+=parseFloat(aj.curCSS(c[0],"borderTopWidth",true))||0;v.left+=parseFloat(aj.curCSS(c[0],"borderLeftWidth",true))||0;return{top:z.top-v.top,left:z.left-v.left}},offsetParent:function(){return this.map(function(){for(var c=this.offsetParent||ac.body;c&&!/^body|html$/i.test(c.nodeName)&&aj.css(c,"position")==="static";){c=c.offsetParent}return c})}});aj.each(["Left","Top"],function(r,c){var v="scroll"+c;aj.fn[v]=function(F){var G=this[0],z;if(!G){return null}if(F!==U){return this.each(function(){if(z=am(this)){z.scrollTo(!r?F:aj(z).scrollLeft(),r?F:aj(z).scrollTop())}else{this[v]=F}})}else{return(z=am(G))?"pageXOffset" in z?z[r?"pageYOffset":"pageXOffset"]:aj.support.boxModel&&z.document.documentElement[v]||z.document.body[v]:G[v]}}});aj.each(["Height","Width"],function(r,c){var v=c.toLowerCase();aj.fn["inner"+c]=function(){return this[0]?aj.css(this[0],v,false,"padding"):null};aj.fn["outer"+c]=function(z){return this[0]?aj.css(this[0],v,false,z?"margin":"border"):null};aj.fn[v]=function(z){var F=this[0];if(!F){return z==null?null:this}if(aj.isFunction(z)){return this.each(function(J){var G=aj(this);G[v](z.call(this,J,G[v]()))})}return"scrollTo" in F&&F.document?F.document.compatMode==="CSS1Compat"&&F.document.documentElement["client"+c]||F.document.body["client"+c]:F.nodeType===9?Math.max(F.documentElement["client"+c],F.body["scroll"+c],F.documentElement["scroll"+c],F.body["offset"+c],F.documentElement["offset"+c]):z===U?aj.css(F,v):this.css(v,typeof z==="string"?z:z+"px")}});M.jQuery=M.$=aj})(window);
/*
 * JavaScript Pretty Date
 * Copyright (c) 2008 John Resig (jquery.com)
 * Licensed under the MIT license.
 */
function prettyDate(f){var d=new Date((f||"").replace(/-/g,"/").replace(/[TZ]/g," ").replace(/\..*/,""));var c=new Date();var b=c.getTime()+(c.getTimezoneOffset()*60000);var e=((b-d.getTime())/1000);var a=Math.floor(e/86400);if(isNaN(a)||a<0){return"who knows how long ago"}else{if(a==0){return(e<60&&"just now"||e<120&&"1 minute ago"||e<3600&&Math.floor(e/60)+" minutes ago"||e<7200&&"1 hour ago"||e<86400&&Math.floor(e/3600)+" hours ago")}else{if(a==1){return"yesterday"}else{if(a<7){return a+" days ago"}else{return Math.ceil(a/7)+" weeks ago"}}}}}
/*
 * jQuery hashchange event - v1.0 - 1/9/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,i){var f=i.location,j,k=$.event.special,b="hashchange",d=$.browser,e=d.msie&&d.version<8,c="on"+b in i&&!e;function a(l){l=l||f.href;return l.replace(/^[^#]*#?(.*)$/,"$1")}$[b+"Delay"]=100;k[b]=$.extend(k[b],{setup:function(){if(c){return false}j.start()},teardown:function(){if(c){return false}j.stop()}});j=(function(){var l={},q,m,n,p;function o(){n=p=function(r){return r};if(e){m=$('<iframe src="javascript:0"/>').hide().appendTo("body")[0].contentWindow;p=function(){return a(m.document.location.href)};n=function(t,r){if(t!==r){var s=m.document;s.open().close();s.location.hash="#"+t}};n(a())}}l.start=function(){if(q){return}var s=a();n||o();(function r(){var u=a(),t=p(s);if(u!==s){n(s=u,t);$(i).trigger(b)}else{if(t!==s){f.href=f.href.replace(/#.*/,"")+"#"+t}}q=setTimeout(r,$[b+"Delay"])})()};l.stop=function(){if(!m){q&&clearTimeout(q);q=0}};return l})()})(jQuery,this);(function(c){c.fn.getPath=function(i){var i=c.extend({full:false,limit:false},i);if(typeof this.get(0).tagName==="undefined"){return false}var j=c(this).get(0),k=[],o=o?o:0,m=0,l=0,e=c(j).closest("body").length?true:false,n=false;do{if(typeof j.tagName==="undefined"){break}m++;if(i.limit&&l==i.limit){continue}l++;var f=b.apply(j);if(f){k[k.length]=f;if(!i.full){break}continue}else{f=a.apply(j)+d.apply(j)}k[k.length]=f}while(j=c(j).parent().get(0));if(!e&&m===l&&k[k.length-1]==="div"){k.splice(k.length-1,1)}return k.reverse().join(" > ")};function b(){var e=c(this).attr("id");if(e){e="#"+e}return e||""}function a(){return this.tagName.toLowerCase()}function d(){if(!this.parentNode){return""}var e=c(this.parentNode).children(this.tagName);if(e.length===1){return""}return":eq("+e.index(this)+")"}})(jQuery);jQuery.cookie=function(b,l,o){if(typeof l!="undefined"){o=o||{};if(l===null){l="";o.expires=-1}var e="";if(o.expires&&(typeof o.expires=="number"||o.expires.toUTCString)){var f;if(typeof o.expires=="number"){f=new Date();f.setTime(f.getTime()+(o.expires*24*60*60*1000))}else{f=o.expires}e="; expires="+f.toUTCString()}var n=o.path?"; path="+(o.path):"";var j=o.domain?"; domain="+(o.domain):"";var a=o.secure?"; secure":"";document.cookie=[b,"=",encodeURIComponent(l),e,n,j,a].join("")}else{var d=null;if(document.cookie&&document.cookie!=""){var m=document.cookie.split(";");for(var k=0;k<m.length;k++){var c=jQuery.trim(m[k]);if(c.substring(0,b.length+1)==(b+"=")){d=decodeURIComponent(c.substring(b.length+1));break}}}return d}return false};var Base64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-=",encode:function(c){var a="";var m,k,f,l,j,e,d;var b=0;c=Base64._utf8_encode(c);while(b<c.length){m=c.charCodeAt(b++);k=c.charCodeAt(b++);f=c.charCodeAt(b++);l=m>>2;j=((m&3)<<4)|(k>>4);e=((k&15)<<2)|(f>>6);d=f&63;if(isNaN(k)){e=d=64}else{if(isNaN(f)){d=64}}a=a+this._keyStr.charAt(l)+this._keyStr.charAt(j)+this._keyStr.charAt(e)+this._keyStr.charAt(d)}return a},decode:function(c){var a="";var m,k,f;var l,j,e,d;var b=0;c=c.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(b<c.length){l=this._keyStr.indexOf(c.charAt(b++));j=this._keyStr.indexOf(c.charAt(b++));e=this._keyStr.indexOf(c.charAt(b++));d=this._keyStr.indexOf(c.charAt(b++));m=(l<<2)|(j>>4);k=((j&15)<<4)|(e>>2);f=((e&3)<<6)|d;a=a+String.fromCharCode(m);if(e!=64){a=a+String.fromCharCode(k)}if(d!=64){a=a+String.fromCharCode(f)}}a=Base64._utf8_decode(a);return a},_utf8_encode:function(b){b=b.replace(/\r\n/g,"\n");var a="";for(var e=0;e<b.length;e++){var d=b.charCodeAt(e);if(d<128){a+=String.fromCharCode(d)}else{if((d>127)&&(d<2048)){a+=String.fromCharCode((d>>6)|192);a+=String.fromCharCode((d&63)|128)}else{a+=String.fromCharCode((d>>12)|224);a+=String.fromCharCode(((d>>6)&63)|128);a+=String.fromCharCode((d&63)|128)}}}return a},_utf8_decode:function(a){var d="";var f=0;var k=0;var j=0;var e=0;var b=0;while(f<a.length){k=a.charCodeAt(f);if(k<128){d+=String.fromCharCode(k);f++}else{if((k>191)&&(k<224)){e=a.charCodeAt(f+1);d+=String.fromCharCode(((k&31)<<6)|(e&63));f+=2}else{e=a.charCodeAt(f+1);b=a.charCodeAt(f+2);d+=String.fromCharCode(((k&15)<<12)|((e&63)<<6)|(b&63));f+=3}}}return d}};Array.prototype.remove=function(b,a){this.splice(b,!a||1+a-b+(!(a<0^b>=0)&&(a<0||-1)*this.length));return this.length};(function(){var a=24*60*60*1000;var e=function(k,l){k=String(k);while(k.length<l){k="0"+k}return k};var j={millisecond:1,second:1000,minute:60*1000,hour:60*60*1000,day:a,week:7*a,month:{add:function(m,k){j.year.add(m,Math[k>0?"floor":"ceil"](k/12));var l=m.getMonth()+(k%12);if(l==12){l=0;m.setYear(m.getFullYear()+1)}else{if(l==-1){l=11;m.setYear(m.getFullYear()-1)}}m.setMonth(l)},diff:function(o,m){var k=o.getFullYear()-m.getFullYear();var l=o.getMonth()-m.getMonth()+(k*12);var n=o.getDate()-m.getDate();return l+(n/30)}},year:{add:function(l,k){l.setYear(l.getFullYear()+Math[k>0?"floor":"ceil"](k))},diff:function(l,k){return j.month.diff(l,k)/12}}};for(var d in j){if(d.substring(d.length-1)!="s"){j[d+"s"]=j[d]}}var i=function(n,m){if(Date.prototype.strftime.formatShortcuts[m]){return n.strftime(Date.prototype.strftime.formatShortcuts[m])}else{var k=(Date.prototype.strftime.formatCodes[m]||"").split(".");var l=n["get"+k[0]]?n["get"+k[0]]():"";if(k[1]){l=e(l,k[1])}return l}};var c={succ:function(k){return this.clone().add(1,k)},add:function(m,l){var k=j[l]||j.day;if(typeof k=="number"){this.setTime(this.getTime()+(k*m))}else{k.add(this,m)}return this},diff:function(l,o,k){l=Date.create(l);if(l===null){return null}var m=j[o]||j.day;if(typeof m=="number"){var n=(this.getTime()-l.getTime())/m}else{var n=m.diff(this,l)}return(k?n:Math[n>0?"floor":"ceil"](n))},strftime:function(l){var n=l||"%Y-%m-%d",k="",m;while(n.length>0){if(m=n.match(Date.prototype.strftime.formatCodes.matcher)){k+=n.slice(0,m.index);k+=(m[1]||"")+i(this,m[2]);n=n.slice(m.index+m[0].length)}else{k+=n,n=""}}return k},getShortYear:function(){return this.getYear()%100},getMonthNumber:function(){return this.getMonth()+1},getMonthName:function(){return Date.MONTHNAMES[this.getMonth()]},getAbbrMonthName:function(){return Date.ABBR_MONTHNAMES[this.getMonth()]},getDayName:function(){return Date.DAYNAMES[this.getDay()]},getAbbrDayName:function(){return Date.ABBR_DAYNAMES[this.getDay()]},getDayOrdinal:function(){return Date.ORDINALNAMES[this.getDate()%10]},getHours12:function(){var k=this.getHours();return k>12?k-12:(k==0?12:k)},getAmPm:function(){return this.getHours()>=12?"PM":"AM"},getUnix:function(){return Math.round(this.getTime()/1000,0)},getGmtOffset:function(){var k=this.getTimezoneOffset()/60;var l=k<0?"+":"-";k=Math.abs(k);return l+e(Math.floor(k),2)+":"+e((k%1)*60,2)},getTimezoneName:function(){var k=/(?:\((.+)\)$| ([A-Z]{3}) )/.exec(this.toString());return k[1]||k[2]||"GMT"+this.getGmtOffset()},toYmdInt:function(){return(this.getFullYear()*10000)+(this.getMonthNumber()*100)+this.getDate()},clone:function(){return new Date(this.getTime())}};for(var b in c){Date.prototype[b]=c[b]}var f={create:function(k){if(k instanceof Date){return k}if(typeof k=="number"){return new Date(k*1000)}var p=String(k).replace(/^\s*(.+)\s*$/,"$1"),l=0,m=Date.create.patterns.length,n;var o=p;while(l<m){ms=Date.parse(o);if(!isNaN(ms)){return new Date(ms)}n=Date.create.patterns[l];if(typeof n=="function"){obj=n(o);if(obj instanceof Date){return obj}}else{o=p.replace(n[0],n[1])}l++}return NaN},MONTHNAMES:"January February March April May June July August September October November December".split(" "),ABBR_MONTHNAMES:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),DAYNAMES:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ABBR_DAYNAMES:"Sun Mon Tue Wed Thu Fri Sat".split(" "),ORDINALNAMES:"th st nd rd th th th th th th".split(" "),ISO:"%Y-%m-%dT%H:%M:%S.%N%G",SQL:"%Y-%m-%d %H:%M:%S",daysInMonth:function(k,l){if(l==2){return new Date(k,1,29).getDate()==29?29:28}return[undefined,31,undefined,31,30,31,30,31,31,30,31,30,31][l]}};for(var b in f){Date[b]=f[b]}Date.prototype.strftime.formatCodes={matcher:/()%(#?(%|[a-z]))/i,Y:"FullYear",y:"ShortYear.2",m:"MonthNumber.2","#m":"MonthNumber",B:"MonthName",b:"AbbrMonthName",d:"Date.2","#d":"Date",e:"Date",A:"DayName",a:"AbbrDayName",w:"Day",o:"DayOrdinal",H:"Hours.2","#H":"Hours",I:"Hours12.2","#I":"Hours12",p:"AmPm",M:"Minutes.2","#M":"Minutes",S:"Seconds.2","#S":"Seconds",s:"Unix",N:"Milliseconds.3","#N":"Milliseconds",O:"TimezoneOffset",Z:"TimezoneName",G:"GmtOffset"};Date.prototype.strftime.formatShortcuts={F:"%Y-%m-%d",T:"%H:%M:%S",X:"%H:%M:%S",x:"%m/%d/%y",D:"%m/%d/%y","#c":"%a %b %e %H:%M:%S %Y",v:"%e-%b-%Y",R:"%H:%M",r:"%I:%M:%S %p",t:"\t",n:"\n","%":"%"};Date.create.patterns=[[/-/g,"/"],[/st|nd|rd|th/g,""],[/(3[01]|[0-2]\d)\s*\.\s*(1[0-2]|0\d)\s*\.\s*([1-9]\d{3})/,"$2/$1/$3"],[/([1-9]\d{3})\s*-\s*(1[0-2]|0\d)\s*-\s*(3[01]|[0-2]\d)/,"$2/$3/$1"],function(n){var l=n.match(/^(?:(.+)\s+)?([1-9]|1[012])(?:\s*\:\s*(\d\d))?(?:\s*\:\s*(\d\d))?\s*(am|pm)\s*$/i);if(l){if(l[1]){var m=Date.create(l[1]);if(isNaN(m)){return}}else{var m=new Date();m.setMilliseconds(0)}var k=parseFloat(l[2]);k=l[5].toLowerCase()=="am"?(k==12?0:k):(k==12?12:k+12);m.setHours(k,parseFloat(l[3]||0),parseFloat(l[4]||0));return m}}]})();var $D=Date.create;var g={};g.DEBUG=false;g.TESTING=false;g.BASE_API_URL="/nest/api";g.BASE_API_PATH="/nest/api";g.userAgent=navigator.userAgent;g.book_id=function(a){return Base64.encode(a||"")};g.book_uri=null;g.catalog=null;g.chapter=null;g.label=null;g.bookmark_selectors={};g.book_uri_to_be_acquired=null;g.db=null;g.db_initialized=false;g.is_app=window.navigator.standalone;g.login_cookie_name="ibis_reader";g.api_cookie_name="ibis_api";g.is_iphone=navigator.appVersion.indexOf("iPhone OS ")!==-1;g.is_ipad=navigator.appVersion.indexOf("iPad")!==-1;g.is_android=navigator.appVersion.indexOf("Android")!==-1;g.is_nexus_one=navigator.appVersion.indexOf("Nexus")!==-1;g.is_droid=navigator.appVersion.indexOf("Droid")!==-1;g.is_webkit=navigator.appVersion.indexOf("WebKit")!==-1&&!g.is_iphone&&!g.is_android&&!g.is_ipad;g.is_mobile_html5_compatible=g.is_iphone||g.is_android;g.is_mobile=g.is_mobile_html5_compatible;g.supports_touch_events=g.is_iphone||g.is_android;g.is_online=null;g.screen={};g.pagination={};g.magic_horizontal_scrollbar_height_landscape=30;g.magic_horizontal_scrollbar_height_portrait=10;g.parse_xml=function(b){if(window.DOMParser){var c=new DOMParser();return c.parseFromString(b,"text/xml")}else{var a=new ActiveXObject("Microsoft.XMLDOM");a.async="false";a.loadXML(b)}};g.DB_DISPLAY_NAME="Ibis Reader offline storage";g.DB_NAME="ibisreader_1.0.1";g.DB_VERSION="1.0.4";g.IPHONE_DB_SIZE=52428800;g.ANDROID_DB_SIZE=5242880;g.DB_MAX_SIZE=g.is_iphone||g.is_ipad?g.IPHONE_DB_SIZE:g.ANDROID_DB_SIZE;g.MAX_CONTENT_LENGTH=300000;g.IBIS_BOOK_CLASS="#content";g.font_preference_style=null;g.font_preference_style_cache=null;g.FONTS={};g.FONTS["font-serif"]="Georgia";g.FONTS["font-sansserif"]="Helvetica";g.FONT_NAME_DEFAULT=g.FONTS["font-serif"];g.FONT_SIZE_DEFAULT="16px";g.FONT_SIZE_STEP_VALUE=2;g.FONT_SIZE_MIN=4;g.FONT_SIZE_MAX=144;g.ORIENTATION="portrait";g.SHRINK_TITLE_THRESHOLD=60;g.ELIDE_TITLE_THRESHOLD=120;g.ELIDE_DESCRIPTION_THRESHOLD=500;g.ICON_WIDTH=g.is_ipad?75:30;g.COVER_INFO_PAGE_HEIGHT=120;g.TOP_NAV_HEIGHT=10;g.TOP_NAV_EXPANDED_HEIGHT=40;g.BOOKMARK_WIDTH=40;g.BOOKMARK_HEIGHT=40;g.TOC_NESTING_MARGIN=10;g.TOP_MARGIN=15+g.TOP_NAV_HEIGHT;g.BOTTOM_MARGIN=10;g.LAST_SELECTOR="#ibis-final-content";g.FIRST_SELECTOR=g.IBIS_BOOK_CLASS+" *:first";g.BRIGHTNESS_STEP_VALUE=25;g.BRIGHTNESS_MIN=50;g.BRIGHTNESS_MAX=255;g.DEFAULT_BOOK_BACKGROUND_IMAGE="-webkit-gradient(linear, 100% 0, 0 0, from(rgba(237,218,181,0.2)), color-stop(0.1, rgba(255,255,255,0)), color-stop(0.9, rgba(255,255,255,0)), to(rgba(237,218,181,0.2))), url('../images/paper-grain.png')";g.HREF_SEPARATOR=";";g.PAGINATION_HINT_DISPLAY_MS=500;g.IS_WEB_INTERFACE=false;g.WEB_LIBRARY_LABEL="My Online Bookshelf";g.POSITION_UPDATE_INTERVAL=30*1000;var h={};h.last_debug_time=null;h.utc_milliseconds=function(a){var b=a.getTime()+(a.getTimezoneOffset()*60000);return b};h.db_datetime_to_date=function(c){var a=c.replace(/[TZ]/g," ").replace(/\..*/,"").replace(/-/g,"/");var b=new Date(a);return b};h.utc_iso8601_to_date=function(d){var a=d.replace(/[TZ]/g," ").replace(/\..*/,"");var c=new Date();var b=a.split(" ");var e=b[0].split("-");var f=b[1].split(":");c.setUTCFullYear(e[0]);c.setUTCMonth(e[1]-1);c.setUTCDate(e[2]);c.setUTCHours(f[0]);c.setUTCMinutes(f[1]);c.setUTCSeconds(f[2]);return c};h.debug=function(a){if(g.DEBUG){h.last_debug_time=new Date().getTime();a="["+h.last_debug_time+"] "+a;if(window.console&&console.log){console.log(a)}jQuery.post("/debug/",{message:a})}};h.test=function(a){if(g.TESTING){jQuery.post("/debug/",{message:a})}};h.debug_data=function(b){var a=null;jQuery.each(b,function(c,d){if(d!==null&&d.substring!==null){a+=d.substring(1,25)+" |  "}});return a};h.debug_item=function(a){var b;jQuery.each(window.getComputedStyle(a),function(c,d){b+=d+" = "+window.getComputedStyle(a).getPropertyValue(d)+"\n"});jQuery.each(a,function(c,d){b+=c+" = "+d+"\n"});return b};h.current_datetime=function(){return new Date().strftime(Date.ISO)};jQuery.fn.exists=function(){return jQuery(this).length>0};jQuery.fn.reverse=[].reverse;g.set_orientation=function(){if(window.orientation!==undefined){g.ORIENTATION=Math.abs(window.orientation)===90?"landscape":"portrait"}$("body").attr("class",g.ORIENTATION);if((g.is_iphone||g.is_ipad)&&g.ORIENTATION==="landscape"){h.debug("Setting special VIEWPORT_HEIGHT for iPhone in landscape");g.VIEWPORT_HEIGHT=g.screen.width-g.magic_horizontal_scrollbar_height_landscape}else{if(g.is_ipad&&g.ORIENTATION==="portrait"){g.VIEWPORT_HEIGHT=window.innerHeight}else{g.VIEWPORT_HEIGHT=g.ORIENTATION==="portrait"?g.screen.height:g.screen.width}}g.MAX_IMAGE_HEIGHT=Math.floor(g.VIEWPORT_HEIGHT*0.8);$("#book").css("height",g.VIEWPORT_HEIGHT+"px");$("#turning-previous").css("height",g.VIEWPORT_HEIGHT+"px");$("#turning-next").css("height",g.VIEWPORT_HEIGHT+"px");$("#state").css("height",(g.VIEWPORT_HEIGHT-g.TOP_NAV_EXPANDED_HEIGHT)+"px");$("#state-overlay").css("height",(g.VIEWPORT_HEIGHT-g.TOP_NAV_EXPANDED_HEIGHT)+"px");g.VIEWPORT_WIDTH=g.ORIENTATION==="portrait"?g.screen.width:g.screen.height;g.MAX_IMAGE_WIDTH=Math.floor(g.VIEWPORT_WIDTH*0.9);$(g.IBIS_BOOK_CLASS).css("width",g.VIEWPORT_WIDTH-40+"px");h.debug("viewport height="+g.VIEWPORT_HEIGHT+" body class="+$("body").attr("class")+" CSS #book width="+$("#book").width()+" CSS #content width="+$("#content").width())};g.update_orientation=function(){g.set_orientation();if(hash.parse_hash().protocol==="epub"){g.pagination.reset_pagination()}};var ui={};ui.show_app=function(){ui.hide_login();ui.hide_errors();ui.hide_welcome();$("#nav-top").hide();$("#main").show()};ui.hide_search=function(){$("#load-more").hide();$("#searchbox").hide()};ui.show_global_nav=function(){$("#ibis-header").show();$("#nav-top-selector").hide()};ui.hide_global_nav=function(){$("#ibis-header").hide()};ui.hide_results=function(){$("#load-more").hide();$("#results-container").hide();$("#load-more").hide();$("#book-list-dropdown").hide()};ui.clear_results=function(){$("#results li").remove();$("#results-header").empty().hide();$("#results-subheader").empty().hide();$("#book-list-dropdown").hide();ui.hide_results();ui.hide_search()};ui.show_results=function(){$("#book-list-dropdown").hide();$("#results-container").show();$("#results").css("opacity",0).show().fadeTo("fast",1)};ui.show_search=function(){$("#searchbox").show()};ui.clear_book=function(){$("#book").empty();$("#nav-top-selector").hide()};ui.hide_book=function(){$("#book").hide(0,function(){ui.hide_top_nav();state.hide_state();$("#nav-top-selector").hide();bookmark.marker_off()})};ui.hide_content=function(){$("#book").css("visibility","hidden")};ui.show_content=function(){$("#book").css("visibility","visible");$("#content").css("opacity","1")};ui.show_book=function(){$("#book").show();bookmark.marker_off();$("#nav-top-selector").show();$("#nav-back-in-book").hide();ui.hide_login();ui.hide_global_nav();ui.hide_top_nav()};ui.show_top_nav=function(a){$("#nav-top").show();$("#nav-top").animate({top:0,opacity:1},100,function(){if(a){a()}});return false};ui.hide_top_nav=function(a){$("#nav-top").animate({top:-50,opacity:0},100,function(){$("#nav-top").hide();if(a){a()}});return false};ui.clear_epub_info=function(){$("#book-info").hide();$("#book-info .value").text("");$("#book-title").text("");$("#book-author").text("");$("#book-description").text("");$("#book-cover-holder img").remove();$("#nav-back-in-book").hide();$("#nav-back").hide()};ui.show_overlay=function(b,c){var a="0.2";$("#main").css("opacity",a);$(b).css("opacity",0);$(b).show();$(b).fadeTo(30,1,function(){if(c!==undefined){c()}})};ui.hide_overlay=function(b,c){var a="1";$("#main").css("opacity",a);$(b).fadeTo(30,0,function(){$(b).hide();if(c!==undefined){c()}})};ui.select_nav=function(a){$("#main .selected").removeClass("selected");if(a!==undefined){$("."+a).addClass("selected")}};ui.show_thinking_indicator=function(){$("#working").show()};ui.hide_thinking_indicator=function(){$("#working").hide()};ui.hide_welcome=function(){$("#welcome-text").hide()};ui.show_my_web_library=function(){if(g.is_authenticated){var b=$('<li class="catalog-item" id="my-web-library"/>').prependTo("#results");var a=$('<a class="no-icon">');a.text(g.WEB_LIBRARY_LABEL);a.attr("href","#opds:"+api.user_library_api_url(api.user_email()));a.appendTo(b)}else{$("#results-subheader").text("Sign in to access "+g.WEB_LIBRARY_LABEL).show()}};ui.display_no_books=function(){$(".nav-my-books").addClass("unavailable").removeClass("selected");$("#results-header").text("You have no books yet.").show();$("#my-web-library").css("border","none")};ui.display_some_books=function(){$(".nav-my-books").removeClass("unavailable").addClass("selected");$("#results-header").empty().hide()};ui.show_list_loader=function(a){var b=$('<div class="list-loading"> </div>');b.prependTo($(a))};ui.hide_list_loaders=function(){$(".list-loading").remove()};ui.show_options=function(){g.font_preference_style_cache=g.font_preference_style;ui.show_overlay("#options");ui.hide_top_nav();return false};ui.show_errors=function(){$("#error").show()};ui.hide_errors=function(){$("#error").hide()};ui.show_login=function(){if(g.book_uri_to_be_acquired){$("#login-register-notes").text("The book you selected will open after you sign in.");ui.show_login_notes()}$("#main").hide();$("#login").show()};ui.hide_login=function(){$("#login").hide();$("#main").show();$("#nav-back").hide()};ui.show_login_notes=function(){$("#login-register-notes").show()};ui.hide_login_notes=function(){$("#login-register-notes").text("");$("#login-register-notes").hide()};ui.show_export_link=function(b){if(g.is_online&&(g.is_iphone||g.is_android)){var c="epub://"+b.substring(7);if(api.is_api_local_url(b)){c=api.append_api_key_param(c)}var a=$("#book-export a").attr("href",c);if(g.is_iphone){a.text("Open in Stanza");$("#book-export-help").text("Stanza is a popular App for reading ebooks. You can find it in the iTunes App Store. You should install it before clicking the button above.");$("#book-export").show()}else{a.text("Open in Aldiko");$("#book-export-help").text("Aldiko is a popular App for reading ebooks. You can find it in the Android Market. You should install it before clicking the button above.");$("#book-export").show()}}};ui.show_pagination_hint=function(a){$("#turning-"+a).show()};ui.hide_pagination_hint=function(){$("#turning-previous").hide();$("#turning-next").hide()};$("#installicon").click(function(){if(g.is_ipad){alert("Touch the + icon at the very top to install Ibis Reader.")}else{alert("Touch the + icon at the very bottom to install Ibis Reader.")}});ui.in_page_previous_area=function(b){var a=2*Math.floor(g.VIEWPORT_WIDTH*0.2);return(b.pageX<=a)};ui.in_page_next_area=function(b){var a=g.VIEWPORT_WIDTH-(2*Math.floor(g.VIEWPORT_WIDTH*0.2));return(b.pageX>=a)};ui.location_to_percent=function(a){var b="";if(!isNaN(a)){b=(a*100).toFixed(0)}return b+"%"};ui.extent_into_label=function(a,b){var c="";if(!isNaN(a)){c=(a*100).toFixed(0)}return c+"% into \u201C"+ui.prettify_label(b)+"\u201D"};ui.pages_into_label=function(d,c){var b=(g.pagination.current_page_for_y(d)||"");var a=(g.pagination.current_total_pages()||"");return"Page "+b+" of "+a+" into \u201C"+ui.prettify_label(c)+"\u201D"};ui.prettify_label=function(a){if(!a){return"(Unlabeled)"}else{return a}};ui.clear_nexus_nav=function(){if(g.is_nexus_one){setTimeout(function(){window.scrollTo(0,1)},100)}};ui.add_reflection=function(a){if(g.is_phone||g.is_webkit){a.css("-webkit-box-reflect","below 1px -webkit-gradient(linear, left top, left bottom, from(transparent), color-stop(0.8, transparent), to(rgba(255, 255, 255, 0.5)))")}};$("#nav-top a").bind("touchend click",function(a){return ibis.delegate_touch_events("#nav-top a",a,function(){return true})});var db={};db.query=function(c,b,e,a){e=e||db.success_handler;b=b||[];e=e||db.success_handler;var d=null;if(g.DEBUG){d='Executing "'+c+'"';if(b.length>0){d+=" with data ";jQuery.each(b,function(f,i){if(typeof i==="string"&&i.length>20){d+=i.substring(0,20)}else{d+=i}d+=", "})}h.debug(d)}g.db.transaction(function(f){f.executeSql(c,b,e,a)},function(i,f){db.error_handler(i,f,d);if(a!==undefined){a()}},db.success_handler)};db.query_all=function(b,d,a){d=d||db.success_handler;var c=null;g.db.transaction(function(e){jQuery.each(b,function(j,f){if(f.length!==2){throw"Each query block must be exactly two items: a query string and a data list. query_block was="+f}if(g.DEBUG){c+=f[0];c+=" with data ";jQuery.each(f[1],function(i,k){if(typeof k==="string"&&k.length>20){c+=k.substring(0,20)}else{c+=k}c+=", "})}e.executeSql(f[0],f[1],db.success_handler,function(k,i){db.error_handler(k,i,c)})})},function(f,e){db.error_handler(f,e,c);if(a!==undefined){a()}},d)};db.db_setup_complete=function(){g.db_initialized=true};db.initiate_tables=function(){db.query("INSERT OR IGNORE INTO preference (id, font_size, font_name) VALUES (1,?,?) ",[g.FONT_SIZE_DEFAULT,g.FONT_NAME_DEFAULT],function(){options.set_display_preferences(db.db_setup_complete)})};db.create_tables=function(){var a=[];a.push(["CREATE TABLE IF NOT EXISTS book   (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, book_id NVARCHAR(255) NOT NULL UNIQUE, book_uri NVARCHAR(1000) NOT NULL UNIQUE, title NVARCHAR(1000) NOT NULL, first_chapter NVARCHAR(255), cover TEXT, thumbnail TEXT, entry TEXT, date_added TEXT, num_items INTEGER default(0));",[]]);a.push(["CREATE TABLE IF NOT EXISTS item   (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, book_id NVARCHAR(255) NOT NULL, uri NVARCHAR(1000) NOT NULL, label NVARCHAR(1000), content TEXT, cached TEXT, item_order INTEGER DEFAULT(0), depth INTEGER DEFAULT(0), content_length INTEGER DEFAULT(0), content_type NVARCHAR(50), date_added TEXT, date_modified TEXT);",[]]);a.push(["CREATE TABLE IF NOT EXISTS status (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, book_id NVARCHAR(255),          chapter NVARCHAR(1000), position INTEGER DEFAULT(0), selector NVARCHAR(1000), date_modified TEXT,                         FOREIGN KEY (book_id) REFERENCES book(book_id), FOREIGN KEY (chapter) REFERENCES item(uri));",[]]);a.push(["CREATE TABLE IF NOT EXISTS mark   (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, book_id NVARCHAR(255),          chapter NVARCHAR(1000), selector NVARCHAR(1000), location REAL, label NVARCHAR(1000), content TEXT, date_added TEXT, date_modified TEXT, FOREIGN KEY (book_id) REFERENCES book(book_id), FOREIGN KEY (chapter) REFERENCES item(uri));",[]]);a.push(["CREATE TABLE IF NOT EXISTS preference (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, font_size VARCHAR(10), font_name NVARCHAR(100), date_modified TEXT);",[]]);db.query_all(a,db.initiate_tables)};function update_db_fail(a){h.debug("Failed to update db to version "+g.DB_VERSION);if(g.is_android){alert("Please completely close all Ibis Reader windows to continue after the upgrade")}else{alert("Please close and reopen Ibis Reader to continue after the upgrade")}}function update_db_success(a){alert("Ibis was successfully upgraded to version "+g.DB_VERSION+". Please close Ibis Reader then reopen to continue.")}db.reset_handler=function(b,a){h.debug("Setting db_initialized to false");g.db_initialized=false};db.reset_db=function(){if(confirm("Delete all local books and reload DB?")){h.debug("Resetting");ibis.logout();var a=[];a.push(["DROP TABLE book",[]]);a.push(["DROP TABLE item",[]]);a.push(["DROP TABLE status",[]]);a.push(["DROP TABLE mark",[]]);a.push(["DROP TABLE preference",[]]);db.query_all(a,db.reset_handler)}};db.success_handler=function success_handler(a){};db.Error=new Error("Database error");db.error_handler=function(d,a,c){var b=null;if(a!==undefined){b="DB error.  Error was "+a.message+" (Code "+a.code+"), query="+c;h.debug(b);throw b}else{b="DB error.  Error was "+d.message+" (Code "+d.code+"), query="+c;h.debug(b);throw b}};function cv_1_0_to_1_0_1(){}function cv_1_0_1_to_1_0_2(a){a.executeSql("ALTER TABLE item ADD date_modified TEXT",[],db.success_handler,db.error_handler);a.executeSql("ALTER TABLE item ADD cached TEXT",[],db.success_handler,db.error_handler);a.executeSql("ALTER TABLE preference ADD date_modified TEXT",[],db.success_handler,db.error_handler)}function cv_1_0_2_to_1_0_3(a){a.executeSql("ALTER TABLE status ADD selector NVARCHAR(1000)",[],db.success_handler,db.error_handler)}function cv_1_0_3_to_1_0_4(a){a.executeSql("ALTER TABLE item ADD content_length INTEGER DEFAULT(0)",[],db.success_handler,db.error_handler)}db.setup_db=function(){try{if(window.openDatabase){h.debug("Requesting a DB of "+g.DB_MAX_SIZE);g.db=window.openDatabase(g.DB_NAME,g.DB_VERSION,g.DB_DISPLAY_NAME,g.DB_MAX_SIZE);if(!g.db){throw ("Warning: openDatabase returned null")}else{db.create_tables()}}else{alert("Your web browser doesn't support HTML5 databases for use reading books offline.");throw ("This client doesn't support HTML5 databases.")}}catch(a){if(a.code===DOMException.INVALID_STATE_ERR){g.db=openDatabase(g.DB_NAME,"",g.DB_DISPLAY_NAME,g.DB_MAX_SIZE);h.debug("Working with database version "+g.db.version);if(g.db.version==="1.0"){g.db.changeVersion("1.0","1.0.1",cv_1_0_to_1_0_1,update_db_fail,update_db_success)}else{if(g.db.version==="1.0.1"){h.debug("Attempting 1.0.1 to 1.0.2 upgrade");g.db.changeVersion("1.0.1","1.0.2",cv_1_0_1_to_1_0_2,update_db_fail,update_db_success)}else{if(g.db.version==="1.0.2"){h.debug("Attempting 1.0.2 to 1.0.3 upgrade");g.db.changeVersion("1.0.2","1.0.3",cv_1_0_2_to_1_0_3,update_db_fail,update_db_success)}else{if(g.db.version==="1.0.3"){h.debug("Attempting 1.0.3 to 1.0.4 upgrade");g.db.changeVersion("1.0.3","1.0.4",cv_1_0_3_to_1_0_4,update_db_fail,update_db_success)}else{h.debug("DB upgrade error: No known version scenario found")}}}}}else{h.debug("Got an unexpected database setup exception "+a)}}};var position={};position.current_selector=null;position.update_reading_position=function(a,b){position.update_current_selector(a,b);position.update_current_position(b,g.chapter,g.book_id(g.book_uri))};position.book_location_for_chunk_and_location=function(c,a,i){var b=null;var f=null;var e=0;var d=0;db.query('SELECT content_length, uri FROM item WHERE book_id = ? AND content_type = "application/xhtml+xml" ORDER BY item_order',[g.book_id(g.book_uri)],function(k,m){for(var j=0;j<m.rows.length;j++){var l=m.rows.item(j).content_length;if(m.rows.item(j).uri===c){f=l}if(!f){e+=l}d+=l}b=((e/d)+((f/d)*a));i(b)})};position.chunk_location_for_node=function(a){var b=$(a).position().top;return position.chunk_location_for_y(b)};position.chunk_location_for_y=function(e){var c=$("#content").width();var a=c*$("#content").height();var b=c*e;var d=b/a;return d};position.update_current_position=function(c,b,a){if(c===0){position.current_selector=g.FIRST_SELECTOR}db.query("UPDATE status SET position = ?, selector =?, chapter = ?, date_modified = ? WHERE book_id = ?",[c,position.current_selector,b,h.current_datetime(),a])};position.update_current_selector=function(c,e){if(!position.current_selector){position.current_selector=g.FIRST_SELECTOR}var b="*:not(div):not(.ibis-padding):not(.ibis-span)";var a=g.pagination.get_y_offset("next")-g.pagination.get_current_y()-g.TOP_MARGIN;if(c){var d=$(position.current_selector);$("#content").find(b).each(function(){if(this.nodeType===Node.ELEMENT_NODE){var i=position.node_top(this);if(g.is_iphone){i=i-g.pagination.get_current_y()}var f=position.node_top(d);if(g.pagination.node_top_visible(this)){position.current_selector=$(this).getPath();return false}else{if(f<0&&i>=a){position.current_selector=$(d).getPath();return false}else{d=this}}}})}else{$("#content").find(b).reverse().each(function(){if(this.nodeType===Node.ELEMENT_NODE){var f=position.node_top(this);if(g.is_iphone){f=f-g.pagination.get_current_y()}if(f<=a){position.current_selector=$(this).getPath();return false}}})}};position.node_top=function(a){if($(a).exists()){return Math.floor($(a).offset().top)}else{return 0}};position.node_bottom=function(a){return position.node_top(a)+$(a).height()};var hash={};hash.update_hash=function(b,a){h.debug("updating hash with "+b+" and "+a);if(b!==undefined){document.location.hash=""}document.location.hash=a!==undefined?b+":"+a:b};hash.parse_hash=function(){var a={};var b=document.location.hash.replace("#","").split(":");a.protocol=b[0];a.uri=document.location.hash.replace("#"+a.protocol+":","");return a};var catalogs={};catalogs.get_selected_catalog_handler=function(a,b){$("#nav-back").hide();if(a.message){ui.hide_results();$("#error p").text(a.message);alert($("#error p").text());ui.hide_list_loaders();$("#results li.catalog-item a").removeClass("clicking-disabled");$("#results li.catalog-item a").unbind(ibis.disable_links);hash.update_hash("catalogs");return false}$("#load-more").hide();if(!a.previous){ui.clear_results();ui.clear_epub_info();ui.show_global_nav();ui.show_search();$("#results-header").empty().hide();$("#results-subheader").empty().hide();$("#searchterm").val("Search...")}if(b){$("#results-header").text(g.WEB_LIBRARY_LABEL).show();$("#results-subheader").text("All the books you've uploaded on Ibis Reader:").show()}if(a.search_description){$("#search-description").val(a.search_description);$("#searchbox").show()}else{$("#searchbox").hide()}if(a.items.length===0){$("#results-header").text("No items were found in this catalog.").show();$("#results-subheader").empty()}jQuery.each(a.items,function(j,e){var d=$('<li class="catalog-item"/>');var f=e.title;var c=$('<a class="catalog-item"/>');if(f.length>g.ELIDE_TITLE_THRESHOLD){c.addClass("small-title");c.text(f.substring(0,60));$('<span class="elide">').text(". . .").appendTo(c)}else{if(f.length>g.SHRINK_TITLE_THRESHOLD){c.text(f);c.addClass("small-title")}else{c.text(f)}}if(e.thumbnail){var k=$('<a class="catalog-item">').attr("href","#info:"+e.epub).addClass("img-holder");$('<img class="feed-thumbnail" width="'+g.ICON_WIDTH+'">').attr("src","/nest/image-proxy/?image="+e.thumbnail).appendTo(k);k.appendTo(d)}else{c.addClass("no-icon")}$('<span class="author">').text(e.author).appendTo(c);if(g.is_ipad){if(e.date){$('<span class="date">').text("Published: "+e.date).appendTo(c)}if(e.publisher){$('<span class="publisher">').text(e.publisher).appendTo(c)}if(e.description){var m=e.description;if(m.length>g.ELIDE_DESCRIPTION_THRESHOLD){m=m.substring(0,g.ELIDE_DESCRIPTION_THRESHOLD)+" . . . "}$('<span class="summary">').html(m).appendTo(c)}}if(e.epub){c.attr("href","#info:"+e.epub).appendTo(d);d.appendTo("#results")}});if(a.search_results>$("#results li").length){$("#results-header").text("Showing the first "+$("#results li").length+" results out of "+a.search_results+".").show()}else{if(a.search_results!==""&&a.search_results>1){$("#results-header").text($("#results li").length+" items were found for your search.").show()}}ui.show_results();ui.hide_list_loaders();if(a.next){$("#load-more a").removeClass("clicking-disabled");$("#load-more").show()}return false};catalogs.get_selected_catalog=function(a,b){h.debug("Getting catalog "+a+" (my_web_library: "+b+")");h.test("Getting catalog "+a+" (my_web_library: "+b+")");$("#catalog-back").attr("href","#opds:"+a);if(b){h.debug("Loading My Web Library without proxy");catalogs.getCatalog({url:a,success:function(c){catalogs.get_selected_catalog_handler(c,b)}})}else{catalogs.getCatalog({url:"/nest/proxy/",data:{feed:a},success:catalogs.get_selected_catalog_handler})}return false};catalogs.get_epub_entry=function(a){catalogs.getCatalog({url:"/nest/entry/",data:{feed:a},first:true,success:function(b){ibis.get_epub_file(b.epub)},error:function(b){if(b.error){$("#error p").html(b.error);$("#error").show()}}});return false};catalogs.get_catalog_list_handler=function(e){ui.clear_results();ui.clear_book();ui.show_global_nav();$("#nav-top").hide();for(var c in e){if(e.hasOwnProperty(c)){var d=e[c];var b=$('<li class="catalog-item"/>').appendTo("#results");var a=$("<a>");a.attr("href","#opds:"+d.fields.url);if(d.icon){$("<img>").attr("src",d.icon).appendTo(b)}else{a.addClass("no-icon")}a.appendTo(b);a.text(d.fields.name)}}ibis.add_load_from_url_button();ui.show_results()};catalogs.get_catalog_list=function(){ui.select_nav("nav-library");jQuery.ajax({url:"/nest/catalogs/list/",success:catalogs.get_catalog_list_handler,error:function(c,a,b){alert("Unable to retrieve the list of catalogs.");h.debug("Could not load catalog:"+b)},type:"GET",dataType:"json"})};catalogs.JFeedItem=function(a,b){this.create(a,b)};catalogs.JFeedItem.prototype={title:"",link:"",description:"",updated:"",id:"",epub:"",pdf:"",create:function(a,b){this.title=a.find("title:first").text();this.author=a.find("author:first name").text();this.link=a.find("link:first").attr("href");this.thumbnail=a.find('link[rel="http://opds-spec.org/thumbnail"]').attr("href");this.cover=a.find('link[rel="http://opds-spec.org/cover"]').attr("href");this.description=a.find("summary").text();this.language=a.find("language").text();this.publisher=a.find("publisher").text();this.date=a.find("issued").text();this.rights=a.find("rights").text();this.updated=a.find("updated").text();this.id=a.find("id").text();this.epub=a.find('link[type="application/epub+zip"]').attr("href");this.pdf=a.find('link[type="application/pdf"]').attr("href");this.xml=b}};catalogs.ErrorFeed=function(a){this._parse(a)};catalogs.ErrorFeed.prototype={_parse:function(a){this.message=jQuery("error",a).find("message").text()}};catalogs.JAtom=function(a){this._parse(a)};catalogs.JAtom.prototype={_parse:function(a){var b=jQuery("feed",a).eq(0);this.version="1.0";this.title=b.find("title:first").text();this.author=b.find("author:first").text();this.link=b.find("link:first").attr("href");this.self=b.find('link[rel="self"]').attr("href");this.next=b.find('link[rel="next"]').attr("href");this.previous=b.find('link[rel="previous"]').attr("href");this.search_description=b.find('link[type="application/opensearchdescription+xml"]').attr("href");this.search_results=parseInt(b.find("totalResults").text(),10);this.search_start_index=parseInt(b.find("startIndex").text(),10);if(this.self!==null&&this.self.indexOf("http")===-1){this.self=this.base+this.self}this.description=jQuery(b).find("subtitle:first").text();this.language=jQuery(b).attr("xml:lang");this.updated=jQuery(b).find("updated:first").text();this.items=[];this.entries=[];var c=this;jQuery("entry",a).each(function(){var d=jQuery(this);var e=new catalogs.JFeedItem(d,this);c.items.push(e);c.entries[e.epub]=e})}};catalogs.Catalog=function(a){if(a){this.parse(a)}};catalogs.Catalog.prototype={type:"",version:"",title:"",link:"",next:"",description:"",epub:"",pdf:"",self:"",search_description:"",search_total:"",search_start_index:"",icon:"",parse:function(a){var b=null;if(jQuery("error",a).length===1){b=new catalogs.ErrorFeed(a)}else{if(jQuery("feed",a).length===1){b=new catalogs.JAtom(a)}else{if(jQuery("entry",a).length===1){b=new catalogs.Book(a)}}}jQuery.extend(this,b)}};catalogs.getCatalog=function(a){a=jQuery.extend({url:null,data:null,success:null,error:null},a);if(a.url){$.ajax({type:"GET",url:a.url,data:a.data,dataType:"xml",success:function(b){g.catalog=new catalogs.Catalog(b);if(jQuery.isFunction(a.success)){a.success(g.catalog,a.first)}},error:function(d,b,c){h.debug("Got error retrieving catalog: xhr was="+d.status+" status was="+b+" error was="+c.message);alert("There was a problem loading this catalog.")}})}};catalogs.catalog_item_handler=function(){$("#results li a.catalog-item").addClass("clicking-disabled");$("#results ll a.catalog-item").bind("click",ibis.disable_links);ui.show_list_loader($(this).parent());return true};$("#results li.catalog-item a").live("click",catalogs.catalog_item_handler);g.higher_node_to_pad=null;g.higher_node_y=-1;g.pagination.reset_pagination=function(){h.debug("Got orientation change that required a pagination change: orientation="+g.ORIENTATION+" viewport_height="+g.VIEWPORT_HEIGHT+" #book CSS height="+$("#book").css("height")+" width="+$("#book").css("width"));db.query("UPDATE status SET position=NULL WHERE book_id=?",[g.book_id(g.book_uri)],function(){ibis.load_opf_content_item(g.chapter,g.book_uri)})};var blank_re=/^[\s]*$/;function generate_id(){var a=new Date();return a.getTime()}function node_fits(a,b){return position.node_bottom(a)<b-g.BOTTOM_MARGIN}function split_text_node(l,r,t){var d=0;var x=l.nodeValue.replace(/^\s+|\s+$/g,"");var q=x.split(/\s/);var m=0;var i=position.node_top(r);var v=i;var o=q.length-2;var a=position.node_bottom(r);var u=undefined;var n=[];var z=[];var f=a;var y=true;while(m<o){if(o-m>=10){var e=(t-v)/(a-v);u=Math.floor(m+e*(o-m));if(u<m+3){u=m+3}if(u>o-3){u=o-3}}else{u=Math.floor((m+o+1)/2)}n=q.slice(0,u);l.nodeValue=n.join(" ");f=position.node_bottom(r);if(node_fits(r,t)){m=u;v=f}else{o=u-1;a=f}d++}if(m!==u){n=q.slice(0,m);l.nodeValue=n.join(" ");f=position.node_bottom(r)}var c=(m===0);var b=t+g.TOP_MARGIN-(c?i:f);if(c&&i===g.higher_node_y&&g.higher_node_to_pad){g.higher_node_to_pad.addClass("ibis-padding "+g.font_preference_style);g.higher_node_to_pad.css("margin-top",b+"px");t+=g.VIEWPORT_HEIGHT;l.nodeValue=q.join(" ");return t}z=q.slice(m);var p="is-"+generate_id();var w=$('<img src="'+g.MEDIA_URL+'images/t.gif" style="opacity:0" class="ibis-padding '+g.font_preference_style+'" height="'+b+'" width="98%" id="'+p+'"/>').insertAfter($(l));var k=$(document.createTextNode(" "+z.join(" "))).insertAfter(w);t+=g.VIEWPORT_HEIGHT;if(position.node_bottom(r)>t){for(var s=r.contents().length-1;s>0;s--){if(r.contents()[s].nodeType===Node.TEXT_NODE){t=split_text_node(r.contents()[s],r,t);break}}}return t}function split(b,a,c){if(position.node_top(a)>c+g.TOP_MARGIN){return c+g.VIEWPORT_HEIGHT}else{return split_text_node(b,a,c)}}function unsplittable(a){return($(a)[0].nodeName==="IMG"||$(a)[0].nodeName==="CANVAS")}function traverse(a,e,c){if(node_fits(a,e)){return e}else{var b=position.node_top(a);if(b>e+g.TOP_MARGIN){return e+g.VIEWPORT_HEIGHT}else{var d=e-b+g.TOP_MARGIN;if($(a)[0].nodeName==="TR"){a.children().each(function(){$(this).addClass("ibis-padding "+g.font_preference_style);$(this).css("padding-top",d+"px")});return e+g.VIEWPORT_HEIGHT}else{if(unsplittable(a)){$(a).addClass("ibis-padding "+g.font_preference_style);$(a).css("padding-top",d+"px");return e+g.VIEWPORT_HEIGHT}else{if($(a)[0].nodeName==="LI"){g.higher_node_to_pad=$(a);g.higher_node_y=position.node_top(a)}}}$(a).contents().each(function(){if(this.nodeType===Node.TEXT_NODE){if(blank_re.test(this.nodeValue)){}else{e=split(this,a,e)}}else{if(this.nodeType===Node.COMMENT_NODE){}else{e=traverse($(this),e,c+1);g.higher_node_to_pad=null;g.higher_node_y=-1}}});return e}}}g.pagination.current_page_for_y=function(a){return Math.floor(a/g.VIEWPORT_HEIGHT)+1};g.pagination.current_total_pages=function(){var a=Math.floor($("#content").height());return Math.floor(a/g.VIEWPORT_HEIGHT)+1};g.pagination.calculate_last_page_y=function(){var a=Math.floor($("#content").height());return Math.floor(a/g.VIEWPORT_HEIGHT)*g.VIEWPORT_HEIGHT};g.pagination.calculate_selector_y=function(a){while(!$(a).exists()){if(a.indexOf(">")===-1){a=g.IBIS_BOOK_CLASS;break}a=a.slice(0,a.lastIndexOf(">"));h.debug("Unwrapping provided selector to "+a)}var c=position.node_top(a);var b=Math.floor(c/g.VIEWPORT_HEIGHT)*g.VIEWPORT_HEIGHT;return b};function cache_content(){db.query("UPDATE item SET cached=?, date_modified=? WHERE book_id=? AND uri=?",[$("#book").html(),h.current_datetime(),g.book_id(g.book_uri),g.chapter])}function process_all_pages(b,d){var c=0;traverse($("#content"),c+g.VIEWPORT_HEIGHT,0);if(d){var a=g.pagination.calculate_last_page_y();g.pagination.move_to(a);position.current_selector=g.LAST_SELECTOR;position.update_current_position(a,g.chapter,g.book_id(g.book_uri))}else{if(!b&&b!==0){b=g.pagination.calculate_selector_y(position.current_selector)}g.pagination.move_to(b);position.update_current_position(b,g.chapter,g.book_id(g.book_uri))}ui.show_content();bookmark.update_bookmark_selectors(g.book_id(g.book_uri),g.chapter);if(!g.loading_book_content){ui.hide_thinking_indicator()}setTimeout(function(){db.query("UPDATE item SET cached=?, date_modified=? WHERE book_id=? AND uri=?",[$("#book").html(),h.current_datetime(),g.book_id(g.book_uri),g.chapter])},1000)}g.pagination.process_content=function(a,b){process_all_pages(a,b)};g.pagination.get_current_y=function(){if(!$("#content").css("-webkit-transform")){return 0}var a=Math.floor($("#content").css("-webkit-transform").replace("translateY(","").replace("-","").replace("px)",""));if(isNaN(a)){return 0}return a};g.pagination.get_y_offset=function(b){var a=g.pagination.get_current_y();if(b==="next"){return a+g.VIEWPORT_HEIGHT}else{return a-g.VIEWPORT_HEIGHT}};g.pagination.move_to=function(a){$("#content").css("-webkit-transform","translateY(-"+a+"px)")};g.pagination.next=function(){var d=g.pagination.get_y_offset("next");var a=$("#content").height();if(d>a){var b=$("#nav-next").attr("href");if(b){h.debug("Checking g.loading_book_content "+g.loading_book_content);if(g.loading_book_content&&!($("#nav-next").attr("href") in g.start_items)){alert("This book is still loading, please wait a moment.");return false}ui.hide_book();position.update_current_position(0,b,g.book_id(g.book_uri));return ibis.load_opf_content_item($("#nav-next").attr("href"),g.book_uri)}return false}g.pagination.move_to(d);position.update_reading_position(true,d);bookmark.update_marker_status()};g.pagination.previous=function(){if(g.pagination.get_current_y()===0){var d=$("#nav-previous").attr("href");if(d&&d!==""){ui.hide_content();var b=true;return ibis.load_opf_content_item(d,g.book_uri,b)}return false}var a=g.pagination.get_y_offset("prev");g.pagination.move_to(a);position.update_reading_position(false,a);bookmark.update_marker_status()};g.pagination.node_top_visible=function(b){var c=position.node_top($(b));var a=g.pagination.get_y_offset("next")-g.pagination.get_current_y()-g.TOP_MARGIN;if(g.is_iphone||g.is_ipad){c=c-g.pagination.get_current_y()}return(c>0&&c<=a)};var bookmark={};bookmark.in_bookmark_toggle_area=function(a){return(((g.VIEWPORT_WIDTH-a.pageX)<=g.BOOKMARK_WIDTH)&&(a.pageY<=g.BOOKMARK_HEIGHT))};bookmark.toggle=function(){h.debug("Toggling");if(!$("#bookmark:visible").exists()){bookmark.marker_on();bookmark.add_mark_record(position.current_selector)}else{bookmark.marker_off();bookmark.drop_mark_record(position.current_selector)}};bookmark.update_bookmark_selectors=function(a,b){g.bookmark_selectors={};db.query("SELECT selector FROM mark WHERE book_id = ? AND chapter = ?",[a,b],function(d,e){for(var c=0;c<e.rows.length;c++){var f=e.rows.item(c);g.bookmark_selectors[f.selector]=true}bookmark.update_marker_status()})};bookmark.update_marker_status=function(){var a=true;jQuery.each(g.bookmark_selectors,function(b,c){if(g.pagination.node_top_visible(b)){bookmark.marker_on();a=false;return false}});if(a){bookmark.marker_off()}};bookmark.marker_on=function(){$("#bookmark").show()};bookmark.marker_off=function(){$("#bookmark").hide()};bookmark.add_mark_record=function(a){if(a){g.bookmark_selectors[a]=true;var c=g.book_id(g.book_uri);var d=h.current_datetime();var b=position.chunk_location_for_node(a);db.query("INSERT INTO mark (book_id, chapter, selector, location, label, date_added, date_modified) VALUES (?,?,?,?,?,?,?)",[c,g.chapter,a,b,g.label,d,d])}};bookmark.drop_mark_record=function(a){var b=g.book_id(g.book_uri);if(g.bookmark_selectors[a]){g.bookmark_selectors[a]=undefined;db.query("DELETE FROM mark WHERE book_id = ? AND chapter = ? AND selector = ?",[b,g.chapter,a])}else{var c=[];jQuery.each(g.bookmark_selectors,function(e,d){if(g.pagination.node_top_visible(e)){g.bookmark_selectors[e]=undefined;c.push(["DELETE FROM mark WHERE book_id = ? AND chapter = ? AND selector = ?",[b,g.chapter,e]])}});db.query_all(c)}};bookmark.show_bookmark_list=function(b){var a=$("#book-bookmarks ol");a.empty();ui.show_list_loader("#book-bookmarks h3");db.query("SELECT DISTINCT mark.chapter, mark.selector, mark.label, mark.location, mark.date_added FROM mark JOIN item ON item.uri = mark.chapter WHERE  mark.book_id = ? ORDER BY item.item_order, mark.location ASC",[g.book_id(b)],function(n,c){if(c.rows.length===0){$('<li class="no-icon"><a class="clicking-disabled">None</a></li>').appendTo(a)}else{for(var j=0;j<c.rows.length;j++){var f=c.rows.item(j);var m="Added on "+f.date_added;var k=ui.extent_into_label(f.location,f.label);var d=f.chapter+g.HREF_SEPARATOR+f.selector;var e=$('<a class="bookmark-item">').attr("href",d).attr("title",m).text(k);var l=$('<li class="no-icon">').appendTo(a);e.appendTo(l)}}ui.hide_list_loaders()})};$("#bookmark").click(function(a){bookmark.toggle();a.stopPropagation()});$("a.bookmark-item").live("click",function(){if(g.loading_book_content){alert("This book is still loading, please wait a moment.");return false}var b=g.book_id(g.book_uri);var c=$(this).attr("href").split(g.HREF_SEPARATOR);var d=c[0];var a=c[1];db.query("UPDATE status SET selector = ?, chapter = ?, date_modified = ?, position = NULL  WHERE book_id = ?",[a,d,h.current_datetime(),b],function(){hash.update_hash("epub",g.book_uri)});return false});var state={};state.CURRENT_STATE_CLICKABLE_TOP_HEIGHT=50;state.load_state_content=function(){db.query("SELECT title FROM book WHERE book_id = ?",[g.book_id(g.book_uri)],function(b,c){if(c.rows.length>0){$("#state-title").text(c.rows.item(0).title)}var d=g.pagination.get_current_y();$("#state-label").text(ui.pages_into_label(d,g.label));var a=position.chunk_location_for_y(d);position.book_location_for_chunk_and_location(g.chapter,a,function(e){var f=ui.location_to_percent(e)+" into book";$("#state-book-position").text(f)})})};state.show_state=function(){$("#content").css("opacity","0.2");state.load_state_content();ui.show_top_nav(function(){$("#state").show();$("#state").fadeTo(30,1)});return false};state.hide_state=function(){$("#state").fadeTo(30,0);$("#state").hide();ui.hide_top_nav(function(){$("#content").css("opacity","1")});return false};state.in_current_state_area=function(a){if(a.pageY<state.CURRENT_STATE_CLICKABLE_TOP_HEIGHT){return true}else{return(!ui.in_page_previous_area(a)&&!ui.in_page_next_area(a))}};$("#state").bind("touchend click",function(a){ibis.delegate_touch_events("#state",a,state.register_state_events)});state.register_state_events=function(){ui.hide_top_nav();state.hide_state();$("#nav-top-selector").show();bookmark.update_marker_status()};var options={};options.set_font_preference_style=function(a,c,b){g.font_preference_style=a+"-"+c+"-"+b};options.get_font_preferences=function(){var a={};a.font_size=g.font_preference_style.split("-")[0];a.font_name=g.font_preference_style.split("-")[1];return a};options.set_display_preferences=function(a){db.query("SELECT font_size, font_name, date_modified FROM preference WHERE id = 1",[],function(c,d){if(d.rows.length===0){h.debug("Warning: no font preferences were stored.  This is an error.");a();return}var b=d.rows.item(0);options.update_font_sample(b);options.set_font_preference_style(b.font_size,b.font_name,g.ORIENTATION);jQuery.each(g.FONTS,function(e,f){$("#"+e+" a.button").css("font-family",f);if(f===b.font_name){$("#"+e+" a").addClass("selected")}});if(a){a(b.date_modified)}})};var bg_re=/rgb\((\d+)/;options.update_brightness=function(d){var b=$("#font-sample").css("backgroundColor");var a=Math.floor(bg_re.exec(b)[1]);if(d==="darker"){a=Math.max(g.BRIGHTNESS_MIN,a-g.BRIGHTNESS_STEP_VALUE)}else{a=Math.min(g.BRIGHTNESS_MAX,a+g.BRIGHTNESS_STEP_VALUE)}var c="rgb("+a+", "+a+","+a+")";$("#font-sample").css("backgroundColor",c);$("#book").css("backgroundColor",c).css("backgroundImage","none");$("#nav-top-selector").css("backgroundColor",c);return false};options.reset_brightness=function(){var a="rgb("+g.BRIGHTNESS_MAX+", "+g.BRIGHTNESS_MAX+","+g.BRIGHTNESS_MAX+")";$("#font-sample").css("backgroundColor",a);$("#book").css("backgroundColor",a).css("backgroundImage",g.DEFAULT_BOOK_BACKGROUND_IMAGE);$("#nav-top-selector").css("backgroundColor",a)};options.update_font_size=function(d){var a=options.get_font_preferences();var c=a.font_size.substring(0,a.font_size.length-2)*1;var b=null;h.debug("Current font_size: "+c);if(d==="larger"){b=Math.min(g.FONT_SIZE_MAX,c+g.FONT_SIZE_STEP_VALUE)+"px"}else{b=Math.max(g.FONT_SIZE_MIN,c-g.FONT_SIZE_STEP_VALUE)+"px"}options.set_font_preference_style(b,a.font_name,g.ORIENTATION);options.update_font_sample(options.get_font_preferences());return false};options.update_font_sample=function(a){$("#font-sample").css("font-size",a.font_size);$("#font-sample").css("font-family",a.font_name)};options.update_font_name=function(b){var a=options.get_font_preferences();options.set_font_preference_style(a.font_size,b,g.ORIENTATION);options.update_font_sample(options.get_font_preferences())};$("#brighter").click(function(){options.update_brightness("brighter")});$("#darker").click(function(){options.update_brightness("darker")});$("#font-name a").click(function(){var a=g.FONTS[$(this).parent().attr("id")];options.update_font_name(a)});$("#font-larger").click(function(){options.update_font_size("larger")});$("#font-smaller").click(function(){options.update_font_size("smaller")});$("#book-options-link").click(ui.show_options);$("#options-reset a").click(function(){options.set_font_preference_style(g.FONT_SIZE_DEFAULT,g.FONT_NAME_DEFAULT,g.ORIENTATION);var a=options.get_font_preferences();db.query("UPDATE preference SET font_size=?, font_name=?, date_modified=? WHERE id = 1",[a.font_size,a.font_name,h.current_datetime()],function(){options.update_font_sample(a);$(".setting a").removeClass("selected");jQuery.each(g.FONTS,function(b,c){if(c===a.font_name){$("#"+b+" a").addClass("selected")}});options.reset_brightness()});return false});$("#options-close a").click(function(){if(g.font_preference_style!==g.font_preference_style_cache){var a=options.get_font_preferences();db.query("UPDATE preference SET font_size=?, font_name=?, date_modified=? WHERE id = 1",[a.font_size,a.font_name,h.current_datetime()],function(){options.set_display_preferences(function(){db.query("UPDATE status SET position=NULL WHERE book_id=?",[g.book_id(g.book_uri)],function(){ibis.load_opf_content_item(g.chapter,g.book_uri);ui.hide_overlay("#options");$("#nav-top-selector").show();state.hide_state()})})})}else{ui.hide_overlay("#options");$("#nav-top-selector").show();state.hide_state()}return false});$(".setting td").click(function(){$(this).siblings().find("a").removeClass("selected");$(this).find("a").addClass("selected");return false});var api={};api.position_sync_interval_ms=g.POSITION_UPDATE_INTERVAL;api.user_position_cache={chapter_uri:g.chapter,selector:position.current_selector,book_id:g.book_id(g.book_uri)};api.user_library_api_url=function(a){var b=g.BASE_API_PATH+"/user/"+encodeURIComponent(a)+"/library/";return api.append_api_key_param(b)};api.user_position_api_url=function(a){var b=g.BASE_API_PATH+"/user/"+encodeURIComponent(a)+"/position/";return api.append_api_key_param(b)};api.user_update_position=function(d,e,a){var c=(d!==api.user_position_cache.book_id||e!==api.user_position_cache.chapter_uri||a!==api.user_position_cache.selector);if(c){api.user_position_cache={chapter_uri:e,selector:a,book_id:d};var b=api.user_email();if(g.is_online&&b&&api.user_apikey()){h.debug("Sending position update for "+e+" at "+a);h.test("Sending position update for "+e+" at "+a+" as "+api.user_position_api_url(b));jQuery.ajax({async:true,url:api.user_position_api_url(b),data:{chapter_uri:e,book_id:d,selector:a},type:"POST"})}else{h.debug("Position not sent to server because user was not logged in or wasn't online")}}};api.user_last_position=function(b,d){var a=api.user_email();if(g.is_online&&a&&api.user_apikey()){var c=api.user_position_api_url(a)+"&book_id="+encodeURIComponent(b);jQuery.ajax({async:false,dataType:"json",url:c,success:function(f,e,i){d(f)},error:function(f,e,i){d(null)},type:"GET"})}else{h.debug("Position not requested from server because user was not logged in or wasn't online")}};api.user_apikey=function(){var a=$.cookie(g.api_cookie_name);if(a){a=api.noquotes(a)}else{a=""}return a};api.is_api_local_url=function(b){var a=new RegExp(g.WEB_UI_URL);return a.test(b)};api.append_api_key_param=function(a){if(a.indexOf("?")<0){return a+"?apikey="+encodeURIComponent(api.user_apikey())}else{return a+"&apikey="+encodeURIComponent(api.user_apikey())}};api.user_email=function(){var a=$.cookie(g.login_cookie_name);if(a){a=api.noquotes(a)}return a};api.noquotes=function(a){var b=/^["'](.+)["']$/;return a.replace(b,"$1")};api.update_response_nodes=function(a,b,c){if(g.DEBUG||g.TESTING){h.debug("Writing to test-response");h.test("Writing to test-response: "+a);$("#test-response-code").text(c.status);if(a.body){$("#test-response-body").text(a.body)}else{$("#test-response-body").text(a)}$("#test-response-body").text(a);$("#test-request-path").text(b)}};api.add_book_to_library=function(b){var a=api.user_email();if(g.is_online&&a){var c=api.user_library_api_url(a)+"&epuburl="+encodeURIComponent(b);jQuery.ajax({async:true,url:c,success:function(e,d,f){api.update_response_nodes(e,c,f)},error:function(e,d,f){api.update_response_nodes(d,c,e)},type:"POST"})}else{h.debug("Book not POSTed to library because user was not logged in or wasn't online")}};var ibis={};function check_hash(){var c=hash.parse_hash();h.debug("Hash was changed to "+c.protocol+":"+c.uri);ui.clear_nexus_nav();switch(c.protocol){case"epub":g.book_uri=c.uri;ibis.get_epub_file(g.book_uri);return true;case"opds":ui.show_app();$("#book-info").hide();$("#book").hide();ui.select_nav("nav-library");ui.show_global_nav();$("#nav-top").hide();var b=c.uri;var a=false;if(api.user_library_api_url(api.user_email())===b){a=true}catalogs.get_selected_catalog(b,a);return true;case"catalogs":ui.show_app();$("#book-info").hide();$("#book").hide();check_online(function(){if(g.is_online){catalogs.get_catalog_list()}else{alert("You don't appear to be online. Please turn on internet service to download books.");hash.update_hash("books")}});return true;case"books":ui.show_app();update_auth_status();get_book_list();return true;case"logout":ibis.logout();return true;case"info":ui.clear_results();ui.clear_epub_info();db.query("SELECT entry, cover FROM book WHERE book_uri = ?",[c.uri],function(f,i){if(i.rows.length===0){if(g.catalog){get_book_info(c.uri,g.catalog.entries[c.uri],false,null)}else{hash.update_hash("catalogs")}return false}g.book_uri=c.uri;var e=i.rows.item(0);var d=new catalogs.JFeedItem($(g.parse_xml(e.entry)),e.entry);get_book_info(c.uri,d,true,e.cover);return true});return true;case"login":ui.show_login();return true;default:return false}}function add_book(c,d,f,i,m,a,b,l){if(api.is_api_local_url(d)){d=d.split("?")[0]}h.debug("Adding book "+d);var e=new XMLSerializer();var j=undefined;var k=undefined;if(g.catalog){j=g.catalog.entries[d];k=e.serializeToString(j.xml)}db.query("INSERT INTO book (book_id, book_uri, title, first_chapter, entry, cover, thumbnail, num_items, date_added) VALUES (?,?,?,?,?,?,?,?,?)",[c,d,f,i,k,m,a,b,h.current_datetime()],function(){db.query("INSERT INTO status (position, book_id, chapter, date_modified) VALUES (?,?,?,?)",[0,c,i,h.current_datetime()],l)})}function render_cached_image(c,d,a){var b=new Image();b.onload=function(){var e=d||b.width;var f=a||b.height;if(b.height<a){f=b.height}if(b.width<d){e=b.width}if(d&&b.width>d){f=Math.floor(b.height*d/b.width);h.debug("Resetting new height from "+b.height+" to "+f)}else{if(a&&!d&&b.height>a){e=Math.floor(b.width*a/b.height);h.debug("Resetting new width from "+b.width+" to "+e)}else{if(b.width>g.MAX_IMAGE_WIDTH){f=Math.floor(b.height*g.MAX_IMAGE_WIDTH/b.width);e=g.MAX_IMAGE_WIDTH}}}if(f>g.MAX_IMAGE_HEIGHT){e=Math.floor(e*g.MAX_IMAGE_HEIGHT/f);f=g.MAX_IMAGE_HEIGHT}b.width=e;b.height=f};b.src=c;return b}ibis.load_opf_content_item=function(c,b,e){ui.show_thinking_indicator();var a=g.book_id(b);g.pagination.seek_to=null;var d="";h.debug("Loading content uri "+c);g.jump_to_end=e;$("#content").remove();g.catalog=null;g.chapter=c;ui.hide_global_nav();ui.hide_results();$("#nav-back").hide();$("#nav-back-in-book").hide();ui.show_book();ui.select_nav();bookmark.marker_off();db.query("SELECT position, selector FROM status WHERE book_id=? AND chapter=?",[a,c],function(i,f){if(f.rows.length>0){g.pagination.seek_to=f.rows.item(0).position;position.current_selector=f.rows.item(0).selector}if(!g.pagination.seek_to&&!position.current_selector){g.pagination.seek_to=0}if(g.pagination.seek_to!==0){ui.show_content()}else{ui.show_content()}db.query("SELECT content, cached, label, item.date_modified FROM item, status WHERE item.uri=? AND item.book_id=?",[c,a],function(l,j){if(j.rows.length===0){h.debug("No local chapter found for "+c+", possibly not loaded yet?");hash.update_hash("#books");return}var k=j.rows.item(0);g.label=ui.prettify_label(k.label);ui.hide_results();ui.clear_epub_info();$("#book-info-link").attr("href","#info:"+b);db.query("SELECT content FROM item WHERE content_type='text/css' AND book_id=?",[a],function(o,m){h.test("Blort blort "+g.last_cache_invalidation);for(var n=0;n<m.rows.length;n++){d+=" "+m.rows.item(n).content}db.query("SELECT font_size, font_name, date_modified FROM preference WHERE id = 1",[],function(s,u){if(u.rows.length===0){h.debug("Warning: no font preferences were stored.  This is an error.");return}var r=u.rows.item(0);options.set_font_preference_style(r.font_size,r.font_name,g.ORIENTATION);d+=" #content > div{ margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important;} ";d+=" #content div.chapter { margin-left: 0 !important; margin-right: 0 !important; padding-left: 0 !important; padding-right: 0 !important;} ";if(g.is_ipad){d+=" #content{ margin: 0 !important; padding: 4% 4% 0 4% !important; width: 90%}"}else{d+=" #content{ margin: 0 !important; padding: 2% 2% 0 2% !important; width: 95%}"}d+=" #book{ font-size: "+r.font_size+" !important; font-family: "+r.font_name+" !important;} ";$('style[title="ibis-book"]').text(d);g.use_cached_content=false;if(k.date_modified){if(!r.date_modified){g.use_cached_content=true}else{if(k.date_modified>r.date_modified){if($(k.cached).find("img.ibis-padding."+g.font_preference_style).exists()){g.use_cached_content=true}}}}var p=$('<div id="ibis-cache-invalidate">'+g.last_cache_invalidation+"</div>");if(g.use_cached_content){var q=$(k.cached).find("#ibis-cache-invalidate");if($(q).exists()){h.test("Checking last timestamp "+$(q).text()+" against "+g.last_cache_invalidation);if($(q).text()!==g.last_cache_invalidation){h.test("Flushing cache and updating timestamp");g.use_cached_content=false;$(q).text(g.last_cache_invalidation)}}else{h.test("Didn't find a cache invalidation node; will add one and invalidate this cache");g.use_cached_content=false}}h.test("Using cached content: "+g.use_cached_content+" because opf_item.date_modified= "+k.date_modified+" vs. "+r.date_modified+" wth g.font_preference_style: "+g.font_preference_style);var t=g.use_cached_content?$(k.cached):$(k.content);$("#book").html(t);if(!$("#ibis-cache-invalidate").exists()){h.test("Didn't find a cache invalidation node; adding "+p.text());$("#content").append(p)}else{h.debug("Do think there's a cache invalidation node: "+$("#ibis-cache-invalidate").text())}ibis.begin_pagination();ui.hide_thinking_indicator()})})})});return false};$("#content a").live("touchend click",function(a){return ibis.delegate_touch_events("#content a",a,ibis.register_book_anchors)});ibis.register_book_anchors=function(j){if($(j.target).parents("a").length===1){j.target=$(j.target).parents("a")[0]}var c=$(j.target).attr("href");var b=hash.parse_hash().uri;if(c.indexOf(".epub")===c.length-5){if(confirm("Add ePub from "+c+" to your library?")){g.catalog=null;hash.update_hash("epub",c)}return false}else{if(c.indexOf("http://")===0){h.debug("Returning true from an external link; the link event should now be processed");return true}else{if(c.indexOf("#")===0){position.current_selector=c;var a=g.pagination.seek_to;g.pagination.seek_to=g.pagination.calculate_selector_y(position.current_selector);var f=a<g.pagination.seek_to;g.pagination.move_to(g.pagination.seek_to);position.update_reading_position(f,g.pagination.seek_to);bookmark.update_marker_status();return false}else{if(c.indexOf("#")>0){var k=c.split("#");var d=k[0];var i="#"+k[1];position.current_selector=i;db.query("UPDATE status SET selector=?, chapter=?, date_modified=?, position=NULL WHERE book_id=?",[i,d,h.current_datetime(),g.book_id(g.book_uri)],function(){ibis.load_opf_content_item(d,b)});return false}else{position.current_selector=null;db.query("UPDATE status SET chapter=?, date_modified=?, selector = NULL, position = NULL  WHERE book_id=?",[c,h.current_datetime(),g.book_id(g.book_uri)],function(){ibis.load_opf_content_item(c,b)});return false}}}}h.debug("Should have returned by now!")};ibis.begin_pagination=function(){var a=true;if(g.use_cached_content){h.debug("Using cached content with position: "+g.pagination.seek_to+", a "+typeof(g.pagination.seek_to)+" and selector "+position.current_selector+" (jump_to_end: "+g.jump_to_end+").");if(g.jump_to_end){g.pagination.seek_to=g.pagination.calculate_last_page_y();position.current_selector=g.LAST_SELECTOR;a=false}else{if(g.pagination.seek_to!==0&&!g.pagination.seek_to&&position.current_selector){g.pagination.move_to(0);g.pagination.seek_to=g.pagination.calculate_selector_y(position.current_selector)}}g.pagination.move_to(g.pagination.seek_to);ui.show_content();if(g.pagination.seek_to!==0){position.update_current_selector(a,g.pagination.seek_to)}position.update_current_position(g.pagination.seek_to,g.chapter,g.book_id(g.book_uri));bookmark.update_bookmark_selectors(g.book_id(g.book_uri),g.chapter)}else{h.debug("Don't think there's a cache for this content. Starting process for position: "+g.pagination.seek_to+" (jump_to_end: "+g.jump_to_end+").");ui.show_content();g.pagination.process_content(g.pagination.seek_to,g.jump_to_end)}};function serialize_image(a,b){jQuery.get(a,{as_data_url:true},function(c){b(c)})}function prep_book(a){if(a.error){h.debug("Alerting User: "+a.error);alert(a.error);ui.hide_thinking_indicator();$(".nav-top").hide();hash.update_hash("books");return false}h.debug("Calling block with request for first N chapters "+a.first_items);g.start_items={};jQuery.each(a.first_items,function(b,c){g.start_items[c]=c});jQuery.ajax({async:false,url:"/nest/epub/block/",data:{book_id:a.book_id,hrefs:a.first_items.join(","),screen_width:g.MAX_IMAGE_WIDTH,screen_height:g.MAX_IMAGE_HEIGHT,package_resources:"1"},dataType:"json",error:function(d,b,c){alert("Unable to download this book.");ui.hide_thinking_indicator();hash.update_hash("catalogs");h.debug("Got error when retrieving initial block: "+c)},success:function(b){if($("#book-thumbnail-holder img").length===0){load_book(a,b,null,null)}else{var d=$("#book-thumbnail-holder img").attr("src");var c=$("#book-cover-holder img").attr("src");serialize_image(d,function(e){serialize_image(c,function(f){load_book(a,b,f,e)})})}},type:"POST"})}function load_book(d,a,e,i){ui.clear_epub_info();var c=[];var b=[];var f=[];add_book(d.book_id,d.book_uri,d.title,a[0].chapter_href,e,i,d.items.length,function(){jQuery.each(d.items,function(j,k){c.push(["INSERT INTO item (book_id, uri, content, cached, label, item_order, depth, content_type, date_added) VALUES (?,?,?,?,?,?,?,?,?)",[d.book_id,k.href,k.content,k.content,k.label,k.order,k.depth,k.media_type,h.current_datetime()]]);f.push(k.href)});db.query_all(c,function(){jQuery.each(a,function(j,k){jQuery.each(k.resources,function(m,n){if(n===null){h.debug("Warning: got null for resource")}else{b.push(["UPDATE item SET content=?, content_length=? WHERE book_id=? AND uri=?",[n.content,n.content_length,d.book_id,n.chapter_href]])}});try{ibis.check_content_length(k.content_length);b.push(["UPDATE item SET content=?, content_length=? WHERE book_id=? AND uri=?",[k.content,k.content_length,d.book_id,k.chapter_href]])}catch(l){ui.hide_thinking_indicator();g.loading_book_content=false;ibis.delegate_book_to_other_reader(d.title,d.book_uri);return false}});db.query_all(b,function(){var j=[];ibis.load_opf_content_item(a[0].chapter_href,d.book_uri);h.debug("Requesting "+f.join(","));jQuery.ajax({url:"/nest/epub/block/",data:{hrefs:f.join(","),book_id:d.book_id,screen_width:g.MAX_IMAGE_WIDTH,screen_height:g.MAX_IMAGE_HEIGHT},success:function(k){try{jQuery.each(k,function(m,n){ibis.check_content_length(n.content_length);j.push(["UPDATE item SET content=?, content_length=? WHERE book_id=? AND uri=?",[n.content,n.content_length,d.book_id,n.chapter_href]])});db.query_all(j,function(){ui.hide_thinking_indicator();g.loading_book_content=false;h.debug("Added remaining content")})}catch(l){ui.hide_thinking_indicator();g.loading_book_content=false;ibis.delegate_book_to_other_reader(d.title,d.book_uri)}},error:function(m,k,l){alert("Unable to download this book.");h.debug("Alerting User: Unable to download this book. Error: "+l);ui.hide_thinking_indicator();hash.update_hash("catalogs");h.debug("Got error when retrieving final block: status="+k+" error="+l)},type:"POST",dataType:"json"})})})})}ibis.check_content_length=function(a){if(a>g.MAX_CONTENT_LENGTH){throw new OPFSizeException("Content length of "+a+" exceeded maximum!")}};var OPFSizeException=function(a){this.message=a;this.name="OPFSizeException"};OPFSizeException.prototype.toString=function(){return this.name+': "'+this.message+'"'};ibis.delegate_book_to_other_reader=function(b,a){h.debug("Deleting then delegating "+a+" to something that can handle it");ibis.delete_book(a,function(){hash.update_hash("");ui.show_global_nav();ui.hide_results();ui.hide_search();ui.hide_book();$("#error").html("");var d=$("<p>").text("Sorry! "+b+" has chapters that are too large to load into this version of Ibis Reader. Please try the web version at ");var j=$("<a>").attr("href",g.WEB_UI_URL).text("ibisreader.com");j.appendTo($(d));d.appendTo($("#error"));if(g.is_iphone||g.is_android){var c=$("<p>Alternately: </p>");var f="epub://"+a.substring(7);var i="";if(api.is_api_local_url(a)){f=api.append_api_key_param(f)}var e=$("<a>").attr("href",f);if(g.is_iphone){e.text("Open this book in Stanza?");i="Stanza is a popular App for reading ebooks. You can find it in the iTunes App Store."}else{e.text("Open this book in Aldiko?");i="Aldiko is a popular App for reading ebooks. You can find it in the Android Market."}e.appendTo(c);c.append(" "+i);c.appendTo($("#error"))}ui.show_errors()})};function get_book_list(){ui.select_nav("nav-my-books");ui.show_global_nav();ui.hide_results();ui.hide_search();ui.hide_book();$("#book-info").hide();ui.clear_results();ui.show_my_web_library();db.query("SELECT * FROM book ORDER BY title",[],function(c,f){if(f.rows.length===0){ui.display_no_books()}else{ui.display_some_books()}for(var b=0;b<f.rows.length;b++){var a=f.rows.item(b);var k=$("<a>").attr("href","#epub:"+a.book_uri);k.text(a.title);var j=$('<li class="book-result">').appendTo("#results");$('<div class="book-list-controls" />').bind("click",function(l){var i=$(this).parent().find("a:last").attr("href").substring(6);$("#book-list-toc").attr("href","#info:"+i);$("#book-list-delete").attr("href",i);$("#book-list-dropdown").css("top",($(this).position().top+25)+"px").fadeTo("fast",1,function(){$(this).show()});l.stopPropagation()}).appendTo(j);if(a.thumbnail&&a.thumbnail!=="data:,"){var d=$("<a>").attr("href","#epub:"+a.book_uri).addClass("img-holder").addClass("epub");$(render_cached_image(a.thumbnail,g.ICON_WIDTH)).addClass("my-books-thumbnail").appendTo(d);d.appendTo(j)}else{k.addClass("no-icon")}k.appendTo(j);if(a.entry){var e=new catalogs.JFeedItem($(g.parse_xml(a.entry)));if(e.author){$('<span class="author">').text(e.author).appendTo(k)}}}ui.show_results();return false})}ibis.add_load_from_url_button=function(){var b=$('<li class="catalog-item" id="add-from-url"/>').appendTo("#results");var a=$('<a class="no-icon">');a.text("Add book (download from URL)");a.appendTo(b);$("#add-from-url").click(function(){var d="http://";var c=prompt("Enter ePub download URL",d);if(c&&c!==d){h.debug("User trying to load ePub from URL: "+c);if(c.indexOf("http://")===0){g.catalog=null;hash.update_hash("epub",c)}else{alert("Not a valid ePub URL!");return false}}else{return false}})};ibis.delete_book=function(b,d){var a=g.book_id(b);h.debug("Going to delete book "+b);var c=[];c.push(["DELETE from book WHERE book_id=?",[a]]);c.push(["DELETE from status WHERE book_id=?",[a]]);c.push(["DELETE from item WHERE book_id=?",[a]]);c.push(["DELETE from mark WHERE book_id=?",[a]]);db.query_all(c,function(e,f){if(d){d()}else{if(hash.parse_hash().protocol==="books"){$("#results li a[href='#epub:"+b+"']").parent().remove();$("#results").click()}else{ui.clear_epub_info();hash.update_hash("books")}}})};function get_book_info(e,b,i,j){h.debug("Getting info for "+e);$("#nav-top").hide();state.hide_state();ui.hide_results();ui.hide_search();ui.hide_book();$("#nav-top-selector").hide();$("body").scrollTop(0);$("#book-cover-holder").empty();$("#book-thumbnail-holder").empty();$("#book-title").text(b.title);if(b.title.length>g.SHRINK_TITLE_THRESHOLD){$("#book-title").addClass("small-title")}else{$("#book-title.small-title").removeClass("small-title")}$("#book-author").text(b.author);if(b.date){$("#book-date .value").text(b.date).parent().show();$("#book-date .label").show()}else{$("#book-date .label").hide()}if(b.publisher){$("#book-publisher .value").text(b.publisher).parent().show();$("#book-publisher .label").show()}else{$("#book-publisher .label").hide()}if(b.rights){$("#book-rights .value").text(b.rights).parent().show();$("#book-rights .label").show()}else{$("#book-rights .label").hide()}if(b.language){$("#book-language .value").text(b.language).parent().show();$("#book-language .label").show()}else{$("#book-language .label").hide()}$("#book-description").html(b.description);var f=$("#book-info");if(i){if(j){var d=$(render_cached_image(j,null,g.COVER_INFO_PAGE_HEIGHT)).addClass("book-cover").css("max-height",g.COVER_INFO_PAGE_HEIGHT).appendTo($("#book-cover-holder").show());ui.add_reflection(d)}else{$("#book-cover-holder").hide()}f.show();f.find(".not-added").hide();f.find(".not-added a").hide();f.find(".added").show();f.find(".added a").show();f.find("#book-delete a").attr("href",e);$("#book-read a").attr("href","#epub:"+e);$("#book-read").show();$("#book-add-top").hide();if(g.catalog!==null){ui.hide_global_nav();$("#nav-back").show()}else{if($("#ibis-header:visible").length===0){$("#nav-back-in-book a").attr("href","#epub:"+e);$("#nav-back-in-book").show()}}show_toc(e);bookmark.show_bookmark_list(e);ui.show_export_link(e)}else{if(b.cover){var a=$('<img class="book-cover" style="max-height:'+g.COVER_INFO_PAGE_HEIGHT+'px">').attr("src","/nest/image-proxy/?image="+b.cover).appendTo($("#book-cover-holder").show());ui.add_reflection(a)}else{$("#book-cover-holder").hide()}if(b.thumbnail){$('<img class="book-thumbnail">').attr("src","/nest/image-proxy/?image="+b.thumbnail).appendTo($("#book-thumbnail-holder"))}var c=e;if(api.is_api_local_url(c)){c=api.append_api_key_param(c)}f.find("#book-add a").attr("href","#epub:"+c);$("#book-add a").removeClass("clicking-disabled");$("#book-add-top a").attr("href","#epub:"+c);$("#book-add-top a").removeClass("clicking-disabled");$("#book-add-top").show();f.find(".not-added").show();f.find(".not-added a").show();f.find(".added").hide();f.find(".added a").hide();ui.hide_global_nav();$("#nav-back").show();f.css("opacity",0).show().fadeTo("fast",1)}return false}ibis.get_epub_file=function(b){g.book_uri=b;var a=g.book_id(b);db.query("SELECT status.chapter, status.date_modified, status.selector FROM status WHERE status.book_id=?",[a],function(c,d){if(d.rows.length===0){h.debug("The book "+b+" isn't in the user's current library; downloading it.");if(g.is_authenticated){ui.show_thinking_indicator();g.loading_book_content=true;jQuery.ajax({url:"/nest/epub/",data:{epub:b},dataType:"json",success:prep_book,error:function(i,j,f){h.debug("Error in proxy aquisition: Error: "+j+", status: "+i.status);g.book_uri_to_be_acquired=b;hash.update_hash("login")}})}else{alert("You need to be logged in before you can acquire a new book.");g.book_uri_to_be_acquired=b;hash.update_hash("login")}}else{$("#book-info").hide();var e=d.rows.item(0);if(g.is_online&&g.is_authenticated){api.user_last_position(a,function(l){if(l){var m="Jump to where you stopped reading "+prettyDate(l.created_time)+" (from "+l.client+")?";var j=h.utc_iso8601_to_date(l.created_time);var k=h.db_datetime_to_date(e.date_modified);h.debug("JUMP? (current_status.date_modified: "+k+" vs data.created_time: "+j+"): "+m);var i=(a!==api.user_position_cache.book_id||l.chapter_uri!==api.user_position_cache.chapter_uri||l.selector!==api.user_position_cache.selector);var f=(l.chapter_uri!==e.chapter||l.selector!==e.selector);h.debug("diff_than_cache "+i+" data_chapter "+l.chapter_uri+" data_sel "+l.selector);h.debug("diff_than_db "+f+" cs_chapter "+e.chapter+" cs_sel "+e.selector);if(j>k&&i&&f&&confirm(m)){h.debug("User confirmed API position jump to "+l.chapter_uri+" & "+l.created_time);db.query("UPDATE status SET selector=?, chapter=?, date_modified=?, position=NULL WHERE book_id=?",[l.selector,l.chapter_uri,h.current_datetime(),a],function(){ibis.load_opf_content_item(l.chapter_uri,b)})}else{ibis.load_opf_content_item(e.chapter,b)}}else{ibis.load_opf_content_item(e.chapter,b)}})}else{ibis.load_opf_content_item(e.chapter,b)}}});return false};function show_toc(a){$("#book-toc").empty();ui.show_list_loader("#toc-header");h.debug("Loading TOC information");db.query("SELECT book.title, book.entry, item.*, status.chapter AS current_chapter FROM item, book LEFT OUTER JOIN status ON item.book_id=status.book_id WHERE item.book_id=? AND book.book_id=? AND item.label IS NOT NULL ORDER BY item.item_order",[g.book_id(a),g.book_id(a)],function(f,k){for(var e=0;e<k.rows.length;e++){var j=k.rows.item(e);var c=$('<a class="toc-item no-icon">').attr("href",j.uri).text(ui.prettify_label(j.label));var b=$("<li>").appendTo($("#book-toc"));if(j.depth>1){var d=(j.depth*g.TOC_NESTING_MARGIN)+"px";c.css("margin-left",d)}if(j.current_chapter===j.uri){b.addClass("currently-reading")}c.appendTo(b)}ui.hide_list_loaders()})}function update_auth_status(){g.is_authenticated=$.cookie(g.login_cookie_name)!==null;if(g.is_authenticated){$("#signout-link").show();$("#signin-link").hide()}else{$("#signout-link").hide();$("#signin-link").show()}}ibis.logout=function(){$.cookie(g.login_cookie_name,null,{expires:-1});jQuery.get("/nest/signout/");update_auth_status();hash.update_hash("books")};function set_size(a,b,c){$(a).css(b,c+"px")}ibis.check_user_agent=function(){if(/iPhone OS 2_/.test(g.userAgent)||/iPhone; U; CPU like Mac/.test(g.userAgent)||/Android 1\./.test(g.userAgent)){h.debug("Redirecting to "+g.WEB_UI_URL+" for "+g.userAgent);window.location=g.WEB_UI_URL}};ibis.app_exit=function(){h.debug("USER IS LEAVING THE APP!")};jQuery(document).ready(function(){ibis.check_user_agent();$(window).bind("hashchange",check_hash);setInterval(function(){api.user_update_position(g.book_id(g.book_uri),g.chapter,position.current_selector)},api.position_sync_interval_ms);if((g.DEBUG||g.TESTING)&&g.is_webkit){g.screen.height=460;g.screen.width=320;$("html").css("background-color","rgb(180,180,180)");$("body").css("background-color","rgb(180,180,180)");set_size("#body-container","width",g.screen.width);set_size("#body-container","height",g.screen.height)}else{if(g.is_iphone){g.screen.height=460-g.magic_horizontal_scrollbar_height_portrait;g.screen.width=320}else{if(g.is_ipad){g.screen.height=window.innerHeight-g.magic_horizontal_scrollbar_height_portrait;g.screen.width=window.innerWidth}else{if(g.is_nexus_one){g.screen.width=window.innerWidth;g.screen.height=500}else{g.screen.height=window.innerHeight;g.screen.width=window.innerWidth}}}}h.debug("Got screen height="+g.screen.height+" and width="+g.screen.width+" / browser is_phone="+g.is_iphone+" is android="+g.is_android+" is webkit non-mobile="+g.is_webkit+" is_nexus_one="+g.is_nexus_one+" is_ipad="+g.is_ipad);set_size("#book-info-controls","min-height",Math.floor(g.screen.height/2));g.set_orientation();options.set_font_preference_style(g.FONT_SIZE_DEFAULT,g.FONT_NAME_DEFAULT,g.ORIENTATION);$("#registrationform").submit(function(){$("#login-register-errors").empty();var a=$(this).serialize();$.post("/accounts/register/",a,function(b){if(b.errors){$("#login-register-errors").html(b.errors)}else{h.debug("Registered or logged in account for "+b.email);update_auth_status();if(g.book_uri_to_be_acquired){ui.hide_login_notes();hash.update_hash("epub",g.book_uri_to_be_acquired);g.book_uri_to_be_acquired=null}else{hash.update_hash("books")}}},"json");return false});update_auth_status();if(!g.is_app&&(g.is_iphone||g.is_ipad)&&!g.DEBUG){$("#main").hide(function(){$("#installme").show();$("#install-arrow-ipad").fadeIn("slow")});db.setup_db();return}check_online(function(){if(!g.is_online){$("#signout-link").hide();$("#signin-link").hide()}});db.setup_db();if(!check_hash()){h.debug("Got false from check-hash; checking if we have a book to open");db.query("SELECT status.book_id, book.book_uri FROM status INNER JOIN book ON status.book_id=book.book_id ORDER BY status.date_modified DESC LIMIT 1",null,function(a,b){if(b.rows.length===0){ui.hide_global_nav();$("#welcome-text").show()}else{g.book_uri=b.rows.item(0).book_uri;hash.update_hash("epub",g.book_uri)}})}if(hash.parse_hash().protocol!=="login"){ui.show_app()}ui.clear_nexus_nav()});function set_online(a,b){if(g.online===a){if(b){b()}}if(a){g.is_online=true;$(".button.online").removeClass("unavailable")}else{g.is_online=false;$(".button.online").addClass("unavailable")}if(b){b()}}function check_online(a){if(g.TESTING){return set_online(true,a)}if(g.is_mobile_html5_compatible&&window.navigator.onLine){return set_online(true,a)}jQuery.ajax({url:"/nest/ping/",dataType:"json",error:function(c,d,b){h.debug(d);h.debug(b);set_online(false,a)},success:function(b){if(b.alive){set_online(true,a)}else{set_online(false,a)}}})}$("a.toc-item").live("click",function(){if(g.loading_book_content){alert("This book is still loading, please wait a moment.");return false}var a=g.book_id(g.book_uri);db.query("UPDATE status SET position=?, chapter=?, date_modified=?, selector = NULL  WHERE book_id=?",[0,$(this).attr("href"),h.current_datetime(),a],function(){hash.update_hash("epub",g.book_uri)});return false});$("#book-add a").live("click",function(){$("#book-add a").addClass("clicking-disabled");$("#book-add-top a").addClass("clicking-disabled");return true});$("#book-add-top a").live("click",function(){$("#book-add a").addClass("clicking-disabled");$("#book-add-top a").addClass("clicking-disabled");return true});$("a.delete").click(function(){if(confirm("Are you sure you want to delete this book and all its bookmarks?")){var a=$(this).attr("href").replace("#epub:","");ibis.delete_book(a)}return false});$("#error-close").click(function(){ui.hide_overlay("#error")});$("#load-more").click(function(){$("#load-more a").addClass("clicking-disabled");var a=g.catalog.next;ui.show_list_loader("#load-more");catalogs.get_selected_catalog(a);return false});$("#searchform").submit(function(){var a=$(this).serialize();catalogs.getCatalog({url:$(this).attr("action"),data:a,success:catalogs.get_selected_catalog_handler});return false});$("#searchterm").live("click",function(){if($(this).val()==="Search..."){$(this).val("")}});ibis.delegate_touch_events=function(a,c,b){h.debug("Delegating with event="+c.type+", selector="+a);if(c.type==="touchend"){if(g.is_iphone||g.is_ipad){c.pageX=c.originalEvent.changedTouches[0].pageX;c.pageY=c.originalEvent.changedTouches[0].pageY;c.target=$(c.originalEvent.changedTouches[0].target).closest(a)}else{c.target=$(c.target).closest(a)}if($(c.target).is("a")||$(c.target).parents("a").length==1){h.debug("event.target was an anchor");if(g.is_ipad){h.debug("Trying to click on an iPad anchor");$(c.target).click()}else{return false}}}else{if(g.supports_touch_events){if($(c.target).is("a")||$(c.target).parents("a").length==1){h.debug("Passing through anchor link")}else{h.debug("This device supports touch over click; dropping this click event.");return false}}}return b(c)};$("#book").live("touchend click",function(a){return ibis.delegate_touch_events("#book",a,ibis.register_book_events)});ibis.register_book_events=function(a){h.debug("Got a touch/click event at #book X: "+a.pageX+" Y: "+a.pageY);if($(event.target).is("a")||$(event.target).parents("a").length==1){h.debug("Think e.target is an anchor: "+a.target);return true}if(bookmark.in_bookmark_toggle_area(a)){h.debug("Toggling bookmark from #book");bookmark.toggle()}else{if(state.in_current_state_area(a)){bookmark.marker_off();if($("#state:visible").exists()){state.hide_state()}else{if(g.is_android){$("#nav-top a").bind("click",ibis.disable_links).addClass("clicking-disabled");$("#book-options-link").unbind("click",ui.show_options);setTimeout(function(){$("#nav-top a").unbind("click",ibis.disable_links).removeClass("clicking-disabled");$("#book-options-link").click(ui.show_options)},800)}state.show_state()}}else{bookmark.marker_off();if($("#state:visible").exists()){state.hide_state()}if(ui.in_page_previous_area(a)){g.pagination.previous();ui.show_pagination_hint("previous");setTimeout(function(){ui.hide_pagination_hint()},g.PAGINATION_HINT_DISPLAY_MS)}else{if(ui.in_page_next_area(a)){g.pagination.next();ui.show_pagination_hint("next");setTimeout(function(){ui.hide_pagination_hint()},g.PAGINATION_HINT_DISPLAY_MS)}}}}return false};$("#nav-top-arrow").click(function(a){ui.show_top_nav();state.show_state();return false});$("#results").click(function(){$("#book-list-dropdown").fadeTo("fast",0,function(){$(this).hide()});if(hash.parse_hash().protocol==="books"&&!$("#results li.book-result").exists()){ui.display_no_books()}});ibis.disable_links=function(a){return false};