diff --git a/src/layouts/page/nebraska-man.html b/src/layouts/page/nebraska-man.html index c08338c..59baa76 100644 --- a/src/layouts/page/nebraska-man.html +++ b/src/layouts/page/nebraska-man.html @@ -12,7 +12,7 @@ -
+
@@ -25,104 +25,153 @@
+ +
-
- Nebraska Man Issue 1 -
-
-

Latest Release

-

Created by Niel Edwards (sp?), a frequent collaborator for Marvel and DC Comics, this first issue tells the story of Nebraska Man’s plight as an unthanked and uncompensated open-source dev. He is then approached by the Shadowy Super Coder and learns about a powerful new technology that could save the day.

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-{{- partial "full-width-cta.html" . -}} +
+ +
-
+
-

catalog

-
-
-
-
-

- -

-
-
-
-
- -
-
-

Issue Title. Issue No.

-

Release Date | Author Name | Illustrator Name

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
- - -
-
-
-
+
+
+

Take 'saving the internet' one step further...

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
-

- -

-
-
-
-
- -
-
-

Issue Title. Issue No.

-

Release Date | Author Name | Illustrator Name

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
- - -
-
-
-
+
+
+
+

How to earn your Nebraska Man cover NFT's.

+
    +
  • Follow our Twitter
  • +
  • Like the Nebraska Man tweet
  • +
  • Retweet
  • +
  • Join Discord
  • +
  • Attend AMA
  • +
  • Join Subreddit
  • +
  • Subscribe Youtube
  • +
-
-
-

- -

-
-
-
-
- -
-
-

Issue Title. Issue No.

-

Release Date | Author Name | Illustrator Name

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-
- - -
-
-
-
+
+
+ + {{ end }} diff --git a/src/layouts/partials/comic-catalog.html b/src/layouts/partials/comic-catalog.html new file mode 100644 index 0000000..abc92ba --- /dev/null +++ b/src/layouts/partials/comic-catalog.html @@ -0,0 +1,83 @@ +
+
+

catalog

+
+
+
+
+

+ +

+
+
+
+
+ +
+
+

Issue Title. Issue No.

+

Release Date | Author Name | Illustrator Name

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+
+ + +
+
+
+
+
+
+
+

+ +

+
+
+
+
+ +
+
+

Issue Title. Issue No.

+

Release Date | Author Name | Illustrator Name

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+
+ + +
+
+
+
+
+
+
+

+ +

+
+
+
+
+ +
+
+

Issue Title. Issue No.

+

Release Date | Author Name | Illustrator Name

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+
+ + +
+
+
+
+
+
+
+
diff --git a/src/layouts/partials/head.html b/src/layouts/partials/head.html index 7a643db..0cce205 100644 --- a/src/layouts/partials/head.html +++ b/src/layouts/partials/head.html @@ -44,6 +44,9 @@ })(); + + + diff --git a/src/static/Images/placeholder/batman-2016-120-1.jpeg b/src/static/Images/placeholder/batman-2016-120-1.jpeg new file mode 100644 index 0000000..e94b142 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-1.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-10.jpeg b/src/static/Images/placeholder/batman-2016-120-10.jpeg new file mode 100644 index 0000000..0b09158 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-10.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-11.jpeg b/src/static/Images/placeholder/batman-2016-120-11.jpeg new file mode 100644 index 0000000..7091b4d Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-11.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-12.jpeg b/src/static/Images/placeholder/batman-2016-120-12.jpeg new file mode 100644 index 0000000..c326d4c Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-12.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-13.jpeg b/src/static/Images/placeholder/batman-2016-120-13.jpeg new file mode 100644 index 0000000..0069807 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-13.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-3.jpeg b/src/static/Images/placeholder/batman-2016-120-3.jpeg new file mode 100644 index 0000000..c513e0f Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-3.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-4.jpeg b/src/static/Images/placeholder/batman-2016-120-4.jpeg new file mode 100644 index 0000000..ebf31b1 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-4.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-5.jpeg b/src/static/Images/placeholder/batman-2016-120-5.jpeg new file mode 100644 index 0000000..0fc82b0 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-5.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-6.jpeg b/src/static/Images/placeholder/batman-2016-120-6.jpeg new file mode 100644 index 0000000..c1feb2d Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-6.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-7.jpeg b/src/static/Images/placeholder/batman-2016-120-7.jpeg new file mode 100644 index 0000000..63a1964 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-7.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-8.jpeg b/src/static/Images/placeholder/batman-2016-120-8.jpeg new file mode 100644 index 0000000..3f84c88 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-8.jpeg differ diff --git a/src/static/Images/placeholder/batman-2016-120-9.jpeg b/src/static/Images/placeholder/batman-2016-120-9.jpeg new file mode 100644 index 0000000..dd97423 Binary files /dev/null and b/src/static/Images/placeholder/batman-2016-120-9.jpeg differ diff --git a/src/static/css/basic.css b/src/static/css/basic.css new file mode 100644 index 0000000..7845e5f --- /dev/null +++ b/src/static/css/basic.css @@ -0,0 +1,64 @@ +/* Basic sample */ + +.latest-container{ + overflow:hidden; + background-color:#1a1a1a; + margin:0; + padding:0; +} + +.flipbook-viewport{ + overflow:hidden; + width:100%; + height:100%; +} + +.flipbook-viewport .container{ + top:50%; + left:50%; + margin:auto; +} + +.flipbook-viewport .flipbook{ + width:922px; + height:600px; +} + +.flipbook-viewport .page{ + width:461px; + height:600px; + background-color:white; + background-repeat:no-repeat; + background-size:100% 100%; +} + +.flipbook .page{ + -webkit-box-shadow:0 0 20px rgba(0,0,0,0.2); + -moz-box-shadow:0 0 20px rgba(0,0,0,0.2); + -ms-box-shadow:0 0 20px rgba(0,0,0,0.2); + -o-box-shadow:0 0 20px rgba(0,0,0,0.2); + box-shadow:0 0 20px rgba(0,0,0,0.2); +} + +.flipbook-viewport .page img{ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + margin:0; +} + +.flipbook-viewport .shadow{ + -webkit-transition: -webkit-box-shadow 0.5s; + -moz-transition: -moz-box-shadow 0.5s; + -o-transition: -webkit-box-shadow 0.5s; + -ms-transition: -ms-box-shadow 0.5s; + + -webkit-box-shadow:0 0 20px #ccc; + -moz-box-shadow:0 0 20px #ccc; + -o-box-shadow:0 0 20px #ccc; + -ms-box-shadow:0 0 20px #ccc; + box-shadow:0 0 20px #ccc; +} diff --git a/src/static/css/buttons.css b/src/static/css/buttons.css index 901fd81..306a873 100644 --- a/src/static/css/buttons.css +++ b/src/static/css/buttons.css @@ -38,7 +38,8 @@ /* Icon Styling */ - .btn-primary .icon-enter-arrow{ + .btn-primary .icon-enter-arrow, + .btn-primary .icon-download-arrow{ display: inline-block; position: relative; margin-right: 0.558vw; diff --git a/src/static/css/nebraska-man.css b/src/static/css/nebraska-man.css index 718b08b..1857da6 100644 --- a/src/static/css/nebraska-man.css +++ b/src/static/css/nebraska-man.css @@ -33,6 +33,14 @@ border-bottom: 2px solid #949494; } +.nb-man-latest{ + background-image: url("/Images/x-large-grid.svg"); + background-attachment: fixed; + background-position: top; + background-repeat: repeat; + background-size: cover; +} + #nb-man-float{ position: relative; padding-left: 25vw; diff --git a/src/static/js/basic.js b/src/static/js/basic.js new file mode 100644 index 0000000..12a3690 --- /dev/null +++ b/src/static/js/basic.js @@ -0,0 +1,94 @@ +/* + * Basic sample +*/ + +function addPage(page, book) { + + var id, pages = book.turn('pages'); + + // Create a new element for this page + var element = $('
', {}); + + // Add the page to the flipbook + if (book.turn('addPage', element, page)) { + + // Add the initial HTML + // It will contain a loader indicator and a gradient + element.html('
'); + + // Load the page + loadPage(page, element); + } + +} + +function loadPage(page, pageElement) { + + // Create an image element + + var img = $(''); + + img.mousedown(function(e) { + e.preventDefault(); + }); + + img.load(function() { + + // Set the size + $(this).css({width: '100%', height: '100%'}); + + // Add the image to the page after loaded + + $(this).appendTo(pageElement); + + // Remove the loader indicator + + pageElement.find('.loader').remove(); + }); + + // Load the page + + img.attr('src', 'pages/' + page + '.jpg'); + +} + + +function loadLargePage(page, pageElement) { + + var img = $(''); + + img.load(function() { + + var prevImg = pageElement.find('img'); + $(this).css({width: '100%', height: '100%'}); + $(this).appendTo(pageElement); + prevImg.remove(); + + }); + + // Loadnew page + + img.attr('src', 'pages/' + page + '-large.jpg'); +} + + +function loadSmallPage(page, pageElement) { + + var img = pageElement.find('img'); + + img.css({width: '100%', height: '100%'}); + + img.unbind('load'); + // Loadnew page + + img.attr('src', 'pages/' + page + '.jpg'); +} + + + +// http://code.google.com/p/chromium/issues/detail?id=128488 +function isChrome() { + + return navigator.userAgent.indexOf('Chrome')!=-1; + +} \ No newline at end of file diff --git a/src/static/js/jquery.min.1.7.js b/src/static/js/jquery.min.1.7.js new file mode 100644 index 0000000..3ca5e0f --- /dev/null +++ b/src/static/js/jquery.min.1.7.js @@ -0,0 +1,4 @@ +/*! jQuery v1.7 jquery.com | jquery.org/license */ +(function(a,b){function cA(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cx(a){if(!cm[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){cn||(cn=c.createElement("iframe"),cn.frameBorder=cn.width=cn.height=0),b.appendChild(cn);if(!co||!cn.createElement)co=(cn.contentWindow||cn.contentDocument).document,co.write((c.compatMode==="CSS1Compat"?"":"")+""),co.close();d=co.createElement(a),co.body.appendChild(d),e=f.css(d,"display"),b.removeChild(cn)}cm[a]=e}return cm[a]}function cw(a,b){var c={};f.each(cs.concat.apply([],cs.slice(0,b)),function(){c[this]=a});return c}function cv(){ct=b}function cu(){setTimeout(cv,0);return ct=f.now()}function cl(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ck(){try{return new a.XMLHttpRequest}catch(b){}}function ce(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bB(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function br(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bi,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bq(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bp(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bp)}function bp(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bo(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bn(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bm(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d=0===c})}function V(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function N(){return!0}function M(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?parseFloat(d):j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7",length:0,size:function(){return this.length},toArray:function(){return G.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?F.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),B.add(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(G.apply(this,arguments),"slice",G.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:F,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;B.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNumeric:function(a){return a!=null&&m.test(a)&&!isNaN(a)},type:function(a){return a==null?String(a):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
a",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,unknownElems:!!a.getElementsByTagName("nav").length,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",enctype:!!c.createElement("form").enctype,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.lastChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-999px",top:"-999px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="
",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="
t
",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;f(function(){var a,b,d,e,g,h,i=1,j="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;",l="visibility:hidden;border:0;",n="style='"+j+"border:5px solid #000;padding:0;'",p="
"+""+"
";m=c.getElementsByTagName("body")[0];!m||(a=c.createElement("div"),a.style.cssText=l+"width:0;height:0;position:static;top:0;margin-top:"+i+"px",m.insertBefore(a,m.firstChild),o=c.createElement("div"),o.style.cssText=j+l,o.innerHTML=p,a.appendChild(o),b=o.firstChild,d=b.firstChild,g=b.nextSibling.firstChild.firstChild,h={doesNotAddBorder:d.offsetTop!==5,doesAddBorderForTableAndCells:g.offsetTop===5},d.style.position="fixed",d.style.top="20px",h.fixedPosition=d.offsetTop===20||d.offsetTop===15,d.style.position=d.style.top="",b.style.overflow="hidden",b.style.position="relative",h.subtractsBorderForOverflowNotVisible=d.offsetTop===-5,h.doesNotIncludeMarginInBodyOffset=m.offsetTop!==i,m.removeChild(a),o=a=null,f.extend(k,h))}),o.innerHTML="",n.removeChild(o),o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[f.expando]:a[f.expando]&&f.expando,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[f.expando]=n=++f.uuid:n=f.expando),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[f.expando]:f.expando;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)?b=b:b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" "));for(e=0,g=b.length;e-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];if(!arguments.length){if(g){c=f.valHooks[g.nodeName.toLowerCase()]||f.valHooks[g.type];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}return b}e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!a||j===3||j===8||j===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g},removeAttr:function(a,b){var c,d,e,g,h=0;if(a.nodeType===1){d=(b||"").split(p),g=d.length;for(;h=0}})});var z=/\.(.*)$/,A=/^(?:textarea|input|select)$/i,B=/\./g,C=/ /g,D=/[^\w\s.|`]/g,E=/^([^\.]*)?(?:\.(.+))?$/,F=/\bhover(\.\S+)?/,G=/^key/,H=/^(?:mouse|contextmenu)|click/,I=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,J=function(a){var b=I.exec(a);b&& +(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},K=function(a,b){return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||a.id===b[2])&&(!b[3]||b[3].test(a.className))},L=function(a){return f.event.special.hover?a:a.replace(F,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=L(c).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"",(g||!e)&&c.preventDefault();if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,n=null;for(m=e.parentNode;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l=0:t===b&&(t=o[s]=r.quick?K(m,r.quick):f(m).is(s)),t&&q.push(r);q.length&&j.push({elem:m,matches:q})}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),G.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),H.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(V(c[0])||V(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=S.call(arguments);O.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!U[a]?f.unique(e):e,(this.length>1||Q.test(d))&&P.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",Z=/ jQuery\d+="(?:\d+|null)"/g,$=/^\s+/,_=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,ba=/<([\w:]+)/,bb=/",""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},bk=X(c);bj.optgroup=bj.option,bj.tbody=bj.tfoot=bj.colgroup=bj.caption=bj.thead,bj.th=bj.td,f.support.htmlSerialize||(bj._default=[1,"div
","
"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after" +,arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Z,""):null;if(typeof a=="string"&&!bd.test(a)&&(f.support.leadingWhitespace||!$.test(a))&&!bj[(ba.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(_,"<$1>");try{for(var c=0,d=this.length;c1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bn(a,d),e=bo(a),g=bo(d);for(h=0;e[h];++h)g[h]&&bn(e[h],g[h])}if(b){bm(a,d);if(c){e=bo(a),g=bo(d);for(h=0;e[h];++h)bm(e[h],g[h])}}e=g=null;return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bc.test(k))k=b.createTextNode(k);else{k=k.replace(_,"<$1>");var l=(ba.exec(k)||["",""])[1].toLowerCase(),m=bj[l]||bj._default,n=m[0],o=b.createElement("div");b===c?bk.appendChild(o):X(b).appendChild(o),o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=bb.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]===""&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&$.test(k)&&o.insertBefore(b.createTextNode($.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bt.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bs,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bs.test(g)?g.replace(bs,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bB(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bC=function(a,c){var d,e,g;c=c.replace(bu,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bD=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f===null&&g&&(e=g[b])&&(f=e),!bv.test(f)&&bw.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f||0,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),bB=bC||bD,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bF=/%20/g,bG=/\[\]$/,bH=/\r?\n/g,bI=/#.*$/,bJ=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bK=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bL=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bM=/^(?:GET|HEAD)$/,bN=/^\/\//,bO=/\?/,bP=/)<[^<]*)*<\/script>/gi,bQ=/^(?:select|textarea)/i,bR=/\s+/,bS=/([?&])_=[^&]*/,bT=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bU=f.fn.load,bV={},bW={},bX,bY,bZ=["*/"]+["*"];try{bX=e.href}catch(b$){bX=c.createElement("a"),bX.href="",bX=bX.href}bY=bT.exec(bX.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bU)return bU.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
").append(c.replace(bP,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bQ.test(this.nodeName)||bK.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bH,"\r\n")}}):{name:b.name,value:c.replace(bH,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?cb(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),cb(a,b);return a},ajaxSettings:{url:bX,isLocal:bL.test(bY[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bZ},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:b_(bV),ajaxTransport:b_(bW),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?cd(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=ce(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bJ.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bI,"").replace(bN,bY[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bR),d.crossDomain==null&&(r=bT.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bY[1]&&r[2]==bY[2]&&(r[3]||(r[1]==="http:"?80:443))==(bY[3]||(bY[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),ca(bV,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bM.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bO.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bS,"$1_="+x);d.url=y+(y===d.url?(bO.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bZ+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=ca(bW,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){s<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)cc(g,a[g],c,e);return d.join("&").replace(bF,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cf=f.now(),cg=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cf++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cg.test(b.url)||e&&cg.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cg,l),b.url===j&&(e&&(k=k.replace(cg,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ch=a.ActiveXObject?function(){for(var a in cj)cj[a](0,1)}:!1,ci=0,cj;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ck()||cl()}:ck,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ch&&delete cj[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++ci,ch&&(cj||(cj={},f(a).unload(ch)),cj[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cm={},cn,co,cp=/^(?:toggle|show|hide)$/,cq=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cr,cs=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],ct;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cw("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cz.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cz.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cA(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cA(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,d,"padding")):this[d]():null},f.fn["outer"+c]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,d,a?"margin":"border")):this[d]():null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var i=f.css(e,d),j=parseFloat(i);return f.isNumeric(j)?j:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window); \ No newline at end of file diff --git a/src/static/js/modernizr.2.5.3.min.js b/src/static/js/modernizr.2.5.3.min.js new file mode 100644 index 0000000..6716720 --- /dev/null +++ b/src/static/js/modernizr.2.5.3.min.js @@ -0,0 +1,4 @@ +/* Modernizr 2.5.3 (Custom Build) | MIT & BSD + * Build: http://www.modernizr.com/download/#-csstransforms-csstransforms3d-shiv-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes-load + */ +;window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a)if(j[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.substr(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.5.3",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["­",""].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e});var G=function(a,c){var d=a.join(""),f=c.length;w(d,function(a,c){var d=b.styleSheets[b.styleSheets.length-1],g=d?d.cssRules&&d.cssRules[0]?d.cssRules[0].cssText:d.cssText||"":"",h=a.childNodes,i={};while(f--)i[h[f].id]=h[f];e.csstransforms3d=(i.csstransforms3d&&i.csstransforms3d.offsetLeft)===9&&i.csstransforms3d.offsetHeight===3},f,c)}([,["@media (",m.join("transform-3d),("),h,")","{#csstransforms3d{left:9px;position:absolute;height:3px;}}"].join("")],[,"csstransforms3d"]);q.csstransforms=function(){return!!F("transform")},q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in g.style&&(a=e.csstransforms3d),a};for(var H in q)y(q,H)&&(v=H.toLowerCase(),e[v]=q[H](),t.push((e[v]?"":"no-")+v));return z(""),i=k=null,function(a,b){function g(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x",d.insertBefore(c.lastChild,d.firstChild)}function h(){var a=k.elements;return typeof a=="string"?a.split(" "):a}function i(a){var b={},c=a.createElement,e=a.createDocumentFragment,f=e();a.createElement=function(a){var e=(b[a]||(b[a]=c(a))).cloneNode();return k.shivMethods&&e.canHaveChildren&&!d.test(a)?f.appendChild(e):e},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+h().join().replace(/\w+/g,function(a){return b[a]=c(a),f.createElement(a),'c("'+a+'")'})+");return n}")(k,f)}function j(a){var b;return a.documentShived?a:(k.shivCSS&&!e&&(b=!!g(a,"article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio{display:none}canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden]{display:none}audio[controls]{display:inline-block;*display:inline;*zoom:1}mark{background:#FF0;color:#000}")),f||(b=!i(a)),b&&(a.documentShived=b),a)}var c=a.html5||{},d=/^<|^(?:button|form|map|select|textarea)$/i,e,f;(function(){var a=b.createElement("a");a.innerHTML="",e="hidden"in a,f=a.childNodes.length==1||function(){try{b.createElement("a")}catch(a){return!0}var c=b.createDocumentFragment();return typeof c.cloneNode=="undefined"||typeof c.createDocumentFragment=="undefined"||typeof c.createElement=="undefined"}()})();var k={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:j};a.html5=k,j(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;fg)throw k('Page "'+ +b+'" cannot be inserted');}else b=g,d=!0;1<=b&&b<=g&&(c="double"==e.display?b%2?" odd":" even":"",e.done&&this.turn("stop"),b in e.pageObjs&&i._movePages.call(this,b,1),d&&(e.totalPages=g),e.pageObjs[b]=f(a).css({"float":"left"}).addClass("page p"+b+c),i._addPage.call(this,b),e.done&&this.turn("update"),i._removeFromDOM.call(this));return this},_addPage:function(a){var b=this.data(),c=b.pageObjs[a];if(c)if(i._necessPage.call(this,a)){if(!b.pageWrap[a]){var d=i._pageSize.call(this,a,!0);c.css({width:d.width, +height:d.height});b.pagePlace[a]=a;b.pageWrap[a]=f("
",{"class":"turn-page-wrapper",page:a,css:{position:"absolute",overflow:"hidden"}}).css(d);this.append(b.pageWrap[a]);b.pageWrap[a].prepend(b.pageObjs[a])}(!a||1==i._setPageLoc.call(this,a))&&i._makeFlip.call(this,a)}else b.pagePlace[a]=0,b.pageObjs[a]&&b.pageObjs[a].remove()},hasPage:function(a){return j(a,this.data().pageObjs)},center:function(a){var b=this.data(),c=f(this).turn("size"),d=c.width/(2*b.zoom)-c.width/2;"double"==b.display&& +(a=this.turn("view",a||b.tpage||b.page),"ltr"==b.direction?a[0]?a[1]||(d+=c.width/4):d-=c.width/4:a[0]?a[1]||(d-=c.width/4):d+=c.width/4);f(this).css({marginLeft:d});return this},destroy:function(){var a=this.data();a.destroying=!0;f(this).unbind(n.down).unbind("end").unbind("first").unbind("flip").unbind("last").unbind("pressed").unbind("released").unbind("start").unbind("turning").unbind("turned").unbind("zooming");for(f(document).unbind(n.move,a.docEvents.mouseMove).unbind(n.up,a.docEvents.mouseEnd);0!== +a.totalPages;)this.turn("removePage",a.totalPages);a.fparent&&a.fparent.remove();a.shadow&&a.shadow.remove();this.removeData();return this},is:function(){return"object"==typeof this.data().pages},zoom:function(a){var b=this.data();if("number"==typeof a){if(0.0010>a||100this.data().totalPages)){b=this.turn("range");for(a=b[0];a<=b[1];a++)i._addPage.call(this,a)}},range:function(a){var b,c,d,e=this.data(),a=a||e.tpage||e.page||1;d=i._view.call(this,a);if(1>a||a>e.totalPages)throw k('"'+a+'" is not a page for range');d[1]=d[1]||d[0];1<=d[0]&&d[1]<=e.totalPages?(a=Math.floor(2),e.totalPages-d[1]>d[0]?(b=Math.min(d[0]-1,a),c=2*a-b):(c=Math.min(e.totalPages-d[1],a),b=2*a-c)):c=b=5;return[Math.max(1,d[0]- +b),Math.min(e.totalPages,d[1]+c)]},_necessPage:function(a){if(0===a)return!0;var b=this.data(),c=this.turn("range");return b.pageObjs[a].hasClass("fixed")||a>=c[0]&&a<=c[1]},_removeFromDOM:function(){var a,b=this.data();for(a in b.pageWrap)j(a,b.pageWrap)&&!i._necessPage.call(this,a)&&i._removePageFromDOM.call(this,a)},_removePageFromDOM:function(a){var b=this.data();if(b.pages[a]){var c=b.pages[a].data();h._moveFoldingPage.call(b.pages[a],!1);c.f&&c.f.fwrapper&&c.f.fwrapper.remove();b.pages[a].removeData(); +b.pages[a].remove();delete b.pages[a]}b.pageObjs[a]&&b.pageObjs[a].remove();b.pageWrap[a]&&(b.pageWrap[a].remove(),delete b.pageWrap[a]);delete b.pagePlace[a]},removePage:function(a){var b=this.data();if(1>a||a>b.totalPages)throw k("The page "+a+" doesn't exist");b.pageObjs[a]&&(this.turn("stop"),i._removePageFromDOM.call(this,a),delete b.pageObjs[a]);i._movePages.call(this,a,-1);b.totalPages-=1;b.page>b.totalPages?this.turn("page",b.totalPages):i._makeRange.call(this);return this},_movePages:function(a, +b){var c,d=this,e=this.data(),g="single"==e.display,f=function(a){var c=a+b,f=c%2,h=f?" odd ":" even ";e.pageObjs[a]&&(e.pageObjs[c]=e.pageObjs[a].removeClass("p"+a+" odd even").addClass("p"+c+h));e.pagePlace[a]&&e.pageWrap[a]&&(e.pagePlace[c]=c,e.pageWrap[c]=e.pageObjs[c].hasClass("fixed")?e.pageWrap[a].attr("page",c):e.pageWrap[a].css(i._pageSize.call(d,c,!0)).attr("page",c),e.pages[a]&&(e.pages[c]=e.pages[a].flip("options",{page:c,next:g||f?c+1:c-1,corners:g?"all":f?"forward":"backward"})),b&& +(delete e.pages[a],delete e.pagePlace[a],delete e.pageObjs[a],delete e.pageWrap[a],delete e.pageObjs[a]))};if(0=a;c--)f(c);else for(c=a;c<=e.totalPages;c++)f(c)},display:function(a){var b=this.data(),c=b.display;if(a){if(-1==f.inArray(a,x))throw k('"'+a+'" is not a value for display');"single"==a?b.pageObjs[0]||(this.turn("stop").css({overflow:"hidden"}),b.pageObjs[0]=f("
",{"class":"page p-temporal"}).css({width:this.width(),height:this.height()}).appendTo(this)):b.pageObjs[0]&& +(this.turn("stop").css({overflow:""}),b.pageObjs[0].remove(),delete b.pageObjs[0]);b.display=a;c&&(a=this.turn("size"),i._movePages.call(this,1,0),this.turn("size",a.width,a.height).turn("update"));return this}return c},direction:function(a){var b=this.data();if("undefined"==typeof a)return b.direction;a=a.toLowerCase();if(-1==f.inArray(a,y))throw k('"'+a+'" is not a value for direction');"rtl"==a&&f(this).attr("dir","ltr").css({direction:"ltr"});b.direction=a;b.done&&this.turn("size",f(this).width(), +f(this).height());return this},animating:function(){return 0a&&this.turn("page",a)}b.totalPages=a;return this}return b.totalPages}, +_missing:function(a){for(var b=this.data(),c=this.turn("range",a),d=[],a=c[0];a<=c[1];a++)b.pageObjs[a]||d.push(a);0h[1]?(c=h[1],d=l[0]):h[0]&&ah[0]?"r":"l"):e.pages[c].flip("turnPage",l[0]>h[0]?"l":"r"):e.pages[c].flip("turnPage"))},page:function(a){var a=parseInt(a,10),b=this.data();return 0b.page?b.next:b.page+1),i._addMotionPage.call(a.target));i._updateShadow.call(b.turn)}, +_end:function(a,b,c){f(a.target).data();var a=b.turn,d=a.data();if(c||d.tpage){if(d.tpage==b.next||d.tpage==b.page)delete d.tpage,i._fitPage.call(a,d.tpage||b.next,!0)}else i._removeMv.call(a,b.page),i._updateShadow.call(a),a.turn("update")},_pressed:function(a){a.stopPropagation();var b,a=f(a.target).data().f,c=a.opts.turn.data().pages;for(b in c)b!=a.opts.page&&c[b].flip("disable",!0);return a.time=(new Date).getTime()},_released:function(a,b){a.stopPropagation();var c,d=f(a.target),e=d.data().f, +g=e.opts.turn,u=g.data();c="single"==u.display?"r"==b.corner?b.xd.width()/2:0>b.x||b.x>d.width();if(200>(new Date).getTime()-e.time||c)a.preventDefault(),i._turnPage.call(g,e.opts.next,!1===h._cornerActivated.call(d,b,1));u.mouseAction=!1},_flip:function(a){a.stopPropagation();a=f(a.target).data().f.opts;a.turn.trigger("turn",[a.next]);a.turn.data().opts.autoCenter&&a.turn.turn("center",a.next)},calculateZ:function(a){var b,c,d,e,g=this,f=this.data();b=this.turn("view");var h=b[0]|| +b[1],i={pageZ:{},partZ:{},pageV:{}},j=function(a){a=g.turn("view",a);a[0]&&(i.pageV[a[0]]=!0);a[1]&&(i.pageV[a[1]]=!0)};for(b=0;b",{"class":"shadow",css:q(0,0,0).css}).appendTo(this));for(var h=0;h=a.x||0>=a.y||a.x>=d||a.y>=e)return!1;e=h._cAllowed.call(this);if(a.x>d-b)a.corner="r";else if(a.x",q(0,0,2)).css(c).appendTo(b).prepend(this);a.fpage=f("
",q(0,0,1)).css(c).appendTo(b)}h.resize.call(this,!0)},_fold:function(a){var b=this.data().f,c=h._c.call(this,a.corner),c=c.x?c.x-a.x:a.x,d=this.width();this.height();c=Math.min(2*d,Math.max(0,c));switch(a.corner){case "r":b.wrapper.css({width:Math.max(0,d-c)});this.css({position:"relative", +left:-c});b.fpage.css({left:-c+d,width:Math.max(0,c-d)});break;case "l":b.wrapper.css({width:d}),this.css({position:"relative",left:c}),b.fpage.css({left:d,width:Math.max(0,c-d)}),b.folding&&b.folding.css({position:"relative",left:2*-d+c})}b.parent.css({overflow:"visible"});b.point=a},_moveFoldingPage:function(a){var b=this.data().f;if(a){var a=h._foldingPage.call(this),c=b.opts.turn;if(a){if(b.folding){if(b.folding===a)return;h._moveFoldingPage.call(this,!1)}h.setData.call(this,{backParent:a.parent(), +folding:a});b.fpage.prepend(a)}c.turn("update")}else b.backParent&&(b.backParent.prepend(b.folding),delete b.backParent,delete b.folding)},_showFoldedPage:function(a,b){var c=h._foldingPage.call(this),d=this.data(),e=d.f,g=e.visible;if(!g||!e.point||e.point.corner!=a.corner){e.opts.turn.data();var i=f.Event("start");this.trigger(i,[e.opts,a.corner]);g=!1;if(i.isDefaultPrevented())return!1}if(c){if(b){var l=this,c=e.point&&e.point.corner==a.corner?e.point:h._c.call(this,a.corner,1);this.animatef({from:[c.x, +c.y],to:[a.x,a.y],duration:500,frame:function(b){a.x=Math.round(b[0]);a.y=Math.round(b[1]);h._fold.call(l,a)}})}else h._fold.call(this,a),d.effect&&!d.effect.turning&&this.animatef(!1);g||(e.visible=!0,h._moveFoldingPage.call(this,!0),e.fpage.show());return!0}return!1},hide:function(){var a=this.data().f;h._foldingPage.call(this);this.css({position:"",left:"auto"});a.wrapper.css({width:this.width()});a.fpage.css({width:this.width()});a.folding&&a.folding.css({position:"",left:"auto"});a.fpage.hide(); +a.visible=!1;return this},hideFoldedPage:function(a){var b=this.data().f;if(b.point){var c=this,d=b.point,e=function(){b.point=null;c.flip("hide");c.trigger("end",[b.opts,!1])};if(a){var g=h._c.call(this,d.corner),a="t"==d.corner.substr(0,1)?Math.min(0,d.y-g.y)/2:Math.max(0,d.y-g.y)/2,f=m(d.x,d.y+a),i=m(g.x,g.y-a);this.animatef({from:0,to:1,frame:function(a){a=t(d,f,i,g,a);d.x=a.x;d.y=a.y;h._fold.call(c,d)},complete:e,duration:800,hiding:!0})}else this.animatef(!1),e()}},turnPage:function(a){var b= +this,c=this.data().f,a={corner:c.corner?c.corner.corner:a||h._cAllowed.call(this)[0]},d=c.point||h._c.call(this,a.corner,c.opts.turn?c.opts.turn.data().opts.elevation:0),e=h._c2.call(this,a.corner);this.trigger("flip").animatef({from:0,to:1,frame:function(c){c=t(d,d,e,e,c);a.x=c.x;a.y=c.y;h._showFoldedPage.call(b,a)},complete:function(){b.trigger("end",[c.opts,!0])},duration:c.opts.duration,turning:!0});c.corner=null},moving:function(){return"effect"in this.data()},isTurning:function(){return this.flip("moving")&& +this.data().effect.turning},_eventStart:function(a){var b=this.data().f;if(!b.disabled&&!this.flip("isTurning")){b.corner=h._cornerActivated.call(this,a);if(b.corner&&h._foldingPage.call(this,b.corner))return h._showFoldedPage.call(this,b.corner)&&this.trigger("pressed",[b.point]),!1;b.corner=null}},_eventMove:function(a){var b=this.data().f;if(!b.disabled)if(a=[a],b.corner){var c=b.parent.offset();b.corner.x=a[0].pageX-c.left;b.corner.y=a[0].pageY-c.top;h._showFoldedPage.call(this,b.corner)}else!this.data().effect&& +this.is(":visible")&&((a=h._cornerActivated.call(this,a[0]))?(b=h._c.call(this,a.corner,b.opts.cornerSize/2),a.x=b.x,a.y=b.y,h._showFoldedPage.call(this,a,!0)):h.hideFoldedPage.call(this,!0))},_eventEnd:function(){var a=this.data().f;if(!a.disabled&&a.point){var b=f.Event("released");this.trigger(b,[a.point]);b.isDefaultPrevented()||h.hideFoldedPage.call(this,!0)}a.corner=null},disable:function(a){h.setData.call(this,{disabled:a});return this}};window.requestAnim=function(a){window.setTimeout(a,1E3/ +60)};f.extend(f.fn,{flip:function(a,b){return s(this,h,arguments)},turn:function(a){return s(this,i,arguments)},transform:function(a,b){var c={};b&&(c[r+"transform-origin"]=b);c[r+"transform"]=a;return this.css(c)},animatef:function(a){var b=this.data();b.effect&&b.effect.stop();if(a){a.to.length||(a.to=[a.to]);a.from.length||(a.from=[a.from]);for(var c=[],d=a.to.length,e=!0,g=this,h=(new Date).getTime(),i=function(){if(b.effect&&e){for(var f=[],j=Math.min(a.duration,(new Date).getTime()-h),k=0;k< +d;k++)f.push(b.effect.easing(1,j,a.from[k],c[k],a.duration));a.frame(1==d?f[0]:f);j==a.duration?(delete b.effect,g.data(b),a.complete&&a.complete()):window.requestAnim(i)}},j=0;jlastPage) + throw turnError('Page "'+page+'" cannot be inserted'); + + } else { + + page = lastPage; + incPages = true; + + } + + if (page>=1 && page<=lastPage) { + + if (data.display=='double') + className = (page%2) ? ' odd' : ' even'; + else + className = ''; + + // Stop animations + if (data.done) + this.turn('stop'); + + // Move pages if it's necessary + if (page in data.pageObjs) + turnMethods._movePages.call(this, page, 1); + + // Increase the number of pages + if (incPages) + data.totalPages = lastPage; + + // Add element + data.pageObjs[page] = $(element). + css({'float': 'left'}). + addClass('page p' + page + className); + + if (!hasHardPage() && data.pageObjs[page].hasClass('hard')) { + data.pageObjs[page].removeClass('hard'); + } + + // Add page + turnMethods._addPage.call(this, page); + + // Remove pages out of range + turnMethods._removeFromDOM.call(this); + } + + return this; + }, + + // Adds a page + + _addPage: function(page) { + + var data = this.data(), + element = data.pageObjs[page]; + + if (element) + if (turnMethods._necessPage.call(this, page)) { + + if (!data.pageWrap[page]) { + + // Wrapper + data.pageWrap[page] = $('
', + {'class': 'page-wrapper', + page: page, + css: {position: 'absolute', + overflow: 'hidden'}}); + + // Append to this flipbook + this.append(data.pageWrap[page]); + + if (!data.pagePlace[page]) { + + data.pagePlace[page] = page; + // Move `pageObjs[page]` to wrapper + data.pageObjs[page].appendTo(data.pageWrap[page]); + + } + + // Set the size of the page + var prop = turnMethods._pageSize.call(this, page, true); + element.css({width: prop.width, height: prop.height}); + data.pageWrap[page].css(prop); + + } + + if (data.pagePlace[page] == page) { + + // If the page isn't in another place, create the flip effect + turnMethods._makeFlip.call(this, page); + + } + + } else { + + // Place + data.pagePlace[page] = 0; + + // Remove element from the DOM + if (data.pageObjs[page]) + data.pageObjs[page].remove(); + + } + + }, + + // Checks if a page is in memory + + hasPage: function(page) { + + return has(page, this.data().pageObjs); + + }, + + // Centers the flipbook + + center: function(page) { + + var data = this.data(), + size = $(this).turn('size'), + left = 0; + + if (!data.noCenter) { + if (data.display=='double') { + var view = this.turn('view', page || data.tpage || data.page); + + if (data.direction=='ltr') { + if (!view[0]) + left -= size.width/4; + else if (!view[1]) + left += size.width/4; + } else { + if (!view[0]) + left += size.width/4; + else if (!view[1]) + left -= size.width/4; + } + + } + + $(this).css({marginLeft: left}); + } + + return this; + + }, + + // Destroys the flipbook + + destroy: function () { + + var page, + flipbook = this, + data = this.data(), + events = [ + 'end', 'first', 'flip', 'last', 'pressed', + 'released', 'start', 'turning', 'turned', + 'zooming', 'missing']; + + if (trigger('destroying', this)=='prevented') + return; + + data.destroying = true; + + $.each(events, function(index, eventName) { + flipbook.unbind(eventName); + }); + + this.parent().unbind('start', data.eventHandlers.start); + + $(document).unbind(mouseEvents.move, data.eventHandlers.touchMove). + unbind(mouseEvents.up, data.eventHandlers.touchEnd); + + while (data.totalPages!==0) { + this.turn('removePage', data.totalPages); + } + + if (data.fparent) + data.fparent.remove(); + + if (data.shadow) + data.shadow.remove(); + + this.removeData(); + data = null; + + return this; + + }, + + // Checks if this element is a flipbook + + is: function() { + + return typeof(this.data().pages)=='object'; + + }, + + // Sets and gets the zoom value + + zoom: function(newZoom) { + + var data = this.data(); + + if (typeof(newZoom)=='number') { + + if (newZoom<0.001 || newZoom>100) + throw turnError(newZoom+ ' is not a value for zoom'); + + if (trigger('zooming', this, [newZoom, data.zoom])=='prevented') + return this; + + var size = this.turn('size'), + currentView = this.turn('view'), + iz = 1/data.zoom, + newWidth = Math.round(size.width * iz * newZoom), + newHeight = Math.round(size.height * iz * newZoom); + + data.zoom = newZoom; + + $(this).turn('stop'). + turn('size', newWidth, newHeight); + /*. + css({marginTop: size.height * iz / 2 - newHeight / 2});*/ + + if (data.opts.autoCenter) + this.turn('center'); + /*else + $(this).css({marginLeft: size.width * iz / 2 - newWidth / 2});*/ + + turnMethods._updateShadow.call(this); + + for (var i = 0; idata.totalPages) + throw turnError('"'+page+'" is not a valid page'); + + + view[1] = view[1] || view[0]; + + if (view[0]>=1 && view[1]<=data.totalPages) { + + remainingPages = Math.floor((pagesInDOM-2)/2); + + if (data.totalPages-view[1] > view[0]) { + left = Math.min(view[0]-1, remainingPages); + right = 2*remainingPages-left; + } else { + right = Math.min(data.totalPages-view[1], remainingPages); + left = 2*remainingPages-right; + } + + } else { + left = pagesInDOM-1; + right = pagesInDOM-1; + } + + return [Math.max(1, view[0]-left), + Math.min(data.totalPages, view[1]+right)]; + + }, + + // Detects if a page is within the range of `pagesInDOM` from the current view + + _necessPage: function(page) { + + if (page===0) + return true; + + var range = this.turn('range'); + + return this.data().pageObjs[page].hasClass('fixed') || + (page>=range[0] && page<=range[1]); + + }, + + // Releases memory by removing pages from the DOM + + _removeFromDOM: function() { + + var page, data = this.data(); + + for (page in data.pageWrap) + if (has(page, data.pageWrap) && + !turnMethods._necessPage.call(this, page)) + turnMethods._removePageFromDOM.call(this, page); + + }, + + // Removes a page from DOM and its internal references + + _removePageFromDOM: function(page) { + + var data = this.data(); + + if (data.pages[page]) { + var dd = data.pages[page].data(); + + flipMethods._moveFoldingPage.call(data.pages[page], false); + + if (dd.f && dd.f.fwrapper) + dd.f.fwrapper.remove(); + + data.pages[page].removeData(); + data.pages[page].remove(); + delete data.pages[page]; + } + + if (data.pageObjs[page]) + data.pageObjs[page].remove(); + + if (data.pageWrap[page]) { + data.pageWrap[page].remove(); + delete data.pageWrap[page]; + } + + turnMethods._removeMv.call(this, page); + + delete data.pagePlace[page]; + delete data.pageZoom[page]; + + }, + + // Removes a page + + removePage: function(page) { + + var data = this.data(); + + // Delete all the pages + if (page=='*') { + + while (data.totalPages!==0) { + this.turn('removePage', data.totalPages); + } + + } else { + + if (page<1 || page>data.totalPages) + throw turnError('The page '+ page + ' doesn\'t exist'); + + if (data.pageObjs[page]) { + + // Stop animations + this.turn('stop'); + + // Remove `page` + turnMethods._removePageFromDOM.call(this, page); + + delete data.pageObjs[page]; + + } + + // Move the pages + turnMethods._movePages.call(this, page, -1); + + // Resize the size of this flipbook + data.totalPages = data.totalPages-1; + + // Check the current view + + if (data.page>data.totalPages) { + + data.page = null; + turnMethods._fitPage.call(this, data.totalPages); + + } else { + + turnMethods._makeRange.call(this); + this.turn('update'); + + } + } + + return this; + + }, + + // Moves pages + + _movePages: function(from, change) { + + var page, + that = this, + data = this.data(), + single = data.display=='single', + move = function(page) { + + var next = page + change, + odd = next%2, + className = (odd) ? ' odd ' : ' even '; + + if (data.pageObjs[page]) + data.pageObjs[next] = data.pageObjs[page]. + removeClass('p' + page + ' odd even'). + addClass('p' + next + className); + + if (data.pagePlace[page] && data.pageWrap[page]) { + + data.pagePlace[next] = next; + + if (data.pageObjs[next].hasClass('fixed')) + data.pageWrap[next] = data.pageWrap[page]. + attr('page', next); + else + data.pageWrap[next] = data.pageWrap[page]. + css(turnMethods._pageSize.call(that, next, true)). + attr('page', next); + + if (data.pages[page]) + data.pages[next] = data.pages[page]. + flip('options', { + page: next, + next: (single || odd) ? next+1 : next-1 + }); + + if (change) { + delete data.pages[page]; + delete data.pagePlace[page]; + delete data.pageZoom[page]; + delete data.pageObjs[page]; + delete data.pageWrap[page]; + } + + } + + }; + + if (change>0) + for (page=data.totalPages; page>=from; page--) + move(page); + else + for (page=from; page<=data.totalPages; page++) + move(page); + + }, + + // Sets or Gets the display mode + + display: function(display) { + + var data = this.data(), + currentDisplay = data.display; + + if (display===undefined) { + + return currentDisplay; + + } else { + + if ($.inArray(display, displays)==-1) + throw turnError('"'+display + '" is not a value for display'); + + switch(display) { + case 'single': + + // Create a temporal page to use as folded page + + if (!data.pageObjs[0]) { + this.turn('stop'). + css({'overflow': 'hidden'}); + + data.pageObjs[0] = $('
', + {'class': 'page p-temporal'}). + css({width: this.width(), height: this.height()}). + appendTo(this); + } + + this.addClass('shadow'); + + break; + case 'double': + + // Remove the temporal page + + if (data.pageObjs[0]) { + this.turn('stop').css({'overflow': ''}); + data.pageObjs[0].remove(); + delete data.pageObjs[0]; + } + + this.removeClass('shadow'); + + break; + } + + + data.display = display; + + if (currentDisplay) { + var size = this.turn('size'); + turnMethods._movePages.call(this, 1, 0); + this.turn('size', size.width, size.height). + turn('update'); + } + + return this; + + } + + }, + + // Gets and sets the direction of the flipbook + + direction: function(dir) { + + var data = this.data(); + + if (dir===undefined) { + + return data.direction; + + } else { + + dir = dir.toLowerCase(); + + if ($.inArray(dir, directions)==-1) + throw turnError('"' + dir + '" is not a value for direction'); + + if (dir=='rtl') { + $(this).attr('dir', 'ltr'). + css({direction: 'ltr'}); + } + + data.direction = dir; + + if (data.done) + this.turn('size', $(this).width(), $(this).height()); + + return this; + } + + }, + + // Detects animation + + animating: function() { + + return this.data().pageMv.length>0; + + }, + + // Gets the current activated corner + + corner: function() { + + var corner, + page, + data = this.data(); + + for (page in data.pages) { + if (has(page, data.pages)) + if ((corner = data.pages[page].flip('corner'))) { + return corner; + } + } + + return false; + }, + + // Gets the data stored in the flipbook + + data: function() { + + return this.data(); + + }, + + // Disables and enables the effect + + disable: function(disable) { + + var page, + data = this.data(), + view = this.turn('view'); + + data.disabled = disable===undefined || disable===true; + + for (page in data.pages) { + if (has(page, data.pages)) + data.pages[page].flip('disable', + (data.disabled) ? true : $.inArray(parseInt(page, 10), view)==-1); + } + + return this; + + }, + + // Disables and enables the effect + + disabled: function(disable) { + + if (disable===undefined) { + return this.data().disabled===true; + } else { + return this.turn('disable', disable); + } + + }, + + // Gets and sets the size + + size: function(width, height) { + + if (width===undefined || height===undefined) { + + return {width: this.width(), height: this.height()}; + + } else { + + this.turn('stop'); + + var page, prop, + data = this.data(), + pageWidth = (data.display=='double') ? width/2 : width; + + this.css({width: width, height: height}); + + if (data.pageObjs[0]) + data.pageObjs[0].css({width: pageWidth, height: height}); + + for (page in data.pageWrap) { + if (!has(page, data.pageWrap)) continue; + + prop = turnMethods._pageSize.call(this, page, true); + + data.pageObjs[page].css({width: prop.width, height: prop.height}); + data.pageWrap[page].css(prop); + + if (data.pages[page]) + data.pages[page].css({width: prop.width, height: prop.height}); + } + + this.turn('resize'); + + return this; + + } + }, + + // Resizes each page + + resize: function() { + + var page, data = this.data(); + + if (data.pages[0]) { + data.pageWrap[0].css({left: -this.width()}); + data.pages[0].flip('resize', true); + } + + for (page = 1; page <= data.totalPages; page++) + if (data.pages[page]) + data.pages[page].flip('resize', true); + + turnMethods._updateShadow.call(this); + + if (data.opts.autoCenter) + this.turn('center'); + + }, + + // Removes an animation from the cache + + _removeMv: function(page) { + + var i, data = this.data(); + + for (i=0; i0) ? view[0] : 0, + (view[1]<=data.totalPages) ? view[1] : 0]; + else + return [(view[0]>0 && view[0]<=data.totalPages) ? view[0] : 0]; + + }, + + // Stops animations + + stop: function(ignore, animate) { + + if (this.turn('animating')) { + + var i, opts, page, + data = this.data(); + + if (data.tpage) { + data.page = data.tpage; + delete data['tpage']; + } + + for (i = 0; ipages; page--) + this.turn('removePage', page); + + } + + data.totalPages = pages; + turnMethods._fitPage.call(this, data.page); + + return this; + + } else + return data.totalPages; + + }, + + // Checks missing pages + + _missing : function(page) { + + var data = this.data(); + + if (data.totalPages<1) + return; + + var p, + range = this.turn('range', page), + missing = []; + + for (p = range[0]; p<=range[1]; p++) { + if (!data.pageObjs[p]) + missing.push(p); + } + + if (missing.length>0) + this.trigger('missing', [missing]); + + }, + + // Sets a page without effect + + _fitPage: function(page) { + + var data = this.data(), + newView = this.turn('view', page); + + turnMethods._missing.call(this, page); + + if (!data.pageObjs[page]) + return; + + data.page = page; + + this.turn('stop'); + + for (var i = 0; iview[1]) { + current = view[1]; + next = newView[0]; + } else if (view[0] && pagecurrent) ? 'r' : 'l'); + else + data.pages[current].flip('turnPage', + (page>current) ? 'l' : 'r'); + else { + if (data.direction=='ltr') + data.pages[current].flip('turnPage', + optsCorners[(page>current) ? 1 : 0]); + else + data.pages[current].flip('turnPage', + optsCorners[(page>current) ? 0 : 1]); + } + + }, + + // Gets and sets a page + + page: function(page) { + + var data = this.data(); + + if (page===undefined) { + + return data.page; + + } else { + + if (!data.disabled && !data.destroying) { + + page = parseInt(page, 10); + + if (page>0 && page<=data.totalPages) { + + if (page!=data.page) { + if (!data.done || $.inArray(page, this.turn('view'))!=-1) + turnMethods._fitPage.call(this, page); + else + turnMethods._turnPage.call(this, page); + } + + return this; + + } else { + + throw turnError('The page ' + page + ' does not exist'); + + } + + } + + } + + }, + + // Turns to the next view + + next: function() { + + return this.turn('page', Math.min(this.data().totalPages, + turnMethods._view.call(this, this.data().page).pop() + 1)); + + }, + + // Turns to the previous view + + previous: function() { + + return this.turn('page', Math.max(1, + turnMethods._view.call(this, this.data().page).shift() - 1)); + + }, + + // Shows a peeling corner + + peel: function(corner, animate) { + + var data = this.data(), + view = this.turn('view'); + + animate = (animate===undefined) ? true : animate===true; + + if (corner===false) { + + this.turn('stop', null, animate); + + } else { + + if (data.display=='single') { + + data.pages[data.page].flip('peel', corner, animate); + + } else { + + var page; + + if (data.direction=='ltr') { + + page = (corner.indexOf('l')!=-1) ? view[0] : view[1]; + + } else { + + page = (corner.indexOf('l')!=-1) ? view[1] : view[0]; + + } + + if (data.pages[page]) + data.pages[page].flip('peel', corner, animate); + + } + } + + return this; + + }, + + // Adds a motion to the internal list + // This event is called in context of flip + + _addMotionPage: function() { + + var opts = $(this).data().f.opts, + turn = opts.turn, + dd = turn.data(); + + turnMethods._addMv.call(turn, opts.page); + + }, + + // This event is called in context of flip + + _eventStart: function(e, opts, corner) { + + var data = opts.turn.data(), + actualZoom = data.pageZoom[opts.page]; + + if (e.isDefaultPrevented()) { + turnMethods._updateShadow.call(opts.turn); + return; + } + + if (actualZoom && actualZoom!=data.zoom) { + + opts.turn.trigger('zoomed',[ + opts.page, + opts.turn.turn('view', opts.page), + actualZoom, + data.zoom]); + + data.pageZoom[opts.page] = data.zoom; + + } + + if (data.display=='single' && corner) { + + if ((corner.charAt(1)=='l' && data.direction=='ltr') || + (corner.charAt(1)=='r' && data.direction=='rtl')) + { + + opts.next = (opts.nextopts.page) ? opts.next : opts.page+1; + + } + + } + + turnMethods._addMotionPage.call(e.target); + turnMethods._updateShadow.call(opts.turn); + }, + + // This event is called in context of flip + + _eventEnd: function(e, opts, turned) { + + var that = $(e.target), + data = that.data().f, + turn = opts.turn, + dd = turn.data(); + + if (turned) { + + var tpage = dd.tpage || dd.page; + + if (tpage==opts.next || tpage==opts.page) { + delete dd.tpage; + + turnMethods._fitPage.call(turn, tpage || opts.next, true); + } + + } else { + + turnMethods._removeMv.call(turn, opts.page); + turnMethods._updateShadow.call(turn); + turn.turn('update'); + + } + + }, + + // This event is called in context of flip + + _eventPressed: function(e) { + + var page, + data = $(e.target).data().f, + turn = data.opts.turn, + turnData = turn.data(), + pages = turnData.pages; + + turnData.mouseAction = true; + + turn.turn('update'); + + return data.time = new Date().getTime(); + + }, + + // This event is called in context of flip + + _eventReleased: function(e, point) { + + var outArea, + page = $(e.target), + data = page.data().f, + turn = data.opts.turn, + turnData = turn.data(); + + if (turnData.display=='single') { + outArea = (point.corner=='br' || point.corner=='tr') ? + point.xpage.width()/2; + } else { + outArea = point.x<0 || point.x>page.width(); + } + + if ((new Date()).getTime()-data.time<200 || outArea) { + + e.preventDefault(); + turnMethods._turnPage.call(turn, data.opts.next); + + } + + turnData.mouseAction = false; + + }, + + // This event is called in context of flip + + _flip: function(e) { + + e.stopPropagation(); + + var opts = $(e.target).data().f.opts; + + opts.turn.trigger('turn', [opts.next]); + + if (opts.turn.data().opts.autoCenter) { + opts.turn.turn('center', opts.next); + } + + }, + + // + _touchStart: function() { + var data = this.data(); + for (var page in data.pages) { + if (has(page, data.pages) && + flipMethods._eventStart.apply(data.pages[page], arguments)===false) { + return false; + } + } + }, + + // + _touchMove: function() { + var data = this.data(); + for (var page in data.pages) { + if (has(page, data.pages)) { + flipMethods._eventMove.apply(data.pages[page], arguments); + } + } + }, + + // + _touchEnd: function() { + var data = this.data(); + for (var page in data.pages) { + if (has(page, data.pages)) { + flipMethods._eventEnd.apply(data.pages[page], arguments); + } + } + }, + + // Calculate the z-index value for pages during the animation + + calculateZ: function(mv) { + + var i, page, nextPage, placePage, dpage, + that = this, + data = this.data(), + view = this.turn('view'), + currentPage = view[0] || view[1], + total = mv.length-1, + r = {pageZ: {}, partZ: {}, pageV: {}}, + + addView = function(page) { + var view = that.turn('view', page); + if (view[0]) r.pageV[view[0]] = true; + if (view[1]) r.pageV[view[1]] = true; + }; + + for (i = 0; i<=total; i++) { + page = mv[i]; + nextPage = data.pages[page].data().f.opts.next; + placePage = data.pagePlace[page]; + addView(page); + addView(nextPage); + dpage = (data.pagePlace[nextPage]==nextPage) ? nextPage : page; + r.pageZ[dpage] = data.totalPages - Math.abs(currentPage-dpage); + r.partZ[placePage] = data.totalPages*2 - total + i; + } + + return r; + }, + + // Updates the z-index and display property of every page + + update: function() { + + var page, + data = this.data(); + + if (this.turn('animating') && data.pageMv[0]!==0) { + + // Update motion + + var p, apage, fixed, + pos = this.turn('calculateZ', data.pageMv), + corner = this.turn('corner'), + actualView = this.turn('view'), + newView = this.turn('view', data.tpage); + + for (page in data.pageWrap) { + + if (!has(page, data.pageWrap)) + continue; + + fixed = data.pageObjs[page].hasClass('fixed'); + + data.pageWrap[page].css({ + display: (pos.pageV[page] || fixed) ? '' : 'none', + zIndex: + (data.pageObjs[page].hasClass('hard') ? + pos.partZ[page] + : + pos.pageZ[page] + ) || (fixed ? -1 : 0) + }); + + if ((p = data.pages[page])) { + + p.flip('z', pos.partZ[page] || null); + + if (pos.pageV[page]) + p.flip('resize'); + + if (data.tpage) { // Is it turning the page to `tpage`? + + p.flip('hover', false). + flip('disable', + $.inArray(parseInt(page, 10), data.pageMv)==-1 && + page!=newView[0] && + page!=newView[1]); + + } else { + + p.flip('hover', corner===false). + flip('disable', page!=actualView[0] && page!=actualView[1]); + + } + + } + + } + + } else { + + // Update static pages + + for (page in data.pageWrap) { + + if (!has(page, data.pageWrap)) + continue; + + var pageLocation = turnMethods._setPageLoc.call(this, page); + + if (data.pages[page]) { + data.pages[page]. + flip('disable', data.disabled || pageLocation!=1). + flip('hover', true). + flip('z', null); + } + } + } + + return this; + }, + + // Updates the position and size of the flipbook's shadow + + _updateShadow: function() { + + var view, view2, shadow, + data = this.data(), + width = this.width(), + height = this.height(), + pageWidth = (data.display=='single') ? width : width/2; + + view = this.turn('view'); + + if (!data.shadow) { + data.shadow = $('
', { + 'class': 'shadow', + 'css': divAtt(0, 0, 0).css + }). + appendTo(this); + } + + for (var i = 0; i=width || point.y>=height) + return false; + + var allowedCorners = flipMethods._cAllowed.call(this); + + switch (data.effect) { + case 'hard': + + if (point.x>width-csz) + point.corner = 'r'; + else if (point.x=height-csz) + point.corner+= 'b'; + else + return false; + + if (point.x<=csz) + point.corner+= 'l'; + else if (point.x>=width-csz) + point.corner+= 'r'; + else + return false; + + break; + } + + return (!point.corner || $.inArray(point.corner, allowedCorners)==-1) ? + false : point; + + }, + + _isIArea: function(e) { + + var pos = this.data().f.parent.offset(); + + e = (isTouch && e.originalEvent) ? e.originalEvent.touches[0] : e; + + return flipMethods._cornerActivated.call(this, + { + x: e.pageX-pos.left, + y: e.pageY-pos.top + }); + + }, + + _c: function(corner, opts) { + + opts = opts || 0; + + switch (corner) { + case 'tl': + return point2D(opts, opts); + case 'tr': + return point2D(this.width()-opts, opts); + case 'bl': + return point2D(opts, this.height()-opts); + case 'br': + return point2D(this.width()-opts, this.height()-opts); + case 'l': + return point2D(opts, 0); + case 'r': + return point2D(this.width()-opts, 0); + } + + }, + + _c2: function(corner) { + + switch (corner) { + case 'tl': + return point2D(this.width()*2, 0); + case 'tr': + return point2D(-this.width(), 0); + case 'bl': + return point2D(this.width()*2, this.height()); + case 'br': + return point2D(-this.width(), this.height()); + case 'l': + return point2D(this.width()*2, 0); + case 'r': + return point2D(-this.width(), 0); + } + + }, + + _foldingPage: function() { + + var data = this.data().f; + + if (!data) + return; + + var opts = data.opts; + + if (opts.turn) { + data = opts.turn.data(); + if (data.display == 'single') + return (opts.next>1 || opts.page>1) ? data.pageObjs[0] : null; + else + return data.pageObjs[opts.next]; + } + + }, + + _backGradient: function() { + + var data = this.data().f, + turnData = data.opts.turn.data(), + gradient = turnData.opts.gradients && (turnData.display=='single' || + (data.opts.page!=2 && data.opts.page!=turnData.totalPages-1)); + + if (gradient && !data.bshadow) + data.bshadow = $('
', divAtt(0, 0, 1)). + css({'position': '', width: this.width(), height: this.height()}). + appendTo(data.parent); + + return gradient; + + }, + + type: function () { + + return this.data().f.effect; + + }, + + resize: function(full) { + + var data = this.data().f, + turnData = data.opts.turn.data(), + width = this.width(), + height = this.height(); + + switch (data.effect) { + case 'hard': + + if (full) { + data.wrapper.css({width: width, height: height}); + data.fpage.css({width: width, height: height}); + if (turnData.opts.gradients) { + data.ashadow.css({width: width, height: height}); + data.bshadow.css({width: width, height: height}); + } + } + + break; + case 'sheet': + + if (full) { + var size = Math.round(Math.sqrt(Math.pow(width, 2)+Math.pow(height, 2))); + + data.wrapper.css({width: size, height: size}); + data.fwrapper.css({width: size, height: size}). + children(':first-child'). + css({width: width, height: height}); + + data.fpage.css({width: width, height: height}); + + if (turnData.opts.gradients) + data.ashadow.css({width: width, height: height}); + + if (flipMethods._backGradient.call(this)) + data.bshadow.css({width: width, height: height}); + } + + if (data.parent.is(':visible')) { + var offset = findPos(data.parent[0]); + + data.fwrapper.css({top: offset.top, + left: offset.left}); + + //if (data.opts.turn) { + offset = findPos(data.opts.turn[0]); + data.fparent.css({top: -offset.top, left: -offset.left}); + //} + } + + this.flip('z', data.opts['z-index']); + + break; + } + + }, + + // Prepares the page by adding a general wrapper and another objects + + _addPageWrapper: function() { + + var att, + data = this.data().f, + turnData = data.opts.turn.data(), + parent = this.parent(); + + data.parent = parent; + + if (!data.wrapper) + switch (data.effect) { + case 'hard': + + var cssProperties = {}; + cssProperties[vendor + 'transform-style'] = 'preserve-3d'; + cssProperties[vendor + 'backface-visibility'] = 'hidden'; + + data.wrapper = $('
', divAtt(0, 0, 2)). + css(cssProperties). + appendTo(parent). + prepend(this); + + data.fpage = $('
', divAtt(0, 0, 1)). + css(cssProperties). + appendTo(parent); + + if (turnData.opts.gradients) { + data.ashadow = $('
', divAtt(0, 0, 0)). + hide(). + appendTo(parent); + + data.bshadow = $('
', divAtt(0, 0, 0)); + } + + break; + case 'sheet': + + var width = this.width(), + height = this.height(), + size = Math.round(Math.sqrt(Math.pow(width, 2)+Math.pow(height, 2))); + + data.fparent = data.opts.turn.data().fparent; + + if (!data.fparent) { + var fparent = $('
', {css: {'pointer-events': 'none'}}).hide(); + fparent.data().flips = 0; + fparent.css(divAtt(0, 0, 'auto', 'visible').css). + appendTo(data.opts.turn); + + data.opts.turn.data().fparent = fparent; + data.fparent = fparent; + } + + this.css({position: 'absolute', top: 0, left: 0, bottom: 'auto', right: 'auto'}); + + data.wrapper = $('
', divAtt(0, 0, this.css('z-index'))). + appendTo(parent). + prepend(this); + + data.fwrapper = $('
', divAtt(parent.offset().top, parent.offset().left)). + hide(). + appendTo(data.fparent); + + data.fpage = $('
', divAtt(0, 0, 0, 'visible')). + css({cursor: 'default'}). + appendTo(data.fwrapper); + + if (turnData.opts.gradients) + data.ashadow = $('
', divAtt(0, 0, 1)). + appendTo(data.fpage); + + flipMethods.setData.call(this, data); + + break; + } + + // Set size + flipMethods.resize.call(this, true); + + }, + + // Takes a 2P point from the screen and applies the transformation + + _fold: function(point) { + + var data = this.data().f, + turnData = data.opts.turn.data(), + o = flipMethods._c.call(this, point.corner), + width = this.width(), + height = this.height(); + + switch (data.effect) { + + case 'hard': + + if (point.corner=='l') + point.x = Math.min(Math.max(point.x, 0), width*2); + else + point.x = Math.max(Math.min(point.x, width), -width); + + var leftPos, + shadow, + gradientX, + fpageOrigin, + parentOrigin, + totalPages = turnData.totalPages, + zIndex = data.opts['z-index'] || totalPages, + parentCss = {'overflow': 'visible'}, + relX = (o.x) ? (o.x - point.x)/width : point.x/width, + angle = relX * 90, + half = angle<90; + + switch (point.corner) { + case 'l': + + fpageOrigin = '0% 50%'; + parentOrigin = '100% 50%'; + + if (half) { + leftPos = 0; + shadow = data.opts.next-1>0; + gradientX = 1; + } else { + leftPos = '100%'; + shadow = data.opts.page+1 A90) { + tr.x = tr.x + Math.abs(tr.y * rel.y/rel.x); + tr.y = 0; + if (Math.round(tr.x*Math.tan(PI-alpha)) < height) { + point.y = Math.sqrt(Math.pow(height, 2)+2 * middle.x * rel.x); + if (top) point.y = height - point.y; + return compute(); + } + } + + if (alpha>A90) { + var beta = PI-alpha, dd = h - height/Math.sin(beta); + mv = point2D(Math.round(dd*Math.cos(beta)), Math.round(dd*Math.sin(beta))); + if (left) mv.x = - mv.x; + if (top) mv.y = - mv.y; + } + + px = Math.round(tr.y/Math.tan(alpha) + tr.x); + + var side = width - px, + sideX = side*Math.cos(alpha*2), + sideY = side*Math.sin(alpha*2); + df = point2D( + Math.round((left ? side -sideX : px+sideX)), + Math.round((top) ? sideY : height - sideY)); + + // Gradients + if (turnData.opts.gradients) { + + gradientSize = side*Math.sin(alpha); + + var endingPoint = flipMethods._c2.call(that, point.corner), + far = Math.sqrt(Math.pow(endingPoint.x-point.x, 2)+Math.pow(endingPoint.y-point.y, 2))/width; + + shadowVal = Math.sin(A90*((far>1) ? 2 - far : far)); + + gradientOpacity = Math.min(far, 1); + + + gradientStartVal = gradientSize>100 ? (gradientSize-100)/gradientSize : 0; + + gradientEndPointA = point2D( + gradientSize*Math.sin(alpha)/width*100, + gradientSize*Math.cos(alpha)/height*100); + + + if (flipMethods._backGradient.call(that)) { + + gradientEndPointB = point2D( + gradientSize*1.2*Math.sin(alpha)/width*100, + gradientSize*1.2*Math.cos(alpha)/height*100); + + if (!left) gradientEndPointB.x = 100-gradientEndPointB.x; + if (!top) gradientEndPointB.y = 100-gradientEndPointB.y; + + } + + } + + tr.x = Math.round(tr.x); + tr.y = Math.round(tr.y); + + return true; + }, + + transform = function(tr, c, x, a) { + + var f = ['0', 'auto'], mvW = (width-h)*x[0]/100, mvH = (height-h)*x[1]/100, + cssA = {left: f[c[0]], top: f[c[1]], right: f[c[2]], bottom: f[c[3]]}, + cssB = {}, + aliasingFk = (a!=90 && a!=-90) ? (left ? -1 : 1) : 0, + origin = x[0] + '% ' + x[1] + '%'; + + that.css(cssA). + transform(rotate(a) + translate(tr.x + aliasingFk, tr.y, ac), origin); + + data.fpage.css(cssA).transform( + rotate(a) + + translate(tr.x + df.x - mv.x - width*x[0]/100, tr.y + df.y - mv.y - height*x[1]/100, ac) + + rotate((180/a - 2)*a), + origin); + + data.wrapper.transform(translate(-tr.x + mvW-aliasingFk, -tr.y + mvH, ac) + rotate(-a), origin); + + data.fwrapper.transform(translate(-tr.x + mv.x + mvW, -tr.y + mv.y + mvH, ac) + rotate(-a), origin); + + if (turnData.opts.gradients) { + + if (x[0]) + gradientEndPointA.x = 100-gradientEndPointA.x; + + if (x[1]) + gradientEndPointA.y = (100-gradientEndPointA.y); + + cssB['box-shadow'] = '0 0 20px rgba(0,0,0,'+(0.5*shadowVal)+')'; + folding.css(cssB); + + gradient(data.ashadow, + point2D(left?100:0, top?0:100), + point2D(gradientEndPointA.x, gradientEndPointA.y), + [[gradientStartVal, 'rgba(0,0,0,0)'], + [((1-gradientStartVal)*0.8)+gradientStartVal, 'rgba(0,0,0,'+(0.2*gradientOpacity)+')'], + [1, 'rgba(255,255,255,'+(0.2*gradientOpacity)+')']], + 3, + alpha); + + if (flipMethods._backGradient.call(that)) + gradient(data.bshadow, + point2D(left?0:100, top?0:100), + point2D(gradientEndPointB.x, gradientEndPointB.y), + [[0.6, 'rgba(0,0,0,0)'], + [0.8, 'rgba(0,0,0,'+(0.3*gradientOpacity)+')'], + [1, 'rgba(0,0,0,0)'] + ], + 3); + } + + }; + + switch (point.corner) { + case 'l' : + + + break; + case 'r' : + + + break; + case 'tl' : + point.x = Math.max(point.x, 1); + compute(); + transform(tr, [1,0,0,1], [100, 0], a); + break; + case 'tr' : + point.x = Math.min(point.x, width-1); + compute(); + transform(point2D(-tr.x, tr.y), [0,0,0,1], [0, 0], -a); + break; + case 'bl' : + point.x = Math.max(point.x, 1); + compute(); + transform(point2D(tr.x, -tr.y), [1,1,0,0], [100, 100], -a); + break; + case 'br' : + point.x = Math.min(point.x, width-1); + compute(); + transform(point2D(-tr.x, -tr.y), [0,1,1,0], [0, 100], a); + break; + } + + break; + } + + data.point = point; + + }, + + _moveFoldingPage: function(move) { + + var data = this.data().f; + + if (!data) + return; + + var turn = data.opts.turn, + turnData = turn.data(), + place = turnData.pagePlace; + + if (move) { + + var nextPage = data.opts.next; + + if (place[nextPage]!=data.opts.page) { + + if (data.folding) + flipMethods._moveFoldingPage.call(this, false); + + var folding = flipMethods._foldingPage.call(this); + + folding.appendTo(data.fpage); + place[nextPage] = data.opts.page; + data.folding = nextPage; + } + + turn.turn('update'); + + } else { + + if (data.folding) { + + if (turnData.pages[data.folding]) { + + // If we have flip available + + var flipData = turnData.pages[data.folding].data().f; + + turnData.pageObjs[data.folding]. + appendTo(flipData.wrapper); + + } else if (turnData.pageWrap[data.folding]) { + + // If we have the pageWrapper + + turnData.pageObjs[data.folding]. + appendTo(turnData.pageWrap[data.folding]); + + } + + if (data.folding in place) { + place[data.folding] = data.folding; + } + + delete data.folding; + + } + } + }, + + _showFoldedPage: function(c, animate) { + + var folding = flipMethods._foldingPage.call(this), + dd = this.data(), + data = dd.f, + visible = data.visible; + + if (folding) { + + if (!visible || !data.point || data.point.corner!=c.corner) { + + var corner = ( + data.status=='hover' || + data.status=='peel' || + data.opts.turn.data().mouseAction) ? + c.corner : null; + + visible = false; + + if (trigger('start', this, [data.opts, corner])=='prevented') + return false; + + } + + if (animate) { + + var that = this, + point = (data.point && data.point.corner==c.corner) ? + data.point : flipMethods._c.call(this, c.corner, 1); + + this.animatef({ + from: [point.x, point.y], + to: [c.x, c.y], + duration: 500, + frame: function(v) { + c.x = Math.round(v[0]); + c.y = Math.round(v[1]); + flipMethods._fold.call(that, c); + } + }); + + } else { + + flipMethods._fold.call(this, c); + + if (dd.effect && !dd.effect.turning) + this.animatef(false); + + } + + if (!visible) { + + switch(data.effect) { + case 'hard': + + data.visible = true; + flipMethods._moveFoldingPage.call(this, true); + data.fpage.show(); + if (data.opts.shadows) + data.bshadow.show(); + + break; + case 'sheet': + + data.visible = true; + data.fparent.show().data().flips++; + flipMethods._moveFoldingPage.call(this, true); + data.fwrapper.show(); + if (data.bshadow) + data.bshadow.show(); + + break; + } + + } + + return true; + + } + + return false; + }, + + hide: function() { + + var data = this.data().f, + turnData = data.opts.turn.data(), + folding = flipMethods._foldingPage.call(this); + + switch (data.effect) { + case 'hard': + + if (turnData.opts.gradients) { + data.bshadowLoc = 0; + data.bshadow.remove(); + data.ashadow.hide(); + } + + data.wrapper.transform(''); + data.fpage.hide(); + + break; + case 'sheet': + + if ((--data.fparent.data().flips)===0) + data.fparent.hide(); + + this.css({left: 0, top: 0, right: 'auto', bottom: 'auto'}). + transform(''); + + data.wrapper.transform(''); + + data.fwrapper.hide(); + + if (data.bshadow) + data.bshadow.hide(); + + folding.transform(''); + + break; + } + + data.visible = false; + + return this; + }, + + hideFoldedPage: function(animate) { + + var data = this.data().f; + + if (!data.point) return; + + var that = this, + p1 = data.point, + hide = function() { + data.point = null; + data.status = ''; + that.flip('hide'); + that.trigger('end', [data.opts, false]); + }; + + if (animate) { + + var p4 = flipMethods._c.call(this, p1.corner), + top = (p1.corner.substr(0,1)=='t'), + delta = (top) ? Math.min(0, p1.y-p4.y)/2 : Math.max(0, p1.y-p4.y)/2, + p2 = point2D(p1.x, p1.y+delta), + p3 = point2D(p4.x, p4.y-delta); + + this.animatef({ + from: 0, + to: 1, + frame: function(v) { + var np = bezier(p1, p2, p3, p4, v); + p1.x = np.x; + p1.y = np.y; + flipMethods._fold.call(that, p1); + }, + complete: hide, + duration: 800, + hiding: true + }); + + } else { + + this.animatef(false); + hide(); + + } + }, + + turnPage: function(corner) { + + var that = this, + data = this.data().f, + turnData = data.opts.turn.data(); + + corner = {corner: (data.corner) ? + data.corner.corner : + corner || flipMethods._cAllowed.call(this)[0]}; + + var p1 = data.point || + flipMethods._c.call(this, + corner.corner, + (data.opts.turn) ? turnData.opts.elevation : 0), + p4 = flipMethods._c2.call(this, corner.corner); + + this.trigger('flip'). + animatef({ + from: 0, + to: 1, + frame: function(v) { + + var np = bezier(p1, p1, p4, p4, v); + corner.x = np.x; + corner.y = np.y; + flipMethods._showFoldedPage.call(that, corner); + + }, + complete: function() { + + that.trigger('end', [data.opts, true]); + + }, + duration: turnData.opts.duration, + turning: true + }); + + data.corner = null; + }, + + moving: function() { + + return 'effect' in this.data(); + + }, + + isTurning: function() { + + return this.flip('moving') && this.data().effect.turning; + + }, + + corner: function() { + + return this.data().f.corner; + + }, + + _eventStart: function(e) { + + var data = this.data().f, + turn = data.opts.turn; + + if (!data.corner && !data.disabled && !this.flip('isTurning') && + data.opts.page==turn.data().pagePlace[data.opts.page]) + { + + data.corner = flipMethods._isIArea.call(this, e); + + if (data.corner && flipMethods._foldingPage.call(this)) { + + this.trigger('pressed', [data.point]); + flipMethods._showFoldedPage.call(this, data.corner); + + return false; + + } else + data.corner = null; + + } + + }, + + _eventMove: function(e) { + + var data = this.data().f; + + if (!data.disabled) { + + e = (isTouch) ? e.originalEvent.touches : [e]; + + if (data.corner) { + + var pos = data.parent.offset(); + data.corner.x = e[0].pageX-pos.left; + data.corner.y = e[0].pageY-pos.top; + flipMethods._showFoldedPage.call(this, data.corner); + + } else if (data.hover && !this.data().effect && this.is(':visible')) { + + var point = flipMethods._isIArea.call(this, e[0]); + + if (point) { + + if ((data.effect=='sheet' && point.corner.length==2) || data.effect=='hard') { + data.status = 'hover'; + var origin = flipMethods._c.call(this, point.corner, data.opts.cornerSize/2); + point.x = origin.x; + point.y = origin.y; + flipMethods._showFoldedPage.call(this, point, true); + } + + } else { + + if (data.status=='hover') { + data.status = ''; + flipMethods.hideFoldedPage.call(this, true); + } + + } + + } + + } + + }, + + _eventEnd: function() { + + var data = this.data().f, + corner = data.corner; + + if (!data.disabled && corner) { + if (trigger('released', this, [data.point || corner])!='prevented') { + flipMethods.hideFoldedPage.call(this, true); + } + } + + data.corner = null; + + }, + + disable: function(disable) { + + flipMethods.setData.call(this, {'disabled': disable}); + return this; + + }, + + hover: function(hover) { + + flipMethods.setData.call(this, {'hover': hover}); + return this; + + }, + + peel: function (corner, animate) { + + var data = this.data().f; + + if (corner) { + + if ($.inArray(corner, corners.all)==-1) + throw turnError('Corner '+corner+' is not permitted'); + + if ($.inArray(corner, flipMethods._cAllowed.call(this))!=-1) { + + var point = flipMethods._c.call(this, corner, data.opts.cornerSize/2); + + data.status = 'peel'; + + flipMethods._showFoldedPage.call(this, + { + corner: corner, + x: point.x, + y: point.y + }, animate); + + } + + + } else { + + data.status = ''; + + flipMethods.hideFoldedPage.call(this, animate); + + } + + return this; + } +}; + + +// Processes classes + +function dec(that, methods, args) { + + if (!args[0] || typeof(args[0])=='object') + return methods.init.apply(that, args); + + else if (methods[args[0]]) + return methods[args[0]].apply(that, Array.prototype.slice.call(args, 1)); + + else + throw turnError(args[0] + ' is not a method or property'); + +} + + +// Attributes for a layer + +function divAtt(top, left, zIndex, overf) { + + return {'css': { + position: 'absolute', + top: top, + left: left, + 'overflow': overf || 'hidden', + zIndex: zIndex || 'auto' + } +}; + +} + +// Gets a 2D point from a bezier curve of four points + +function bezier(p1, p2, p3, p4, t) { + + var a = 1 - t, + b = a * a * a, + c = t * t * t; + + return point2D(Math.round(b*p1.x + 3*t*a*a*p2.x + 3*t*t*a*p3.x + c*p4.x), + Math.round(b*p1.y + 3*t*a*a*p2.y + 3*t*t*a*p3.y + c*p4.y)); + +} + +// Converts an angle from degrees to radians + +function rad(degrees) { + + return degrees/180*PI; + +} + +// Converts an angle from radians to degrees + +function deg(radians) { + + return radians/PI*180; + +} + +// Gets a 2D point + +function point2D(x, y) { + + return {x: x, y: y}; + +} + +// Webkit 534.3 on Android wrongly repaints elements that use overflow:hidden + rotation + +function rotationAvailable() { + var parts; + + if ((parts = /AppleWebkit\/([0-9\.]+)/i.exec(navigator.userAgent))) { + var webkitVersion = parseFloat(parts[1]); + return (webkitVersion>534.3); + } else { + return true; + } +} + +// Returns the traslate value + +function translate(x, y, use3d) { + + return (has3d && use3d) ? ' translate3d(' + x + 'px,' + y + 'px, 0px) ' + : ' translate(' + x + 'px, ' + y + 'px) '; + +} + +// Returns the rotation value + +function rotate(degrees) { + + return ' rotate(' + degrees + 'deg) '; + +} + +// Checks if a property belongs to an object + +function has(property, object) { + + return Object.prototype.hasOwnProperty.call(object, property); + +} + +// Gets the CSS3 vendor prefix + +function getPrefix() { + + var vendorPrefixes = ['Moz','Webkit','Khtml','O','ms'], + len = vendorPrefixes.length, + vendor = ''; + + while (len--) + if ((vendorPrefixes[len] + 'Transform') in document.body.style) + vendor='-'+vendorPrefixes[len].toLowerCase()+'-'; + + return vendor; + +} + +// Detects the transitionEnd Event + +function getTransitionEnd() { + + var t, + el = document.createElement('fakeelement'), + transitions = { + 'transition':'transitionend', + 'OTransition':'oTransitionEnd', + 'MSTransition':'transitionend', + 'MozTransition':'transitionend', + 'WebkitTransition':'webkitTransitionEnd' + }; + + for (t in transitions) { + if (el.style[t] !== undefined) { + return transitions[t]; + } + } +} + +// Gradients + +function gradient(obj, p0, p1, colors, numColors) { + + var j, cols = []; + + if (vendor=='-webkit-') { + + for (j = 0; j